diff options
| author | yo mama <pepper@scannerjammer.com> | 2015-08-07 18:33:30 -0700 |
|---|---|---|
| committer | yo mama <pepper@scannerjammer.com> | 2015-08-07 18:33:30 -0700 |
| commit | 236fd1d9f2009083fbbfce7190c27fbf1d7c88b8 (patch) | |
| tree | 6077ff15b4b770b4b292aaa14d9cbfff1ba82fae | |
| parent | c89619f1b1f908d0f330c468866cea669ce8bf6c (diff) | |
getting ready
992 files changed, 126621 insertions, 2 deletions
diff --git a/frontend/css/cssreset.css b/frontend/css/cssreset.css new file mode 120000 index 0000000..6924554 --- /dev/null +++ b/frontend/css/cssreset.css @@ -0,0 +1 @@ +../imgrid/css/cssreset.css
\ No newline at end of file diff --git a/frontend/css/general.css b/frontend/css/general.css new file mode 120000 index 0000000..ae33e3a --- /dev/null +++ b/frontend/css/general.css @@ -0,0 +1 @@ +../imgrid/css/general.css
\ No newline at end of file diff --git a/frontend/css/images b/frontend/css/images new file mode 120000 index 0000000..5e798fa --- /dev/null +++ b/frontend/css/images @@ -0,0 +1 @@ +images
\ No newline at end of file diff --git a/frontend/css/jquery-ui-1.8.16.custom.css b/frontend/css/jquery-ui-1.8.16.custom.css new file mode 120000 index 0000000..36a911f --- /dev/null +++ b/frontend/css/jquery-ui-1.8.16.custom.css @@ -0,0 +1 @@ +../imgrid/css/jquery-ui-1.8.16.custom.css
\ No newline at end of file diff --git a/frontend/css/main.css b/frontend/css/main.css new file mode 120000 index 0000000..4f96fb7 --- /dev/null +++ b/frontend/css/main.css @@ -0,0 +1 @@ +../impattern/css/main.css
\ No newline at end of file diff --git a/frontend/css/normalize.css b/frontend/css/normalize.css new file mode 120000 index 0000000..2fbfef8 --- /dev/null +++ b/frontend/css/normalize.css @@ -0,0 +1 @@ +../impattern/css/normalize.css
\ No newline at end of file diff --git a/frontend/css/overlay.css b/frontend/css/overlay.css new file mode 120000 index 0000000..264d326 --- /dev/null +++ b/frontend/css/overlay.css @@ -0,0 +1 @@ +../impattern/css/overlay.css
\ No newline at end of file diff --git a/frontend/css/result.css b/frontend/css/result.css new file mode 120000 index 0000000..e90c968 --- /dev/null +++ b/frontend/css/result.css @@ -0,0 +1 @@ +../impattern/css/result.css
\ No newline at end of file diff --git a/frontend/css/sketch.css b/frontend/css/sketch.css new file mode 120000 index 0000000..d2d99ca --- /dev/null +++ b/frontend/css/sketch.css @@ -0,0 +1 @@ +../impattern/css/sketch.css
\ No newline at end of file diff --git a/frontend/css/smoothness: b/frontend/css/smoothness: new file mode 120000 index 0000000..816e409 --- /dev/null +++ b/frontend/css/smoothness: @@ -0,0 +1 @@ +../imgrid/css/smoothness:
\ No newline at end of file diff --git a/frontend/css/unsemantic-grid-responsive.css b/frontend/css/unsemantic-grid-responsive.css new file mode 120000 index 0000000..b5fd8ec --- /dev/null +++ b/frontend/css/unsemantic-grid-responsive.css @@ -0,0 +1 @@ +../impattern/css/unsemantic-grid-responsive.css
\ No newline at end of file diff --git a/frontend/im/#ffdead-black_1319995689.jpg b/frontend/im/#ffdead-black_1319995689.jpg Binary files differnew file mode 100755 index 0000000..6a39695 --- /dev/null +++ b/frontend/im/#ffdead-black_1319995689.jpg diff --git a/frontend/im/.htaccess b/frontend/im/.htaccess new file mode 100755 index 0000000..b6ae396 --- /dev/null +++ b/frontend/im/.htaccess @@ -0,0 +1,7 @@ +RewriteEngine On +RewriteCond %{REQUEST_URI} .*/im/(..)/(.*jpg|.*gif|.*png|.*jpeg)$ [NC] +RewriteRule ^(.*)$ http://i.asdf.us/im/%1/%2 [R=301,L] +Header add Access-Control-Allow-Origin "http://atrium.dump.fm" +Header add Access-Control-Allow-Origin "http://dump.fm" +Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type" +Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS" diff --git a/frontend/im/1327390579392dumpfmfrankhatscolor2tablet_1327477683_1327478593_1327480237.gif b/frontend/im/1327390579392dumpfmfrankhatscolor2tablet_1327477683_1327478593_1327480237.gif Binary files differnew file mode 100755 index 0000000..fead3f4 --- /dev/null +++ b/frontend/im/1327390579392dumpfmfrankhatscolor2tablet_1327477683_1327478593_1327480237.gif diff --git a/frontend/im/HTACCESS b/frontend/im/HTACCESS new file mode 100755 index 0000000..220a0e2 --- /dev/null +++ b/frontend/im/HTACCESS @@ -0,0 +1,3 @@ +RewriteEngine On +RewriteCond %{REQUEST_URI} .*/im/(..)/(.*jpg|.*gif|.*png|.*jpeg)$ [NC] +RewriteRule ^(.*)$ http://i.asdf.us/im/%1/%2 [R=301,L] diff --git a/frontend/im/OLD/01/_1424365694_frankhats.gif b/frontend/im/OLD/01/_1424365694_frankhats.gif Binary files differnew file mode 100644 index 0000000..3c51d74 --- /dev/null +++ b/frontend/im/OLD/01/_1424365694_frankhats.gif diff --git a/frontend/im/OLD/13/imgrid_1424839118_imgrid_1424839001_ymba2ut_pepper_pepper.png b/frontend/im/OLD/13/imgrid_1424839118_imgrid_1424839001_ymba2ut_pepper_pepper.png Binary files differnew file mode 100644 index 0000000..266d54f --- /dev/null +++ b/frontend/im/OLD/13/imgrid_1424839118_imgrid_1424839001_ymba2ut_pepper_pepper.png diff --git a/frontend/im/OLD/26/imgrid_1424839138_imgrid_1424839001_ymba2ut_pepper_pepper.png b/frontend/im/OLD/26/imgrid_1424839138_imgrid_1424839001_ymba2ut_pepper_pepper.png Binary files differnew file mode 100644 index 0000000..266d54f --- /dev/null +++ b/frontend/im/OLD/26/imgrid_1424839138_imgrid_1424839001_ymba2ut_pepper_pepper.png diff --git a/frontend/im/OLD/2a/imgrid_1424839194_imgrid_1424839001_ymba2ut_pepper_pepper.png b/frontend/im/OLD/2a/imgrid_1424839194_imgrid_1424839001_ymba2ut_pepper_pepper.png Binary files differnew file mode 100644 index 0000000..266d54f --- /dev/null +++ b/frontend/im/OLD/2a/imgrid_1424839194_imgrid_1424839001_ymba2ut_pepper_pepper.png diff --git a/frontend/im/OLD/37/imBreak_1424908970_xx_abridged___.gif b/frontend/im/OLD/37/imBreak_1424908970_xx_abridged___.gif Binary files differnew file mode 100644 index 0000000..bcc8038 --- /dev/null +++ b/frontend/im/OLD/37/imBreak_1424908970_xx_abridged___.gif diff --git a/frontend/im/OLD/3a/imgrid_1424839041_imgrid_1424839001_ymba2ut_pepper_pepper.png b/frontend/im/OLD/3a/imgrid_1424839041_imgrid_1424839001_ymba2ut_pepper_pepper.png Binary files differnew file mode 100644 index 0000000..266d54f --- /dev/null +++ b/frontend/im/OLD/3a/imgrid_1424839041_imgrid_1424839001_ymba2ut_pepper_pepper.png diff --git a/frontend/im/OLD/61/imgrid_1424839095_imgrid_1424839001_ymba2ut_pepper_pepper.png b/frontend/im/OLD/61/imgrid_1424839095_imgrid_1424839001_ymba2ut_pepper_pepper.png Binary files differnew file mode 100644 index 0000000..266d54f --- /dev/null +++ b/frontend/im/OLD/61/imgrid_1424839095_imgrid_1424839001_ymba2ut_pepper_pepper.png diff --git a/frontend/im/OLD/61/imgrid_1424839214_imgrid_1424839001_ymba2ut_pepper_pepper.png b/frontend/im/OLD/61/imgrid_1424839214_imgrid_1424839001_ymba2ut_pepper_pepper.png Binary files differnew file mode 100644 index 0000000..266d54f --- /dev/null +++ b/frontend/im/OLD/61/imgrid_1424839214_imgrid_1424839001_ymba2ut_pepper_pepper.png diff --git a/frontend/im/OLD/71/imgrid_1424839153_imgrid_1424839001_ymba2ut_pepper_pepper.png b/frontend/im/OLD/71/imgrid_1424839153_imgrid_1424839001_ymba2ut_pepper_pepper.png Binary files differnew file mode 100644 index 0000000..266d54f --- /dev/null +++ b/frontend/im/OLD/71/imgrid_1424839153_imgrid_1424839001_ymba2ut_pepper_pepper.png diff --git a/frontend/im/OLD/8c/_1424361556_dvvidpw.gif b/frontend/im/OLD/8c/_1424361556_dvvidpw.gif Binary files differnew file mode 100644 index 0000000..3c51d74 --- /dev/null +++ b/frontend/im/OLD/8c/_1424361556_dvvidpw.gif diff --git a/frontend/im/OLD/91/imgrid_1424839066_imgrid_1424839001_ymba2ut_pepper_pepper.png b/frontend/im/OLD/91/imgrid_1424839066_imgrid_1424839001_ymba2ut_pepper_pepper.png Binary files differnew file mode 100644 index 0000000..266d54f --- /dev/null +++ b/frontend/im/OLD/91/imgrid_1424839066_imgrid_1424839001_ymba2ut_pepper_pepper.png diff --git a/frontend/im/OLD/9f/imgrid_1424839118_pepper.png b/frontend/im/OLD/9f/imgrid_1424839118_pepper.png Binary files differnew file mode 100644 index 0000000..0c8ee7d --- /dev/null +++ b/frontend/im/OLD/9f/imgrid_1424839118_pepper.png diff --git a/frontend/im/OLD/ba/imBreak_1424908974_xx_abridged___.gif b/frontend/im/OLD/ba/imBreak_1424908974_xx_abridged___.gif Binary files differnew file mode 100644 index 0000000..f0b981d --- /dev/null +++ b/frontend/im/OLD/ba/imBreak_1424908974_xx_abridged___.gif diff --git a/frontend/im/OLD/bb/1423883560371dumpfmdatesdooduok_1424365488_mmi.gif b/frontend/im/OLD/bb/1423883560371dumpfmdatesdooduok_1424365488_mmi.gif Binary files differnew file mode 100644 index 0000000..3c51d74 --- /dev/null +++ b/frontend/im/OLD/bb/1423883560371dumpfmdatesdooduok_1424365488_mmi.gif diff --git a/frontend/im/OLD/bb/1423883560371dumpfmdatesdooduok_1424365545_mmi.gif b/frontend/im/OLD/bb/1423883560371dumpfmdatesdooduok_1424365545_mmi.gif Binary files differnew file mode 100644 index 0000000..3c51d74 --- /dev/null +++ b/frontend/im/OLD/bb/1423883560371dumpfmdatesdooduok_1424365545_mmi.gif diff --git a/frontend/im/OLD/bc/new_1424372778.gif b/frontend/im/OLD/bc/new_1424372778.gif Binary files differnew file mode 100644 index 0000000..3c51d74 --- /dev/null +++ b/frontend/im/OLD/bc/new_1424372778.gif diff --git a/frontend/im/OLD/bc/new_1424372876.gif b/frontend/im/OLD/bc/new_1424372876.gif Binary files differnew file mode 100644 index 0000000..3c51d74 --- /dev/null +++ b/frontend/im/OLD/bc/new_1424372876.gif diff --git a/frontend/im/OLD/cf/imgrid_1424839174_imgrid_1424839001_ymba2ut_pepper_pepper.png b/frontend/im/OLD/cf/imgrid_1424839174_imgrid_1424839001_ymba2ut_pepper_pepper.png Binary files differnew file mode 100644 index 0000000..266d54f --- /dev/null +++ b/frontend/im/OLD/cf/imgrid_1424839174_imgrid_1424839001_ymba2ut_pepper_pepper.png diff --git a/frontend/im/OLD/clearthedirectories b/frontend/im/OLD/clearthedirectories new file mode 100755 index 0000000..6d5b2a7 --- /dev/null +++ b/frontend/im/OLD/clearthedirectories @@ -0,0 +1,51 @@ +#!/usr/bin/python2.7 + +import sys +import os +import time + +f = open("directories",'r') +lines = f.readlines() +f.close() +newlines = [] +for line in lines: + if "\n" in line: + jerry = line.replace("\n","") + if len(jerry) == 2: + newlines.append(jerry) +dirs = newlines +print dirs +for dir in dirs: + print dir + if len(dir) == 2: + delete = False + os.system("ls "+dir+"/ >> contents") + f = open("contents","r") + thecontents = f.readlines() + f.close() + print thecontents + os.system("rm contents") + tempbool = False + tempbool2 = False + if len(thecontents) != 0: + for x in thecontents: + if ".jpg" in x: + tempbool = True +# if len(thedirs)>40: +# tempbool2 = True + if tempbool == True:# and tempbool2 == True: + print "deleting contents.." + print "moving to directory '"+dir+"'" + if len(thecontents)>0: + x = input("bout to do some deleting 1=yes 0=no") + if x == 1: + print "ok deleting "+dir+"/*" + try: + os.system("rm "+dir+"/*") + except: + continue + else: + sys.exit() + else: + print "nothing there" + continue diff --git a/frontend/im/OLD/d8/imgrid_1424839121_imgrid_1424839001_ymba2ut_pepper_pepper.png b/frontend/im/OLD/d8/imgrid_1424839121_imgrid_1424839001_ymba2ut_pepper_pepper.png Binary files differnew file mode 100644 index 0000000..266d54f --- /dev/null +++ b/frontend/im/OLD/d8/imgrid_1424839121_imgrid_1424839001_ymba2ut_pepper_pepper.png diff --git a/frontend/im/OLD/e6/imBreak_1424908981_xx_abridged___.gif b/frontend/im/OLD/e6/imBreak_1424908981_xx_abridged___.gif Binary files differnew file mode 100644 index 0000000..04cc98f --- /dev/null +++ b/frontend/im/OLD/e6/imBreak_1424908981_xx_abridged___.gif diff --git a/frontend/im/OLD/e9/_1424362273_dvvidpw.gif b/frontend/im/OLD/e9/_1424362273_dvvidpw.gif Binary files differnew file mode 100644 index 0000000..3c51d74 --- /dev/null +++ b/frontend/im/OLD/e9/_1424362273_dvvidpw.gif diff --git a/frontend/im/OLD/ec/imgrid_1424839230_imgrid_1424839001_ymba2ut_pepper_pepper.png b/frontend/im/OLD/ec/imgrid_1424839230_imgrid_1424839001_ymba2ut_pepper_pepper.png Binary files differnew file mode 100644 index 0000000..266d54f --- /dev/null +++ b/frontend/im/OLD/ec/imgrid_1424839230_imgrid_1424839001_ymba2ut_pepper_pepper.png diff --git a/frontend/im/OLD/f8/_1424370030.gif b/frontend/im/OLD/f8/_1424370030.gif Binary files differnew file mode 100644 index 0000000..3c51d74 --- /dev/null +++ b/frontend/im/OLD/f8/_1424370030.gif diff --git a/frontend/im/THEHTACCESS b/frontend/im/THEHTACCESS new file mode 100755 index 0000000..220a0e2 --- /dev/null +++ b/frontend/im/THEHTACCESS @@ -0,0 +1,3 @@ +RewriteEngine On +RewriteCond %{REQUEST_URI} .*/im/(..)/(.*jpg|.*gif|.*png|.*jpeg)$ [NC] +RewriteRule ^(.*)$ http://i.asdf.us/im/%1/%2 [R=301,L] diff --git a/frontend/im/api.html b/frontend/im/api.html new file mode 100755 index 0000000..2ea9d75 --- /dev/null +++ b/frontend/im/api.html @@ -0,0 +1,50 @@ +<!doctype html> +<html> +<head> +<title>Photoblaster API</title> +<script type="text/javascript" src="/js/jquery.js"></script> +<script type="text/javascript" src="/js/photoblaster-0.1.js"></script> +<style type="text/css"> +@font-face { + font-family: 'PixelComicSans-Regular'; + src: url('/fonts/pixelcomicsans/PixelComicSans-Regular.eot?#iefix') format('embedded-opentype'), + url('/fonts/pixelcomicsans/PixelComicSans-Regular.woff') format('woff'), + url('/fonts/pixelcomicsans/PixelComicSans-Regular.ttf') format('truetype'), + url('/fonts/pixelcomicsans/PixelComicSans-Regular.svg#svgFontName') format('svg'); + font-weight: normal; + font-style: normal; +} + +body { + font-family: "PixelComicSans-Regular", sans-serif; + background: #ddd; +} +</style> +</head> +<body> +<p>Push this button to test the API: <button id="test">TEST</button></p> +<p id="output"></p> +</body> +<script type="text/javascript"> +$(function(){ +// var url = "http://www.maskworld.com/pix/masks/025-party-face-gesicht-fasching-karneval-carnival-halloween-latex-film-movie-larp-theatre-theater-horror-rubber-gummi-mask-masks-maske-masken.jpg"; + var url = "http://thecoolgadgets.com/wp-content/uploads/2010/03/hamburger_usb_flash_drive.jpg"; + var name = "test"; + function success (data) { + var s = ""; + for (i in data) { + s += i + ": <b>" + data[i] + "</b><br>"; + } + s += "old: <img src='URL'><br>".replace('URL', url); + s += "new: <img src='URL'><br>".replace('URL', data['url']); + $("#output").html(s); + }; + function error (e) { + $("#output").html("There was an error: <b>" + e + "</b>"); + }; + $("#test").click(function() { + $.photoblaster(url, name, success, error); + }); +}); +</script> + diff --git a/frontend/im/arrow_pointing_left.png b/frontend/im/arrow_pointing_left.png Binary files differnew file mode 100755 index 0000000..ba1fb53 --- /dev/null +++ b/frontend/im/arrow_pointing_left.png diff --git a/frontend/im/asdf.html b/frontend/im/asdf.html new file mode 100755 index 0000000..e8b8687 --- /dev/null +++ b/frontend/im/asdf.html @@ -0,0 +1,462 @@ +<!doctype html> +<html> +<head> +<title>PHOTOBLASTER</title> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta property="og:title" content="PHOTOBLASTER"/> +<meta property="og:type" content="website"/> +<meta property="og:url" content="http://asdf.us/im/"/> +<meta property="og:image" content="http://asdf.us/im/6e/sparklebling1_1310021111_1310071704.gif" /> +<meta property="og:site_name" content="asdf.us"/> +<meta property="og:description" content="Paste a link into the first box, then use the other settings to colorize, distort, add transparency and a background."/> +<meta property="fb:admins" content="100001923956223,1709246"/> +<style type="text/css"> +* + { + padding: 0; + margin: 0; + font-family: sans-serif; + } +body + { + overflow: hidden; + background-color: #e6e0e0; + // background-color: #838388; + color: #555; + } +#controls,#result + { + display: inline-block; + padding: 10px; + width: 430px; + position: absolute; + } +#controls + { + font-size: 14px; + top: 0; left: 0; + z-index: 5; + } +#result + { + background-color: #d6d0d0; +// background-color: #131412; + top: 10px; left: 480px; + display: none; + z-index: 5; + } +#instructions + { + position: absolute; + bottom: 10px; + left: 10px; + line-height: 18px; + z-index: 1; + } +p,form + { +// background-color: #010101; + background-color: #fff; + background-image: url(imcupbg.jpg); + background-position: center center; + padding: 10px; + font-size: 14px; + width: 430px; + display: block; + } +#gallery-link + { + background-color: #fff; + background-image: url(imcupbg.jpg); + background-position: center center; + position: absolute; + top: 10px; + right: 10px; + padding: 10px; + z-index: 10; + } +.error + { + color: red; + font-size: 20px; + } +a + { +// color: #b4d; + color: #a39; + font-weight: bold; + } +label + { + display: inline-block; + width: 190px; + padding-right: 10px; + text-align: right; + } +small + { + color: #777; + } +input[type=text] + { + width: 100px; + } +#img-url,#output-url,#img-background + { + width: 200px; + } +#img-fuzz,#img-width,#img-height,#img-brightness,#img-saturation,#img-contrast,#img-hue,#img-rotate + { + width: 50px; + text-align: right; + } +button + { + padding: 2px 5px; + font-size: 16px; + } +#result img + { + max-width: 400px; + max-height: 400px; + } +#output-cmd + { + font-size: 12px; + white-space: pre; + } +.shim + { + height: 10px; + clear: both; + display: block; + } +#output-url + { + width: 320px; + } +#likebutton + { + display: none; + position: absolute; + bottom: 10px; + right: 10px; + width: 350px; + background-color: #fff; + background-image: url(imcupbg.jpg); + padding: 10px; + color: #ddd; + font-family: trebuchet ms, sans-serif; + } +div#controls, span#userlink { + display: none; +} span#userlink a { + text-transform: capitalize; +} +</style> +<body> +<div id="controls"> +<form id="imform" action="javascript:return false"> + <label id="img-url-label">IMAGE URL</label> + <input type="text" id="img-url" /> + <br/> + <label id="background-url-label">background URL</label> + <input type="text" id="img-background" value="" /> + <br/> + + <label>compose operator</label> + <select id="img-compose"> + <option selected="selected">Over</option> + <option>ATop</option> + <option>Dst_Over</option> + <option>Dst_In</option> + <option>Dst_Out</option> + <option>Multiply</option> + <option>Screen</option> + <option>Divide</option> + <option>Plus</option> + <option>Difference</option> + <option>Exclusion</option> + <option>Lighten</option> + <option>Darken</option> + <option>Overlay</option> + <option>Hard_Light</option> + <option>Soft_Light</option> + <option>Pegtop_Light</option> + <option>Linear_Light</option> + <option>Vivid_Light</option> + <option>Pin_Light</option> + <option>Linear_Dodge</option> + <option>Linear_Burn</option> + <option>Color_Dodge</option> + <option>Color_Burn</option> + </select> +<!-- <br> + <label>tile foreground?</label> + + <input type="checkbox" id="img-tile" value="1" /> + <br/> --> + +<!-- + <label>merge before recolor?</label> + <input type="checkbox" id="img-merge_early" value="1" /> + <br/> + +--> + <span class="shim"></span> + + + <span class="shim"></span> + + <label>make transparent?</label> + <input type="checkbox" id="img-transparent" value="1" checked="true" /> + <br/> + + <label>remove color</label> + <input type="text" id="img-subtract" value="white" /> + <br/> + + <label>transparency fuzz</label> + <input type="text" id="img-fuzz" value="5" />% + <br/> + + <span class="shim"></span> + + <label>resize width</label> + <input type="text" id="img-width" /><small>px</small> + <br/> + + <label>resize height</label> + <input type="text" id="img-height" /><small>px</small> + <br/> + + <span class="shim"></span> + + <label>recolor white</label> + <input type="text" id="img-white" value="white" /> + <a href="colors/index.html" style="font-size: 10px">List of Color Names</a> + <br/> + + <label>recolor black</label> + <input type="text" id="img-black" value="black" /> + <br/> + + <span class="shim"></span> + + <label>hue <small>(0-200)</small></label> + <input type="text" id="img-hue" value="" /> + <br/> +<!-- + <label>saturation <small>(0-200)</small></label> + <input type="text" id="img-saturation" value="" /> + <br/> +--> +<!-- + <label>brightness <small>(0-200)</small></label> + <input type="text" id="img-brightness" value="" /> + <br/> +--> +<!-- + <label>contrast <small>(0-200)</small></label> + <input type="text" id="img-contrast" value="" /> + <br/> +--> + + <span class="shim"></span> + + <label>flip horizontally?</label> + <input type="checkbox" id="img-flop" value="1" /> + <br/> + + <label>flip vertically?</label> + <input type="checkbox" id="img-flip" value="1" /> + <br/> + + <label>rotate <small>(0-360)</small></label> + <input type="text" id="img-rotate" value="" />° + <br/> + + <span class="shim"></span> + + <label>output format</label> + <select id="img-format"> + <option selected="selected">gif</option> + <option>jpg</option> + <option>png</option> + </select> + <!-- <input type="reset" id="reset-button" value="reset-button"></input>--> + + + <span class="shim"></span> + + <label>put your name here >>></label> + <input type="text" id="img-name" value="" /> + <br/> + + <span class="shim"></span> + + <label> </label> + <button id="img-generate">GENERATE</button> + + </form> + + <span class="shim"></span> + <p> + <img src="new.gif" width="32" height="16" /> + Oh now it's on....payback time → <a href="/imbreak/">FOTO FUCKER</a> + <span class="shim"></span> + <img src="new.gif" width="32" height="16" /> + Transform images in 3D → <a href="/imgrid/">Grid Generator</a> + <span class="shim"></span> + Gradients make everything better → <a href="/imgradient/">Gradient Generator</a> + </p> + <span class="shim"></span> + <p> + See what people are making → <a href="/im/gallery/">Image Gallery</a><br/> + <span class="shim"></span> + The best ones go here → <a href="http://photoblaster.tumblr.com/">Photoblaster Tumblr</a> + <span class="shim"></span> + View a random selection → <a href="/im/gallery/?random=1">Random Gallery</a><br/> + <span id="userlink"> + <span class="shim"></span> + Things you've made → <a href="/im/gallery/?random=1">Your Gallery</a><br/> + </span> + </p> +</div> + +<div id="result"> + → <input type="text" id="output-url"/><br/> + <span id="output-cmd"></span><br/> + + <img id="output-img" /> +</div> + +<div id="likebutton"> +<div id="fb-root" style="background-color: transparent;"></div><script src="http://connect.facebook.net/en_US/all.js#appId=236917449658413&xfbml=1"></script><fb:like href="http://asdf.us/im/" send="false" width="347" show_faces="true" colorscheme="light" font="" style="background-color: transparent;"></fb:like> +</div> + +</body> +<script type="text/javascript" src="/js/jquery.js"></script> +<script type="text/javascript"> +var Main = + { + API_HEADER: "#@im", + generating: false, + enter: function (e) + { + if (Main.generating) + return + if (e.keyCode === 13) + Main.go() + }, + go: function () + { + if (Main.generating) + return + Main.generating = true + $("#output-cmd").html('generating...').show() + $("#result").show() + var data = + { + url: $("#img-url").val(), + transparent: $('#img-transparent:checked').val() !== undefined ? "true" : "false", + flip: $('#img-flip:checked').val() !== undefined ? "true" : "false", + flop: $('#img-flop:checked').val() !== undefined ? "true" : "false", + rotate: $("#img-rotate").val(), + subtract: $("#img-subtract").val(), + fuzz: $("#img-fuzz").val(), + width: $("#img-width").val(), + height: $("#img-height").val(), + black: $("#img-black").val(), + white: $("#img-white").val(), + //brightness: $("#img-brightness").val(), + //saturation: $("#img-saturation").val(), + hue: $("#img-hue").val(), + contrast: $("#img-contrast").val(), + background: $("#img-background").val(), + // merge_early: $('#img-merge_early:checked').val() !== undefined ? "true" : "false", + compose: $('#img-compose :selected').text(), + // tile: $('#img-tile:checked').val() !== undefined ? "true" : "false", + format: $('#img-format :selected').text(), + name: $("#img-name").val(), + } + if (data.name.length > 0) + document.cookie = "imname="+data.name+";path=/;domain=.asdf.us;max-age=1086400" + $.post("/cgi-bin/im/generate", data, Main.callback) + }, + error: function (s) + { + $("#output-cmd").html("<span class='error'>ERROR: " + s + "</span>").show() + $("#output-url").hide() + $("#output-img").hide() + }, + callback: function (raw) + { + Main.generating = false + lines = raw.split("\n") + if (lines[0] !== Main.API_HEADER) + return Main.error("problem loading API") + if (lines[1].indexOf("ERROR\t") === 0) + return Main.error(lines[1].split("\t")[1]) + + // $("#output-cmd").html(lines[1]+"<br/>"+lines[2]) + // $("#output-cmd").hide() + $("#output-cmd").html("size: "+Main.filesize(lines[4])+"<br/>"+(lines[5].replace(" ", " x ").replace(/'/g,"").replace(',',""))) + $("#output-url").val(lines[3]) + $("#output-img").hide().attr("src", lines[3]).fadeIn(700) + }, + filesize: function (size) + { + if (size < 1024) + return size + " bytes" + if (size < 1024 * 1024) + return Math.floor (size/1024) + " KB" + else + return Math.floor (size/(1024*1024)) + " MB" + }, + cookie: function () + { + if (document.cookie) + { + var cookies = document.cookie.split(";") + for (i in cookies) + { + var cookie = cookies[i].split("=") + if (cookie[0].indexOf("imname") !== -1) + { + if (cookie[1] !== 'false' && cookie[1] !== 'undefined' && cookie[1].length) + { + return cookie[1] + } + } + } + } + return "" + }, + preloadSize: function(url,label,tag){ + console.log(url) + var img = new Image() + img.onload = function(){ $(label).html( tag + ": " + img.naturalWidth + " x " + img.naturalHeight ) } + img.src = url + }, + init: function () + { + var name = Main.cookie () + $("#img-name").val(name) + if (name) + { + $("#userlink").show() + $("#userlink a").attr("href", "/im/gallery/?name="+name).html(name+"'s photoblasts") + } + $("#likebutton,#controls").fadeIn(0) + $("#img-generate").bind("click", Main.go) + $("div input[type=text]").bind("keydown", Main.enter) + $("#img-url").change(function(){Main.preloadSize(this.value,"#img-url-label","image")}) + $("#img-background").change(function(){Main.preloadSize(this.value,"#background-url-label","bg")}) + }, + } +document.getElementById('imform').reset(); +Main.init () +</script> +</html> + diff --git a/frontend/im/colors.html b/frontend/im/colors.html new file mode 100755 index 0000000..0ef22f9 --- /dev/null +++ b/frontend/im/colors.html @@ -0,0 +1,5429 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<!-- saved from url=(0124)https://mail.google.com/mail/?ui=2&ik=8c5c6e41c0&view=att&th=131a60939ee4c454&attid=0.1&disp=inline&realattid=f_gr2htzs60&zw --> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head> +<style type="text/css"> +* + { + font-family: sans-serif; + } +</style> +<body> + + + +<div> +<h1><a></a>List of Color Names</h1> +<div> + +<p>a list of named colors for use with PHOTOBLASTER:</p> + +<table> +<tbody> + <tr> + <th align="right">Name</th> + <th align="center">Color</th> + <th align="left">RGB</th> + <th align="left">Hex</th> + + </tr> + + <tr> + <td align="right">snow</td> + <td align="center" style="background-color:rgb(255, 250, 250)">snow</td> + <td align="left">rgb(255, 250, 250)</td> + <td align="left">#FFFAFA</td> + + </tr> + + <tr> + <td align="right">snow1</td> + <td align="center" style="background-color:rgb(255, 250, 250)">snow1</td> + <td align="left">rgb(255, 250, 250)</td> + <td align="left">#FFFAFA</td> + + </tr> + + <tr> + <td align="right">snow2</td> + <td align="center" style="background-color:rgb(238, 233, 233)">snow2</td> + <td align="left">rgb(238, 233, 233)</td> + <td align="left">#EEE9E9</td> + + </tr> + + <tr> + <td align="right">RosyBrown1</td> + <td align="center" style="background-color:rgb(255, 193, 193)">RosyBrown1</td> + <td align="left">rgb(255, 193, 193)</td> + <td align="left">#FFC1C1</td> + + </tr> + + <tr> + <td align="right">RosyBrown2</td> + <td align="center" style="background-color:rgb(238, 180, 180)">RosyBrown2</td> + <td align="left">rgb(238, 180, 180)</td> + <td align="left">#EEB4B4</td> + + </tr> + + <tr> + <td align="right">snow3</td> + <td align="center" style="background-color:rgb(205, 201, 201)">snow3</td> + <td align="left">rgb(205, 201, 201)</td> + <td align="left">#CDC9C9</td> + + </tr> + + <tr> + <td align="right">LightCoral</td> + <td align="center" style="background-color:rgb(240, 128, 128)">LightCoral</td> + <td align="left">rgb(240, 128, 128)</td> + <td align="left">#F08080</td> + + </tr> + + <tr> + <td align="right">IndianRed1</td> + <td align="center" style="background-color:rgb(255, 106, 106)">IndianRed1</td> + <td align="left">rgb(255, 106, 106)</td> + <td align="left">#FF6A6A</td> + + </tr> + + <tr> + <td align="right">RosyBrown3</td> + <td align="center" style="background-color:rgb(205, 155, 155)">RosyBrown3</td> + <td align="left">rgb(205, 155, 155)</td> + <td align="left">#CD9B9B</td> + + </tr> + + <tr> + <td align="right">IndianRed2</td> + <td align="center" style="background-color:rgb(238, 99, 99)">IndianRed2</td> + <td align="left">rgb(238, 99, 99)</td> + <td align="left">#EE6363</td> + + </tr> + + <tr> + <td align="right">RosyBrown</td> + <td align="center" style="background-color:rgb(188, 143, 143)">RosyBrown</td> + <td align="left">rgb(188, 143, 143)</td> + <td align="left">#BC8F8F</td> + + </tr> + + <tr> + <td align="right">brown1</td> + <td align="center" style="background-color:rgb(255, 64, 64)">brown1</td> + <td align="left">rgb(255, 64, 64)</td> + <td align="left">#FF4040</td> + + </tr> + + <tr> + <td align="right">firebrick1</td> + <td align="center" style="background-color:rgb(255, 48, 48)">firebrick1</td> + <td align="left">rgb(255, 48, 48)</td> + <td align="left">#FF3030</td> + + </tr> + + <tr> + <td align="right">brown2</td> + <td align="center" style="background-color:rgb(238, 59, 59)">brown2</td> + <td align="left">rgb(238, 59, 59)</td> + <td align="left">#EE3B3B</td> + + </tr> + + <tr> + <td align="right">IndianRed</td> + <td align="center" style="background-color:rgb(205, 92, 92)">IndianRed</td> + <td align="left">rgb(205, 92, 92)</td> + <td align="left">#CD5C5C</td> + + </tr> + + <tr> + <td align="right">IndianRed3</td> + <td align="center" style="background-color:rgb(205, 85, 85)">IndianRed3</td> + <td align="left">rgb(205, 85, 85)</td> + <td align="left">#CD5555</td> + + </tr> + + <tr> + <td align="right">firebrick2</td> + <td align="center" style="background-color:rgb(238, 44, 44)">firebrick2</td> + <td align="left">rgb(238, 44, 44)</td> + <td align="left">#EE2C2C</td> + + </tr> + + <tr> + <td align="right">snow4</td> + <td align="center" style="background-color:rgb(139, 137, 137)">snow4</td> + <td align="left">rgb(139, 137, 137)</td> + <td align="left">#8B8989</td> + + </tr> + + <tr> + <td align="right">brown3</td> + <td align="center" style="background-color:rgb(205, 51, 51)">brown3</td> + <td align="left">rgb(205, 51, 51)</td> + <td align="left">#CD3333</td> + + </tr> + + <tr> + <td align="right">red</td> + <td align="center" style="background-color:rgb(255, 0, 0)">red</td> + <td align="left">rgb(255, 0, 0)</td> + <td align="left">#FF0000</td> + + </tr> + + <tr> + <td align="right">red1</td> + <td align="center" style="background-color:rgb(255, 0, 0)">red1</td> + <td align="left">rgb(255, 0, 0)</td> + <td align="left">#FF0000</td> + + </tr> + + <tr> + <td align="right">RosyBrown4</td> + <td align="center" style="background-color:rgb(139, 105, 105)">RosyBrown4</td> + <td align="left">rgb(139, 105, 105)</td> + <td align="left">#8B6969</td> + + </tr> + + <tr> + <td align="right">firebrick3</td> + <td align="center" style="background-color:rgb(205, 38, 38)">firebrick3</td> + <td align="left">rgb(205, 38, 38)</td> + <td align="left">#CD2626</td> + + </tr> + + <tr> + <td align="right">red2</td> + <td align="center" style="background-color:rgb(238, 0, 0)">red2</td> + <td align="left">rgb(238, 0, 0)</td> + <td align="left">#EE0000</td> + + </tr> + + <tr> + <td align="right">firebrick</td> + <td align="center" style="background-color:rgb(178, 34, 34)">firebrick</td> + <td align="left">rgb(178, 34, 34)</td> + <td align="left">#B22222</td> + + </tr> + + <tr> + <td align="right">brown</td> + <td align="center" style="background-color:rgb(165, 42, 42)">brown</td> + <td align="left">rgb(165, 42, 42)</td> + <td align="left">#A52A2A</td> + + </tr> + + <tr> + <td align="right">red3</td> + <td align="center" style="background-color:rgb(205, 0, 0)">red3</td> + <td align="left">rgb(205, 0, 0)</td> + <td align="left">#CD0000</td> + + </tr> + + <tr> + <td align="right">IndianRed4</td> + <td align="center" style="background-color:rgb(139, 58, 58)">IndianRed4</td> + <td align="left">rgb(139, 58, 58)</td> + <td align="left">#8B3A3A</td> + + </tr> + + <tr> + <td align="right">brown4</td> + <td align="center" style="background-color:rgb(139, 35, 35)">brown4</td> + <td align="left">rgb(139, 35, 35)</td> + <td align="left">#8B2323</td> + + </tr> + + <tr> + <td align="right">firebrick4</td> + <td align="center" style="background-color:rgb(139, 26, 26)">firebrick4</td> + <td align="left">rgb(139, 26, 26)</td> + <td align="left">#8B1A1A</td> + + </tr> + + <tr> + <td align="right">DarkRed</td> + <td align="center" style="background-color:rgb(139, 0, 0)">DarkRed</td> + <td align="left">rgb(139, 0, 0)</td> + <td align="left">#8B0000</td> + + </tr> + + <tr> + <td align="right">red4</td> + <td align="center" style="background-color:rgb(139, 0, 0)">red4</td> + <td align="left">rgb(139, 0, 0)</td> + <td align="left">#8B0000</td> + + </tr> + + <tr> + <td align="right">maroon</td> + <td align="center" style="background-color:rgb(128, 0, 0)">maroon</td> + <td align="left">rgb(128, 0, 0)</td> + <td align="left">#800000</td> + + </tr> + + <tr> + <td align="right">LightPink1</td> + <td align="center" style="background-color:rgb(255, 174, 185)">LightPink1</td> + <td align="left">rgb(255, 174, 185)</td> + <td align="left">#FFAEB9</td> + + </tr> + + <tr> + <td align="right">LightPink3</td> + <td align="center" style="background-color:rgb(205, 140, 149)">LightPink3</td> + <td align="left">rgb(205, 140, 149)</td> + <td align="left">#CD8C95</td> + + </tr> + + <tr> + <td align="right">LightPink4</td> + <td align="center" style="background-color:rgb(139, 95, 101)">LightPink4</td> + <td align="left">rgb(139, 95, 101)</td> + <td align="left">#8B5F65</td> + + </tr> + + <tr> + <td align="right">LightPink2</td> + <td align="center" style="background-color:rgb(238, 162, 173)">LightPink2</td> + <td align="left">rgb(238, 162, 173)</td> + <td align="left">#EEA2AD</td> + + </tr> + + <tr> + <td align="right">LightPink</td> + <td align="center" style="background-color:rgb(255, 182, 193)">LightPink</td> + <td align="left">rgb(255, 182, 193)</td> + <td align="left">#FFB6C1</td> + + </tr> + + <tr> + <td align="right">pink</td> + <td align="center" style="background-color:rgb(255, 192, 203)">pink</td> + <td align="left">rgb(255, 192, 203)</td> + <td align="left">#FFC0CB</td> + + </tr> + + <tr> + <td align="right">crimson</td> + <td align="center" style="background-color:rgb(220, 20, 60)">crimson</td> + <td align="left">rgb(220, 20, 60)</td> + <td align="left">#DC143C</td> + + </tr> + + <tr> + <td align="right">pink1</td> + <td align="center" style="background-color:rgb(255, 181, 197)">pink1</td> + <td align="left">rgb(255, 181, 197)</td> + <td align="left">#FFB5C5</td> + + </tr> + + <tr> + <td align="right">pink2</td> + <td align="center" style="background-color:rgb(238, 169, 184)">pink2</td> + <td align="left">rgb(238, 169, 184)</td> + <td align="left">#EEA9B8</td> + + </tr> + + <tr> + <td align="right">pink3</td> + <td align="center" style="background-color:rgb(205, 145, 158)">pink3</td> + <td align="left">rgb(205, 145, 158)</td> + <td align="left">#CD919E</td> + + </tr> + + <tr> + <td align="right">pink4</td> + <td align="center" style="background-color:rgb(139, 99, 108)">pink4</td> + <td align="left">rgb(139, 99, 108)</td> + <td align="left">#8B636C</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed4</td> + <td align="center" style="background-color:rgb(139, 71, 93)">PaleVioletRed4</td> + <td align="left">rgb(139, 71, 93)</td> + <td align="left">#8B475D</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed</td> + <td align="center" style="background-color:rgb(219, 112, 147)">PaleVioletRed</td> + <td align="left">rgb(219, 112, 147)</td> + <td align="left">#DB7093</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed2</td> + <td align="center" style="background-color:rgb(238, 121, 159)">PaleVioletRed2</td> + <td align="left">rgb(238, 121, 159)</td> + <td align="left">#EE799F</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed1</td> + <td align="center" style="background-color:rgb(255, 130, 171)">PaleVioletRed1</td> + <td align="left">rgb(255, 130, 171)</td> + <td align="left">#FF82AB</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed3</td> + <td align="center" style="background-color:rgb(205, 104, 137)">PaleVioletRed3</td> + <td align="left">rgb(205, 104, 137)</td> + <td align="left">#CD6889</td> + + </tr> + + <tr> + <td align="right">LavenderBlush</td> + <td align="center" style="background-color:rgb(255, 240, 245)">LavenderBlush</td> + <td align="left">rgb(255, 240, 245)</td> + <td align="left">#FFF0F5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush1</td> + <td align="center" style="background-color:rgb(255, 240, 245)">LavenderBlush1</td> + <td align="left">rgb(255, 240, 245)</td> + <td align="left">#FFF0F5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush3</td> + <td align="center" style="background-color:rgb(205, 193, 197)">LavenderBlush3</td> + <td align="left">rgb(205, 193, 197)</td> + <td align="left">#CDC1C5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush2</td> + <td align="center" style="background-color:rgb(238, 224, 229)">LavenderBlush2</td> + <td align="left">rgb(238, 224, 229)</td> + <td align="left">#EEE0E5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush4</td> + <td align="center" style="background-color:rgb(139, 131, 134)">LavenderBlush4</td> + <td align="left">rgb(139, 131, 134)</td> + <td align="left">#8B8386</td> + + </tr> + + <tr> + <td align="right">maroon</td> + <td align="center" style="background-color:rgb(176, 48, 96)">maroon</td> + <td align="left">rgb(176, 48, 96)</td> + <td align="left">#B03060</td> + + </tr> + + <tr> + <td align="right">HotPink3</td> + <td align="center" style="background-color:rgb(205, 96, 144)">HotPink3</td> + <td align="left">rgb(205, 96, 144)</td> + <td align="left">#CD6090</td> + + </tr> + + <tr> + <td align="right">VioletRed3</td> + <td align="center" style="background-color:rgb(205, 50, 120)">VioletRed3</td> + <td align="left">rgb(205, 50, 120)</td> + <td align="left">#CD3278</td> + + </tr> + + <tr> + <td align="right">VioletRed1</td> + <td align="center" style="background-color:rgb(255, 62, 150)">VioletRed1</td> + <td align="left">rgb(255, 62, 150)</td> + <td align="left">#FF3E96</td> + + </tr> + + <tr> + <td align="right">VioletRed2</td> + <td align="center" style="background-color:rgb(238, 58, 140)">VioletRed2</td> + <td align="left">rgb(238, 58, 140)</td> + <td align="left">#EE3A8C</td> + + </tr> + + <tr> + <td align="right">VioletRed4</td> + <td align="center" style="background-color:rgb(139, 34, 82)">VioletRed4</td> + <td align="left">rgb(139, 34, 82)</td> + <td align="left">#8B2252</td> + + </tr> + + <tr> + <td align="right">HotPink2</td> + <td align="center" style="background-color:rgb(238, 106, 167)">HotPink2</td> + <td align="left">rgb(238, 106, 167)</td> + <td align="left">#EE6AA7</td> + + </tr> + + <tr> + <td align="right">HotPink1</td> + <td align="center" style="background-color:rgb(255, 110, 180)">HotPink1</td> + <td align="left">rgb(255, 110, 180)</td> + <td align="left">#FF6EB4</td> + + </tr> + + <tr> + <td align="right">HotPink4</td> + <td align="center" style="background-color:rgb(139, 58, 98)">HotPink4</td> + <td align="left">rgb(139, 58, 98)</td> + <td align="left">#8B3A62</td> + + </tr> + + <tr> + <td align="right">HotPink</td> + <td align="center" style="background-color:rgb(255, 105, 180)">HotPink</td> + <td align="left">rgb(255, 105, 180)</td> + <td align="left">#FF69B4</td> + + </tr> + + <tr> + <td align="right">DeepPink</td> + <td align="center" style="background-color:rgb(255, 20, 147)">DeepPink</td> + <td align="left">rgb(255, 20, 147)</td> + <td align="left">#FF1493</td> + + </tr> + + <tr> + <td align="right">DeepPink1</td> + <td align="center" style="background-color:rgb(255, 20, 147)">DeepPink1</td> + <td align="left">rgb(255, 20, 147)</td> + <td align="left">#FF1493</td> + + </tr> + + <tr> + <td align="right">DeepPink2</td> + <td align="center" style="background-color:rgb(238, 18, 137)">DeepPink2</td> + <td align="left">rgb(238, 18, 137)</td> + <td align="left">#EE1289</td> + + </tr> + + <tr> + <td align="right">DeepPink3</td> + <td align="center" style="background-color:rgb(205, 16, 118)">DeepPink3</td> + <td align="left">rgb(205, 16, 118)</td> + <td align="left">#CD1076</td> + + </tr> + + <tr> + <td align="right">DeepPink4</td> + <td align="center" style="background-color:rgb(139, 10, 80)">DeepPink4</td> + <td align="left">rgb(139, 10, 80)</td> + <td align="left">#8B0A50</td> + + </tr> + + <tr> + <td align="right">maroon1</td> + <td align="center" style="background-color:rgb(255, 52, 179)">maroon1</td> + <td align="left">rgb(255, 52, 179)</td> + <td align="left">#FF34B3</td> + + </tr> + + <tr> + <td align="right">maroon2</td> + <td align="center" style="background-color:rgb(238, 48, 167)">maroon2</td> + <td align="left">rgb(238, 48, 167)</td> + <td align="left">#EE30A7</td> + + </tr> + + <tr> + <td align="right">maroon3</td> + <td align="center" style="background-color:rgb(205, 41, 144)">maroon3</td> + <td align="left">rgb(205, 41, 144)</td> + <td align="left">#CD2990</td> + + </tr> + + <tr> + <td align="right">maroon4</td> + <td align="center" style="background-color:rgb(139, 28, 98)">maroon4</td> + <td align="left">rgb(139, 28, 98)</td> + <td align="left">#8B1C62</td> + + </tr> + + <tr> + <td align="right">MediumVioletRed</td> + <td align="center" style="background-color:rgb(199, 21, 133)">MediumVioletRed</td> + <td align="left">rgb(199, 21, 133)</td> + <td align="left">#C71585</td> + + </tr> + + <tr> + <td align="right">VioletRed</td> + <td align="center" style="background-color:rgb(208, 32, 144)">VioletRed</td> + <td align="left">rgb(208, 32, 144)</td> + <td align="left">#D02090</td> + + </tr> + + <tr> + <td align="right">orchid2</td> + <td align="center" style="background-color:rgb(238, 122, 233)">orchid2</td> + <td align="left">rgb(238, 122, 233)</td> + <td align="left">#EE7AE9</td> + + </tr> + + <tr> + <td align="right">orchid</td> + <td align="center" style="background-color:rgb(218, 112, 214)">orchid</td> + <td align="left">rgb(218, 112, 214)</td> + <td align="left">#DA70D6</td> + + </tr> + + <tr> + <td align="right">orchid1</td> + <td align="center" style="background-color:rgb(255, 131, 250)">orchid1</td> + <td align="left">rgb(255, 131, 250)</td> + <td align="left">#FF83FA</td> + + </tr> + + <tr> + <td align="right">orchid3</td> + <td align="center" style="background-color:rgb(205, 105, 201)">orchid3</td> + <td align="left">rgb(205, 105, 201)</td> + <td align="left">#CD69C9</td> + + </tr> + + <tr> + <td align="right">orchid4</td> + <td align="center" style="background-color:rgb(139, 71, 137)">orchid4</td> + <td align="left">rgb(139, 71, 137)</td> + <td align="left">#8B4789</td> + + </tr> + + <tr> + <td align="right">thistle1</td> + <td align="center" style="background-color:rgb(255, 225, 255)">thistle1</td> + <td align="left">rgb(255, 225, 255)</td> + <td align="left">#FFE1FF</td> + + </tr> + + <tr> + <td align="right">thistle2</td> + <td align="center" style="background-color:rgb(238, 210, 238)">thistle2</td> + <td align="left">rgb(238, 210, 238)</td> + <td align="left">#EED2EE</td> + + </tr> + + <tr> + <td align="right">plum1</td> + <td align="center" style="background-color:rgb(255, 187, 255)">plum1</td> + <td align="left">rgb(255, 187, 255)</td> + <td align="left">#FFBBFF</td> + + </tr> + + <tr> + <td align="right">plum2</td> + <td align="center" style="background-color:rgb(238, 174, 238)">plum2</td> + <td align="left">rgb(238, 174, 238)</td> + <td align="left">#EEAEEE</td> + + </tr> + + <tr> + <td align="right">thistle</td> + <td align="center" style="background-color:rgb(216, 191, 216)">thistle</td> + <td align="left">rgb(216, 191, 216)</td> + <td align="left">#D8BFD8</td> + + </tr> + + <tr> + <td align="right">thistle3</td> + <td align="center" style="background-color:rgb(205, 181, 205)">thistle3</td> + <td align="left">rgb(205, 181, 205)</td> + <td align="left">#CDB5CD</td> + + </tr> + + <tr> + <td align="right">plum</td> + <td align="center" style="background-color:rgb(221, 160, 221)">plum</td> + <td align="left">rgb(221, 160, 221)</td> + <td align="left">#DDA0DD</td> + + </tr> + + <tr> + <td align="right">violet</td> + <td align="center" style="background-color:rgb(238, 130, 238)">violet</td> + <td align="left">rgb(238, 130, 238)</td> + <td align="left">#EE82EE</td> + + </tr> + + <tr> + <td align="right">plum3</td> + <td align="center" style="background-color:rgb(205, 150, 205)">plum3</td> + <td align="left">rgb(205, 150, 205)</td> + <td align="left">#CD96CD</td> + + </tr> + + <tr> + <td align="right">thistle4</td> + <td align="center" style="background-color:rgb(139, 123, 139)">thistle4</td> + <td align="left">rgb(139, 123, 139)</td> + <td align="left">#8B7B8B</td> + + </tr> + + <tr> + <td align="right">fuchsia</td> + <td align="center" style="background-color:rgb(255, 0, 255)">fuchsia</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">magenta</td> + <td align="center" style="background-color:rgb(255, 0, 255)">magenta</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">magenta1</td> + <td align="center" style="background-color:rgb(255, 0, 255)">magenta1</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">plum4</td> + <td align="center" style="background-color:rgb(139, 102, 139)">plum4</td> + <td align="left">rgb(139, 102, 139)</td> + <td align="left">#8B668B</td> + + </tr> + + <tr> + <td align="right">magenta2</td> + <td align="center" style="background-color:rgb(238, 0, 238)">magenta2</td> + <td align="left">rgb(238, 0, 238)</td> + <td align="left">#EE00EE</td> + + </tr> + + <tr> + <td align="right">magenta3</td> + <td align="center" style="background-color:rgb(205, 0, 205)">magenta3</td> + <td align="left">rgb(205, 0, 205)</td> + <td align="left">#CD00CD</td> + + </tr> + + <tr> + <td align="right">DarkMagenta</td> + <td align="center" style="background-color:rgb(139, 0, 139)">DarkMagenta</td> + <td align="left">rgb(139, 0, 139)</td> + <td align="left">#8B008B</td> + + </tr> + + <tr> + <td align="right">magenta4</td> + <td align="center" style="background-color:rgb(139, 0, 139)">magenta4</td> + <td align="left">rgb(139, 0, 139)</td> + <td align="left">#8B008B</td> + + </tr> + + <tr> + <td align="right">purple</td> + <td align="center" style="background-color:rgb(128, 0, 128)">purple</td> + <td align="left">rgb(128, 0, 128)</td> + <td align="left">#800080</td> + + </tr> + + <tr> + <td align="right">MediumOrchid</td> + <td align="center" style="background-color:rgb(186, 85, 211)">MediumOrchid</td> + <td align="left">rgb(186, 85, 211)</td> + <td align="left">#BA55D3</td> + + </tr> + + <tr> + <td align="right">MediumOrchid1</td> + <td align="center" style="background-color:rgb(224, 102, 255)">MediumOrchid1</td> + <td align="left">rgb(224, 102, 255)</td> + <td align="left">#E066FF</td> + + </tr> + + <tr> + <td align="right">MediumOrchid2</td> + <td align="center" style="background-color:rgb(209, 95, 238)">MediumOrchid2</td> + <td align="left">rgb(209, 95, 238)</td> + <td align="left">#D15FEE</td> + + </tr> + + <tr> + <td align="right">MediumOrchid3</td> + <td align="center" style="background-color:rgb(180, 82, 205)">MediumOrchid3</td> + <td align="left">rgb(180, 82, 205)</td> + <td align="left">#B452CD</td> + + </tr> + + <tr> + <td align="right">MediumOrchid4</td> + <td align="center" style="background-color:rgb(122, 55, 139)">MediumOrchid4</td> + <td align="left">rgb(122, 55, 139)</td> + <td align="left">#7A378B</td> + + </tr> + + <tr> + <td align="right">DarkViolet</td> + <td align="center" style="background-color:rgb(148, 0, 211)">DarkViolet</td> + <td align="left">rgb(148, 0, 211)</td> + <td align="left">#9400D3</td> + + </tr> + + <tr> + <td align="right">DarkOrchid</td> + <td align="center" style="background-color:rgb(153, 50, 204)">DarkOrchid</td> + <td align="left">rgb(153, 50, 204)</td> + <td align="left">#9932CC</td> + + </tr> + + <tr> + <td align="right">DarkOrchid1</td> + <td align="center" style="background-color:rgb(191, 62, 255)">DarkOrchid1</td> + <td align="left">rgb(191, 62, 255)</td> + <td align="left">#BF3EFF</td> + + </tr> + + <tr> + <td align="right">DarkOrchid3</td> + <td align="center" style="background-color:rgb(154, 50, 205)">DarkOrchid3</td> + <td align="left">rgb(154, 50, 205)</td> + <td align="left">#9A32CD</td> + + </tr> + + <tr> + <td align="right">DarkOrchid2</td> + <td align="center" style="background-color:rgb(178, 58, 238)">DarkOrchid2</td> + <td align="left">rgb(178, 58, 238)</td> + <td align="left">#B23AEE</td> + + </tr> + + <tr> + <td align="right">DarkOrchid4</td> + <td align="center" style="background-color:rgb(104, 34, 139)">DarkOrchid4</td> + <td align="left">rgb(104, 34, 139)</td> + <td align="left">#68228B</td> + + </tr> + + <tr> + <td align="right">purple</td> + <td align="center" style="background-color:rgb(160, 32, 240)">purple</td> + <td align="left">rgb(160, 32, 240)</td> + <td align="left">#A020F0</td> + + </tr> + + <tr> + <td align="right">indigo</td> + <td align="center" style="background-color:rgb( 75, 0, 130)">indigo</td> + <td align="left">rgb( 75, 0, 130)</td> + <td align="left">#4B0082</td> + + </tr> + + <tr> + <td align="right">BlueViolet</td> + <td align="center" style="background-color:rgb(138, 43, 226)">BlueViolet</td> + <td align="left">rgb(138, 43, 226)</td> + <td align="left">#8A2BE2</td> + + </tr> + + <tr> + <td align="right">purple2</td> + <td align="center" style="background-color:rgb(145, 44, 238)">purple2</td> + <td align="left">rgb(145, 44, 238)</td> + <td align="left">#912CEE</td> + + </tr> + + <tr> + <td align="right">purple3</td> + <td align="center" style="background-color:rgb(125, 38, 205)">purple3</td> + <td align="left">rgb(125, 38, 205)</td> + <td align="left">#7D26CD</td> + + </tr> + + <tr> + <td align="right">purple4</td> + <td align="center" style="background-color:rgb( 85, 26, 139)">purple4</td> + <td align="left">rgb( 85, 26, 139)</td> + <td align="left">#551A8B</td> + + </tr> + + <tr> + <td align="right">purple1</td> + <td align="center" style="background-color:rgb(155, 48, 255)">purple1</td> + <td align="left">rgb(155, 48, 255)</td> + <td align="left">#9B30FF</td> + + </tr> + + <tr> + <td align="right">MediumPurple</td> + <td align="center" style="background-color:rgb(147, 112, 219)">MediumPurple</td> + <td align="left">rgb(147, 112, 219)</td> + <td align="left">#9370DB</td> + + </tr> + + <tr> + <td align="right">MediumPurple1</td> + <td align="center" style="background-color:rgb(171, 130, 255)">MediumPurple1</td> + <td align="left">rgb(171, 130, 255)</td> + <td align="left">#AB82FF</td> + + </tr> + + <tr> + <td align="right">MediumPurple2</td> + <td align="center" style="background-color:rgb(159, 121, 238)">MediumPurple2</td> + <td align="left">rgb(159, 121, 238)</td> + <td align="left">#9F79EE</td> + + </tr> + + <tr> + <td align="right">MediumPurple3</td> + <td align="center" style="background-color:rgb(137, 104, 205)">MediumPurple3</td> + <td align="left">rgb(137, 104, 205)</td> + <td align="left">#8968CD</td> + + </tr> + + <tr> + <td align="right">MediumPurple4</td> + <td align="center" style="background-color:rgb( 93, 71, 139)">MediumPurple4</td> + <td align="left">rgb( 93, 71, 139)</td> + <td align="left">#5D478B</td> + + </tr> + + <tr> + <td align="right">DarkSlateBlue</td> + <td align="center" style="background-color:rgb( 72, 61, 139)">DarkSlateBlue</td> + <td align="left">rgb( 72, 61, 139)</td> + <td align="left">#483D8B</td> + + </tr> + + <tr> + <td align="right">LightSlateBlue</td> + <td align="center" style="background-color:rgb(132, 112, 255)">LightSlateBlue</td> + <td align="left">rgb(132, 112, 255)</td> + <td align="left">#8470FF</td> + + </tr> + + <tr> + <td align="right">MediumSlateBlue</td> + <td align="center" style="background-color:rgb(123, 104, 238)">MediumSlateBlue</td> + <td align="left">rgb(123, 104, 238)</td> + <td align="left">#7B68EE</td> + + </tr> + + <tr> + <td align="right">SlateBlue</td> + <td align="center" style="background-color:rgb(106, 90, 205)">SlateBlue</td> + <td align="left">rgb(106, 90, 205)</td> + <td align="left">#6A5ACD</td> + + </tr> + + <tr> + <td align="right">SlateBlue1</td> + <td align="center" style="background-color:rgb(131, 111, 255)">SlateBlue1</td> + <td align="left">rgb(131, 111, 255)</td> + <td align="left">#836FFF</td> + + </tr> + + <tr> + <td align="right">SlateBlue2</td> + <td align="center" style="background-color:rgb(122, 103, 238)">SlateBlue2</td> + <td align="left">rgb(122, 103, 238)</td> + <td align="left">#7A67EE</td> + + </tr> + + <tr> + <td align="right">SlateBlue3</td> + <td align="center" style="background-color:rgb(105, 89, 205)">SlateBlue3</td> + <td align="left">rgb(105, 89, 205)</td> + <td align="left">#6959CD</td> + + </tr> + + <tr> + <td align="right">SlateBlue4</td> + <td align="center" style="background-color:rgb( 71, 60, 139)">SlateBlue4</td> + <td align="left">rgb( 71, 60, 139)</td> + <td align="left">#473C8B</td> + + </tr> + + <tr> + <td align="right">GhostWhite</td> + <td align="center" style="background-color:rgb(248, 248, 255)">GhostWhite</td> + <td align="left">rgb(248, 248, 255)</td> + <td align="left">#F8F8FF</td> + + </tr> + + <tr> + <td align="right">lavender</td> + <td align="center" style="background-color:rgb(230, 230, 250)">lavender</td> + <td align="left">rgb(230, 230, 250)</td> + <td align="left">#E6E6FA</td> + + </tr> + + <tr> + <td align="right">blue</td> + <td align="center" style="background-color:rgb( 0, 0, 255)">blue</td> + <td align="left">rgb( 0, 0, 255)</td> + <td align="left">#0000FF</td> + + </tr> + + <tr> + <td align="right">blue1</td> + <td align="center" style="background-color:rgb( 0, 0, 255)">blue1</td> + <td align="left">rgb( 0, 0, 255)</td> + <td align="left">#0000FF</td> + + </tr> + + <tr> + <td align="right">blue2</td> + <td align="center" style="background-color:rgb( 0, 0, 238)">blue2</td> + <td align="left">rgb( 0, 0, 238)</td> + <td align="left">#0000EE</td> + + </tr> + + <tr> + <td align="right">blue3</td> + <td align="center" style="background-color:rgb( 0, 0, 205)">blue3</td> + <td align="left">rgb( 0, 0, 205)</td> + <td align="left">#0000CD</td> + + </tr> + + <tr> + <td align="right">MediumBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 205)">MediumBlue</td> + <td align="left">rgb( 0, 0, 205)</td> + <td align="left">#0000CD</td> + + </tr> + + <tr> + <td align="right">blue4</td> + <td align="center" style="background-color:rgb( 0, 0, 139)">blue4</td> + <td align="left">rgb( 0, 0, 139)</td> + <td align="left">#00008B</td> + + </tr> + + <tr> + <td align="right">DarkBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 139)">DarkBlue</td> + <td align="left">rgb( 0, 0, 139)</td> + <td align="left">#00008B</td> + + </tr> + + <tr> + <td align="right">MidnightBlue</td> + <td align="center" style="background-color:rgb( 25, 25, 112)">MidnightBlue</td> + <td align="left">rgb( 25, 25, 112)</td> + <td align="left">#191970</td> + + </tr> + + <tr> + <td align="right">navy</td> + <td align="center" style="background-color:rgb( 0, 0, 128)">navy</td> + <td align="left">rgb( 0, 0, 128)</td> + <td align="left">#000080</td> + + </tr> + + <tr> + <td align="right">NavyBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 128)">NavyBlue</td> + <td align="left">rgb( 0, 0, 128)</td> + <td align="left">#000080</td> + + </tr> + + <tr> + <td align="right">RoyalBlue</td> + <td align="center" style="background-color:rgb( 65, 105, 225)">RoyalBlue</td> + <td align="left">rgb( 65, 105, 225)</td> + <td align="left">#4169E1</td> + + </tr> + + <tr> + <td align="right">RoyalBlue1</td> + <td align="center" style="background-color:rgb( 72, 118, 255)">RoyalBlue1</td> + <td align="left">rgb( 72, 118, 255)</td> + <td align="left">#4876FF</td> + + </tr> + + <tr> + <td align="right">RoyalBlue2</td> + <td align="center" style="background-color:rgb( 67, 110, 238)">RoyalBlue2</td> + <td align="left">rgb( 67, 110, 238)</td> + <td align="left">#436EEE</td> + + </tr> + + <tr> + <td align="right">RoyalBlue3</td> + <td align="center" style="background-color:rgb( 58, 95, 205)">RoyalBlue3</td> + <td align="left">rgb( 58, 95, 205)</td> + <td align="left">#3A5FCD</td> + + </tr> + + <tr> + <td align="right">RoyalBlue4</td> + <td align="center" style="background-color:rgb( 39, 64, 139)">RoyalBlue4</td> + <td align="left">rgb( 39, 64, 139)</td> + <td align="left">#27408B</td> + + </tr> + + <tr> + <td align="right">CornflowerBlue</td> + <td align="center" style="background-color:rgb(100, 149, 237)">CornflowerBlue</td> + <td align="left">rgb(100, 149, 237)</td> + <td align="left">#6495ED</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue</td> + <td align="center" style="background-color:rgb(176, 196, 222)">LightSteelBlue</td> + <td align="left">rgb(176, 196, 222)</td> + <td align="left">#B0C4DE</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue1</td> + <td align="center" style="background-color:rgb(202, 225, 255)">LightSteelBlue1</td> + <td align="left">rgb(202, 225, 255)</td> + <td align="left">#CAE1FF</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue2</td> + <td align="center" style="background-color:rgb(188, 210, 238)">LightSteelBlue2</td> + <td align="left">rgb(188, 210, 238)</td> + <td align="left">#BCD2EE</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue3</td> + <td align="center" style="background-color:rgb(162, 181, 205)">LightSteelBlue3</td> + <td align="left">rgb(162, 181, 205)</td> + <td align="left">#A2B5CD</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue4</td> + <td align="center" style="background-color:rgb(110, 123, 139)">LightSteelBlue4</td> + <td align="left">rgb(110, 123, 139)</td> + <td align="left">#6E7B8B</td> + + </tr> + + <tr> + <td align="right">SlateGray4</td> + <td align="center" style="background-color:rgb(108, 123, 139)">SlateGray4</td> + <td align="left">rgb(108, 123, 139)</td> + <td align="left">#6C7B8B</td> + + </tr> + + <tr> + <td align="right">SlateGray1</td> + <td align="center" style="background-color:rgb(198, 226, 255)">SlateGray1</td> + <td align="left">rgb(198, 226, 255)</td> + <td align="left">#C6E2FF</td> + + </tr> + + <tr> + <td align="right">SlateGray2</td> + <td align="center" style="background-color:rgb(185, 211, 238)">SlateGray2</td> + <td align="left">rgb(185, 211, 238)</td> + <td align="left">#B9D3EE</td> + + </tr> + + <tr> + <td align="right">SlateGray3</td> + <td align="center" style="background-color:rgb(159, 182, 205)">SlateGray3</td> + <td align="left">rgb(159, 182, 205)</td> + <td align="left">#9FB6CD</td> + + </tr> + + <tr> + <td align="right">LightSlateGray</td> + <td align="center" style="background-color:rgb(119, 136, 153)">LightSlateGray</td> + <td align="left">rgb(119, 136, 153)</td> + <td align="left">#778899</td> + + </tr> + + <tr> + <td align="right">LightSlateGrey</td> + <td align="center" style="background-color:rgb(119, 136, 153)">LightSlateGrey</td> + <td align="left">rgb(119, 136, 153)</td> + <td align="left">#778899</td> + + </tr> + + <tr> + <td align="right">SlateGray</td> + <td align="center" style="background-color:rgb(112, 128, 144)">SlateGray</td> + <td align="left">rgb(112, 128, 144)</td> + <td align="left">#708090</td> + + </tr> + + <tr> + <td align="right">SlateGrey</td> + <td align="center" style="background-color:rgb(112, 128, 144)">SlateGrey</td> + <td align="left">rgb(112, 128, 144)</td> + <td align="left">#708090</td> + + </tr> + + <tr> + <td align="right">DodgerBlue</td> + <td align="center" style="background-color:rgb( 30, 144, 255)">DodgerBlue</td> + <td align="left">rgb( 30, 144, 255)</td> + <td align="left">#1E90FF</td> + + </tr> + + <tr> + <td align="right">DodgerBlue1</td> + <td align="center" style="background-color:rgb( 30, 144, 255)">DodgerBlue1</td> + <td align="left">rgb( 30, 144, 255)</td> + <td align="left">#1E90FF</td> + + </tr> + + <tr> + <td align="right">DodgerBlue2</td> + <td align="center" style="background-color:rgb( 28, 134, 238)">DodgerBlue2</td> + <td align="left">rgb( 28, 134, 238)</td> + <td align="left">#1C86EE</td> + + </tr> + + <tr> + <td align="right">DodgerBlue4</td> + <td align="center" style="background-color:rgb( 16, 78, 139)">DodgerBlue4</td> + <td align="left">rgb( 16, 78, 139)</td> + <td align="left">#104E8B</td> + + </tr> + + <tr> + <td align="right">DodgerBlue3</td> + <td align="center" style="background-color:rgb( 24, 116, 205)">DodgerBlue3</td> + <td align="left">rgb( 24, 116, 205)</td> + <td align="left">#1874CD</td> + + </tr> + + <tr> + <td align="right">AliceBlue</td> + <td align="center" style="background-color:rgb(240, 248, 255)">AliceBlue</td> + <td align="left">rgb(240, 248, 255)</td> + <td align="left">#F0F8FF</td> + + </tr> + + <tr> + <td align="right">SteelBlue4</td> + <td align="center" style="background-color:rgb( 54, 100, 139)">SteelBlue4</td> + <td align="left">rgb( 54, 100, 139)</td> + <td align="left">#36648B</td> + + </tr> + + <tr> + <td align="right">SteelBlue</td> + <td align="center" style="background-color:rgb( 70, 130, 180)">SteelBlue</td> + <td align="left">rgb( 70, 130, 180)</td> + <td align="left">#4682B4</td> + + </tr> + + <tr> + <td align="right">SteelBlue1</td> + <td align="center" style="background-color:rgb( 99, 184, 255)">SteelBlue1</td> + <td align="left">rgb( 99, 184, 255)</td> + <td align="left">#63B8FF</td> + + </tr> + + <tr> + <td align="right">SteelBlue2</td> + <td align="center" style="background-color:rgb( 92, 172, 238)">SteelBlue2</td> + <td align="left">rgb( 92, 172, 238)</td> + <td align="left">#5CACEE</td> + + </tr> + + <tr> + <td align="right">SteelBlue3</td> + <td align="center" style="background-color:rgb( 79, 148, 205)">SteelBlue3</td> + <td align="left">rgb( 79, 148, 205)</td> + <td align="left">#4F94CD</td> + + </tr> + + <tr> + <td align="right">SkyBlue4</td> + <td align="center" style="background-color:rgb( 74, 112, 139)">SkyBlue4</td> + <td align="left">rgb( 74, 112, 139)</td> + <td align="left">#4A708B</td> + + </tr> + + <tr> + <td align="right">SkyBlue1</td> + <td align="center" style="background-color:rgb(135, 206, 255)">SkyBlue1</td> + <td align="left">rgb(135, 206, 255)</td> + <td align="left">#87CEFF</td> + + </tr> + + <tr> + <td align="right">SkyBlue2</td> + <td align="center" style="background-color:rgb(126, 192, 238)">SkyBlue2</td> + <td align="left">rgb(126, 192, 238)</td> + <td align="left">#7EC0EE</td> + + </tr> + + <tr> + <td align="right">SkyBlue3</td> + <td align="center" style="background-color:rgb(108, 166, 205)">SkyBlue3</td> + <td align="left">rgb(108, 166, 205)</td> + <td align="left">#6CA6CD</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue</td> + <td align="center" style="background-color:rgb(135, 206, 250)">LightSkyBlue</td> + <td align="left">rgb(135, 206, 250)</td> + <td align="left">#87CEFA</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue4</td> + <td align="center" style="background-color:rgb( 96, 123, 139)">LightSkyBlue4</td> + <td align="left">rgb( 96, 123, 139)</td> + <td align="left">#607B8B</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue1</td> + <td align="center" style="background-color:rgb(176, 226, 255)">LightSkyBlue1</td> + <td align="left">rgb(176, 226, 255)</td> + <td align="left">#B0E2FF</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue2</td> + <td align="center" style="background-color:rgb(164, 211, 238)">LightSkyBlue2</td> + <td align="left">rgb(164, 211, 238)</td> + <td align="left">#A4D3EE</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue3</td> + <td align="center" style="background-color:rgb(141, 182, 205)">LightSkyBlue3</td> + <td align="left">rgb(141, 182, 205)</td> + <td align="left">#8DB6CD</td> + + </tr> + + <tr> + <td align="right">SkyBlue</td> + <td align="center" style="background-color:rgb(135, 206, 235)">SkyBlue</td> + <td align="left">rgb(135, 206, 235)</td> + <td align="left">#87CEEB</td> + + </tr> + + <tr> + <td align="right">LightBlue3</td> + <td align="center" style="background-color:rgb(154, 192, 205)">LightBlue3</td> + <td align="left">rgb(154, 192, 205)</td> + <td align="left">#9AC0CD</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue</td> + <td align="center" style="background-color:rgb( 0, 191, 255)">DeepSkyBlue</td> + <td align="left">rgb( 0, 191, 255)</td> + <td align="left">#00BFFF</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue1</td> + <td align="center" style="background-color:rgb( 0, 191, 255)">DeepSkyBlue1</td> + <td align="left">rgb( 0, 191, 255)</td> + <td align="left">#00BFFF</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue2</td> + <td align="center" style="background-color:rgb( 0, 178, 238)">DeepSkyBlue2</td> + <td align="left">rgb( 0, 178, 238)</td> + <td align="left">#00B2EE</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue4</td> + <td align="center" style="background-color:rgb( 0, 104, 139)">DeepSkyBlue4</td> + <td align="left">rgb( 0, 104, 139)</td> + <td align="left">#00688B</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue3</td> + <td align="center" style="background-color:rgb( 0, 154, 205)">DeepSkyBlue3</td> + <td align="left">rgb( 0, 154, 205)</td> + <td align="left">#009ACD</td> + + </tr> + + <tr> + <td align="right">LightBlue1</td> + <td align="center" style="background-color:rgb(191, 239, 255)">LightBlue1</td> + <td align="left">rgb(191, 239, 255)</td> + <td align="left">#BFEFFF</td> + + </tr> + + <tr> + <td align="right">LightBlue2</td> + <td align="center" style="background-color:rgb(178, 223, 238)">LightBlue2</td> + <td align="left">rgb(178, 223, 238)</td> + <td align="left">#B2DFEE</td> + + </tr> + + <tr> + <td align="right">LightBlue</td> + <td align="center" style="background-color:rgb(173, 216, 230)">LightBlue</td> + <td align="left">rgb(173, 216, 230)</td> + <td align="left">#ADD8E6</td> + + </tr> + + <tr> + <td align="right">LightBlue4</td> + <td align="center" style="background-color:rgb(104, 131, 139)">LightBlue4</td> + <td align="left">rgb(104, 131, 139)</td> + <td align="left">#68838B</td> + + </tr> + + <tr> + <td align="right">PowderBlue</td> + <td align="center" style="background-color:rgb(176, 224, 230)">PowderBlue</td> + <td align="left">rgb(176, 224, 230)</td> + <td align="left">#B0E0E6</td> + + </tr> + + <tr> + <td align="right">CadetBlue1</td> + <td align="center" style="background-color:rgb(152, 245, 255)">CadetBlue1</td> + <td align="left">rgb(152, 245, 255)</td> + <td align="left">#98F5FF</td> + + </tr> + + <tr> + <td align="right">CadetBlue2</td> + <td align="center" style="background-color:rgb(142, 229, 238)">CadetBlue2</td> + <td align="left">rgb(142, 229, 238)</td> + <td align="left">#8EE5EE</td> + + </tr> + + <tr> + <td align="right">CadetBlue3</td> + <td align="center" style="background-color:rgb(122, 197, 205)">CadetBlue3</td> + <td align="left">rgb(122, 197, 205)</td> + <td align="left">#7AC5CD</td> + + </tr> + + <tr> + <td align="right">CadetBlue4</td> + <td align="center" style="background-color:rgb( 83, 134, 139)">CadetBlue4</td> + <td align="left">rgb( 83, 134, 139)</td> + <td align="left">#53868B</td> + + </tr> + + <tr> + <td align="right">turquoise1</td> + <td align="center" style="background-color:rgb( 0, 245, 255)">turquoise1</td> + <td align="left">rgb( 0, 245, 255)</td> + <td align="left">#00F5FF</td> + + </tr> + + <tr> + <td align="right">turquoise2</td> + <td align="center" style="background-color:rgb( 0, 229, 238)">turquoise2</td> + <td align="left">rgb( 0, 229, 238)</td> + <td align="left">#00E5EE</td> + + </tr> + + <tr> + <td align="right">turquoise3</td> + <td align="center" style="background-color:rgb( 0, 197, 205)">turquoise3</td> + <td align="left">rgb( 0, 197, 205)</td> + <td align="left">#00C5CD</td> + + </tr> + + <tr> + <td align="right">turquoise4</td> + <td align="center" style="background-color:rgb( 0, 134, 139)">turquoise4</td> + <td align="left">rgb( 0, 134, 139)</td> + <td align="left">#00868B</td> + + </tr> + + <tr> + <td align="right">cadet blue</td> + <td align="center" style="background-color:rgb( 95, 158, 160)">cadet blue</td> + <td align="left">rgb( 95, 158, 160)</td> + <td align="left">#5F9EA0</td> + + </tr> + + <tr> + <td align="right">CadetBlue</td> + <td align="center" style="background-color:rgb( 95, 158, 160)">CadetBlue</td> + <td align="left">rgb( 95, 158, 160)</td> + <td align="left">#5F9EA0</td> + + </tr> + + <tr> + <td align="right">DarkTurquoise</td> + <td align="center" style="background-color:rgb( 0, 206, 209)">DarkTurquoise</td> + <td align="left">rgb( 0, 206, 209)</td> + <td align="left">#00CED1</td> + + </tr> + + <tr> + <td align="right">azure</td> + <td align="center" style="background-color:rgb(240, 255, 255)">azure</td> + <td align="left">rgb(240, 255, 255)</td> + <td align="left">#F0FFFF</td> + + </tr> + + <tr> + <td align="right">azure1</td> + <td align="center" style="background-color:rgb(240, 255, 255)">azure1</td> + <td align="left">rgb(240, 255, 255)</td> + <td align="left">#F0FFFF</td> + + </tr> + + <tr> + <td align="right">LightCyan</td> + <td align="center" style="background-color:rgb(224, 255, 255)">LightCyan</td> + <td align="left">rgb(224, 255, 255)</td> + <td align="left">#E0FFFF</td> + + </tr> + + <tr> + <td align="right">LightCyan1</td> + <td align="center" style="background-color:rgb(224, 255, 255)">LightCyan1</td> + <td align="left">rgb(224, 255, 255)</td> + <td align="left">#E0FFFF</td> + + </tr> + + <tr> + <td align="right">azure2</td> + <td align="center" style="background-color:rgb(224, 238, 238)">azure2</td> + <td align="left">rgb(224, 238, 238)</td> + <td align="left">#E0EEEE</td> + + </tr> + + <tr> + <td align="right">LightCyan2</td> + <td align="center" style="background-color:rgb(209, 238, 238)">LightCyan2</td> + <td align="left">rgb(209, 238, 238)</td> + <td align="left">#D1EEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise1</td> + <td align="center" style="background-color:rgb(187, 255, 255)">PaleTurquoise1</td> + <td align="left">rgb(187, 255, 255)</td> + <td align="left">#BBFFFF</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise</td> + <td align="center" style="background-color:rgb(175, 238, 238)">PaleTurquoise</td> + <td align="left">rgb(175, 238, 238)</td> + <td align="left">#AFEEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise2</td> + <td align="center" style="background-color:rgb(174, 238, 238)">PaleTurquoise2</td> + <td align="left">rgb(174, 238, 238)</td> + <td align="left">#AEEEEE</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray1</td> + <td align="center" style="background-color:rgb(151, 255, 255)">DarkSlateGray1</td> + <td align="left">rgb(151, 255, 255)</td> + <td align="left">#97FFFF</td> + + </tr> + + <tr> + <td align="right">azure3</td> + <td align="center" style="background-color:rgb(193, 205, 205)">azure3</td> + <td align="left">rgb(193, 205, 205)</td> + <td align="left">#C1CDCD</td> + + </tr> + + <tr> + <td align="right">LightCyan3</td> + <td align="center" style="background-color:rgb(180, 205, 205)">LightCyan3</td> + <td align="left">rgb(180, 205, 205)</td> + <td align="left">#B4CDCD</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray2</td> + <td align="center" style="background-color:rgb(141, 238, 238)">DarkSlateGray2</td> + <td align="left">rgb(141, 238, 238)</td> + <td align="left">#8DEEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise3</td> + <td align="center" style="background-color:rgb(150, 205, 205)">PaleTurquoise3</td> + <td align="left">rgb(150, 205, 205)</td> + <td align="left">#96CDCD</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray3</td> + <td align="center" style="background-color:rgb(121, 205, 205)">DarkSlateGray3</td> + <td align="left">rgb(121, 205, 205)</td> + <td align="left">#79CDCD</td> + + </tr> + + <tr> + <td align="right">azure4</td> + <td align="center" style="background-color:rgb(131, 139, 139)">azure4</td> + <td align="left">rgb(131, 139, 139)</td> + <td align="left">#838B8B</td> + + </tr> + + <tr> + <td align="right">LightCyan4</td> + <td align="center" style="background-color:rgb(122, 139, 139)">LightCyan4</td> + <td align="left">rgb(122, 139, 139)</td> + <td align="left">#7A8B8B</td> + + </tr> + + <tr> + <td align="right">aqua</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">aqua</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">cyan</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">cyan</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">cyan1</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">cyan1</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise4</td> + <td align="center" style="background-color:rgb(102, 139, 139)">PaleTurquoise4</td> + <td align="left">rgb(102, 139, 139)</td> + <td align="left">#668B8B</td> + + </tr> + + <tr> + <td align="right">cyan2</td> + <td align="center" style="background-color:rgb( 0, 238, 238)">cyan2</td> + <td align="left">rgb( 0, 238, 238)</td> + <td align="left">#00EEEE</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray4</td> + <td align="center" style="background-color:rgb( 82, 139, 139)">DarkSlateGray4</td> + <td align="left">rgb( 82, 139, 139)</td> + <td align="left">#528B8B</td> + + </tr> + + <tr> + <td align="right">cyan3</td> + <td align="center" style="background-color:rgb( 0, 205, 205)">cyan3</td> + <td align="left">rgb( 0, 205, 205)</td> + <td align="left">#00CDCD</td> + + </tr> + + <tr> + <td align="right">cyan4</td> + <td align="center" style="background-color:rgb( 0, 139, 139)">cyan4</td> + <td align="left">rgb( 0, 139, 139)</td> + <td align="left">#008B8B</td> + + </tr> + + <tr> + <td align="right">DarkCyan</td> + <td align="center" style="background-color:rgb( 0, 139, 139)">DarkCyan</td> + <td align="left">rgb( 0, 139, 139)</td> + <td align="left">#008B8B</td> + + </tr> + + <tr> + <td align="right">teal</td> + <td align="center" style="background-color:rgb( 0, 128, 128)">teal</td> + <td align="left">rgb( 0, 128, 128)</td> + <td align="left">#008080</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray</td> + <td align="center" style="background-color:rgb( 47, 79, 79)">DarkSlateGray</td> + <td align="left">rgb( 47, 79, 79)</td> + <td align="left">#2F4F4F</td> + + </tr> + + <tr> + <td align="right">DarkSlateGrey</td> + <td align="center" style="background-color:rgb( 47, 79, 79)">DarkSlateGrey</td> + <td align="left">rgb( 47, 79, 79)</td> + <td align="left">#2F4F4F</td> + + </tr> + + <tr> + <td align="right">MediumTurquoise</td> + <td align="center" style="background-color:rgb( 72, 209, 204)">MediumTurquoise</td> + <td align="left">rgb( 72, 209, 204)</td> + <td align="left">#48D1CC</td> + + </tr> + + <tr> + <td align="right">LightSeaGreen</td> + <td align="center" style="background-color:rgb( 32, 178, 170)">LightSeaGreen</td> + <td align="left">rgb( 32, 178, 170)</td> + <td align="left">#20B2AA</td> + + </tr> + + <tr> + <td align="right">turquoise</td> + <td align="center" style="background-color:rgb( 64, 224, 208)">turquoise</td> + <td align="left">rgb( 64, 224, 208)</td> + <td align="left">#40E0D0</td> + + </tr> + + <tr> + <td align="right">aquamarine4</td> + <td align="center" style="background-color:rgb( 69, 139, 116)">aquamarine4</td> + <td align="left">rgb( 69, 139, 116)</td> + <td align="left">#458B74</td> + + </tr> + + <tr> + <td align="right">aquamarine</td> + <td align="center" style="background-color:rgb(127, 255, 212)">aquamarine</td> + <td align="left">rgb(127, 255, 212)</td> + <td align="left">#7FFFD4</td> + + </tr> + + <tr> + <td align="right">aquamarine1</td> + <td align="center" style="background-color:rgb(127, 255, 212)">aquamarine1</td> + <td align="left">rgb(127, 255, 212)</td> + <td align="left">#7FFFD4</td> + + </tr> + + <tr> + <td align="right">aquamarine2</td> + <td align="center" style="background-color:rgb(118, 238, 198)">aquamarine2</td> + <td align="left">rgb(118, 238, 198)</td> + <td align="left">#76EEC6</td> + + </tr> + + <tr> + <td align="right">aquamarine3</td> + <td align="center" style="background-color:rgb(102, 205, 170)">aquamarine3</td> + <td align="left">rgb(102, 205, 170)</td> + <td align="left">#66CDAA</td> + + </tr> + + <tr> + <td align="right">MediumAquamarine</td> + <td align="center" style="background-color:rgb(102, 205, 170)">MediumAquamarine</td> + <td align="left">rgb(102, 205, 170)</td> + <td align="left">#66CDAA</td> + + </tr> + + <tr> + <td align="right">MediumSpringGreen</td> + <td align="center" style="background-color:rgb( 0, 250, 154)">MediumSpringGreen</td> + <td align="left">rgb( 0, 250, 154)</td> + <td align="left">#00FA9A</td> + + </tr> + + <tr> + <td align="right">MintCream</td> + <td align="center" style="background-color:rgb(245, 255, 250)">MintCream</td> + <td align="left">rgb(245, 255, 250)</td> + <td align="left">#F5FFFA</td> + + </tr> + + <tr> + <td align="right">SpringGreen</td> + <td align="center" style="background-color:rgb( 0, 255, 127)">SpringGreen</td> + <td align="left">rgb( 0, 255, 127)</td> + <td align="left">#00FF7F</td> + + </tr> + + <tr> + <td align="right">SpringGreen1</td> + <td align="center" style="background-color:rgb( 0, 255, 127)">SpringGreen1</td> + <td align="left">rgb( 0, 255, 127)</td> + <td align="left">#00FF7F</td> + + </tr> + + <tr> + <td align="right">SpringGreen2</td> + <td align="center" style="background-color:rgb( 0, 238, 118)">SpringGreen2</td> + <td align="left">rgb( 0, 238, 118)</td> + <td align="left">#00EE76</td> + + </tr> + + <tr> + <td align="right">SpringGreen3</td> + <td align="center" style="background-color:rgb( 0, 205, 102)">SpringGreen3</td> + <td align="left">rgb( 0, 205, 102)</td> + <td align="left">#00CD66</td> + + </tr> + + <tr> + <td align="right">SpringGreen4</td> + <td align="center" style="background-color:rgb( 0, 139, 69)">SpringGreen4</td> + <td align="left">rgb( 0, 139, 69)</td> + <td align="left">#008B45</td> + + </tr> + + <tr> + <td align="right">MediumSeaGreen</td> + <td align="center" style="background-color:rgb( 60, 179, 113)">MediumSeaGreen</td> + <td align="left">rgb( 60, 179, 113)</td> + <td align="left">#3CB371</td> + + </tr> + + <tr> + <td align="right">SeaGreen</td> + <td align="center" style="background-color:rgb( 46, 139, 87)">SeaGreen</td> + <td align="left">rgb( 46, 139, 87)</td> + <td align="left">#2E8B57</td> + + </tr> + + <tr> + <td align="right">SeaGreen3</td> + <td align="center" style="background-color:rgb( 67, 205, 128)">SeaGreen3</td> + <td align="left">rgb( 67, 205, 128)</td> + <td align="left">#43CD80</td> + + </tr> + + <tr> + <td align="right">SeaGreen1</td> + <td align="center" style="background-color:rgb( 84, 255, 159)">SeaGreen1</td> + <td align="left">rgb( 84, 255, 159)</td> + <td align="left">#54FF9F</td> + + </tr> + + <tr> + <td align="right">SeaGreen4</td> + <td align="center" style="background-color:rgb( 46, 139, 87)">SeaGreen4</td> + <td align="left">rgb( 46, 139, 87)</td> + <td align="left">#2E8B57</td> + + </tr> + + <tr> + <td align="right">SeaGreen2</td> + <td align="center" style="background-color:rgb( 78, 238, 148)">SeaGreen2</td> + <td align="left">rgb( 78, 238, 148)</td> + <td align="left">#4EEE94</td> + + </tr> + + <tr> + <td align="right">MediumForestGreen</td> + <td align="center" style="background-color:rgb( 50, 129, 75)">MediumForestGreen</td> + <td align="left">rgb( 50, 129, 75)</td> + <td align="left">#32814B</td> + + </tr> + + <tr> + <td align="right">honeydew</td> + <td align="center" style="background-color:rgb(240, 255, 240)">honeydew</td> + <td align="left">rgb(240, 255, 240)</td> + <td align="left">#F0FFF0</td> + + </tr> + + <tr> + <td align="right">honeydew1</td> + <td align="center" style="background-color:rgb(240, 255, 240)">honeydew1</td> + <td align="left">rgb(240, 255, 240)</td> + <td align="left">#F0FFF0</td> + + </tr> + + <tr> + <td align="right">honeydew2</td> + <td align="center" style="background-color:rgb(224, 238, 224)">honeydew2</td> + <td align="left">rgb(224, 238, 224)</td> + <td align="left">#E0EEE0</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen1</td> + <td align="center" style="background-color:rgb(193, 255, 193)">DarkSeaGreen1</td> + <td align="left">rgb(193, 255, 193)</td> + <td align="left">#C1FFC1</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen2</td> + <td align="center" style="background-color:rgb(180, 238, 180)">DarkSeaGreen2</td> + <td align="left">rgb(180, 238, 180)</td> + <td align="left">#B4EEB4</td> + + </tr> + + <tr> + <td align="right">PaleGreen1</td> + <td align="center" style="background-color:rgb(154, 255, 154)">PaleGreen1</td> + <td align="left">rgb(154, 255, 154)</td> + <td align="left">#9AFF9A</td> + + </tr> + + <tr> + <td align="right">PaleGreen</td> + <td align="center" style="background-color:rgb(152, 251, 152)">PaleGreen</td> + <td align="left">rgb(152, 251, 152)</td> + <td align="left">#98FB98</td> + + </tr> + + <tr> + <td align="right">honeydew3</td> + <td align="center" style="background-color:rgb(193, 205, 193)">honeydew3</td> + <td align="left">rgb(193, 205, 193)</td> + <td align="left">#C1CDC1</td> + + </tr> + + <tr> + <td align="right">LightGreen</td> + <td align="center" style="background-color:rgb(144, 238, 144)">LightGreen</td> + <td align="left">rgb(144, 238, 144)</td> + <td align="left">#90EE90</td> + + </tr> + + <tr> + <td align="right">PaleGreen2</td> + <td align="center" style="background-color:rgb(144, 238, 144)">PaleGreen2</td> + <td align="left">rgb(144, 238, 144)</td> + <td align="left">#90EE90</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen3</td> + <td align="center" style="background-color:rgb(155, 205, 155)">DarkSeaGreen3</td> + <td align="left">rgb(155, 205, 155)</td> + <td align="left">#9BCD9B</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen</td> + <td align="center" style="background-color:rgb(143, 188, 143)">DarkSeaGreen</td> + <td align="left">rgb(143, 188, 143)</td> + <td align="left">#8FBC8F</td> + + </tr> + + <tr> + <td align="right">PaleGreen3</td> + <td align="center" style="background-color:rgb(124, 205, 124)">PaleGreen3</td> + <td align="left">rgb(124, 205, 124)</td> + <td align="left">#7CCD7C</td> + + </tr> + + <tr> + <td align="right">honeydew4</td> + <td align="center" style="background-color:rgb(131, 139, 131)">honeydew4</td> + <td align="left">rgb(131, 139, 131)</td> + <td align="left">#838B83</td> + + </tr> + + <tr> + <td align="right">green1</td> + <td align="center" style="background-color:rgb( 0, 255, 0)">green1</td> + <td align="left">rgb( 0, 255, 0)</td> + <td align="left">#00FF00</td> + + </tr> + + <tr> + <td align="right">lime</td> + <td align="center" style="background-color:rgb( 0, 255, 0)">lime</td> + <td align="left">rgb( 0, 255, 0)</td> + <td align="left">#00FF00</td> + + </tr> + + <tr> + <td align="right">LimeGreen</td> + <td align="center" style="background-color:rgb( 50, 205, 50)">LimeGreen</td> + <td align="left">rgb( 50, 205, 50)</td> + <td align="left">#32CD32</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen4</td> + <td align="center" style="background-color:rgb(105, 139, 105)">DarkSeaGreen4</td> + <td align="left">rgb(105, 139, 105)</td> + <td align="left">#698B69</td> + + </tr> + + <tr> + <td align="right">green2</td> + <td align="center" style="background-color:rgb( 0, 238, 0)">green2</td> + <td align="left">rgb( 0, 238, 0)</td> + <td align="left">#00EE00</td> + + </tr> + + <tr> + <td align="right">PaleGreen4</td> + <td align="center" style="background-color:rgb( 84, 139, 84)">PaleGreen4</td> + <td align="left">rgb( 84, 139, 84)</td> + <td align="left">#548B54</td> + + </tr> + + <tr> + <td align="right">green3</td> + <td align="center" style="background-color:rgb( 0, 205, 0)">green3</td> + <td align="left">rgb( 0, 205, 0)</td> + <td align="left">#00CD00</td> + + </tr> + + <tr> + <td align="right">ForestGreen</td> + <td align="center" style="background-color:rgb( 34, 139, 34)">ForestGreen</td> + <td align="left">rgb( 34, 139, 34)</td> + <td align="left">#228B22</td> + + </tr> + + <tr> + <td align="right">green4</td> + <td align="center" style="background-color:rgb( 0, 139, 0)">green4</td> + <td align="left">rgb( 0, 139, 0)</td> + <td align="left">#008B00</td> + + </tr> + + <tr> + <td align="right">green</td> + <td align="center" style="background-color:rgb( 0, 128, 0)">green</td> + <td align="left">rgb( 0, 128, 0)</td> + <td align="left">#008000</td> + + </tr> + + <tr> + <td align="right">DarkGreen</td> + <td align="center" style="background-color:rgb( 0, 100, 0)">DarkGreen</td> + <td align="left">rgb( 0, 100, 0)</td> + <td align="left">#006400</td> + + </tr> + + <tr> + <td align="right">LawnGreen</td> + <td align="center" style="background-color:rgb(124, 252, 0)">LawnGreen</td> + <td align="left">rgb(124, 252, 0)</td> + <td align="left">#7CFC00</td> + + </tr> + + <tr> + <td align="right">chartreuse</td> + <td align="center" style="background-color:rgb(127, 255, 0)">chartreuse</td> + <td align="left">rgb(127, 255, 0)</td> + <td align="left">#7FFF00</td> + + </tr> + + <tr> + <td align="right">chartreuse1</td> + <td align="center" style="background-color:rgb(127, 255, 0)">chartreuse1</td> + <td align="left">rgb(127, 255, 0)</td> + <td align="left">#7FFF00</td> + + </tr> + + <tr> + <td align="right">chartreuse2</td> + <td align="center" style="background-color:rgb(118, 238, 0)">chartreuse2</td> + <td align="left">rgb(118, 238, 0)</td> + <td align="left">#76EE00</td> + + </tr> + + <tr> + <td align="right">chartreuse3</td> + <td align="center" style="background-color:rgb(102, 205, 0)">chartreuse3</td> + <td align="left">rgb(102, 205, 0)</td> + <td align="left">#66CD00</td> + + </tr> + + <tr> + <td align="right">chartreuse4</td> + <td align="center" style="background-color:rgb( 69, 139, 0)">chartreuse4</td> + <td align="left">rgb( 69, 139, 0)</td> + <td align="left">#458B00</td> + + </tr> + + <tr> + <td align="right">GreenYellow</td> + <td align="center" style="background-color:rgb(173, 255, 47)">GreenYellow</td> + <td align="left">rgb(173, 255, 47)</td> + <td align="left">#ADFF2F</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen3</td> + <td align="center" style="background-color:rgb(162, 205, 90)">DarkOliveGreen3</td> + <td align="left">rgb(162, 205, 90)</td> + <td align="left">#A2CD5A</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen1</td> + <td align="center" style="background-color:rgb(202, 255, 112)">DarkOliveGreen1</td> + <td align="left">rgb(202, 255, 112)</td> + <td align="left">#CAFF70</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen2</td> + <td align="center" style="background-color:rgb(188, 238, 104)">DarkOliveGreen2</td> + <td align="left">rgb(188, 238, 104)</td> + <td align="left">#BCEE68</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen4</td> + <td align="center" style="background-color:rgb(110, 139, 61)">DarkOliveGreen4</td> + <td align="left">rgb(110, 139, 61)</td> + <td align="left">#6E8B3D</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen</td> + <td align="center" style="background-color:rgb( 85, 107, 47)">DarkOliveGreen</td> + <td align="left">rgb( 85, 107, 47)</td> + <td align="left">#556B2F</td> + + </tr> + + <tr> + <td align="right">OliveDrab</td> + <td align="center" style="background-color:rgb(107, 142, 35)">OliveDrab</td> + <td align="left">rgb(107, 142, 35)</td> + <td align="left">#6B8E23</td> + + </tr> + + <tr> + <td align="right">OliveDrab1</td> + <td align="center" style="background-color:rgb(192, 255, 62)">OliveDrab1</td> + <td align="left">rgb(192, 255, 62)</td> + <td align="left">#C0FF3E</td> + + </tr> + + <tr> + <td align="right">OliveDrab2</td> + <td align="center" style="background-color:rgb(179, 238, 58)">OliveDrab2</td> + <td align="left">rgb(179, 238, 58)</td> + <td align="left">#B3EE3A</td> + + </tr> + + <tr> + <td align="right">OliveDrab3</td> + <td align="center" style="background-color:rgb(154, 205, 50)">OliveDrab3</td> + <td align="left">rgb(154, 205, 50)</td> + <td align="left">#9ACD32</td> + + </tr> + + <tr> + <td align="right">YellowGreen</td> + <td align="center" style="background-color:rgb(154, 205, 50)">YellowGreen</td> + <td align="left">rgb(154, 205, 50)</td> + <td align="left">#9ACD32</td> + + </tr> + + <tr> + <td align="right">OliveDrab4</td> + <td align="center" style="background-color:rgb(105, 139, 34)">OliveDrab4</td> + <td align="left">rgb(105, 139, 34)</td> + <td align="left">#698B22</td> + + </tr> + + <tr> + <td align="right">ivory</td> + <td align="center" style="background-color:rgb(255, 255, 240)">ivory</td> + <td align="left">rgb(255, 255, 240)</td> + <td align="left">#FFFFF0</td> + + </tr> + + <tr> + <td align="right">ivory1</td> + <td align="center" style="background-color:rgb(255, 255, 240)">ivory1</td> + <td align="left">rgb(255, 255, 240)</td> + <td align="left">#FFFFF0</td> + + </tr> + + <tr> + <td align="right">LightYellow</td> + <td align="center" style="background-color:rgb(255, 255, 224)">LightYellow</td> + <td align="left">rgb(255, 255, 224)</td> + <td align="left">#FFFFE0</td> + + </tr> + + <tr> + <td align="right">LightYellow1</td> + <td align="center" style="background-color:rgb(255, 255, 224)">LightYellow1</td> + <td align="left">rgb(255, 255, 224)</td> + <td align="left">#FFFFE0</td> + + </tr> + + <tr> + <td align="right">beige</td> + <td align="center" style="background-color:rgb(245, 245, 220)">beige</td> + <td align="left">rgb(245, 245, 220)</td> + <td align="left">#F5F5DC</td> + + </tr> + + <tr> + <td align="right">ivory2</td> + <td align="center" style="background-color:rgb(238, 238, 224)">ivory2</td> + <td align="left">rgb(238, 238, 224)</td> + <td align="left">#EEEEE0</td> + + </tr> + + <tr> + <td align="right">LightGoldenrodYellow</td> + <td align="center" style="background-color:rgb(250, 250, 210)">LightGoldenrodYellow</td> + <td align="left">rgb(250, 250, 210)</td> + <td align="left">#FAFAD2</td> + + </tr> + + <tr> + <td align="right">LightYellow2</td> + <td align="center" style="background-color:rgb(238, 238, 209)">LightYellow2</td> + <td align="left">rgb(238, 238, 209)</td> + <td align="left">#EEEED1</td> + + </tr> + + <tr> + <td align="right">ivory3</td> + <td align="center" style="background-color:rgb(205, 205, 193)">ivory3</td> + <td align="left">rgb(205, 205, 193)</td> + <td align="left">#CDCDC1</td> + + </tr> + + <tr> + <td align="right">LightYellow3</td> + <td align="center" style="background-color:rgb(205, 205, 180)">LightYellow3</td> + <td align="left">rgb(205, 205, 180)</td> + <td align="left">#CDCDB4</td> + + </tr> + + <tr> + <td align="right">ivory4</td> + <td align="center" style="background-color:rgb(139, 139, 131)">ivory4</td> + <td align="left">rgb(139, 139, 131)</td> + <td align="left">#8B8B83</td> + + </tr> + + <tr> + <td align="right">LightYellow4</td> + <td align="center" style="background-color:rgb(139, 139, 122)">LightYellow4</td> + <td align="left">rgb(139, 139, 122)</td> + <td align="left">#8B8B7A</td> + + </tr> + + <tr> + <td align="right">yellow</td> + <td align="center" style="background-color:rgb(255, 255, 0)">yellow</td> + <td align="left">rgb(255, 255, 0)</td> + <td align="left">#FFFF00</td> + + </tr> + + <tr> + <td align="right">yellow1</td> + <td align="center" style="background-color:rgb(255, 255, 0)">yellow1</td> + <td align="left">rgb(255, 255, 0)</td> + <td align="left">#FFFF00</td> + + </tr> + + <tr> + <td align="right">yellow2</td> + <td align="center" style="background-color:rgb(238, 238, 0)">yellow2</td> + <td align="left">rgb(238, 238, 0)</td> + <td align="left">#EEEE00</td> + + </tr> + + <tr> + <td align="right">yellow3</td> + <td align="center" style="background-color:rgb(205, 205, 0)">yellow3</td> + <td align="left">rgb(205, 205, 0)</td> + <td align="left">#CDCD00</td> + + </tr> + + <tr> + <td align="right">yellow4</td> + <td align="center" style="background-color:rgb(139, 139, 0)">yellow4</td> + <td align="left">rgb(139, 139, 0)</td> + <td align="left">#8B8B00</td> + + </tr> + + <tr> + <td align="right">olive</td> + <td align="center" style="background-color:rgb(128, 128, 0)">olive</td> + <td align="left">rgb(128, 128, 0)</td> + <td align="left">#808000</td> + + </tr> + + <tr> + <td align="right">DarkKhaki</td> + <td align="center" style="background-color:rgb(189, 183, 107)">DarkKhaki</td> + <td align="left">rgb(189, 183, 107)</td> + <td align="left">#BDB76B</td> + + </tr> + + <tr> + <td align="right">khaki2</td> + <td align="center" style="background-color:rgb(238, 230, 133)">khaki2</td> + <td align="left">rgb(238, 230, 133)</td> + <td align="left">#EEE685</td> + + </tr> + + <tr> + <td align="right">LemonChiffon4</td> + <td align="center" style="background-color:rgb(139, 137, 112)">LemonChiffon4</td> + <td align="left">rgb(139, 137, 112)</td> + <td align="left">#8B8970</td> + + </tr> + + <tr> + <td align="right">khaki1</td> + <td align="center" style="background-color:rgb(255, 246, 143)">khaki1</td> + <td align="left">rgb(255, 246, 143)</td> + <td align="left">#FFF68F</td> + + </tr> + + <tr> + <td align="right">khaki3</td> + <td align="center" style="background-color:rgb(205, 198, 115)">khaki3</td> + <td align="left">rgb(205, 198, 115)</td> + <td align="left">#CDC673</td> + + </tr> + + <tr> + <td align="right">khaki4</td> + <td align="center" style="background-color:rgb(139, 134, 78)">khaki4</td> + <td align="left">rgb(139, 134, 78)</td> + <td align="left">#8B864E</td> + + </tr> + + <tr> + <td align="right">PaleGoldenrod</td> + <td align="center" style="background-color:rgb(238, 232, 170)">PaleGoldenrod</td> + <td align="left">rgb(238, 232, 170)</td> + <td align="left">#EEE8AA</td> + + </tr> + + <tr> + <td align="right">LemonChiffon</td> + <td align="center" style="background-color:rgb(255, 250, 205)">LemonChiffon</td> + <td align="left">rgb(255, 250, 205)</td> + <td align="left">#FFFACD</td> + + </tr> + + <tr> + <td align="right">LemonChiffon1</td> + <td align="center" style="background-color:rgb(255, 250, 205)">LemonChiffon1</td> + <td align="left">rgb(255, 250, 205)</td> + <td align="left">#FFFACD</td> + + </tr> + + <tr> + <td align="right">khaki</td> + <td align="center" style="background-color:rgb(240, 230, 140)">khaki</td> + <td align="left">rgb(240, 230, 140)</td> + <td align="left">#F0E68C</td> + + </tr> + + <tr> + <td align="right">LemonChiffon3</td> + <td align="center" style="background-color:rgb(205, 201, 165)">LemonChiffon3</td> + <td align="left">rgb(205, 201, 165)</td> + <td align="left">#CDC9A5</td> + + </tr> + + <tr> + <td align="right">LemonChiffon2</td> + <td align="center" style="background-color:rgb(238, 233, 191)">LemonChiffon2</td> + <td align="left">rgb(238, 233, 191)</td> + <td align="left">#EEE9BF</td> + + </tr> + + <tr> + <td align="right">MediumGoldenRod</td> + <td align="center" style="background-color:rgb(209, 193, 102)">MediumGoldenRod</td> + <td align="left">rgb(209, 193, 102)</td> + <td align="left">#D1C166</td> + + </tr> + + <tr> + <td align="right">cornsilk4</td> + <td align="center" style="background-color:rgb(139, 136, 120)">cornsilk4</td> + <td align="left">rgb(139, 136, 120)</td> + <td align="left">#8B8878</td> + + </tr> + + <tr> + <td align="right">gold</td> + <td align="center" style="background-color:rgb(255, 215, 0)">gold</td> + <td align="left">rgb(255, 215, 0)</td> + <td align="left">#FFD700</td> + + </tr> + + <tr> + <td align="right">gold1</td> + <td align="center" style="background-color:rgb(255, 215, 0)">gold1</td> + <td align="left">rgb(255, 215, 0)</td> + <td align="left">#FFD700</td> + + </tr> + + <tr> + <td align="right">gold2</td> + <td align="center" style="background-color:rgb(238, 201, 0)">gold2</td> + <td align="left">rgb(238, 201, 0)</td> + <td align="left">#EEC900</td> + + </tr> + + <tr> + <td align="right">gold3</td> + <td align="center" style="background-color:rgb(205, 173, 0)">gold3</td> + <td align="left">rgb(205, 173, 0)</td> + <td align="left">#CDAD00</td> + + </tr> + + <tr> + <td align="right">gold4</td> + <td align="center" style="background-color:rgb(139, 117, 0)">gold4</td> + <td align="left">rgb(139, 117, 0)</td> + <td align="left">#8B7500</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod</td> + <td align="center" style="background-color:rgb(238, 221, 130)">LightGoldenrod</td> + <td align="left">rgb(238, 221, 130)</td> + <td align="left">#EEDD82</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod4</td> + <td align="center" style="background-color:rgb(139, 129, 76)">LightGoldenrod4</td> + <td align="left">rgb(139, 129, 76)</td> + <td align="left">#8B814C</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod1</td> + <td align="center" style="background-color:rgb(255, 236, 139)">LightGoldenrod1</td> + <td align="left">rgb(255, 236, 139)</td> + <td align="left">#FFEC8B</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod3</td> + <td align="center" style="background-color:rgb(205, 190, 112)">LightGoldenrod3</td> + <td align="left">rgb(205, 190, 112)</td> + <td align="left">#CDBE70</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod2</td> + <td align="center" style="background-color:rgb(238, 220, 130)">LightGoldenrod2</td> + <td align="left">rgb(238, 220, 130)</td> + <td align="left">#EEDC82</td> + + </tr> + + <tr> + <td align="right">cornsilk3</td> + <td align="center" style="background-color:rgb(205, 200, 177)">cornsilk3</td> + <td align="left">rgb(205, 200, 177)</td> + <td align="left">#CDC8B1</td> + + </tr> + + <tr> + <td align="right">cornsilk2</td> + <td align="center" style="background-color:rgb(238, 232, 205)">cornsilk2</td> + <td align="left">rgb(238, 232, 205)</td> + <td align="left">#EEE8CD</td> + + </tr> + + <tr> + <td align="right">cornsilk</td> + <td align="center" style="background-color:rgb(255, 248, 220)">cornsilk</td> + <td align="left">rgb(255, 248, 220)</td> + <td align="left">#FFF8DC</td> + + </tr> + + <tr> + <td align="right">cornsilk1</td> + <td align="center" style="background-color:rgb(255, 248, 220)">cornsilk1</td> + <td align="left">rgb(255, 248, 220)</td> + <td align="left">#FFF8DC</td> + + </tr> + + <tr> + <td align="right">goldenrod</td> + <td align="center" style="background-color:rgb(218, 165, 32)">goldenrod</td> + <td align="left">rgb(218, 165, 32)</td> + <td align="left">#DAA520</td> + + </tr> + + <tr> + <td align="right">goldenrod1</td> + <td align="center" style="background-color:rgb(255, 193, 37)">goldenrod1</td> + <td align="left">rgb(255, 193, 37)</td> + <td align="left">#FFC125</td> + + </tr> + + <tr> + <td align="right">goldenrod2</td> + <td align="center" style="background-color:rgb(238, 180, 34)">goldenrod2</td> + <td align="left">rgb(238, 180, 34)</td> + <td align="left">#EEB422</td> + + </tr> + + <tr> + <td align="right">goldenrod3</td> + <td align="center" style="background-color:rgb(205, 155, 29)">goldenrod3</td> + <td align="left">rgb(205, 155, 29)</td> + <td align="left">#CD9B1D</td> + + </tr> + + <tr> + <td align="right">goldenrod4</td> + <td align="center" style="background-color:rgb(139, 105, 20)">goldenrod4</td> + <td align="left">rgb(139, 105, 20)</td> + <td align="left">#8B6914</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod</td> + <td align="center" style="background-color:rgb(184, 134, 11)">DarkGoldenrod</td> + <td align="left">rgb(184, 134, 11)</td> + <td align="left">#B8860B</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod1</td> + <td align="center" style="background-color:rgb(255, 185, 15)">DarkGoldenrod1</td> + <td align="left">rgb(255, 185, 15)</td> + <td align="left">#FFB90F</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod2</td> + <td align="center" style="background-color:rgb(238, 173, 14)">DarkGoldenrod2</td> + <td align="left">rgb(238, 173, 14)</td> + <td align="left">#EEAD0E</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod3</td> + <td align="center" style="background-color:rgb(205, 149, 12)">DarkGoldenrod3</td> + <td align="left">rgb(205, 149, 12)</td> + <td align="left">#CD950C</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod4</td> + <td align="center" style="background-color:rgb(139, 101, 8)">DarkGoldenrod4</td> + <td align="left">rgb(139, 101, 8)</td> + <td align="left">#8B6508</td> + + </tr> + + <tr> + <td align="right">FloralWhite</td> + <td align="center" style="background-color:rgb(255, 250, 240)">FloralWhite</td> + <td align="left">rgb(255, 250, 240)</td> + <td align="left">#FFFAF0</td> + + </tr> + + <tr> + <td align="right">wheat2</td> + <td align="center" style="background-color:rgb(238, 216, 174)">wheat2</td> + <td align="left">rgb(238, 216, 174)</td> + <td align="left">#EED8AE</td> + + </tr> + + <tr> + <td align="right">OldLace</td> + <td align="center" style="background-color:rgb(253, 245, 230)">OldLace</td> + <td align="left">rgb(253, 245, 230)</td> + <td align="left">#FDF5E6</td> + + </tr> + + <tr> + <td align="right">wheat</td> + <td align="center" style="background-color:rgb(245, 222, 179)">wheat</td> + <td align="left">rgb(245, 222, 179)</td> + <td align="left">#F5DEB3</td> + + </tr> + + <tr> + <td align="right">wheat1</td> + <td align="center" style="background-color:rgb(255, 231, 186)">wheat1</td> + <td align="left">rgb(255, 231, 186)</td> + <td align="left">#FFE7BA</td> + + </tr> + + <tr> + <td align="right">wheat3</td> + <td align="center" style="background-color:rgb(205, 186, 150)">wheat3</td> + <td align="left">rgb(205, 186, 150)</td> + <td align="left">#CDBA96</td> + + </tr> + + <tr> + <td align="right">orange</td> + <td align="center" style="background-color:rgb(255, 165, 0)">orange</td> + <td align="left">rgb(255, 165, 0)</td> + <td align="left">#FFA500</td> + + </tr> + + <tr> + <td align="right">orange1</td> + <td align="center" style="background-color:rgb(255, 165, 0)">orange1</td> + <td align="left">rgb(255, 165, 0)</td> + <td align="left">#FFA500</td> + + </tr> + + <tr> + <td align="right">orange2</td> + <td align="center" style="background-color:rgb(238, 154, 0)">orange2</td> + <td align="left">rgb(238, 154, 0)</td> + <td align="left">#EE9A00</td> + + </tr> + + <tr> + <td align="right">orange3</td> + <td align="center" style="background-color:rgb(205, 133, 0)">orange3</td> + <td align="left">rgb(205, 133, 0)</td> + <td align="left">#CD8500</td> + + </tr> + + <tr> + <td align="right">orange4</td> + <td align="center" style="background-color:rgb(139, 90, 0)">orange4</td> + <td align="left">rgb(139, 90, 0)</td> + <td align="left">#8B5A00</td> + + </tr> + + <tr> + <td align="right">wheat4</td> + <td align="center" style="background-color:rgb(139, 126, 102)">wheat4</td> + <td align="left">rgb(139, 126, 102)</td> + <td align="left">#8B7E66</td> + + </tr> + + <tr> + <td align="right">moccasin</td> + <td align="center" style="background-color:rgb(255, 228, 181)">moccasin</td> + <td align="left">rgb(255, 228, 181)</td> + <td align="left">#FFE4B5</td> + + </tr> + + <tr> + <td align="right">PapayaWhip</td> + <td align="center" style="background-color:rgb(255, 239, 213)">PapayaWhip</td> + <td align="left">rgb(255, 239, 213)</td> + <td align="left">#FFEFD5</td> + + </tr> + + <tr> + <td align="right">NavajoWhite3</td> + <td align="center" style="background-color:rgb(205, 179, 139)">NavajoWhite3</td> + <td align="left">rgb(205, 179, 139)</td> + <td align="left">#CDB38B</td> + + </tr> + + <tr> + <td align="right">BlanchedAlmond</td> + <td align="center" style="background-color:rgb(255, 235, 205)">BlanchedAlmond</td> + <td align="left">rgb(255, 235, 205)</td> + <td align="left">#FFEBCD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite</td> + <td align="center" style="background-color:rgb(255, 222, 173)">NavajoWhite</td> + <td align="left">rgb(255, 222, 173)</td> + <td align="left">#FFDEAD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite1</td> + <td align="center" style="background-color:rgb(255, 222, 173)">NavajoWhite1</td> + <td align="left">rgb(255, 222, 173)</td> + <td align="left">#FFDEAD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite2</td> + <td align="center" style="background-color:rgb(238, 207, 161)">NavajoWhite2</td> + <td align="left">rgb(238, 207, 161)</td> + <td align="left">#EECFA1</td> + + </tr> + + <tr> + <td align="right">NavajoWhite4</td> + <td align="center" style="background-color:rgb(139, 121, 94)">NavajoWhite4</td> + <td align="left">rgb(139, 121, 94)</td> + <td align="left">#8B795E</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite4</td> + <td align="center" style="background-color:rgb(139, 131, 120)">AntiqueWhite4</td> + <td align="left">rgb(139, 131, 120)</td> + <td align="left">#8B8378</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite</td> + <td align="center" style="background-color:rgb(250, 235, 215)">AntiqueWhite</td> + <td align="left">rgb(250, 235, 215)</td> + <td align="left">#FAEBD7</td> + + </tr> + + <tr> + <td align="right">tan</td> + <td align="center" style="background-color:rgb(210, 180, 140)">tan</td> + <td align="left">rgb(210, 180, 140)</td> + <td align="left">#D2B48C</td> + + </tr> + + <tr> + <td align="right">bisque4</td> + <td align="center" style="background-color:rgb(139, 125, 107)">bisque4</td> + <td align="left">rgb(139, 125, 107)</td> + <td align="left">#8B7D6B</td> + + </tr> + + <tr> + <td align="right">burlywood</td> + <td align="center" style="background-color:rgb(222, 184, 135)">burlywood</td> + <td align="left">rgb(222, 184, 135)</td> + <td align="left">#DEB887</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite2</td> + <td align="center" style="background-color:rgb(238, 223, 204)">AntiqueWhite2</td> + <td align="left">rgb(238, 223, 204)</td> + <td align="left">#EEDFCC</td> + + </tr> + + <tr> + <td align="right">burlywood1</td> + <td align="center" style="background-color:rgb(255, 211, 155)">burlywood1</td> + <td align="left">rgb(255, 211, 155)</td> + <td align="left">#FFD39B</td> + + </tr> + + <tr> + <td align="right">burlywood3</td> + <td align="center" style="background-color:rgb(205, 170, 125)">burlywood3</td> + <td align="left">rgb(205, 170, 125)</td> + <td align="left">#CDAA7D</td> + + </tr> + + <tr> + <td align="right">burlywood2</td> + <td align="center" style="background-color:rgb(238, 197, 145)">burlywood2</td> + <td align="left">rgb(238, 197, 145)</td> + <td align="left">#EEC591</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite1</td> + <td align="center" style="background-color:rgb(255, 239, 219)">AntiqueWhite1</td> + <td align="left">rgb(255, 239, 219)</td> + <td align="left">#FFEFDB</td> + + </tr> + + <tr> + <td align="right">burlywood4</td> + <td align="center" style="background-color:rgb(139, 115, 85)">burlywood4</td> + <td align="left">rgb(139, 115, 85)</td> + <td align="left">#8B7355</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite3</td> + <td align="center" style="background-color:rgb(205, 192, 176)">AntiqueWhite3</td> + <td align="left">rgb(205, 192, 176)</td> + <td align="left">#CDC0B0</td> + + </tr> + + <tr> + <td align="right">DarkOrange</td> + <td align="center" style="background-color:rgb(255, 140, 0)">DarkOrange</td> + <td align="left">rgb(255, 140, 0)</td> + <td align="left">#FF8C00</td> + + </tr> + + <tr> + <td align="right">bisque2</td> + <td align="center" style="background-color:rgb(238, 213, 183)">bisque2</td> + <td align="left">rgb(238, 213, 183)</td> + <td align="left">#EED5B7</td> + + </tr> + + <tr> + <td align="right">bisque</td> + <td align="center" style="background-color:rgb(255, 228, 196)">bisque</td> + <td align="left">rgb(255, 228, 196)</td> + <td align="left">#FFE4C4</td> + + </tr> + + <tr> + <td align="right">bisque1</td> + <td align="center" style="background-color:rgb(255, 228, 196)">bisque1</td> + <td align="left">rgb(255, 228, 196)</td> + <td align="left">#FFE4C4</td> + + </tr> + + <tr> + <td align="right">bisque3</td> + <td align="center" style="background-color:rgb(205, 183, 158)">bisque3</td> + <td align="left">rgb(205, 183, 158)</td> + <td align="left">#CDB79E</td> + + </tr> + + <tr> + <td align="right">DarkOrange1</td> + <td align="center" style="background-color:rgb(255, 127, 0)">DarkOrange1</td> + <td align="left">rgb(255, 127, 0)</td> + <td align="left">#FF7F00</td> + + </tr> + + <tr> + <td align="right">linen</td> + <td align="center" style="background-color:rgb(250, 240, 230)">linen</td> + <td align="left">rgb(250, 240, 230)</td> + <td align="left">#FAF0E6</td> + + </tr> + + <tr> + <td align="right">DarkOrange2</td> + <td align="center" style="background-color:rgb(238, 118, 0)">DarkOrange2</td> + <td align="left">rgb(238, 118, 0)</td> + <td align="left">#EE7600</td> + + </tr> + + <tr> + <td align="right">DarkOrange3</td> + <td align="center" style="background-color:rgb(205, 102, 0)">DarkOrange3</td> + <td align="left">rgb(205, 102, 0)</td> + <td align="left">#CD6600</td> + + </tr> + + <tr> + <td align="right">DarkOrange4</td> + <td align="center" style="background-color:rgb(139, 69, 0)">DarkOrange4</td> + <td align="left">rgb(139, 69, 0)</td> + <td align="left">#8B4500</td> + + </tr> + + <tr> + <td align="right">peru</td> + <td align="center" style="background-color:rgb(205, 133, 63)">peru</td> + <td align="left">rgb(205, 133, 63)</td> + <td align="left">#CD853F</td> + + </tr> + + <tr> + <td align="right">tan1</td> + <td align="center" style="background-color:rgb(255, 165, 79)">tan1</td> + <td align="left">rgb(255, 165, 79)</td> + <td align="left">#FFA54F</td> + + </tr> + + <tr> + <td align="right">tan2</td> + <td align="center" style="background-color:rgb(238, 154, 73)">tan2</td> + <td align="left">rgb(238, 154, 73)</td> + <td align="left">#EE9A49</td> + + </tr> + + <tr> + <td align="right">tan3</td> + <td align="center" style="background-color:rgb(205, 133, 63)">tan3</td> + <td align="left">rgb(205, 133, 63)</td> + <td align="left">#CD853F</td> + + </tr> + + <tr> + <td align="right">tan4</td> + <td align="center" style="background-color:rgb(139, 90, 43)">tan4</td> + <td align="left">rgb(139, 90, 43)</td> + <td align="left">#8B5A2B</td> + + </tr> + + <tr> + <td align="right">PeachPuff</td> + <td align="center" style="background-color:rgb(255, 218, 185)">PeachPuff</td> + <td align="left">rgb(255, 218, 185)</td> + <td align="left">#FFDAB9</td> + + </tr> + + <tr> + <td align="right">PeachPuff1</td> + <td align="center" style="background-color:rgb(255, 218, 185)">PeachPuff1</td> + <td align="left">rgb(255, 218, 185)</td> + <td align="left">#FFDAB9</td> + + </tr> + + <tr> + <td align="right">PeachPuff4</td> + <td align="center" style="background-color:rgb(139, 119, 101)">PeachPuff4</td> + <td align="left">rgb(139, 119, 101)</td> + <td align="left">#8B7765</td> + + </tr> + + <tr> + <td align="right">PeachPuff2</td> + <td align="center" style="background-color:rgb(238, 203, 173)">PeachPuff2</td> + <td align="left">rgb(238, 203, 173)</td> + <td align="left">#EECBAD</td> + + </tr> + + <tr> + <td align="right">PeachPuff3</td> + <td align="center" style="background-color:rgb(205, 175, 149)">PeachPuff3</td> + <td align="left">rgb(205, 175, 149)</td> + <td align="left">#CDAF95</td> + + </tr> + + <tr> + <td align="right">SandyBrown</td> + <td align="center" style="background-color:rgb(244, 164, 96)">SandyBrown</td> + <td align="left">rgb(244, 164, 96)</td> + <td align="left">#F4A460</td> + + </tr> + + <tr> + <td align="right">seashell4</td> + <td align="center" style="background-color:rgb(139, 134, 130)">seashell4</td> + <td align="left">rgb(139, 134, 130)</td> + <td align="left">#8B8682</td> + + </tr> + + <tr> + <td align="right">seashell2</td> + <td align="center" style="background-color:rgb(238, 229, 222)">seashell2</td> + <td align="left">rgb(238, 229, 222)</td> + <td align="left">#EEE5DE</td> + + </tr> + + <tr> + <td align="right">seashell3</td> + <td align="center" style="background-color:rgb(205, 197, 191)">seashell3</td> + <td align="left">rgb(205, 197, 191)</td> + <td align="left">#CDC5BF</td> + + </tr> + + <tr> + <td align="right">chocolate</td> + <td align="center" style="background-color:rgb(210, 105, 30)">chocolate</td> + <td align="left">rgb(210, 105, 30)</td> + <td align="left">#D2691E</td> + + </tr> + + <tr> + <td align="right">chocolate1</td> + <td align="center" style="background-color:rgb(255, 127, 36)">chocolate1</td> + <td align="left">rgb(255, 127, 36)</td> + <td align="left">#FF7F24</td> + + </tr> + + <tr> + <td align="right">chocolate2</td> + <td align="center" style="background-color:rgb(238, 118, 33)">chocolate2</td> + <td align="left">rgb(238, 118, 33)</td> + <td align="left">#EE7621</td> + + </tr> + + <tr> + <td align="right">chocolate3</td> + <td align="center" style="background-color:rgb(205, 102, 29)">chocolate3</td> + <td align="left">rgb(205, 102, 29)</td> + <td align="left">#CD661D</td> + + </tr> + + <tr> + <td align="right">chocolate4</td> + <td align="center" style="background-color:rgb(139, 69, 19)">chocolate4</td> + <td align="left">rgb(139, 69, 19)</td> + <td align="left">#8B4513</td> + + </tr> + + <tr> + <td align="right">SaddleBrown</td> + <td align="center" style="background-color:rgb(139, 69, 19)">SaddleBrown</td> + <td align="left">rgb(139, 69, 19)</td> + <td align="left">#8B4513</td> + + </tr> + + <tr> + <td align="right">seashell</td> + <td align="center" style="background-color:rgb(255, 245, 238)">seashell</td> + <td align="left">rgb(255, 245, 238)</td> + <td align="left">#FFF5EE</td> + + </tr> + + <tr> + <td align="right">seashell1</td> + <td align="center" style="background-color:rgb(255, 245, 238)">seashell1</td> + <td align="left">rgb(255, 245, 238)</td> + <td align="left">#FFF5EE</td> + + </tr> + + <tr> + <td align="right">sienna4</td> + <td align="center" style="background-color:rgb(139, 71, 38)">sienna4</td> + <td align="left">rgb(139, 71, 38)</td> + <td align="left">#8B4726</td> + + </tr> + + <tr> + <td align="right">sienna</td> + <td align="center" style="background-color:rgb(160, 82, 45)">sienna</td> + <td align="left">rgb(160, 82, 45)</td> + <td align="left">#A0522D</td> + + </tr> + + <tr> + <td align="right">sienna1</td> + <td align="center" style="background-color:rgb(255, 130, 71)">sienna1</td> + <td align="left">rgb(255, 130, 71)</td> + <td align="left">#FF8247</td> + + </tr> + + <tr> + <td align="right">sienna2</td> + <td align="center" style="background-color:rgb(238, 121, 66)">sienna2</td> + <td align="left">rgb(238, 121, 66)</td> + <td align="left">#EE7942</td> + + </tr> + + <tr> + <td align="right">sienna3</td> + <td align="center" style="background-color:rgb(205, 104, 57)">sienna3</td> + <td align="left">rgb(205, 104, 57)</td> + <td align="left">#CD6839</td> + + </tr> + + <tr> + <td align="right">LightSalmon3</td> + <td align="center" style="background-color:rgb(205, 129, 98)">LightSalmon3</td> + <td align="left">rgb(205, 129, 98)</td> + <td align="left">#CD8162</td> + + </tr> + + <tr> + <td align="right">LightSalmon</td> + <td align="center" style="background-color:rgb(255, 160, 122)">LightSalmon</td> + <td align="left">rgb(255, 160, 122)</td> + <td align="left">#FFA07A</td> + + </tr> + + <tr> + <td align="right">LightSalmon1</td> + <td align="center" style="background-color:rgb(255, 160, 122)">LightSalmon1</td> + <td align="left">rgb(255, 160, 122)</td> + <td align="left">#FFA07A</td> + + </tr> + + <tr> + <td align="right">LightSalmon4</td> + <td align="center" style="background-color:rgb(139, 87, 66)">LightSalmon4</td> + <td align="left">rgb(139, 87, 66)</td> + <td align="left">#8B5742</td> + + </tr> + + <tr> + <td align="right">LightSalmon2</td> + <td align="center" style="background-color:rgb(238, 149, 114)">LightSalmon2</td> + <td align="left">rgb(238, 149, 114)</td> + <td align="left">#EE9572</td> + + </tr> + + <tr> + <td align="right">coral</td> + <td align="center" style="background-color:rgb(255, 127, 80)">coral</td> + <td align="left">rgb(255, 127, 80)</td> + <td align="left">#FF7F50</td> + + </tr> + + <tr> + <td align="right">OrangeRed</td> + <td align="center" style="background-color:rgb(255, 69, 0)">OrangeRed</td> + <td align="left">rgb(255, 69, 0)</td> + <td align="left">#FF4500</td> + + </tr> + + <tr> + <td align="right">OrangeRed1</td> + <td align="center" style="background-color:rgb(255, 69, 0)">OrangeRed1</td> + <td align="left">rgb(255, 69, 0)</td> + <td align="left">#FF4500</td> + + </tr> + + <tr> + <td align="right">OrangeRed2</td> + <td align="center" style="background-color:rgb(238, 64, 0)">OrangeRed2</td> + <td align="left">rgb(238, 64, 0)</td> + <td align="left">#EE4000</td> + + </tr> + + <tr> + <td align="right">OrangeRed3</td> + <td align="center" style="background-color:rgb(205, 55, 0)">OrangeRed3</td> + <td align="left">rgb(205, 55, 0)</td> + <td align="left">#CD3700</td> + + </tr> + + <tr> + <td align="right">OrangeRed4</td> + <td align="center" style="background-color:rgb(139, 37, 0)">OrangeRed4</td> + <td align="left">rgb(139, 37, 0)</td> + <td align="left">#8B2500</td> + + </tr> + + <tr> + <td align="right">DarkSalmon</td> + <td align="center" style="background-color:rgb(233, 150, 122)">DarkSalmon</td> + <td align="left">rgb(233, 150, 122)</td> + <td align="left">#E9967A</td> + + </tr> + + <tr> + <td align="right">salmon1</td> + <td align="center" style="background-color:rgb(255, 140, 105)">salmon1</td> + <td align="left">rgb(255, 140, 105)</td> + <td align="left">#FF8C69</td> + + </tr> + + <tr> + <td align="right">salmon2</td> + <td align="center" style="background-color:rgb(238, 130, 98)">salmon2</td> + <td align="left">rgb(238, 130, 98)</td> + <td align="left">#EE8262</td> + + </tr> + + <tr> + <td align="right">salmon3</td> + <td align="center" style="background-color:rgb(205, 112, 84)">salmon3</td> + <td align="left">rgb(205, 112, 84)</td> + <td align="left">#CD7054</td> + + </tr> + + <tr> + <td align="right">salmon4</td> + <td align="center" style="background-color:rgb(139, 76, 57)">salmon4</td> + <td align="left">rgb(139, 76, 57)</td> + <td align="left">#8B4C39</td> + + </tr> + + <tr> + <td align="right">coral1</td> + <td align="center" style="background-color:rgb(255, 114, 86)">coral1</td> + <td align="left">rgb(255, 114, 86)</td> + <td align="left">#FF7256</td> + + </tr> + + <tr> + <td align="right">coral2</td> + <td align="center" style="background-color:rgb(238, 106, 80)">coral2</td> + <td align="left">rgb(238, 106, 80)</td> + <td align="left">#EE6A50</td> + + </tr> + + <tr> + <td align="right">coral3</td> + <td align="center" style="background-color:rgb(205, 91, 69)">coral3</td> + <td align="left">rgb(205, 91, 69)</td> + <td align="left">#CD5B45</td> + + </tr> + + <tr> + <td align="right">coral4</td> + <td align="center" style="background-color:rgb(139, 62, 47)">coral4</td> + <td align="left">rgb(139, 62, 47)</td> + <td align="left">#8B3E2F</td> + + </tr> + + <tr> + <td align="right">tomato4</td> + <td align="center" style="background-color:rgb(139, 54, 38)">tomato4</td> + <td align="left">rgb(139, 54, 38)</td> + <td align="left">#8B3626</td> + + </tr> + + <tr> + <td align="right">tomato</td> + <td align="center" style="background-color:rgb(255, 99, 71)">tomato</td> + <td align="left">rgb(255, 99, 71)</td> + <td align="left">#FF6347</td> + + </tr> + + <tr> + <td align="right">tomato1</td> + <td align="center" style="background-color:rgb(255, 99, 71)">tomato1</td> + <td align="left">rgb(255, 99, 71)</td> + <td align="left">#FF6347</td> + + </tr> + + <tr> + <td align="right">tomato2</td> + <td align="center" style="background-color:rgb(238, 92, 66)">tomato2</td> + <td align="left">rgb(238, 92, 66)</td> + <td align="left">#EE5C42</td> + + </tr> + + <tr> + <td align="right">tomato3</td> + <td align="center" style="background-color:rgb(205, 79, 57)">tomato3</td> + <td align="left">rgb(205, 79, 57)</td> + <td align="left">#CD4F39</td> + + </tr> + + <tr> + <td align="right">MistyRose4</td> + <td align="center" style="background-color:rgb(139, 125, 123)">MistyRose4</td> + <td align="left">rgb(139, 125, 123)</td> + <td align="left">#8B7D7B</td> + + </tr> + + <tr> + <td align="right">MistyRose2</td> + <td align="center" style="background-color:rgb(238, 213, 210)">MistyRose2</td> + <td align="left">rgb(238, 213, 210)</td> + <td align="left">#EED5D2</td> + + </tr> + + <tr> + <td align="right">MistyRose</td> + <td align="center" style="background-color:rgb(255, 228, 225)">MistyRose</td> + <td align="left">rgb(255, 228, 225)</td> + <td align="left">#FFE4E1</td> + + </tr> + + <tr> + <td align="right">MistyRose1</td> + <td align="center" style="background-color:rgb(255, 228, 225)">MistyRose1</td> + <td align="left">rgb(255, 228, 225)</td> + <td align="left">#FFE4E1</td> + + </tr> + + <tr> + <td align="right">salmon</td> + <td align="center" style="background-color:rgb(250, 128, 114)">salmon</td> + <td align="left">rgb(250, 128, 114)</td> + <td align="left">#FA8072</td> + + </tr> + + <tr> + <td align="right">MistyRose3</td> + <td align="center" style="background-color:rgb(205, 183, 181)">MistyRose3</td> + <td align="left">rgb(205, 183, 181)</td> + <td align="left">#CDB7B5</td> + + </tr> + + <tr> + <td align="right">white</td> + <td align="center" style="background-color:rgb(255, 255, 255)">white</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">gray100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">gray100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">grey100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">grey100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">grey100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">grey100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">gray99</td> + <td align="center" style="background-color:rgb(252, 252, 252)">gray99</td> + <td align="left">rgb(252, 252, 252)</td> + <td align="left">#FCFCFC</td> + + </tr> + + <tr> + <td align="right">grey99</td> + <td align="center" style="background-color:rgb(252, 252, 252)">grey99</td> + <td align="left">rgb(252, 252, 252)</td> + <td align="left">#FCFCFC</td> + + </tr> + + <tr> + <td align="right">gray98</td> + <td align="center" style="background-color:rgb(250, 250, 250)">gray98</td> + <td align="left">rgb(250, 250, 250)</td> + <td align="left">#FAFAFA</td> + + </tr> + + <tr> + <td align="right">grey98</td> + <td align="center" style="background-color:rgb(250, 250, 250)">grey98</td> + <td align="left">rgb(250, 250, 250)</td> + <td align="left">#FAFAFA</td> + + </tr> + + <tr> + <td align="right">gray97</td> + <td align="center" style="background-color:rgb(247, 247, 247)">gray97</td> + <td align="left">rgb(247, 247, 247)</td> + <td align="left">#F7F7F7</td> + + </tr> + + <tr> + <td align="right">grey97</td> + <td align="center" style="background-color:rgb(247, 247, 247)">grey97</td> + <td align="left">rgb(247, 247, 247)</td> + <td align="left">#F7F7F7</td> + + </tr> + + <tr> + <td align="right">gray96</td> + <td align="center" style="background-color:rgb(245, 245, 245)">gray96</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">grey96</td> + <td align="center" style="background-color:rgb(245, 245, 245)">grey96</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">WhiteSmoke</td> + <td align="center" style="background-color:rgb(245, 245, 245)">WhiteSmoke</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">gray95</td> + <td align="center" style="background-color:rgb(242, 242, 242)">gray95</td> + <td align="left">rgb(242, 242, 242)</td> + <td align="left">#F2F2F2</td> + + </tr> + + <tr> + <td align="right">grey95</td> + <td align="center" style="background-color:rgb(242, 242, 242)">grey95</td> + <td align="left">rgb(242, 242, 242)</td> + <td align="left">#F2F2F2</td> + + </tr> + + <tr> + <td align="right">gray94</td> + <td align="center" style="background-color:rgb(240, 240, 240)">gray94</td> + <td align="left">rgb(240, 240, 240)</td> + <td align="left">#F0F0F0</td> + + </tr> + + <tr> + <td align="right">grey94</td> + <td align="center" style="background-color:rgb(240, 240, 240)">grey94</td> + <td align="left">rgb(240, 240, 240)</td> + <td align="left">#F0F0F0</td> + + </tr> + + <tr> + <td align="right">gray93</td> + <td align="center" style="background-color:rgb(237, 237, 237)">gray93</td> + <td align="left">rgb(237, 237, 237)</td> + <td align="left">#EDEDED</td> + + </tr> + + <tr> + <td align="right">grey93</td> + <td align="center" style="background-color:rgb(237, 237, 237)">grey93</td> + <td align="left">rgb(237, 237, 237)</td> + <td align="left">#EDEDED</td> + + </tr> + + <tr> + <td align="right">gray92</td> + <td align="center" style="background-color:rgb(235, 235, 235)">gray92</td> + <td align="left">rgb(235, 235, 235)</td> + <td align="left">#EBEBEB</td> + + </tr> + + <tr> + <td align="right">grey92</td> + <td align="center" style="background-color:rgb(235, 235, 235)">grey92</td> + <td align="left">rgb(235, 235, 235)</td> + <td align="left">#EBEBEB</td> + + </tr> + + <tr> + <td align="right">gray91</td> + <td align="center" style="background-color:rgb(232, 232, 232)">gray91</td> + <td align="left">rgb(232, 232, 232)</td> + <td align="left">#E8E8E8</td> + + </tr> + + <tr> + <td align="right">grey91</td> + <td align="center" style="background-color:rgb(232, 232, 232)">grey91</td> + <td align="left">rgb(232, 232, 232)</td> + <td align="left">#E8E8E8</td> + + </tr> + + <tr> + <td align="right">gray90</td> + <td align="center" style="background-color:rgb(229, 229, 229)">gray90</td> + <td align="left">rgb(229, 229, 229)</td> + <td align="left">#E5E5E5</td> + + </tr> + + <tr> + <td align="right">grey90</td> + <td align="center" style="background-color:rgb(229, 229, 229)">grey90</td> + <td align="left">rgb(229, 229, 229)</td> + <td align="left">#E5E5E5</td> + + </tr> + + <tr> + <td align="right">gray89</td> + <td align="center" style="background-color:rgb(227, 227, 227)">gray89</td> + <td align="left">rgb(227, 227, 227)</td> + <td align="left">#E3E3E3</td> + + </tr> + + <tr> + <td align="right">grey89</td> + <td align="center" style="background-color:rgb(227, 227, 227)">grey89</td> + <td align="left">rgb(227, 227, 227)</td> + <td align="left">#E3E3E3</td> + + </tr> + + <tr> + <td align="right">gray88</td> + <td align="center" style="background-color:rgb(224, 224, 224)">gray88</td> + <td align="left">rgb(224, 224, 224)</td> + <td align="left">#E0E0E0</td> + + </tr> + + <tr> + <td align="right">grey88</td> + <td align="center" style="background-color:rgb(224, 224, 224)">grey88</td> + <td align="left">rgb(224, 224, 224)</td> + <td align="left">#E0E0E0</td> + + </tr> + + <tr> + <td align="right">gray87</td> + <td align="center" style="background-color:rgb(222, 222, 222)">gray87</td> + <td align="left">rgb(222, 222, 222)</td> + <td align="left">#DEDEDE</td> + + </tr> + + <tr> + <td align="right">grey87</td> + <td align="center" style="background-color:rgb(222, 222, 222)">grey87</td> + <td align="left">rgb(222, 222, 222)</td> + <td align="left">#DEDEDE</td> + + </tr> + + <tr> + <td align="right">gainsboro</td> + <td align="center" style="background-color:rgb(220, 220, 220)">gainsboro</td> + <td align="left">rgb(220, 220, 220)</td> + <td align="left">#DCDCDC</td> + + </tr> + + <tr> + <td align="right">gray86</td> + <td align="center" style="background-color:rgb(219, 219, 219)">gray86</td> + <td align="left">rgb(219, 219, 219)</td> + <td align="left">#DBDBDB</td> + + </tr> + + <tr> + <td align="right">grey86</td> + <td align="center" style="background-color:rgb(219, 219, 219)">grey86</td> + <td align="left">rgb(219, 219, 219)</td> + <td align="left">#DBDBDB</td> + + </tr> + + <tr> + <td align="right">gray85</td> + <td align="center" style="background-color:rgb(217, 217, 217)">gray85</td> + <td align="left">rgb(217, 217, 217)</td> + <td align="left">#D9D9D9</td> + + </tr> + + <tr> + <td align="right">grey85</td> + <td align="center" style="background-color:rgb(217, 217, 217)">grey85</td> + <td align="left">rgb(217, 217, 217)</td> + <td align="left">#D9D9D9</td> + + </tr> + + <tr> + <td align="right">gray84</td> + <td align="center" style="background-color:rgb(214, 214, 214)">gray84</td> + <td align="left">rgb(214, 214, 214)</td> + <td align="left">#D6D6D6</td> + + </tr> + + <tr> + <td align="right">grey84</td> + <td align="center" style="background-color:rgb(214, 214, 214)">grey84</td> + <td align="left">rgb(214, 214, 214)</td> + <td align="left">#D6D6D6</td> + + </tr> + + <tr> + <td align="right">gray83</td> + <td align="center" style="background-color:rgb(212, 212, 212)">gray83</td> + <td align="left">rgb(212, 212, 212)</td> + <td align="left">#D4D4D4</td> + + </tr> + + <tr> + <td align="right">grey83</td> + <td align="center" style="background-color:rgb(212, 212, 212)">grey83</td> + <td align="left">rgb(212, 212, 212)</td> + <td align="left">#D4D4D4</td> + + </tr> + + <tr> + <td align="right">LightGray</td> + <td align="center" style="background-color:rgb(211, 211, 211)">LightGray</td> + <td align="left">rgb(211, 211, 211)</td> + <td align="left">#D3D3D3</td> + + </tr> + + <tr> + <td align="right">LightGrey</td> + <td align="center" style="background-color:rgb(211, 211, 211)">LightGrey</td> + <td align="left">rgb(211, 211, 211)</td> + <td align="left">#D3D3D3</td> + + </tr> + + <tr> + <td align="right">gray82</td> + <td align="center" style="background-color:rgb(209, 209, 209)">gray82</td> + <td align="left">rgb(209, 209, 209)</td> + <td align="left">#D1D1D1</td> + + </tr> + + <tr> + <td align="right">grey82</td> + <td align="center" style="background-color:rgb(209, 209, 209)">grey82</td> + <td align="left">rgb(209, 209, 209)</td> + <td align="left">#D1D1D1</td> + + </tr> + + <tr> + <td align="right">gray81</td> + <td align="center" style="background-color:rgb(207, 207, 207)">gray81</td> + <td align="left">rgb(207, 207, 207)</td> + <td align="left">#CFCFCF</td> + + </tr> + + <tr> + <td align="right">grey81</td> + <td align="center" style="background-color:rgb(207, 207, 207)">grey81</td> + <td align="left">rgb(207, 207, 207)</td> + <td align="left">#CFCFCF</td> + + </tr> + + <tr> + <td align="right">gray80</td> + <td align="center" style="background-color:rgb(204, 204, 204)">gray80</td> + <td align="left">rgb(204, 204, 204)</td> + <td align="left">#CCCCCC</td> + + </tr> + + <tr> + <td align="right">grey80</td> + <td align="center" style="background-color:rgb(204, 204, 204)">grey80</td> + <td align="left">rgb(204, 204, 204)</td> + <td align="left">#CCCCCC</td> + + </tr> + + <tr> + <td align="right">gray79</td> + <td align="center" style="background-color:rgb(201, 201, 201)">gray79</td> + <td align="left">rgb(201, 201, 201)</td> + <td align="left">#C9C9C9</td> + + </tr> + + <tr> + <td align="right">grey79</td> + <td align="center" style="background-color:rgb(201, 201, 201)">grey79</td> + <td align="left">rgb(201, 201, 201)</td> + <td align="left">#C9C9C9</td> + + </tr> + + <tr> + <td align="right">gray78</td> + <td align="center" style="background-color:rgb(199, 199, 199)">gray78</td> + <td align="left">rgb(199, 199, 199)</td> + <td align="left">#C7C7C7</td> + + </tr> + + <tr> + <td align="right">grey78</td> + <td align="center" style="background-color:rgb(199, 199, 199)">grey78</td> + <td align="left">rgb(199, 199, 199)</td> + <td align="left">#C7C7C7</td> + + </tr> + + <tr> + <td align="right">gray77</td> + <td align="center" style="background-color:rgb(196, 196, 196)">gray77</td> + <td align="left">rgb(196, 196, 196)</td> + <td align="left">#C4C4C4</td> + + </tr> + + <tr> + <td align="right">grey77</td> + <td align="center" style="background-color:rgb(196, 196, 196)">grey77</td> + <td align="left">rgb(196, 196, 196)</td> + <td align="left">#C4C4C4</td> + + </tr> + + <tr> + <td align="right">gray76</td> + <td align="center" style="background-color:rgb(194, 194, 194)">gray76</td> + <td align="left">rgb(194, 194, 194)</td> + <td align="left">#C2C2C2</td> + + </tr> + + <tr> + <td align="right">grey76</td> + <td align="center" style="background-color:rgb(194, 194, 194)">grey76</td> + <td align="left">rgb(194, 194, 194)</td> + <td align="left">#C2C2C2</td> + + </tr> + + <tr> + <td align="right">silver</td> + <td align="center" style="background-color:rgb(192, 192, 192)">silver</td> + <td align="left">rgb(192, 192, 192)</td> + <td align="left">#C0C0C0</td> + + </tr> + + <tr> + <td align="right">gray75</td> + <td align="center" style="background-color:rgb(191, 191, 191)">gray75</td> + <td align="left">rgb(191, 191, 191)</td> + <td align="left">#BFBFBF</td> + + </tr> + + <tr> + <td align="right">grey75</td> + <td align="center" style="background-color:rgb(191, 191, 191)">grey75</td> + <td align="left">rgb(191, 191, 191)</td> + <td align="left">#BFBFBF</td> + + </tr> + + <tr> + <td align="right">gray74</td> + <td align="center" style="background-color:rgb(189, 189, 189)">gray74</td> + <td align="left">rgb(189, 189, 189)</td> + <td align="left">#BDBDBD</td> + + </tr> + + <tr> + <td align="right">grey74</td> + <td align="center" style="background-color:rgb(189, 189, 189)">grey74</td> + <td align="left">rgb(189, 189, 189)</td> + <td align="left">#BDBDBD</td> + + </tr> + + <tr> + <td align="right">gray73</td> + <td align="center" style="background-color:rgb(186, 186, 186)">gray73</td> + <td align="left">rgb(186, 186, 186)</td> + <td align="left">#BABABA</td> + + </tr> + + <tr> + <td align="right">grey73</td> + <td align="center" style="background-color:rgb(186, 186, 186)">grey73</td> + <td align="left">rgb(186, 186, 186)</td> + <td align="left">#BABABA</td> + + </tr> + + <tr> + <td align="right">gray72</td> + <td align="center" style="background-color:rgb(184, 184, 184)">gray72</td> + <td align="left">rgb(184, 184, 184)</td> + <td align="left">#B8B8B8</td> + + </tr> + + <tr> + <td align="right">grey72</td> + <td align="center" style="background-color:rgb(184, 184, 184)">grey72</td> + <td align="left">rgb(184, 184, 184)</td> + <td align="left">#B8B8B8</td> + + </tr> + + <tr> + <td align="right">gray71</td> + <td align="center" style="background-color:rgb(181, 181, 181)">gray71</td> + <td align="left">rgb(181, 181, 181)</td> + <td align="left">#B5B5B5</td> + + </tr> + + <tr> + <td align="right">grey71</td> + <td align="center" style="background-color:rgb(181, 181, 181)">grey71</td> + <td align="left">rgb(181, 181, 181)</td> + <td align="left">#B5B5B5</td> + + </tr> + + <tr> + <td align="right">gray70</td> + <td align="center" style="background-color:rgb(179, 179, 179)">gray70</td> + <td align="left">rgb(179, 179, 179)</td> + <td align="left">#B3B3B3</td> + + </tr> + + <tr> + <td align="right">grey70</td> + <td align="center" style="background-color:rgb(179, 179, 179)">grey70</td> + <td align="left">rgb(179, 179, 179)</td> + <td align="left">#B3B3B3</td> + + </tr> + + <tr> + <td align="right">gray69</td> + <td align="center" style="background-color:rgb(176, 176, 176)">gray69</td> + <td align="left">rgb(176, 176, 176)</td> + <td align="left">#B0B0B0</td> + + </tr> + + <tr> + <td align="right">grey69</td> + <td align="center" style="background-color:rgb(176, 176, 176)">grey69</td> + <td align="left">rgb(176, 176, 176)</td> + <td align="left">#B0B0B0</td> + + </tr> + + <tr> + <td align="right">gray68</td> + <td align="center" style="background-color:rgb(173, 173, 173)">gray68</td> + <td align="left">rgb(173, 173, 173)</td> + <td align="left">#ADADAD</td> + + </tr> + + <tr> + <td align="right">grey68</td> + <td align="center" style="background-color:rgb(173, 173, 173)">grey68</td> + <td align="left">rgb(173, 173, 173)</td> + <td align="left">#ADADAD</td> + + </tr> + + <tr> + <td align="right">gray67</td> + <td align="center" style="background-color:rgb(171, 171, 171)">gray67</td> + <td align="left">rgb(171, 171, 171)</td> + <td align="left">#ABABAB</td> + + </tr> + + <tr> + <td align="right">grey67</td> + <td align="center" style="background-color:rgb(171, 171, 171)">grey67</td> + <td align="left">rgb(171, 171, 171)</td> + <td align="left">#ABABAB</td> + + </tr> + + <tr> + <td align="right">DarkGray</td> + <td align="center" style="background-color:rgb(169, 169, 169)">DarkGray</td> + <td align="left">rgb(169, 169, 169)</td> + <td align="left">#A9A9A9</td> + + </tr> + + <tr> + <td align="right">DarkGrey</td> + <td align="center" style="background-color:rgb(169, 169, 169)">DarkGrey</td> + <td align="left">rgb(169, 169, 169)</td> + <td align="left">#A9A9A9</td> + + </tr> + + <tr> + <td align="right">gray66</td> + <td align="center" style="background-color:rgb(168, 168, 168)">gray66</td> + <td align="left">rgb(168, 168, 168)</td> + <td align="left">#A8A8A8</td> + + </tr> + + <tr> + <td align="right">grey66</td> + <td align="center" style="background-color:rgb(168, 168, 168)">grey66</td> + <td align="left">rgb(168, 168, 168)</td> + <td align="left">#A8A8A8</td> + + </tr> + + <tr> + <td align="right">gray65</td> + <td align="center" style="background-color:rgb(166, 166, 166)">gray65</td> + <td align="left">rgb(166, 166, 166)</td> + <td align="left">#A6A6A6</td> + + </tr> + + <tr> + <td align="right">grey65</td> + <td align="center" style="background-color:rgb(166, 166, 166)">grey65</td> + <td align="left">rgb(166, 166, 166)</td> + <td align="left">#A6A6A6</td> + + </tr> + + <tr> + <td align="right">gray64</td> + <td align="center" style="background-color:rgb(163, 163, 163)">gray64</td> + <td align="left">rgb(163, 163, 163)</td> + <td align="left">#A3A3A3</td> + + </tr> + + <tr> + <td align="right">grey64</td> + <td align="center" style="background-color:rgb(163, 163, 163)">grey64</td> + <td align="left">rgb(163, 163, 163)</td> + <td align="left">#A3A3A3</td> + + </tr> + + <tr> + <td align="right">gray63</td> + <td align="center" style="background-color:rgb(161, 161, 161)">gray63</td> + <td align="left">rgb(161, 161, 161)</td> + <td align="left">#A1A1A1</td> + + </tr> + + <tr> + <td align="right">grey63</td> + <td align="center" style="background-color:rgb(161, 161, 161)">grey63</td> + <td align="left">rgb(161, 161, 161)</td> + <td align="left">#A1A1A1</td> + + </tr> + + <tr> + <td align="right">gray62</td> + <td align="center" style="background-color:rgb(158, 158, 158)">gray62</td> + <td align="left">rgb(158, 158, 158)</td> + <td align="left">#9E9E9E</td> + + </tr> + + <tr> + <td align="right">grey62</td> + <td align="center" style="background-color:rgb(158, 158, 158)">grey62</td> + <td align="left">rgb(158, 158, 158)</td> + <td align="left">#9E9E9E</td> + + </tr> + + <tr> + <td align="right">gray61</td> + <td align="center" style="background-color:rgb(156, 156, 156)">gray61</td> + <td align="left">rgb(156, 156, 156)</td> + <td align="left">#9C9C9C</td> + + </tr> + + <tr> + <td align="right">grey61</td> + <td align="center" style="background-color:rgb(156, 156, 156)">grey61</td> + <td align="left">rgb(156, 156, 156)</td> + <td align="left">#9C9C9C</td> + + </tr> + + <tr> + <td align="right">gray60</td> + <td align="center" style="background-color:rgb(153, 153, 153)">gray60</td> + <td align="left">rgb(153, 153, 153)</td> + <td align="left">#999999</td> + + </tr> + + <tr> + <td align="right">grey60</td> + <td align="center" style="background-color:rgb(153, 153, 153)">grey60</td> + <td align="left">rgb(153, 153, 153)</td> + <td align="left">#999999</td> + + </tr> + + <tr> + <td align="right">gray59</td> + <td align="center" style="background-color:rgb(150, 150, 150)">gray59</td> + <td align="left">rgb(150, 150, 150)</td> + <td align="left">#969696</td> + + </tr> + + <tr> + <td align="right">grey59</td> + <td align="center" style="background-color:rgb(150, 150, 150)">grey59</td> + <td align="left">rgb(150, 150, 150)</td> + <td align="left">#969696</td> + + </tr> + + <tr> + <td align="right">gray58</td> + <td align="center" style="background-color:rgb(148, 148, 148)">gray58</td> + <td align="left">rgb(148, 148, 148)</td> + <td align="left">#949494</td> + + </tr> + + <tr> + <td align="right">grey58</td> + <td align="center" style="background-color:rgb(148, 148, 148)">grey58</td> + <td align="left">rgb(148, 148, 148)</td> + <td align="left">#949494</td> + + </tr> + + <tr> + <td align="right">gray57</td> + <td align="center" style="background-color:rgb(145, 145, 145)">gray57</td> + <td align="left">rgb(145, 145, 145)</td> + <td align="left">#919191</td> + + </tr> + + <tr> + <td align="right">grey57</td> + <td align="center" style="background-color:rgb(145, 145, 145)">grey57</td> + <td align="left">rgb(145, 145, 145)</td> + <td align="left">#919191</td> + + </tr> + + <tr> + <td align="right">gray56</td> + <td align="center" style="background-color:rgb(143, 143, 143)">gray56</td> + <td align="left">rgb(143, 143, 143)</td> + <td align="left">#8F8F8F</td> + + </tr> + + <tr> + <td align="right">grey56</td> + <td align="center" style="background-color:rgb(143, 143, 143)">grey56</td> + <td align="left">rgb(143, 143, 143)</td> + <td align="left">#8F8F8F</td> + + </tr> + + <tr> + <td align="right">gray55</td> + <td align="center" style="background-color:rgb(140, 140, 140)">gray55</td> + <td align="left">rgb(140, 140, 140)</td> + <td align="left">#8C8C8C</td> + + </tr> + + <tr> + <td align="right">grey55</td> + <td align="center" style="background-color:rgb(140, 140, 140)">grey55</td> + <td align="left">rgb(140, 140, 140)</td> + <td align="left">#8C8C8C</td> + + </tr> + + <tr> + <td align="right">gray54</td> + <td align="center" style="background-color:rgb(138, 138, 138)">gray54</td> + <td align="left">rgb(138, 138, 138)</td> + <td align="left">#8A8A8A</td> + + </tr> + + <tr> + <td align="right">grey54</td> + <td align="center" style="background-color:rgb(138, 138, 138)">grey54</td> + <td align="left">rgb(138, 138, 138)</td> + <td align="left">#8A8A8A</td> + + </tr> + + <tr> + <td align="right">gray53</td> + <td align="center" style="background-color:rgb(135, 135, 135)">gray53</td> + <td align="left">rgb(135, 135, 135)</td> + <td align="left">#878787</td> + + </tr> + + <tr> + <td align="right">grey53</td> + <td align="center" style="background-color:rgb(135, 135, 135)">grey53</td> + <td align="left">rgb(135, 135, 135)</td> + <td align="left">#878787</td> + + </tr> + + <tr> + <td align="right">gray52</td> + <td align="center" style="background-color:rgb(133, 133, 133)">gray52</td> + <td align="left">rgb(133, 133, 133)</td> + <td align="left">#858585</td> + + </tr> + + <tr> + <td align="right">grey52</td> + <td align="center" style="background-color:rgb(133, 133, 133)">grey52</td> + <td align="left">rgb(133, 133, 133)</td> + <td align="left">#858585</td> + + </tr> + + <tr> + <td align="right">gray51</td> + <td align="center" style="background-color:rgb(130, 130, 130)">gray51</td> + <td align="left">rgb(130, 130, 130)</td> + <td align="left">#828282</td> + + </tr> + + <tr> + <td align="right">grey51</td> + <td align="center" style="background-color:rgb(130, 130, 130)">grey51</td> + <td align="left">rgb(130, 130, 130)</td> + <td align="left">#828282</td> + + </tr> + + <tr> + <td align="right">fractal</td> + <td align="center" style="background-color:rgb(128, 128, 128)">fractal</td> + <td align="left">rgb(128, 128, 128)</td> + <td align="left">#808080</td> + + </tr> + + <tr> + <td align="right">gray50</td> + <td align="center" style="background-color:rgb(127, 127, 127)">gray50</td> + <td align="left">rgb(127, 127, 127)</td> + <td align="left">#7F7F7F</td> + + </tr> + + <tr> + <td align="right">grey50</td> + <td align="center" style="background-color:rgb(127, 127, 127)">grey50</td> + <td align="left">rgb(127, 127, 127)</td> + <td align="left">#7F7F7F</td> + + </tr> + + <tr> + <td align="right">gray</td> + <td align="center" style="background-color:rgb(126, 126, 126)">gray</td> + <td align="left">rgb(126, 126, 126)</td> + <td align="left">#7E7E7E</td> + + </tr> + + <tr> + <td align="right">gray49</td> + <td align="center" style="background-color:rgb(125, 125, 125)">gray49</td> + <td align="left">rgb(125, 125, 125)</td> + <td align="left">#7D7D7D</td> + + </tr> + + <tr> + <td align="right">grey49</td> + <td align="center" style="background-color:rgb(125, 125, 125)">grey49</td> + <td align="left">rgb(125, 125, 125)</td> + <td align="left">#7D7D7D</td> + + </tr> + + <tr> + <td align="right">gray48</td> + <td align="center" style="background-color:rgb(122, 122, 122)">gray48</td> + <td align="left">rgb(122, 122, 122)</td> + <td align="left">#7A7A7A</td> + + </tr> + + <tr> + <td align="right">grey48</td> + <td align="center" style="background-color:rgb(122, 122, 122)">grey48</td> + <td align="left">rgb(122, 122, 122)</td> + <td align="left">#7A7A7A</td> + + </tr> + + <tr> + <td align="right">gray47</td> + <td align="center" style="background-color:rgb(120, 120, 120)">gray47</td> + <td align="left">rgb(120, 120, 120)</td> + <td align="left">#787878</td> + + </tr> + + <tr> + <td align="right">grey47</td> + <td align="center" style="background-color:rgb(120, 120, 120)">grey47</td> + <td align="left">rgb(120, 120, 120)</td> + <td align="left">#787878</td> + + </tr> + + <tr> + <td align="right">gray46</td> + <td align="center" style="background-color:rgb(117, 117, 117)">gray46</td> + <td align="left">rgb(117, 117, 117)</td> + <td align="left">#757575</td> + + </tr> + + <tr> + <td align="right">grey46</td> + <td align="center" style="background-color:rgb(117, 117, 117)">grey46</td> + <td align="left">rgb(117, 117, 117)</td> + <td align="left">#757575</td> + + </tr> + + <tr> + <td align="right">gray45</td> + <td align="center" style="background-color:rgb(115, 115, 115)">gray45</td> + <td align="left">rgb(115, 115, 115)</td> + <td align="left">#737373</td> + + </tr> + + <tr> + <td align="right">grey45</td> + <td align="center" style="background-color:rgb(115, 115, 115)">grey45</td> + <td align="left">rgb(115, 115, 115)</td> + <td align="left">#737373</td> + + </tr> + + <tr> + <td align="right">gray44</td> + <td align="center" style="background-color:rgb(112, 112, 112)">gray44</td> + <td align="left">rgb(112, 112, 112)</td> + <td align="left">#707070</td> + + </tr> + + <tr> + <td align="right">grey44</td> + <td align="center" style="background-color:rgb(112, 112, 112)">grey44</td> + <td align="left">rgb(112, 112, 112)</td> + <td align="left">#707070</td> + + </tr> + + <tr> + <td align="right">gray43</td> + <td align="center" style="background-color:rgb(110, 110, 110)">gray43</td> + <td align="left">rgb(110, 110, 110)</td> + <td align="left">#6E6E6E</td> + + </tr> + + <tr> + <td align="right">grey43</td> + <td align="center" style="background-color:rgb(110, 110, 110)">grey43</td> + <td align="left">rgb(110, 110, 110)</td> + <td align="left">#6E6E6E</td> + + </tr> + + <tr> + <td align="right">gray42</td> + <td align="center" style="background-color:rgb(107, 107, 107)">gray42</td> + <td align="left">rgb(107, 107, 107)</td> + <td align="left">#6B6B6B</td> + + </tr> + + <tr> + <td align="right">grey42</td> + <td align="center" style="background-color:rgb(107, 107, 107)">grey42</td> + <td align="left">rgb(107, 107, 107)</td> + <td align="left">#6B6B6B</td> + + </tr> + + <tr> + <td align="right">DimGray</td> + <td align="center" style="background-color:rgb(105, 105, 105)">DimGray</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">DimGrey</td> + <td align="center" style="background-color:rgb(105, 105, 105)">DimGrey</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">gray41</td> + <td align="center" style="background-color:rgb(105, 105, 105)">gray41</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">grey41</td> + <td align="center" style="background-color:rgb(105, 105, 105)">grey41</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">gray40</td> + <td align="center" style="background-color:rgb(102, 102, 102)">gray40</td> + <td align="left">rgb(102, 102, 102)</td> + <td align="left">#666666</td> + + </tr> + + <tr> + <td align="right">grey40</td> + <td align="center" style="background-color:rgb(102, 102, 102)">grey40</td> + <td align="left">rgb(102, 102, 102)</td> + <td align="left">#666666</td> + + </tr> + + <tr> + <td align="right">gray39</td> + <td align="center" style="background-color:rgb( 99, 99, 99)">gray39</td> + <td align="left">rgb( 99, 99, 99)</td> + <td align="left">#636363</td> + + </tr> + + <tr> + <td align="right">grey39</td> + <td align="center" style="background-color:rgb( 99, 99, 99)">grey39</td> + <td align="left">rgb( 99, 99, 99)</td> + <td align="left">#636363</td> + + </tr> + + <tr> + <td align="right">gray38</td> + <td align="center" style="background-color:rgb( 97, 97, 97)">gray38</td> + <td align="left">rgb( 97, 97, 97)</td> + <td align="left">#616161</td> + + </tr> + + <tr> + <td align="right">grey38</td> + <td align="center" style="background-color:rgb( 97, 97, 97)">grey38</td> + <td align="left">rgb( 97, 97, 97)</td> + <td align="left">#616161</td> + + </tr> + + <tr> + <td align="right">gray37</td> + <td align="center" style="background-color:rgb( 94, 94, 94)">gray37</td> + <td align="left">rgb( 94, 94, 94)</td> + <td align="left">#5E5E5E</td> + + </tr> + + <tr> + <td align="right">grey37</td> + <td align="center" style="background-color:rgb( 94, 94, 94)">grey37</td> + <td align="left">rgb( 94, 94, 94)</td> + <td align="left">#5E5E5E</td> + + </tr> + + <tr> + <td align="right">gray36</td> + <td align="center" style="background-color:rgb( 92, 92, 92)">gray36</td> + <td align="left">rgb( 92, 92, 92)</td> + <td align="left">#5C5C5C</td> + + </tr> + + <tr> + <td align="right">grey36</td> + <td align="center" style="background-color:rgb( 92, 92, 92)">grey36</td> + <td align="left">rgb( 92, 92, 92)</td> + <td align="left">#5C5C5C</td> + + </tr> + + <tr> + <td align="right">gray35</td> + <td align="center" style="background-color:rgb( 89, 89, 89)">gray35</td> + <td align="left">rgb( 89, 89, 89)</td> + <td align="left">#595959</td> + + </tr> + + <tr> + <td align="right">grey35</td> + <td align="center" style="background-color:rgb( 89, 89, 89)">grey35</td> + <td align="left">rgb( 89, 89, 89)</td> + <td align="left">#595959</td> + + </tr> + + <tr> + <td align="right">gray34</td> + <td align="center" style="background-color:rgb( 87, 87, 87)">gray34</td> + <td align="left">rgb( 87, 87, 87)</td> + <td align="left">#575757</td> + + </tr> + + <tr> + <td align="right">grey34</td> + <td align="center" style="background-color:rgb( 87, 87, 87)">grey34</td> + <td align="left">rgb( 87, 87, 87)</td> + <td align="left">#575757</td> + + </tr> + + <tr> + <td align="right">gray33</td> + <td align="center" style="background-color:rgb( 84, 84, 84)">gray33</td> + <td align="left">rgb( 84, 84, 84)</td> + <td align="left">#545454</td> + + </tr> + + <tr> + <td align="right">grey33</td> + <td align="center" style="background-color:rgb( 84, 84, 84)">grey33</td> + <td align="left">rgb( 84, 84, 84)</td> + <td align="left">#545454</td> + + </tr> + + <tr> + <td align="right">gray32</td> + <td align="center" style="background-color:rgb( 82, 82, 82)">gray32</td> + <td align="left">rgb( 82, 82, 82)</td> + <td align="left">#525252</td> + + </tr> + + <tr> + <td align="right">grey32</td> + <td align="center" style="background-color:rgb( 82, 82, 82)">grey32</td> + <td align="left">rgb( 82, 82, 82)</td> + <td align="left">#525252</td> + + </tr> + + <tr> + <td align="right">gray31</td> + <td align="center" style="background-color:rgb( 79, 79, 79)">gray31</td> + <td align="left">rgb( 79, 79, 79)</td> + <td align="left">#4F4F4F</td> + + </tr> + + <tr> + <td align="right">grey31</td> + <td align="center" style="background-color:rgb( 79, 79, 79)">grey31</td> + <td align="left">rgb( 79, 79, 79)</td> + <td align="left">#4F4F4F</td> + + </tr> + + <tr> + <td align="right">gray30</td> + <td align="center" style="background-color:rgb( 77, 77, 77)">gray30</td> + <td align="left">rgb( 77, 77, 77)</td> + <td align="left">#4D4D4D</td> + + </tr> + + <tr> + <td align="right">grey30</td> + <td align="center" style="background-color:rgb( 77, 77, 77)">grey30</td> + <td align="left">rgb( 77, 77, 77)</td> + <td align="left">#4D4D4D</td> + + </tr> + + <tr> + <td align="right">gray29</td> + <td align="center" style="background-color:rgb( 74, 74, 74)">gray29</td> + <td align="left">rgb( 74, 74, 74)</td> + <td align="left">#4A4A4A</td> + + </tr> + + <tr> + <td align="right">grey29</td> + <td align="center" style="background-color:rgb( 74, 74, 74)">grey29</td> + <td align="left">rgb( 74, 74, 74)</td> + <td align="left">#4A4A4A</td> + + </tr> + + <tr> + <td align="right">gray28</td> + <td align="center" style="background-color:rgb( 71, 71, 71)">gray28</td> + <td align="left">rgb( 71, 71, 71)</td> + <td align="left">#474747</td> + + </tr> + + <tr> + <td align="right">grey28</td> + <td align="center" style="background-color:rgb( 71, 71, 71)">grey28</td> + <td align="left">rgb( 71, 71, 71)</td> + <td align="left">#474747</td> + + </tr> + + <tr> + <td align="right">gray27</td> + <td align="center" style="background-color:rgb( 69, 69, 69)">gray27</td> + <td align="left">rgb( 69, 69, 69)</td> + <td align="left">#454545</td> + + </tr> + + <tr> + <td align="right">grey27</td> + <td align="center" style="background-color:rgb( 69, 69, 69)">grey27</td> + <td align="left">rgb( 69, 69, 69)</td> + <td align="left">#454545</td> + + </tr> + + <tr> + <td align="right">gray26</td> + <td align="center" style="background-color:rgb( 66, 66, 66)">gray26</td> + <td align="left">rgb( 66, 66, 66)</td> + <td align="left">#424242</td> + + </tr> + + <tr> + <td align="right">grey26</td> + <td align="center" style="background-color:rgb( 66, 66, 66)">grey26</td> + <td align="left">rgb( 66, 66, 66)</td> + <td align="left">#424242</td> + + </tr> + + <tr> + <td align="right">gray25</td> + <td align="center" style="background-color:rgb( 64, 64, 64)">gray25</td> + <td align="left">rgb( 64, 64, 64)</td> + <td align="left">#404040</td> + + </tr> + + <tr> + <td align="right">grey25</td> + <td align="center" style="background-color:rgb( 64, 64, 64)">grey25</td> + <td align="left">rgb( 64, 64, 64)</td> + <td align="left">#404040</td> + + </tr> + + <tr> + <td align="right">gray24</td> + <td align="center" style="background-color:rgb( 61, 61, 61)">gray24</td> + <td align="left">rgb( 61, 61, 61)</td> + <td align="left">#3D3D3D</td> + + </tr> + + <tr> + <td align="right">grey24</td> + <td align="center" style="background-color:rgb( 61, 61, 61)">grey24</td> + <td align="left">rgb( 61, 61, 61)</td> + <td align="left">#3D3D3D</td> + + </tr> + + <tr> + <td align="right">gray23</td> + <td align="center" style="background-color:rgb( 59, 59, 59)">gray23</td> + <td align="left">rgb( 59, 59, 59)</td> + <td align="left">#3B3B3B</td> + + </tr> + + <tr> + <td align="right">grey23</td> + <td align="center" style="background-color:rgb( 59, 59, 59)">grey23</td> + <td align="left">rgb( 59, 59, 59)</td> + <td align="left">#3B3B3B</td> + + </tr> + + <tr> + <td align="right">gray22</td> + <td align="center" style="background-color:rgb( 56, 56, 56)">gray22</td> + <td align="left">rgb( 56, 56, 56)</td> + <td align="left">#383838</td> + + </tr> + + <tr> + <td align="right">grey22</td> + <td align="center" style="background-color:rgb( 56, 56, 56)">grey22</td> + <td align="left">rgb( 56, 56, 56)</td> + <td align="left">#383838</td> + + </tr> + + <tr> + <td align="right">gray21</td> + <td align="center" style="background-color:rgb( 54, 54, 54)">gray21</td> + <td align="left">rgb( 54, 54, 54)</td> + <td align="left">#363636</td> + + </tr> + + <tr> + <td align="right">grey21</td> + <td align="center" style="background-color:rgb( 54, 54, 54)">grey21</td> + <td align="left">rgb( 54, 54, 54)</td> + <td align="left">#363636</td> + + </tr> + + <tr> + <td align="right">gray20</td> + <td align="center" style="background-color:rgb( 51, 51, 51)">gray20</td> + <td align="left">rgb( 51, 51, 51)</td> + <td align="left">#333333</td> + + </tr> + + <tr> + <td align="right">grey20</td> + <td align="center" style="background-color:rgb( 51, 51, 51)">grey20</td> + <td align="left">rgb( 51, 51, 51)</td> + <td align="left">#333333</td> + + </tr> + + <tr> + <td align="right">gray19</td> + <td align="center" style="background-color:rgb( 48, 48, 48)">gray19</td> + <td align="left">rgb( 48, 48, 48)</td> + <td align="left">#303030</td> + + </tr> + + <tr> + <td align="right">grey19</td> + <td align="center" style="background-color:rgb( 48, 48, 48)">grey19</td> + <td align="left">rgb( 48, 48, 48)</td> + <td align="left">#303030</td> + + </tr> + + <tr> + <td align="right">gray18</td> + <td align="center" style="background-color:rgb( 46, 46, 46)">gray18</td> + <td align="left">rgb( 46, 46, 46)</td> + <td align="left">#2E2E2E</td> + + </tr> + + <tr> + <td align="right">grey18</td> + <td align="center" style="background-color:rgb( 46, 46, 46)">grey18</td> + <td align="left">rgb( 46, 46, 46)</td> + <td align="left">#2E2E2E</td> + + </tr> + + <tr> + <td align="right">gray17</td> + <td align="center" style="background-color:rgb( 43, 43, 43)">gray17</td> + <td align="left">rgb( 43, 43, 43)</td> + <td align="left">#2B2B2B</td> + + </tr> + + <tr> + <td align="right">grey17</td> + <td align="center" style="background-color:rgb( 43, 43, 43)">grey17</td> + <td align="left">rgb( 43, 43, 43)</td> + <td align="left">#2B2B2B</td> + + </tr> + + <tr> + <td align="right">gray16</td> + <td align="center" style="background-color:rgb( 41, 41, 41)">gray16</td> + <td align="left">rgb( 41, 41, 41)</td> + <td align="left">#292929</td> + + </tr> + + <tr> + <td align="right">grey16</td> + <td align="center" style="background-color:rgb( 41, 41, 41)">grey16</td> + <td align="left">rgb( 41, 41, 41)</td> + <td align="left">#292929</td> + + </tr> + + <tr> + <td align="right">gray15</td> + <td align="center" style="background-color:rgb( 38, 38, 38)">gray15</td> + <td align="left">rgb( 38, 38, 38)</td> + <td align="left">#262626</td> + + </tr> + + <tr> + <td align="right">grey15</td> + <td align="center" style="background-color:rgb( 38, 38, 38)">grey15</td> + <td align="left">rgb( 38, 38, 38)</td> + <td align="left">#262626</td> + + </tr> + + <tr> + <td align="right">gray14</td> + <td align="center" style="background-color:rgb( 36, 36, 36)">gray14</td> + <td align="left">rgb( 36, 36, 36)</td> + <td align="left">#242424</td> + + </tr> + + <tr> + <td align="right">grey14</td> + <td align="center" style="background-color:rgb( 36, 36, 36)">grey14</td> + <td align="left">rgb( 36, 36, 36)</td> + <td align="left">#242424</td> + + </tr> + + <tr> + <td align="right">gray13</td> + <td align="center" style="background-color:rgb( 33, 33, 33)">gray13</td> + <td align="left">rgb( 33, 33, 33)</td> + <td align="left">#212121</td> + + </tr> + + <tr> + <td align="right">grey13</td> + <td align="center" style="background-color:rgb( 33, 33, 33)">grey13</td> + <td align="left">rgb( 33, 33, 33)</td> + <td align="left">#212121</td> + + </tr> + + <tr> + <td align="right">gray12</td> + <td align="center" style="background-color:rgb( 31, 31, 31)">gray12</td> + <td align="left">rgb( 31, 31, 31)</td> + <td align="left">#1F1F1F</td> + + </tr> + + <tr> + <td align="right">grey12</td> + <td align="center" style="background-color:rgb( 31, 31, 31)">grey12</td> + <td align="left">rgb( 31, 31, 31)</td> + <td align="left">#1F1F1F</td> + + </tr> + + <tr> + <td align="right">gray11</td> + <td align="center" style="background-color:rgb( 28, 28, 28)">gray11</td> + <td align="left">rgb( 28, 28, 28)</td> + <td align="left">#1C1C1C</td> + + </tr> + + <tr> + <td align="right">grey11</td> + <td align="center" style="background-color:rgb( 28, 28, 28)">grey11</td> + <td align="left">rgb( 28, 28, 28)</td> + <td align="left">#1C1C1C</td> + + </tr> + + <tr> + <td align="right">gray10</td> + <td align="center" style="background-color:rgb( 26, 26, 26)">gray10</td> + <td align="left">rgb( 26, 26, 26)</td> + <td align="left">#1A1A1A</td> + + </tr> + + <tr> + <td align="right">grey10</td> + <td align="center" style="background-color:rgb( 26, 26, 26)">grey10</td> + <td align="left">rgb( 26, 26, 26)</td> + <td align="left">#1A1A1A</td> + + </tr> + + <tr> + <td align="right">gray9</td> + <td align="center" style="background-color:rgb( 23, 23, 23)">gray9</td> + <td align="left">rgb( 23, 23, 23)</td> + <td align="left">#171717</td> + + </tr> + + <tr> + <td align="right">grey9</td> + <td align="center" style="background-color:rgb( 23, 23, 23)">grey9</td> + <td align="left">rgb( 23, 23, 23)</td> + <td align="left">#171717</td> + + </tr> + + <tr> + <td align="right">gray8</td> + <td align="center" style="background-color:rgb( 20, 20, 20)">gray8</td> + <td align="left">rgb( 20, 20, 20)</td> + <td align="left">#141414</td> + + </tr> + + <tr> + <td align="right">grey8</td> + <td align="center" style="background-color:rgb( 20, 20, 20)">grey8</td> + <td align="left">rgb( 20, 20, 20)</td> + <td align="left">#141414</td> + + </tr> + + <tr> + <td align="right">gray7</td> + <td align="center" style="background-color:rgb( 18, 18, 18)">gray7</td> + <td align="left">rgb( 18, 18, 18)</td> + <td align="left">#121212</td> + + </tr> + + <tr> + <td align="right">grey7</td> + <td align="center" style="background-color:rgb( 18, 18, 18)">grey7</td> + <td align="left">rgb( 18, 18, 18)</td> + <td align="left">#121212</td> + + </tr> + + <tr> + <td align="right">gray6</td> + <td align="center" style="background-color:rgb( 15, 15, 15)">gray6</td> + <td align="left">rgb( 15, 15, 15)</td> + <td align="left">#0F0F0F</td> + + </tr> + + <tr> + <td align="right">grey6</td> + <td align="center" style="background-color:rgb( 15, 15, 15)">grey6</td> + <td align="left">rgb( 15, 15, 15)</td> + <td align="left">#0F0F0F</td> + + </tr> + + <tr> + <td align="right">gray5</td> + <td align="center" style="background-color:rgb( 13, 13, 13)">gray5</td> + <td align="left">rgb( 13, 13, 13)</td> + <td align="left">#0D0D0D</td> + + </tr> + + <tr> + <td align="right">grey5</td> + <td align="center" style="background-color:rgb( 13, 13, 13)">grey5</td> + <td align="left">rgb( 13, 13, 13)</td> + <td align="left">#0D0D0D</td> + + </tr> + + <tr> + <td align="right">gray4</td> + <td align="center" style="background-color:rgb( 10, 10, 10)">gray4</td> + <td align="left">rgb( 10, 10, 10)</td> + <td align="left">#0A0A0A</td> + + </tr> + + <tr> + <td align="right">grey4</td> + <td align="center" style="background-color:rgb( 10, 10, 10)">grey4</td> + <td align="left">rgb( 10, 10, 10)</td> + <td align="left">#0A0A0A</td> + + </tr> + + <tr> + <td align="right">gray3</td> + <td align="center" style="background-color:rgb( 8, 8, 8)">gray3</td> + <td align="left">rgb( 8, 8, 8)</td> + <td align="left">#080808</td> + + </tr> + + <tr> + <td align="right">grey3</td> + <td align="center" style="background-color:rgb( 8, 8, 8)">grey3</td> + <td align="left">rgb( 8, 8, 8)</td> + <td align="left">#080808</td> + + </tr> + + <tr> + <td align="right">gray2</td> + <td align="center" style="background-color:rgb( 5, 5, 5)">gray2</td> + <td align="left">rgb( 5, 5, 5)</td> + <td align="left">#050505</td> + + </tr> + + <tr> + <td align="right">grey2</td> + <td align="center" style="background-color:rgb( 5, 5, 5)">grey2</td> + <td align="left">rgb( 5, 5, 5)</td> + <td align="left">#050505</td> + + </tr> + + <tr> + <td align="right">gray1</td> + <td align="center" style="background-color:rgb( 3, 3, 3)">gray1</td> + <td align="left">rgb( 3, 3, 3)</td> + <td align="left">#030303</td> + + </tr> + + <tr> + <td align="right">grey1</td> + <td align="center" style="background-color:rgb( 3, 3, 3)">grey1</td> + <td align="left">rgb( 3, 3, 3)</td> + <td align="left">#030303</td> + + </tr> + + <tr> + <td align="right">black</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">black</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">gray0</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">gray0</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">grey0</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">grey0</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">opaque</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">opaque</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">none</td> + <td align="center" style="background-color:white">none</td> + <td align="left">rgba( 0, 0, 0, 0.0)</td> + <td align="left">#00000000</td> + + </tr> + + <tr> + <td align="right">transparent</td> + <td align="center" style="background-color:white">transparent</td> + <td align="left">rgba( 0, 0, 0, 0.0)</td> + <td align="left">#00000000</td> + + </tr> + + </tbody> +</table> + +</div> + +</div> + +</body></html> diff --git a/frontend/im/colors/css/jquery.fancybox.css b/frontend/im/colors/css/jquery.fancybox.css new file mode 100644 index 0000000..05a191e --- /dev/null +++ b/frontend/im/colors/css/jquery.fancybox.css @@ -0,0 +1,274 @@ +/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ +.fancybox-wrap, +.fancybox-skin, +.fancybox-outer, +.fancybox-inner, +.fancybox-image, +.fancybox-wrap iframe, +.fancybox-wrap object, +.fancybox-nav, +.fancybox-nav span, +.fancybox-tmp +{ + padding: 0; + margin: 0; + border: 0; + outline: none; + vertical-align: top; +} + +.fancybox-wrap { + position: absolute; + top: 0; + left: 0; + z-index: 8020; +} + +.fancybox-skin { + position: relative; + background: #f9f9f9; + color: #444; + text-shadow: none; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.fancybox-opened { + z-index: 8030; +} + +.fancybox-opened .fancybox-skin { + -webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); + box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); +} + +.fancybox-outer, .fancybox-inner { + position: relative; +} + +.fancybox-inner { + overflow: hidden; +} + +.fancybox-type-iframe .fancybox-inner { + -webkit-overflow-scrolling: touch; +} + +.fancybox-error { + color: #444; + font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + margin: 0; + padding: 15px; + white-space: nowrap; +} + +.fancybox-image, .fancybox-iframe { + display: block; + width: 100%; + height: 100%; +} + +.fancybox-image { + max-width: 100%; + max-height: 100%; +} + +#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { + background-image: url('../images/fancybox_sprite.png'); +} + +#fancybox-loading { + position: fixed; + top: 50%; + left: 50%; + margin-top: -22px; + margin-left: -22px; + background-position: 0 -108px; + opacity: 0.8; + cursor: pointer; + z-index: 8060; +} + +#fancybox-loading div { + width: 44px; + height: 44px; + background: url('../images/fancybox_loading.gif') center center no-repeat; +} + +.fancybox-close { + position: absolute; + top: -18px; + right: -18px; + width: 36px; + height: 36px; + cursor: pointer; + z-index: 8040; +} + +.fancybox-nav { + position: absolute; + top: 0; + width: 40%; + height: 100%; + cursor: pointer; + text-decoration: none; + background: transparent url('../images/blank.gif'); /* helps IE */ + -webkit-tap-highlight-color: rgba(0,0,0,0); + z-index: 8040; +} + +.fancybox-prev { + left: 0; +} + +.fancybox-next { + right: 0; +} + +.fancybox-nav span { + position: absolute; + top: 50%; + width: 36px; + height: 34px; + margin-top: -18px; + cursor: pointer; + z-index: 8040; + visibility: hidden; +} + +.fancybox-prev span { + left: 10px; + background-position: 0 -36px; +} + +.fancybox-next span { + right: 10px; + background-position: 0 -72px; +} + +.fancybox-nav:hover span { + visibility: visible; +} + +.fancybox-tmp { + position: absolute; + top: -99999px; + left: -99999px; + visibility: hidden; + max-width: 99999px; + max-height: 99999px; + overflow: visible !important; +} + +/* Overlay helper */ + +.fancybox-lock { + overflow: hidden !important; + width: auto; +} + +.fancybox-lock body { + overflow: hidden !important; +} + +.fancybox-lock-test { + overflow-y: hidden !important; +} + +.fancybox-overlay { + position: absolute; + top: 0; + left: 0; + overflow: hidden; + display: none; + z-index: 8010; + background: url('../images/fancybox_overlay.png'); +} + +.fancybox-overlay-fixed { + position: fixed; + bottom: 0; + right: 0; +} + +.fancybox-lock .fancybox-overlay { + overflow: auto; + overflow-y: scroll; +} + +/* Title helper */ + +.fancybox-title { + visibility: hidden; + font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; + position: relative; + text-shadow: none; + z-index: 8050; +} + +.fancybox-opened .fancybox-title { + visibility: visible; +} + +.fancybox-title-float-wrap { + position: absolute; + bottom: 0; + right: 50%; + margin-bottom: -35px; + z-index: 8050; + text-align: center; +} + +.fancybox-title-float-wrap .child { + display: inline-block; + margin-right: -100%; + padding: 2px 20px; + background: transparent; /* Fallback for web browsers that doesn't support RGBa */ + background: rgba(0, 0, 0, 0.8); + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; + text-shadow: 0 1px 2px #222; + color: #FFF; + font-weight: bold; + line-height: 24px; + white-space: nowrap; +} + +.fancybox-title-outside-wrap { + position: relative; + margin-top: 10px; + color: #fff; +} + +.fancybox-title-inside-wrap { + padding-top: 10px; +} + +.fancybox-title-over-wrap { + position: absolute; + bottom: 0; + left: 0; + color: #fff; + padding: 10px; + background: #000; + background: rgba(0, 0, 0, .8); +} + +/*Retina graphics!*/ +@media only screen and (-webkit-min-device-pixel-ratio: 1.5), + only screen and (min--moz-device-pixel-ratio: 1.5), + only screen and (min-device-pixel-ratio: 1.5){ + + #fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { + background-image: url('../images/fancybox_sprite@2x.png'); + background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/ + } + + #fancybox-loading div { + background-image: url('../images/fancybox_loading@2x.gif'); + background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/ + } +}
\ No newline at end of file diff --git a/frontend/im/colors/css/style.css b/frontend/im/colors/css/style.css new file mode 100644 index 0000000..49d4b48 --- /dev/null +++ b/frontend/im/colors/css/style.css @@ -0,0 +1,264 @@ +body { + margin:0; +} +.hide{ + display:none; +} +#colorpicker +{ + position: fixed; + top: 0px; + left: 0px; + height:100%; + width:100%; + overflow-y: scroll; + font-family:helvetica; + font-size:10px; + background-color: gray; + background-color: black; + background-image: url("../images/bg.dither.gif"); +} +#infoswitch, #hexswitch, #backgroundswitch +{ + background-image:url("../images/gradient.jpg"); + cursor:pointer; +} +#bg_menu { + height: 100px; + background-color:silver; +} +.bgOptions{ + font-family: 'Chivo', sans-serif; + font-style: italic; + font-size: 0.6em; + cursor: pointer; +} +#bg1{ +background-color: black; +background-image: url("../images/bg.dither.gif"); +} +#bg1text{ + background: rgb(204,204,204); + background-image: none; +} +#bg2{ +background-color: black; +color: whitesmoke; +} +#bg3{ +background-color: white; +color: black; +} +#bg4{ +background-color: gray; +color: black; +} +#bg5{} +#preview { + height:150px; +} +#transparent,#submitvalue,#addfavlist,#openfavlist { + margin-top:0.5em; + font-size:12px; +} +#submitvalue{ + text-align: center; +} +#namespace { + width:inherit; +} +#container { + margin:0 auto; + width:31%; + padding-top:100px; + padding-right:10px; + padding-left:10px; + text-align:center; + font-size:0; + margin-bottom:14px; +} +#container div +{ + text-align:left; + display: -moz-inline-stack; + display:inline-block; + vertical-align:bottom; + min-height: 30px; + zoom: 1; + word-wrap: break-word; + *display: inline; + cursor:pointer; +} +.colors +{ + font-size: 9px; + margin:2px 2px 0px 0px; +} +#colornames { + color:white; + z-index:12; + position:fixed; + top:50px; + left:2%; + width:400px; + font-size: 49px; + text-shadow: black 1px 2px; + display: block; +} +#infoswitch, #hexswitch, #backgroundswitch { + background-image:url('../images/gradient.jpg'); + cursor:pointer; + font-size: 19px; + text-shadow: none; +} +#infoswitch span{ + display: none; +} +#switches { + + position:fixed; + top: 0px; + right:1.2em; + width: 334px; + font-size:20px; + border-style: groove; + border-width: 4px; + background-color:gray; + padding:2px; + box-shadow: 10px 10px 5px #141414; + z-index: 10; + overflow: visible; + +} +.switches_depressed{ + color: #aaa; +} +#nameholder, #namespace { + font-size: 30px; + width:70%; +} +.defaulttrans{ + color:#141414; + box-shadow:10px 10px 5px #141414; + background-color:#D1D1D1; + border-width:2px; + border-style:outset; + cursor:pointer; +} +.hovertrans{ + background-color:DarkGrey; + color:#383838; + box-shadow:5px 5px 2px #141414; +} +#vasebackground { + position: fixed; + z-index: 2; + height: 120px; + width: 69px; + top: 2px; + right: 30px; + background-color: rgb(171, 171, 171); +} +#vase { + position:fixed; + z-index:3; + height:120px; + width:69px; + top:2px; + right:30px; + background-image:url("../images/vase.png"); +} +#vaseshim { + position:fixed; + z-index:4; + height:120px; + width:69px; + top:2px; + right:30px; + background-image:url("../images/vaseshim.png") +} +label { + display: inline-block; + width: 190px; + padding-right: 10px; + text-align: right; + color: #555; +} +#controls { + display: inline-block; + padding: 10px; + width: 430px; + height:402px; + position: absolute; + background-color: #fff; + background-image: url("../images/imcupbg.jpg"); + background-position: center center; +} +.shim { + height: 10px; + clear: both; + display: block; +} +#controls *{ + padding: 0; + margin: 0; + font-family: sans-serif; + font-size: 14px; +} +#controls a{ + color: #a39; + font-weight: bold; + text-decoration:underline; +} +#controls a:hover{ + cursor:pointer; + text-decoration:underline; +} +#noticeDlg { + display:none; +} +#favpanel{ + width:inherit; + background: lightgray; + margin-top: 15px; + padding-top: 10px; + padding-bottom: 10px; + height: 140px; + overflow-y: auto; +} +#favpanel .paneltitle{ + color:black; + font-size: 16px; + text-align:center; + width:inherit; + display:block; +} +.favcolor label{ + font-size: 12px; + text-align:left; + padding:0; + width:150px; + margin:0; + color:black; +} +.favcolor { + margin-right:3px; + margin-left:10px; + width:inherit; + display: block; +} +.clear { + clear:both; +} +.favmsg { + font-size: 13px; + color:red; + width:inherit; + text-align:center; + display:block; +} +.favcolorbox { + height:11px; + width:18px; + display:inline-block; +} diff --git a/frontend/im/colors/iframe.js b/frontend/im/colors/iframe.js new file mode 100644 index 0000000..4b7d2ac --- /dev/null +++ b/frontend/im/colors/iframe.js @@ -0,0 +1,25 @@ +$("#lnkcolorbox").click(function() { + $.fancybox.open({ + href : 'colors.htm', + width : 700, // set the width + height : 610, + fitToView : true, + autoDimensions:false, + autoSize:false, + type : 'iframe', + closeBtn : false, + padding : 5, + beforeShow : function(){ + $('.fancybox-iframe').contents().find('#submitvalue').click(function(){ + $('.fancybox-iframe').contents().find('form').submit(); + $.fancybox.close(); + }); + }, + beforeClose : function(){ + x = $('.fancybox-iframe').contents().find('#namespace').val(); + }, + afterClose: function(){ + $('#img-hue').val(x); + } + }); +}); diff --git a/frontend/im/colors/images/Thumbs.db b/frontend/im/colors/images/Thumbs.db Binary files differnew file mode 100644 index 0000000..ec01f6a --- /dev/null +++ b/frontend/im/colors/images/Thumbs.db diff --git a/frontend/im/colors/images/bg.dither.gif b/frontend/im/colors/images/bg.dither.gif Binary files differnew file mode 100644 index 0000000..670df08 --- /dev/null +++ b/frontend/im/colors/images/bg.dither.gif diff --git a/frontend/im/colors/images/blank.gif b/frontend/im/colors/images/blank.gif Binary files differnew file mode 100644 index 0000000..35d42e8 --- /dev/null +++ b/frontend/im/colors/images/blank.gif diff --git a/frontend/im/colors/images/fancybox_loading.gif b/frontend/im/colors/images/fancybox_loading.gif Binary files differnew file mode 100644 index 0000000..a03a40c --- /dev/null +++ b/frontend/im/colors/images/fancybox_loading.gif diff --git a/frontend/im/colors/images/fancybox_loading@2x.gif b/frontend/im/colors/images/fancybox_loading@2x.gif Binary files differnew file mode 100644 index 0000000..9205aeb --- /dev/null +++ b/frontend/im/colors/images/fancybox_loading@2x.gif diff --git a/frontend/im/colors/images/fancybox_overlay.png b/frontend/im/colors/images/fancybox_overlay.png Binary files differnew file mode 100644 index 0000000..a439139 --- /dev/null +++ b/frontend/im/colors/images/fancybox_overlay.png diff --git a/frontend/im/colors/images/fancybox_sprite.png b/frontend/im/colors/images/fancybox_sprite.png Binary files differnew file mode 100644 index 0000000..fd8d5ca --- /dev/null +++ b/frontend/im/colors/images/fancybox_sprite.png diff --git a/frontend/im/colors/images/fancybox_sprite@2x.png b/frontend/im/colors/images/fancybox_sprite@2x.png Binary files differnew file mode 100644 index 0000000..d0e4779 --- /dev/null +++ b/frontend/im/colors/images/fancybox_sprite@2x.png diff --git a/frontend/im/colors/images/gradient.jpg b/frontend/im/colors/images/gradient.jpg Binary files differnew file mode 100644 index 0000000..f3ff9f9 --- /dev/null +++ b/frontend/im/colors/images/gradient.jpg diff --git a/frontend/im/colors/images/hoverbackground.jpg b/frontend/im/colors/images/hoverbackground.jpg Binary files differnew file mode 100644 index 0000000..c1ef116 --- /dev/null +++ b/frontend/im/colors/images/hoverbackground.jpg diff --git a/frontend/im/colors/images/imcupbg.jpg b/frontend/im/colors/images/imcupbg.jpg Binary files differnew file mode 100644 index 0000000..b3cf3f5 --- /dev/null +++ b/frontend/im/colors/images/imcupbg.jpg diff --git a/frontend/im/colors/images/user_convo.png b/frontend/im/colors/images/user_convo.png Binary files differnew file mode 100644 index 0000000..9d3d55e --- /dev/null +++ b/frontend/im/colors/images/user_convo.png diff --git a/frontend/im/colors/images/vase.png b/frontend/im/colors/images/vase.png Binary files differnew file mode 100644 index 0000000..153e72b --- /dev/null +++ b/frontend/im/colors/images/vase.png diff --git a/frontend/im/colors/images/vaseshim.png b/frontend/im/colors/images/vaseshim.png Binary files differnew file mode 100644 index 0000000..7dbd352 --- /dev/null +++ b/frontend/im/colors/images/vaseshim.png diff --git a/frontend/im/colors/index.html b/frontend/im/colors/index.html new file mode 100644 index 0000000..541dc40 --- /dev/null +++ b/frontend/im/colors/index.html @@ -0,0 +1,108 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<link rel="stylesheet" type="text/css" href="./css/style.css"> +</head> +<body> + <div id="colorpicker"> + <div id="container"> + <div id="d0" class="colors"></div> + </div> + <div id="colornames">CLICK TO CHOOSE THE COLOR</div> + <div id="switches" title="click to drag"> + <form action="" method="post"> + <span class="subtitle">OPTIONS</span> + <div id="hexswitch" class="theswitches">CLICK TO SWITCH TO RGB VALUES</div> + <input type="hidden" name="opt_hexswitch" id="opt_hexswitch" /> + <br /> + <div id="infoswitch" class="theswitches">CLICK TO TOGGLE PALATE INFO<span id="infospace">(NONE)</span></div> + <input type="hidden" name="opt_infoswitch" id="opt_infoswitch" /> + <br /> + <div id="backgroundswitch" class="theswitches">BACKGROUNDS...</div> + <div id="bg_menu" class="hide"> + <div class="bgOptions" id="bg1"><span id="bg1text">Dithered</span></div> + <div class="bgOptions" id="bg2">Black</div> + <div class="bgOptions" id="bg3">White</div> + <div class="bgOptions" id="bg4">Gray</div> + <div class="bgOptions" id="bg5"> + <label for="chooseyourown">Choose your own (add a Url)</label> + <input type="text" value="" id="bgURI" name="bgURI"> + <input type="hidden" name="opt_bgURI" id="opt_bgURI" /> + </div> + <div class="bgOptions" id="selectors"></div> + </div> + <input type="hidden" name="opt_bgColor" id="opt_bgColor" /> + <br /> + <div id="preview" style="width: 206px; height: 127px; background-color: rgb(171, 171, 171); border-style: none;"></div> + <div class="subtitle">YOU WILL CHOOSE:<br /> + <input type="text" id="namespace" name="namespace" class="subtitle" /> + + <div id="submitvalue" class="defaulttrans">PICK</div> + <br /> + <span id="transparent">to choose transparent: + <span id="transbutton" class="defaulttrans">TRANSPARENT</span><span id="extra" class="smalltitle"></span> + </span> + </br> + <span id="addfavlist" class="defaulttrans">Add to Favorites</span> + <span id="openfavlist" class="defaulttrans">Open Favorties</span> + </div> + <span id="noticeDlg"></span> + <div id="favpanel" style="display:none;"> + <input type="hidden" name="favcolors" id="favcolors" /> + <label class="paneltitle">FAVORITES</label> + <span class="favcolor" style="display:none;"><input name="favcolor" type="radio" id="favnone" onclick="selectfavColor('');"><label> </label><span class="favcolorbox"> </span></span> + </div> + <div class="clear"></div> + </form> + </div> +<!-- <div id="vasebackground"></div>--> +<!-- <div id="vase"></div>--> +<!-- <div id="vaseshim"></div> --> + </div> + <script type="text/javascript" src="./js/jquery-1.10.1.js"></script> + <script type="text/javascript" src="./js/data.js"></script> + <script type="text/javascript" src="./js/colorpicker.js"></script> + <script type="text/javascript" src="./js/jquery.fancybox.js?v=2.1.5"></script> + <script type="text/javascript" src="./js/jquery.remember-state.js"></script> + <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min.js"></script> + <script type="text/javascript"> + $(document).ready(function(){ + $('#submitvalue').click(function(){ + $("form").rememberState("save"); + }); + $(function() { + $("form").rememberState({ + objName: "color_info", + noticeDialog:$('#noticeDlg').html("<a href=\"#\" id=\"linkrestore\">Restore</a>"), + noticeSelector:'.remember_state' + }).submit(false); + $('#linkrestore').click(); + ColorPicker.loadColorStorage(); + }); + var lastoffset = 0; + $(window).scroll(function(){ + if($(this).scrollTop() == 0) { + $('#switches').css({'top': '118px' }); + } + if (bscroll) + { + if($(this).scrollTop() != 0) { + var fcolors = $('#favcolors').val(); + var clist=fcolors.split(separate); + if (lastoffset < $(this).scrollTop()) { + $('#switches').css({'top': (118 - 19 * (clist.length - 3)) + 'px' }); + } + } + } + lastoffset = $(this).scrollTop(); + }); + $("#switches").draggable() + window.onload = function () { + if ($("#favcolors").val()){ + ColorPicker.openfavourites() + } + } + }) + </script> +</body> +</html> diff --git a/frontend/im/colors/js/ancient.js b/frontend/im/colors/js/ancient.js new file mode 100644 index 0000000..5bf15c0 --- /dev/null +++ b/frontend/im/colors/js/ancient.js @@ -0,0 +1,528 @@ +var old = {};
+var colorsheight;
+var colorswidth;
+var widthratio = 7;
+var numberacross = 10;
+var backgroundstate = 2;
+var infostate = 0;
+var names = true;
+var hexes = false;
+var rgbs = false;
+var favshow = false;
+var selectedname = "";
+var selectedrgb;
+var curfavcolor = "";
+var curfavcolorId = "";
+var separate = ';';
+//---------element objects----------
+var transbutton = $('#transbutton');
+var submitvalue = $('#submitvalue');
+var addfav = $('#addfavlist');
+var openfav = $('#openfavlist');
+var preview = $('#preview');
+var colornames = $('#colornames');
+var namespace = $('#namespace');
+var extra = $('#extra');
+var container = $('#container');
+var switches = $('#switches');
+var transparent = $('#transparent');
+var infospace = $('#infospace');
+var infoswitch = $('#infoswitch');
+var backgroundswitch = $('#backgroundswitch');
+var bg_menu = $('#bg_menu');
+var vasebackground = $('#vasebackground');
+var hexswitch = $('#hexswitch');
+var favpanel = $('#favpanel');
+var orgheight = 0;
+var bscroll = false;
+//----------------------------------
+$(function(){
+ ColorPicker.show();
+});
+
+function selectfavColor(selcolor, id)
+{
+ addfav.html('Remove from Favorites');
+ curfavcolor = selcolor;
+ curfavcolorId = id;
+ var rgbregex = /rgb\((\d{1,3}), (\d{1,3}), (\d{1,3})\)/;
+ var hexregex = /^#(?:[0-9a-f]{3}){1,2}$/i;
+ hexes = false;
+ names = false;
+ rgbs = false;
+ var match = rgbregex.exec(selcolor);
+ if (match != null) {
+ selectedname = rgbtoname[selcolor];
+ selectedrgb = selcolor;
+ hexes = true;
+ hexswitch.html('CLICK TO SWITCH TO HEX VALUES');
+ } else if((match = hexregex.exec(selcolor))!= null) {
+ names = true;
+ selectedrgb = hextorgb[selcolor];
+ selectedname = rgbtoname[selectedrgb];
+ hexswitch.html('CLICK TO SWITCH TO COLOR NAMES');
+ } else {
+ selectedname = selcolor;
+ selectedrgb = hextorgb[nametohex[selectedname]];
+ hexswitch.html('CLICK TO SWITCH TO RGB VALUES');
+ rgbs = true;
+ }
+ colornames.html(selcolor);
+ namespace.val(selcolor);
+ preview.css({'background-color':selectedrgb,'border-style':'none'});
+ vasebackground.css('background-color',selectedrgb);
+}
+
+var ColorPicker = {
+ GoldenFuncs: {
+ regolden: function(num) {
+ ratio = (1+Math.sqrt(5))/2;
+ newnum = Math.round(num/ratio);
+ return newnum;
+ },
+ goldenize: function(num) {
+ ratio = (1+Math.sqrt(5))/2;
+ newnum = Math.round(num*ratio);
+ return newnum;
+ },
+ getproperty: function(idandselectr, propertystr) {
+ //turns css property width or height into an integer value
+ grab = $(idandselectr).css(propertystr);
+ grab = grab.slice(0,-2);
+ numval = parseInt(grab);
+ return numval;
+ },
+ makegolden: function(idandselectr, propertystr) {
+ result = ColorPicker.GoldenFuncs.getproperty(idandselectr, propertystr);
+ newval = ColorPicker.GoldenFuncs.goldenize(result) + 60;
+ propval = newval.toString()+'px';
+ if(propertystr == 'height') {
+ $(idandselectr).css('width', propval);
+ }else if(propertystr == 'width') {
+ $(idandselectr).css('height', propval);
+ }
+ }
+ },
+ Events: {
+ addEventListener: function(){
+ //--------event handler of transparent button-------
+ transbutton.click(function() {
+ namespace.val('transparent');
+ preview.css({'background-color':'transparent','border-style':'dashed','border-width':'2px'});
+ colornames.html('transparent');
+ colornames.fadeOut(100);
+ colornames.fadeIn(500);
+ extra.html('<br><br><span style="color:red;background-color:black;border-color:red; border-width:1px; border-style:solid; font-size:14px;">note: the .jpg image format does not support transparency</span>');
+ });
+ transbutton.hover(function(){ transbutton.addClass('hovertrans')},
+ function(){ transbutton.attr('class','defaulttrans')});
+ submitvalue.hover(function(){ submitvalue.addClass('hovertrans')},
+ function(){ submitvalue.attr('class','defaulttrans')});
+ addfav.hover(function(){ addfav.addClass('hovertrans')},
+ function(){ addfav.attr('class','defaulttrans')});
+ $('.bgOptions').click(function(){
+ if (this.id == "bg1")
+ {
+ $('#colorpicker').css({'background-image':'url("./images/bg.dither.gif")','background-color':'gray','background-color':'black'});
+ }else if(this.id == "bg5"){
+ $('#' + this.id).bind('keypress', function(event){
+ var key = event.which || event.keyCode;
+ if(key === 13) {
+ $('#colorpicker').css({'background-image':"url('" + $('#bgURI').val() + "')"});
+ $('#opt_bgURI').val($('#bgURI').val());
+ $('#bgURI').val('');
+ }
+ });
+ }else{
+ $('#colorpicker').css({'background-image':'none','background-color':$('#' + this.id).html().toLowerCase()});
+ }
+ $('#opt_bgColor').val(this.id);
+ });
+ //--------event handler over colorpanel-------
+ var firstwidth;
+ $('.colors').mouseover(function() {
+ extra.html("");
+ if(this.id != 'd0') {
+ $(this).css({'height':ColorPicker.GoldenFuncs.goldenize(colorsheight),
+ 'width':ColorPicker.GoldenFuncs.goldenize(colorswidth)});
+ firstwidth = container.css('width');
+ newwidth = firstwidth+ColorPicker.GoldenFuncs.goldenize(colorswidth)-colorswidth;
+ container.css('width',newwidth);
+ }
+ });
+ $('.colors').mouseout(function() {
+ $(this).css('height',colorsheight)
+ $(this).css('width', colorswidth)
+ container.css('width',firstwidth)
+ });
+ $('.colors').hover(function() {
+ var stringvalue = 'CLICK TO CHOOSE THE COLOR';
+ colornames.fadeOut(100);
+ colornames.fadeIn(500);
+ stringvalue = ColorPicker.showcolorname(this.id);
+ colornames.html(stringvalue);
+ });
+ $('.colors').click(function() {
+ selectednameid = $(this).attr('id')
+ selectedname = divtoname['#'+selectednameid];
+ selectedrgb = $(this).css('background-color');
+ ColorPicker.putitin();
+ });
+ //-------------others handler-------------------------------
+ infoswitch.hover(function(){infospace.show()}, function(){infospace.hide('slow')} );
+ infoswitch.click(function(){ColorPicker.switchcolorinfo()});
+ backgroundswitch.clicked = false;
+ backgroundswitch.click(function(){
+ if (! backgroundswitch.clicked){
+ bg_menu.slideDown("fast", function(){
+ backgroundswitch.clicked = true;
+ backgroundswitch.addClass("switches_depressed");
+ });
+ }else{
+ bg_menu.slideUp("fast", function(){
+ backgroundswitch.clicked = false;
+ backgroundswitch.removeClass("switches_depressed");
+ })
+ }
+ });
+ addfav.click(function(){ColorPicker.addfavourites()});
+ openfav.click(function(){ColorPicker.openfavourites()});
+ hexswitch.click(function(){ColorPicker.hexcolorswitch()});
+ $('.theswitches').hover(function(){ ColorPicker.switchhovercss(this.id, 'over') },
+ function(){ ColorPicker.switchhovercss(this.id, 'out') });
+ //-------handler for window resive----
+ $(window).resize(function()
+ {
+ ColorPicker.setupdimensions();
+ });
+ }
+ },
+ getcolorfromfavorite: function(fvalue){
+ var rgbregex = /rgb\((\d{1,3}), (\d{1,3}), (\d{1,3})\)/;
+ var hexregex = /^#(?:[0-9a-f]{3}){1,2}$/i;
+ var retcolor = '';
+ var match = rgbregex.exec(fvalue);
+ if (match != null) {
+ retcolor = fvalue;
+ } else if((match = hexregex.exec(fvalue))!= null) {
+ retcolor = hextorgb[fvalue];
+ } else {
+ retcolor = hextorgb[nametohex[fvalue]];
+ }
+ return retcolor;
+ },
+ initfavpanel: function(){
+ var fcolors = $('#favcolors').val();
+ var clist=fcolors.split(separate);
+ for(var i=0; i < clist.length; i++) {
+ if (clist[i] != '')
+ {
+ var colname = clist[i];
+ favpanel.append('<span class="favcolor" id="favcol' + i + '" ><input name="favcolor" type="radio" onclick="selectfavColor(\'' + clist[i]
+ + '\',\'favcol' + i +'\');"><label>' + colname + '</label><span class="favcolorbox" style="background-color:' + ColorPicker.getcolorfromfavorite(clist[i]) + '"> </span></span>');
+ }
+ }
+ },
+ existsfavcolor: function(fcolor) {
+ var fcolors = $('#favcolors').val();
+ var clist=fcolors.split(separate);
+ for(var i=0; i < clist.length; i++) {
+ if (clist[i] == fcolor)
+ {
+ return i;
+ }
+ }
+ return -1;
+ },
+ setpaneldimension: function(){
+ var fcolors = $('#favcolors').val();
+ var clist=fcolors.split(separate);
+ },
+ addfavourites: function() {
+ var fcolors = $('#favcolors').val();
+
+ if (curfavcolor != '') {
+ var clist=fcolors.split(separate);
+ var index = ColorPicker.existsfavcolor(curfavcolor);
+ if(index != 0 && index == clist.length - 1)
+ {
+ fcolors = fcolors.replace(separate + curfavcolor, '');
+ }else if(clist.length == 1) {
+ fcolors = fcolors.replace(curfavcolor, '');
+ }else{
+ fcolors = fcolors.replace(curfavcolor+ separate, '');
+ }
+ $('#' + curfavcolorId).remove();
+ addfav.html('Add to Favorites');
+ curfavcolor = "";
+ curfavcolorId = "";
+ $('#favnone').attr('checked','checked');
+ if (fcolors == '')
+ {
+ favpanel.hide();
+ favshow = false;
+ openfav.attr('class','defaulttrans');
+ }
+ }else {
+ if (ColorPicker.existsfavcolor(namespace.val()) == -1)
+ {
+ if (fcolors.length > 0) {
+ fcolors = fcolors + separate + namespace.val();
+ }else {
+ fcolors = namespace.val();
+ }
+ var colname = namespace.val();
+ var clist=fcolors.split(separate);
+ var id = clist.length - 1;
+ $('#favmsg').remove();
+ favpanel.append('<span class="favcolor" id="favcol' + id + '" ><input name="favcolor" type="radio" onclick="selectfavColor(\'' + namespace.val()
+ + '\',\'favcol' + id +'\');"><label>' + colname + '</label><span class="favcolorbox" style="background-color:' + ColorPicker.getcolorfromfavorite(namespace.val()) + '"> </span></span>');
+ }
+ }
+ $('#favcolors').val(fcolors);
+ ColorPicker.setpaneldimension();
+ },
+ openfavourites: function() {
+ if (favshow) {
+ favpanel.hide();
+ openfav.attr('class','defaulttrans');
+ favshow = false;
+ $('#favmsg').remove();
+ bscroll = false;
+ }else {
+ favpanel.show();
+ openfav.addClass('hovertrans');
+ favshow = true;
+ var fcolors = $('#favcolors').val();
+ if(fcolors == '') {
+ favpanel.append('<span class="favmsg" id="favmsg">No favourite colors.</span>');
+ }
+ bscroll = true;
+ ColorPicker.setpaneldimension();
+ }
+ addfav.html('Add to Favorites');
+ curfavcolor = "";
+ curfavcolorId = "";
+ $('.favcolor input[type=radio]').attr('checked',false);
+ },
+ loadColorStorage: function() {
+ var opts = $('#opt_hexswitch').val();
+ names = false;
+ rgbs = false;
+ hexes = false;
+ if(opts == 'names') {
+ selectedname = namespace.val();
+ selectedrgb = hextorgb[nametohex[selectedname]];
+ hexswitch.html('CLICK TO SWITCH TO RGB VALUES');
+ rgbs = true;
+ }else if(opts == 'rgbs') {
+ selectedname = rgbtoname[namespace.val()];
+ selectedrgb = namespace.val();
+ hexes = true;
+ hexswitch.html('CLICK TO SWITCH TO HEX VALUES')
+ }else if(opts == 'hexes') {
+ names = true;
+ selectedrgb = hextorgb[namespace.val()];
+ selectedname = rgbtoname[selectedrgb];
+ hexswitch.html('CLICK TO SWITCH TO COLOR NAMES');
+ }
+ colornames.html(selectedname);
+ preview.css({'background-color':selectedrgb,'border-style':'none'});
+ vasebackground.css('background-color',selectedrgb);
+ infostate = parseInt($('#opt_infoswitch').val());
+ ColorPicker.switchcolorinfo();
+ var bgOpt = $('#opt_bgColor').val();
+ if (bgOpt == "bg1")
+ {
+ $('#colorpicker').css({'background-image':'url("./images/bg.dither.gif")','background-color':'gray','background-color':'black'});
+ }else if(bgOpt == "bg5"){
+ $('#colorpicker').css({'background-image':"url('" + $('#opt_bgURI').val() + "')"});
+ }else{
+ $('#colorpicker').css({'background-image':'none','background-color':$('#' + bgOpt).html()});
+ }
+ $('#bgURI').val($('#opt_bgURI').val());
+ ColorPicker.initfavpanel();
+ },
+ switchhovercss: function(sel, uno) {
+ var chng = {};
+ chng['color'] = 'white';
+ chng['text-shadow'] = 'black 1px 2px';
+ chng['background-image'] = "url('./images/hoverbackground.jpg')";
+ if(uno == 'over') {
+ for(var key in chng) {
+ old[key] = $('#'+sel).css(key);
+ }
+ for(var key in chng){
+ $('#'+sel).css(key, chng[key]);
+ }
+ }else if(uno == 'out') {
+ for(var key in old){
+ $('#'+sel).css(key, old[key]);
+ }
+ }
+ },
+ showcolorname: function(divstr) {
+ var rgb = $('#'+divstr).css('background-color');
+ var colorname = divtoname['#'+divstr];
+ var imname = colorname;
+ if (hexes === true) {
+ imname = rgb;
+ }else if(rgbs === true) {
+ imname = colorname;
+ }else if (names === true) {
+ imname = rgbtohex[rgb];
+ }
+ return imname;
+ },
+ hexcolorswitch: function() {
+ if(names == true) {
+ hexes = false;
+ rgbs = false;
+ hexswitch.html('CLICK TO SWITCH TO RGB VALUES');
+ namespace.val(selectedname);
+ names = false;
+ rgbs = true;
+ $('#opt_hexswitch').val('names');
+ }else if(hexes == true) {
+ rgbs = false;
+ names = false;
+ hexswitch.html('CLICK TO SWITCH TO COLOR NAMES');
+ namespace.val(rgbtohex[selectedrgb]);
+ hexes = false;
+ names = true;
+ $('#opt_hexswitch').val('hexes');
+ }else if(rgbs == true) {
+ names = false;
+ hexes = false;
+ hexswitch.html('CLICK TO SWITCH TO HEX VALUES')
+ namespace.val(selectedrgb)
+ rgbs = false;
+ hexes = true;
+ $('#opt_hexswitch').val('rgbs');
+ }
+ },
+ putitin: function() {
+ if (rgbs === true) { thecolor = selectedname; }
+ if (hexes === true) { thecolor = selectedrgb; }
+ if (names === true) { thecolor = rgbtohex[selectedrgb]; }
+ namespace.val(thecolor);
+ preview.css({'background-color':selectedrgb,'border-style':'none'});
+ vasebackground.css('background-color',selectedrgb);
+ },
+ getcontainerwidth: function () {
+ basis = $('.colors').css('width');
+ basis = parseInt(basis.slice(0,-2));
+ secondbasis = '2px';
+ secondbasis = parseInt(secondbasis.slice(0,-2));
+ widthval = (secondbasis*(numberacross*2))+(basis*numberacross)+(basis*.44);//(goldenize(basis)-basis)
+ if (widthval < 406){
+ widthval = 406;
+ }
+ widthval = widthval.toString()+'px';
+ return widthval;
+ },
+ shrinkwidth: function(arg, ratio) {
+ for(var i=0; i < ratio; i++) {
+ arg = ColorPicker.GoldenFuncs.regolden(arg);
+ }
+ division = Math.round(arg);
+ return division;
+ },
+ setupfonts: function () {
+ fontratioone = ColorPicker.shrinkwidth(windowWidth, 9);
+ $('.theswitches').css('font-size',fontratioone);
+ fontratiotwo = ColorPicker.shrinkwidth(windowWidth, 8);
+ $('.subtitle').css('font-size',fontratiotwo);
+ colornames.css('font-size', ColorPicker.GoldenFuncs.goldenize(fontratiotwo)+'px');
+ colornames.css('text-shadow', 'black 1px 2px');
+ var transfont = ColorPicker.GoldenFuncs.regolden(fontratioone);
+ $('.smalltitle').css({'width':'100%','font-size':fontratioone});
+ },
+ setupsides: function() {
+ container.css({'position':'relative','z-index':'1'});
+ switches.css('z-index','10');
+ var basis = container.css('width');
+ basis = parseInt(basis.slice(0,-2));
+ remainder = (100-basis)/2;
+ widths = ColorPicker.GoldenFuncs.regolden(basis);
+ widths = widths.toString()+'px';
+ lateralbasis = ColorPicker.GoldenFuncs.regolden(remainder);
+ leftside = toString(lateralbasis)+'%';
+ rightside = toString(100-lateralbasis)+'%';
+ colornames.css('left', leftside);
+ switches.css({'width': widths, 'left': rightside});
+ },
+ previewdimensions: function() {
+ first = switches.css('width');
+ first = parseInt(first.slice(0,-2));
+ width = ColorPicker.GoldenFuncs.regolden(first);
+ height = ColorPicker.GoldenFuncs.regolden(width);
+ width = width.toString()+'px';
+ height = height.toString()+'px';
+ preview.css({'width':width, 'height':height});
+ },
+ setupdimensions: function() {
+ if(window.innerWidth > 933) {
+ windowWidth = window.innerWidth
+ }else{ windowWidth = 933 }
+ colorswidth = ColorPicker.shrinkwidth(windowWidth, widthratio);
+ $('.colors').css('width', colorswidth.toString()+'px');
+ colorsheight = ColorPicker.GoldenFuncs.regolden(colorswidth);
+ propval = colorsheight.toString()+'px';
+ $('.colors').css('height', propval);
+ var containerwidth = ColorPicker.getcontainerwidth();
+ container.css('width',containerwidth);
+
+ ColorPicker.setupfonts();
+ ColorPicker.setupsides();
+ ColorPicker.GoldenFuncs.makegolden('#' + switches.attr('id'),'width');
+ ColorPicker.previewdimensions();
+ transparent.css({'float':'bottom','width':'inherit'});
+ orgheight = switches.height();
+ },
+ switchcolorinfo: function() {
+ if(infostate == 1) {
+ for(var i=0; i < color_values.length; i++) {
+ $('#d' + i).html(divtoname['#d' + i]);
+ }
+ infostate = 2;
+ infospace.html('(NAMES)');
+ $('#opt_infoswitch').val('1');
+ }else if(infostate == 0) {
+ $('.colors').html("");
+ infostate = 1;
+ infospace.html('(NONE)');
+ $('#opt_infoswitch').val('0');
+ }else if(infostate == 2) {
+ for(var i=0; i < color_values.length; i++) {
+ $('#d' + i).html(nametohex[divtoname['#d' + i]]);
+ }
+ infostate = 3;
+ infospace.html('(HEXES)');
+ $('#opt_infoswitch').val('2');
+ }else if(infostate == 3) {
+ for(var i=0; i < color_values.length; i++) {
+ $('#d' + i).html(hextorgb[nametohex[divtoname['#d' + i]]]);
+ }
+ infostate = 0;
+ infospace.html('(RGBS)');
+ $('#opt_infoswitch').val('3');
+ }
+ },
+ show: function() {
+ //-------create color panel--------
+ for (i=1; i < color_values.length ; i++)
+ {
+ $('#d0').attr('style','background-color:' + color_values[0]);
+ var colorbox = $('#d0').clone();
+ colorbox.attr('id','d' + i);
+ colorbox.attr('style','background-color:' + color_values[i]);
+ container.append(colorbox);
+ }
+ //--------initialize------------
+ ColorPicker.setupdimensions();
+ ColorPicker.switchcolorinfo();
+ ColorPicker.hexcolorswitch();
+ ColorPicker.Events.addEventListener();
+ },
+}
diff --git a/frontend/im/colors/js/colorpicker.js b/frontend/im/colors/js/colorpicker.js new file mode 100644 index 0000000..5d77131 --- /dev/null +++ b/frontend/im/colors/js/colorpicker.js @@ -0,0 +1,2 @@ +eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4 2o(a,b){V.k("3w 3y 2e"),P=a,1D=b;j c=/2V\\((\\d{1,3}), (\\d{1,3}), (\\d{1,3})\\)/,d=/^#(?:[0-2W-f]{3}){1,2}$/i;u=!1,w=!1,v=!1;j e=c.1R(a);1N!=e?(y=1K[a],o=a,u=!0,C.k("F p Q p 2t 17")):1N!=(e=d.1R(a))?(w=!0,o=14[a],y=1K[o],C.k("F p Q p 1I 1V")):(y=a,o=14[1s[y]],C.k("F p Q p 2p 17"),v=!0),x.k(a),q.h(a),16.g({"l-n":o,"Z-I":"1x"}),1v.g("l-n",o)}j 1G={},1y,U,2C=7,2z=10,3H=2,G=0,w=!0,u=!1,v=!1,1j=!1,y="",o,P="",1D="",M=";",1d=$("#1d"),1p=$("#1p"),V=$("#3Q"),1A=$("#3P"),16=$("#16"),x=$("#x"),q=$("#q"),23=$("#23"),R=$("#R"),15=$("#15"),1e=$("#1e"),11=$("#11"),26=$("#26"),S=$("#S"),24=$("#24"),1v=$("#1v"),C=$("#C"),X=$("#X"),32=0,2h=!1;$(4(){6.1Q()});j 6={r:{T:4(a){O 20=(1+1o.3k(5))/2,36=1o.2u(a/20)},1g:4(a){O 20=(1+1o.3k(5))/2,36=1o.2u(a*20)},3n:4(a,b){O 1Z=$(a).g(b),1Z=1Z.1k(0,-2),3N=19(1Z)},2Y:4(a,b){3l=6.r.3n(a,b),3u=6.r.1g(3l)+3C,1t=3u.L()+"Y","E"==b?$(a).g("m",1t):"m"==b&&$(a).g("E",1t)}},3t:{3d:4(){1d.12(4(){q.h("1e"),16.g({"l-n":"1e","Z-I":"3J","Z-m":"1S"}),x.k("1e"),x.2T(1m),x.2U(2S),23.k(\'<2Z><2Z><A I="n:2G;l-n:1i;Z-n:2G; Z-m:2q; Z-I:3M; 1h-1l:3L;">3K: 3I .3h W 3O 3U 3T 3S 3R</A>\')}),1d.1a(4(){1d.1q("1P")},4(){1d.B("J","1u")}),1p.1a(4(){1p.1q("1P")},4(){1p.B("J","1u")}),V.1a(4(){V.1q("1P")},4(){V.B("J","1u")}),$(".3V").12(4(){"3j"==t.s?$("#1c").g({"l-W":\'1C("./2a/39.3a.38")\',"l-n":"37","l-n":"1i"}):"35"==t.s?$("#"+t.s).3D("3x",4(a){j b=a.3z||a.3G;13===b&&($("#1c").g({"l-W":"1C(\'"+$("#1H").h()+"\')"}),$("#2i").h($("#1H").h()),$("#1H").h(""))}):$("#1c").g({"l-W":"1x","l-n":$("#"+t.s).k().3F()}),$("#3o").h(t.s)});j a;$(".N").3E(4(){23.k(""),"2r"!=t.s&&($(t).g({E:6.r.1g(1y),m:6.r.1g(U)}),a=R.g("m"),2O=a+6.r.1g(U)-U,R.g("m",2O))}),$(".N").3B(4(){$(t).g("E",1y),$(t).g("m",U),R.g("m",a)}),$(".N").1a(4(){j a="F p 3A 40 1I";x.2T(1m),x.2U(2S),a=6.3f(t.s),x.k(a)}),$(".N").12(4(){2R=$(t).B("s"),y=1E["#"+2R],o=$(t).g("l-n"),6.3e()}),26.1a(4(){11.1Q()},4(){11.2l("4g")}),26.12(4(){6.1Y()}),S.1X=!1,S.12(4(){S.1X?24.4f("2P",4(){S.1X=!1,S.4e("2Q")}):24.4h("2P",4(){S.1X=!0,S.1q("2Q")})}),V.12(4(){6.31()}),1A.12(4(){6.2E()}),C.12(4(){6.2v()}),$(".3v").1a(4(){6.2n(t.s,"3i")},4(){6.2n(t.s,"3g")}),$(2w).4j(4(){6.2x()})}},2k:4(a){j b=/2V\\((\\d{1,3}), (\\d{1,3}), (\\d{1,3})\\)/,c=/^#(?:[0-2W-f]{3}){1,2}$/i,d="",e=b.1R(a);O d=1N!=e?a:1N!=(e=c.1R(a))?14[a]:14[1s[a]]},3b:4(){H(j a=$("#1b").h(),b=a.1r(M),c=0;c<b.K;c++)D(""!=b[c]){j d=b[c];X.22(\'<A J="1n" s="1T\'+c+\'" ><2f 30="1n" 2g="2d" 2N="2o(\\\'\'+b[c]+"\',\'1T"+c+"\');\\"><1U>"+d+\'</1U><A J="33" I="l-n:\'+6.2k(b[c])+\'">&2F;</A></A>\')}},29:4(a){H(j b=$("#1b").h(),c=b.1r(M),d=0;d<c.K;d++)D(c[d]==a)O d;O-1},2c:4(){j a=$("#1b").h();a.1r(M)},31:4(){j a=$("#1b").h();D(""!=P){j b=a.1r(M),c=6.29(P);a=0!=c&&c==b.K-1?a.28(M+P,""):1==b.K?a.28(P,""):a.28(P+M,""),$("#"+1D).2m(),V.k("3m 3p 2e"),P="",1D="",$("#3W").B("2b","2b"),""==a&&(X.2l(),1j=!1,1A.B("J","1u"))}1f D(-1==6.29(q.h())){a=a.K>0?a+M+q.h():q.h();j d=q.h(),b=a.1r(M),e=b.K-1;$("#27").2m(),X.22(\'<A J="1n" s="1T\'+e+\'" ><2f 30="1n" 2g="2d" 2N="2o(\\\'\'+q.h()+"\',\'1T"+e+"\');\\"><1U>"+d+\'</1U><A J="33" I="l-n:\'+6.2k(q.h())+\'">&2F;</A></A>\')}$("#1b").h(a),6.2c()},2E:4(){D(1j)X.2l(),1A.B("J","1u"),1j=!1,$("#27").2m(),2h=!1;1f{X.1Q(),1A.1q("1P"),1j=!0;j a=$("#1b").h();""==a&&X.22(\'<A J="27" s="27">3X 3Y N.</A>\'),2h=!0,6.2c()}V.k("3m 3p 2e"),P="",1D="",$(".1n 2f[2g=2d]").B("2b",!1)},49:4(){j a=$("#1J").h();w=!1,v=!1,u=!1,"w"==a?(y=q.h(),o=14[1s[y]],C.k("F p Q p 2p 17"),v=!0):"v"==a?(y=1K[q.h()],o=q.h(),u=!0,C.k("F p Q p 2t 17")):"u"==a&&(w=!0,o=14[q.h()],y=1K[o],C.k("F p Q p 1I 1V")),x.k(y),16.g({"l-n":o,"Z-I":"1x"}),1v.g("l-n",o),G=19($("#1B").h()),6.1Y();j b=$("#3o").h();"3j"==b?$("#1c").g({"l-W":\'1C("./2a/39.3a.38")\',"l-n":"37","l-n":"1i"}):"35"==b?$("#1c").g({"l-W":"1C(\'"+$("#2i").h()+"\')"}):$("#1c").g({"l-W":"1x","l-n":$("#"+b).k()}),$("#1H").h($("#2i").h()),6.3b()},2n:4(a,b){j c={};D(c.n="46",c["3q-3r"]="1i 2q 1S",c["l-W"]="1C(\'./2a/47.3h\')","3i"==b){H(j d 2j c)1G[d]=$("#"+a).g(d);H(j d 2j c)$("#"+a).g(d,c[d])}1f D("3g"==b)H(j d 2j 1G)$("#"+a).g(d,1G[d])},3f:4(a){j b=$("#"+a).g("l-n"),c=1E["#"+a],d=c;O u===!0?d=b:v===!0?d=c:w===!0&&(d=2y[b]),d},2v:4(){1==w?(u=!1,v=!1,C.k("F p Q p 2p 17"),q.h(y),w=!1,v=!0,$("#1J").h("w")):1==u?(v=!1,w=!1,C.k("F p Q p 1I 1V"),q.h(2y[o]),u=!1,w=!0,$("#1J").h("u")):1==v&&(w=!1,u=!1,C.k("F p Q p 2t 17"),q.h(o),v=!1,u=!0,$("#1J").h("v"))},3e:4(){v===!0&&(1F=y),u===!0&&(1F=o),w===!0&&(1F=2y[o]),q.h(1F),16.g({"l-n":o,"Z-I":"1x"}),1v.g("l-n",o)},2B:4(){O 1w=$(".N").g("m"),1w=19(1w.1k(0,-2)),1L="1S",1L=19(1L.1k(0,-2)),1z=1L*2*2z+1w*2z+.44*1w,3c>1z&&(1z=3c),1z=1z.L()+"Y"},1O:4(a,b){H(j c=0;b>c;c++)a=6.r.T(a);O 48=1o.2u(a)},2D:4(){21=6.1O(1M,9),$(".3v").g("1h-1l",21),2s=6.1O(1M,8),$(".4b").g("1h-1l",2s),x.g("1h-1l",6.r.1g(2s)+"Y"),x.g("3q-3r","1i 2q 1S"),6.r.T(21),$(".4a").g({m:"1m%","1h-1l":21})},2M:4(){R.g({45:"43","z-3s":"1"}),15.g("z-3s","10");j a=R.g("m");a=19(a.1k(0,-2)),2H=(1m-a)/2,25=6.r.T(a),25=25.L()+"Y",2A=6.r.T(2H),34=L(2A)+"%",2L=L(1m-2A)+"%",x.g("2K",34),15.g({m:25,2K:2L})},2X:4(){1W=15.g("m"),1W=19(1W.1k(0,-2)),m=6.r.T(1W),E=6.r.T(m),m=m.L()+"Y",E=E.L()+"Y",16.g({m:m,E:E})},2x:4(){1M=2w.2I>2J?2w.2I:2J,U=6.1O(1M,2C),$(".N").g("m",U.L()+"Y"),1y=6.r.T(U),1t=1y.L()+"Y",$(".N").g("E",1t);j a=6.2B();R.g("m",a),6.2D(),6.2M(),6.r.2Y("#"+15.B("s"),"m"),6.2X(),1e.g({"3Z":"4d",m:"42"}),32=15.E()},1Y:4(){D(1==G){H(j a=0;a<18.K;a++)$("#d"+a).k(1E["#d"+a]);G=2,11.k("(1V)"),$("#1B").h("1")}1f D(0==G)$(".N").k(""),G=1,11.k("(41)"),$("#1B").h("0");1f D(2==G){H(j a=0;a<18.K;a++)$("#d"+a).k(1s[1E["#d"+a]]);G=3,11.k("(4c)"),$("#1B").h("2")}1f D(3==G){H(j a=0;a<18.K;a++)$("#d"+a).k(14[1s[1E["#d"+a]]]);G=0,11.k("(4k)"),$("#1B").h("3")}},1Q:4(){H(i=1;i<18.K;i++){$("#2r").B("I","l-n:"+18[0]);j a=$("#2r").4i();a.B("s","d"+i),a.B("I","l-n:"+18[i]),R.22(a)}6.2x(),6.1Y(),6.2v(),6.3t.3d()}};',62,269,'||||function||ColorPicker||||||||||css|val||var|html|background|width|color|selectedrgb|TO|namespace|GoldenFuncs|id|this|hexes|rgbs|names|colornames|selectedname||span|attr|hexswitch|if|height|CLICK|infostate|for|style|class|length|toString|separate|colors|return|curfavcolor|SWITCH|container|backgroundswitch|regolden|colorswidth|addfav|image|favpanel|px|border||infospace|click||hextorgb|switches|preview|VALUES|color_values|parseInt|hover|favcolors|colorpicker|transbutton|transparent|else|goldenize|font|black|favshow|slice|size|100|favcolor|Math|submitvalue|addClass|split|nametohex|propval|defaulttrans|vasebackground|basis|none|colorsheight|widthval|openfav|opt_infoswitch|url|curfavcolorId|divtoname|thecolor|old|bgURI|COLOR|opt_hexswitch|rgbtoname|secondbasis|windowWidth|null|shrinkwidth|hovertrans|show|exec|2px|favcol|label|NAMES|first|clicked|switchcolorinfo|grab|ratio|fontratioone|append|extra|bg_menu|widths|infoswitch|favmsg|replace|existsfavcolor|images|checked|setpaneldimension|radio|Favorites|input|type|bscroll|opt_bgURI|in|getcolorfromfavorite|hide|remove|switchhovercss|selectfavColor|RGB|1px|d0|fontratiotwo|HEX|round|hexcolorswitch|window|setupdimensions|rgbtohex|numberacross|lateralbasis|getcontainerwidth|widthratio|setupfonts|openfavourites|nbsp|red|remainder|innerWidth|933|left|rightside|setupsides|onclick|newwidth|fast|switches_depressed|selectednameid|500|fadeOut|fadeIn|rgb|9a|previewdimensions|makegolden|br|name|addfavourites|orgheight|favcolorbox|leftside|bg5|newnum|gray|gif|bg|dither|initfavpanel|406|addEventListener|putitin|showcolorname|out|jpg|over|bg1|sqrt|result|Add|getproperty|opt_bgColor|to|text|shadow|index|Events|newval|theswitches|Remove|keypress|from|which|CHOOSE|mouseout|60|bind|mouseover|toLowerCase|keyCode|backgroundstate|the|dashed|note|14px|solid|numval|format|openfavlist|addfavlist|transparency|support|not|does|bgOptions|favnone|No|favourite|float|THE|NONE|inherit|relative||position|white|hoverbackground|division|loadColorStorage|smalltitle|subtitle|HEXES|bottom|removeClass|slideUp|slow|slideDown|clone|resize|RGBS'.split('|'),0,{})) + diff --git a/frontend/im/colors/js/data.js b/frontend/im/colors/js/data.js new file mode 100644 index 0000000..1728951 --- /dev/null +++ b/frontend/im/colors/js/data.js @@ -0,0 +1,6 @@ +var nametohex = {'grey21': '#363636', 'yellow': '#FFFF00', 'grey61': '#9C9C9C', 'HotPink3': '#CD6090', 'grey63': '#A1A1A1', 'grey62': '#9E9E9E', 'grey65': '#A6A6A6', 'AliceBlue': '#F0F8FF', 'grey67': '#ABABAB', 'grey66': '#A8A8A8', 'LightCyan1': '#E0FFFF', 'grey68': '#ADADAD', 'LightCyan3': '#B4CDCD', 'LightCyan2': '#D1EEEE', 'LightCyan4': '#7A8B8B', 'gray32': '#525252', 'gray33': '#545454', 'DarkTurquoise': '#00CED1', 'gray31': '#4F4F4F', 'gray36': '#5C5C5C', 'gray37': '#5E5E5E', 'gray34': '#575757', 'gray35': '#595959', 'aquamarine4': '#458B74', 'gray38': '#616161', 'gray39': '#636363', 'aquamarine1': '#7FFFD4', 'aquamarine3': '#66CDAA', 'aquamarine2': '#76EEC6', 'CadetBlue4': '#53868B', 'CadetBlue3': '#7AC5CD', 'CadetBlue2': '#8EE5EE', 'CadetBlue1': '#98F5FF', 'crimson': '#DC143C', 'VioletRed1': '#FF3E96', 'VioletRed2': '#EE3A8C', 'VioletRed3': '#CD3278', 'VioletRed4': '#8B2252', 'brown': '#A52A2A', 'DarkGoldenrod': '#B8860B', 'gray8': '#141414', 'SlateGrey': '#708090', 'NavajoWhite2': '#EECFA1', 'gray2': '#050505', 'cyan': '#00FFFF', 'gray0': '#000000', 'gray1': '#030303', 'fractal': '#808080', 'gray7': '#121212', 'gray4': '#0A0A0A', 'gray5': '#0D0D0D', 'grey60': '#999999', 'DarkBlue': '#00008B', 'gray98': '#FAFAFA', 'DarkKhaki': '#BDB76B', 'gray99': '#FCFCFC', 'teal': '#008080', 'grey11': '#1C1C1C', 'coral4': '#8B3E2F', 'grey12': '#1F1F1F', 'grey64': '#A3A3A3', 'PaleGreen1': '#9AFF9A', 'PaleGreen3': '#7CCD7C', 'PaleGreen2': '#90EE90', 'PaleGreen4': '#548B54', 'grey14': '#242424', 'lavender': '#E6E6FA', 'grey15': '#262626', 'chartreuse3': '#66CD00', 'chartreuse2': '#76EE00', 'chartreuse1': '#7FFF00', 'chartreuse4': '#458B00', 'RosyBrown': '#BC8F8F', 'blue': '#0000FF', 'NavajoWhite': '#FFDEAD', 'opaque': '#000000', 'maroon4': '#8B1C62', 'maroon3': '#CD2990', 'maroon2': '#EE30A7', 'maroon1': '#FF34B3', 'gold3': '#CDAD00', 'gold2': '#EEC900', 'gold1': '#FFD700', 'gold4': '#8B7500', 'LightSlateGrey': '#778899', 'gray30': '#4D4D4D', 'DarkGreen': '#006400', 'SkyBlue': '#87CEEB', 'GhostWhite': '#F8F8FF', 'LavenderBlush': '#FFF0F5', 'SeaGreen': '#2E8B57', 'BlanchedAlmond': '#FFEBCD', 'gray60': '#999999', 'DarkOliveGreen': '#556B2F', 'firebrick2': '#EE2C2C', 'firebrick1': '#FF3030', 'firebrick4': '#8B1A1A', 'sienna': '#A0522D', 'blue1': '#0000FF', 'lime': '#00FF00', 'gray55': '#8C8C8C', 'blue2': '#0000EE', 'DarkViolet': '#9400D3', 'blue4': '#00008B', 'peru': '#CD853F', 'DarkMagenta': '#8B008B', 'LightBlue2': '#B2DFEE', 'red2': '#EE0000', 'red1': '#FF0000', 'LightBlue1': '#BFEFFF', 'LightBlue4': '#68838B', 'red4': '#8B0000', 'MediumSpringGreen': '#00FA9A', 'chocolate': '#D2691E', 'ForestGreen': '#228B22', 'DarkRed': '#8B0000', 'olive': '#808000', 'HotPink2': '#EE6AA7', 'HotPink1': '#FF6EB4', 'HotPink4': '#8B3A62', 'grey18': '#2E2E2E', 'grey19': '#303030', 'none': '#000000', 'PeachPuff': '#FFDAB9', 'MediumGoldenRod': '#D1C166', 'moccasin': '#FFE4B5', 'grey10': '#1A1A1A', 'chocolate1': '#FF7F24', 'chocolate2': '#EE7621', 'chocolate3': '#CD661D', 'chocolate4': '#8B4513', 'wheat2': '#EED8AE', 'grey16': '#292929', 'grey17': '#2B2B2B', 'gray69': '#B0B0B0', 'gray68': '#ADADAD', 'gray65': '#A6A6A6', 'gray64': '#A3A3A3', 'gray67': '#ABABAB', 'gray66': '#A8A8A8', 'gray61': '#9C9C9C', 'coral': '#FF7F50', 'gray63': '#A1A1A1', 'gray62': '#9E9E9E', 'LightGoldenrod': '#EEDD82', 'turquoise4': '#00868B', 'seashell2': '#EEE5DE', 'seashell3': '#CDC5BF', 'magenta': '#FF00FF', 'seashell1': '#FFF5EE', 'tan': '#D2B48C', 'seashell4': '#8B8682', 'pink': '#FFC0CB', 'LightSlateBlue': '#8470FF', 'SteelBlue1': '#63B8FF', 'SteelBlue3': '#4F94CD', 'SteelBlue2': '#5CACEE', 'SteelBlue4': '#36648B', 'grey89': '#E3E3E3', 'grey88': '#E0E0E0', 'grey87': '#DEDEDE', 'grey86': '#DBDBDB', 'grey85': '#D9D9D9', 'grey84': '#D6D6D6', 'grey83': '#D4D4D4', 'grey82': '#D1D1D1', 'grey81': '#CFCFCF', 'grey80': '#CCCCCC', 'ivory2': '#EEEEE0', 'khaki4': '#8B864E', 'khaki1': '#FFF68F', 'khaki2': '#EEE685', 'khaki3': '#CDC673', 'salmon1': '#FF8C69', 'salmon3': '#CD7054', 'salmon2': '#EE8262', 'salmon4': '#8B4C39', 'LightPink': '#FFB6C1', 'gray9': '#171717', 'green': '#008000', 'brown2': '#EE3B3B', 'brown3': '#CD3333', 'brown1': '#FF4040', 'brown4': '#8B2323', 'cadet blue': '#5F9EA0', 'orange4': '#8B5A00', 'orange1': '#FFA500', 'orange3': '#CD8500', 'orange2': '#EE9A00', 'gray3': '#080808', 'gray6': '#0F0F0F', 'yellow4': '#8B8B00', 'yellow3': '#CDCD00', 'yellow2': '#EEEE00', 'yellow1': '#FFFF00', 'PapayaWhip': '#FFEFD5', 'bisque2': '#EED5B7', 'OliveDrab4': '#698B22', 'bisque3': '#CDB79E', 'OliveDrab1': '#C0FF3E', 'OliveDrab2': '#B3EE3A', 'OliveDrab3': '#9ACD32', 'SkyBlue4': '#4A708B', 'SkyBlue1': '#87CEFF', 'SkyBlue3': '#6CA6CD', 'SkyBlue2': '#7EC0EE', 'grey58': '#949494', 'grey59': '#969696', 'grey54': '#8A8A8A', 'grey55': '#8C8C8C', 'grey56': '#8F8F8F', 'grey57': '#919191', 'grey50': '#7F7F7F', 'silver': '#C0C0C0', 'grey52': '#858585', 'grey53': '#878787', 'cyan2': '#00EEEE', 'cyan3': '#00CDCD', 'gray23': '#3B3B3B', 'RosyBrown4': '#8B6969', 'gray25': '#404040', 'CornflowerBlue': '#6495ED', 'cyan4': '#008B8B', 'gray26': '#424242', 'gray29': '#4A4A4A', 'LimeGreen': '#32CD32', 'MistyRose': '#FFE4E1', 'navy': '#000080', 'gray94': '#F0F0F0', 'gray95': '#F2F2F2', 'gray96': '#F5F5F5', 'gray97': '#F7F7F7', 'gray90': '#E5E5E5', 'gray91': '#E8E8E8', 'gray92': '#EBEBEB', 'gray93': '#EDEDED', 'MediumPurple': '#9370DB', 'MidnightBlue': '#191970', 'cornsilk': '#FFF8DC', 'red': '#FF0000', 'grey69': '#B0B0B0', 'DarkOrchid4': '#68228B', 'blue3': '#0000CD', 'LightSteelBlue': '#B0C4DE', 'DarkOrchid1': '#BF3EFF', 'DarkOrchid2': '#B23AEE', 'DarkOrchid3': '#9A32CD', 'grey72': '#B8B8B8', 'FloralWhite': '#FFFAF0', 'grey70': '#B3B3B3', 'DarkSeaGreen': '#8FBC8F', 'grey71': '#B5B5B5', 'gray17': '#2B2B2B', 'grey77': '#C4C4C4', 'tomato4': '#8B3626', 'tomato1': '#FF6347', 'tomato3': '#CD4F39', 'tomato2': '#EE5C42', 'DarkSlateGray1': '#97FFFF', 'DarkSlateGray2': '#8DEEEE', 'DarkSlateGray3': '#79CDCD', 'DarkSlateGray4': '#528B8B', 'SteelBlue': '#4682B4', 'MediumSlateBlue': '#7B68EE', 'OrangeRed': '#FF4500', 'grey79': '#C9C9C9', 'MediumVioletRed': '#C71585', 'burlywood': '#DEB887', 'white': '#FFFFFF', 'tomato': '#FF6347', 'DodgerBlue': '#1E90FF', 'RoyalBlue4': '#27408B', 'RoyalBlue1': '#4876FF', 'RoyalBlue3': '#3A5FCD', 'RoyalBlue2': '#436EEE', 'MistyRose1': '#FFE4E1', 'MistyRose3': '#CDB7B5', 'MistyRose2': '#EED5D2', 'MistyRose4': '#8B7D7B', 'LightGray': '#D3D3D3', 'LightYellow': '#FFFFE0', 'DarkOrange': '#FF8C00', 'DarkGray': '#A9A9A9', 'SlateGray': '#708090', 'turquoise3': '#00C5CD', 'turquoise2': '#00E5EE', 'turquoise1': '#00F5FF', 'burlywood2': '#EEC591', 'burlywood4': '#8B7355', 'DarkSlateGray': '#2F4F4F', 'linen': '#FAF0E6', 'grey47': '#787878', 'snow': '#FFFAFA', 'grey46': '#757575', 'gray58': '#949494', 'gray59': '#969696', 'IndianRed4': '#8B3A3A', 'purple4': '#551A8B', 'gray52': '#858585', 'gray53': '#878787', 'purple1': '#9B30FF', 'IndianRed1': '#FF6A6A', 'purple3': '#7D26CD', 'purple2': '#912CEE', 'thistle3': '#CDB5CD', 'thistle2': '#EED2EE', 'SpringGreen2': '#00EE76', 'SpringGreen3': '#00CD66', 'SpringGreen4': '#008B45', 'thistle4': '#8B7B8B', 'LightPink2': '#EEA2AD', 'LightPink3': '#CD8C95', 'LightPink1': '#FFAEB9', 'LightPink4': '#8B5F65', 'MediumPurple1': '#AB82FF', 'MediumPurple2': '#9F79EE', 'MediumPurple3': '#8968CD', 'MediumPurple4': '#5D478B', 'MediumTurquoise': '#48D1CC', 'DimGray': '#696969', 'gray14': '#242424', 'grey100': '#FFFFFF', 'OrangeRed3': '#CD3700', 'OrangeRed2': '#EE4000', 'OrangeRed1': '#FF4500', 'LightSeaGreen': '#20B2AA', 'gold': '#FFD700', 'OrangeRed4': '#8B2500', 'NavajoWhite4': '#8B795E', 'NavajoWhite1': '#FFDEAD', 'LawnGreen': '#7CFC00', 'NavajoWhite3': '#CDB38B', 'LightGoldenrod4': '#8B814C', 'LightGoldenrod1': '#FFEC8B', 'LightGoldenrod3': '#CDBE70', 'LightGoldenrod2': '#EEDC82', 'gray21': '#363636', 'PaleGreen': '#98FB98', 'green4': '#008B00', 'green1': '#00FF00', 'green3': '#00CD00', 'green2': '#00EE00', 'MediumOrchid': '#BA55D3', 'black': '#000000', 'gray20': '#333333', 'orchid4': '#8B4789', 'DodgerBlue1': '#1E90FF', 'DodgerBlue2': '#1C86EE', 'DodgerBlue3': '#1874CD', 'DodgerBlue4': '#104E8B', 'orchid1': '#FF83FA', 'orchid2': '#EE7AE9', 'orchid3': '#CD69C9', 'DarkSeaGreen4': '#698B69', 'DarkSeaGreen3': '#9BCD9B', 'DarkSeaGreen2': '#B4EEB4', 'DarkSeaGreen1': '#C1FFC1', 'gray100': '#FFFFFF', 'BlueViolet': '#8A2BE2', 'bisque4': '#8B7D6B', 'MediumOrchid4': '#7A378B', 'MintCream': '#F5FFFA', 'MediumOrchid1': '#E066FF', 'bisque1': '#FFE4C4', 'MediumOrchid3': '#B452CD', 'MediumOrchid2': '#D15FEE', 'gray': '#7E7E7E', 'DeepSkyBlue': '#00BFFF', 'LightGrey': '#D3D3D3', 'grey78': '#C7C7C7', 'gray22': '#383838', 'plum4': '#8B668B', 'plum3': '#CD96CD', 'plum2': '#EEAEEE', 'plum1': '#FFBBFF', 'DarkSlateGrey': '#2F4F4F', 'DarkOrchid': '#9932CC', 'OliveDrab': '#6B8E23', 'gray83': '#D4D4D4', 'grey49': '#7D7D7D', 'grey48': '#7A7A7A', 'thistle': '#D8BFD8', 'violet': '#EE82EE', 'grey43': '#6E6E6E', 'grey42': '#6B6B6B', 'LightSalmon4': '#8B5742', 'grey40': '#666666', 'LightSalmon2': '#EE9572', 'LightSalmon3': '#CD8162', 'grey45': '#737373', 'LightSalmon1': '#FFA07A', 'honeydew': '#F0FFF0', 'gray18': '#2E2E2E', 'gray19': '#303030', 'LightCyan': '#E0FFFF', 'gray15': '#262626', 'gray16': '#292929', 'gray82': '#D1D1D1', 'gray10': '#1A1A1A', 'gray11': '#1C1C1C', 'gray12': '#1F1F1F', 'gray13': '#212121', 'grey93': '#EDEDED', 'PaleGoldenrod': '#EEE8AA', 'gainsboro': '#DCDCDC', 'AntiqueWhite3': '#CDC0B0', 'AntiqueWhite2': '#EEDFCC', 'AntiqueWhite1': '#FFEFDB', 'gray27': '#454545', 'SlateBlue': '#6A5ACD', 'AntiqueWhite4': '#8B8378', 'DimGrey': '#696969', 'VioletRed': '#D02090', 'WhiteSmoke': '#F5F5F5', 'grey38': '#616161', 'grey39': '#636363', 'grey36': '#5C5C5C', 'grey37': '#5E5E5E', 'grey34': '#575757', 'grey35': '#595959', 'aqua': '#00FFFF', 'grey33': '#545454', 'grey30': '#4D4D4D', 'grey31': '#4F4F4F', 'NavyBlue': '#000080', 'sienna4': '#8B4726', 'gray81': '#CFCFCF', 'gray80': '#CCCCCC', 'sienna1': '#FF8247', 'gray86': '#DBDBDB', 'sienna3': '#CD6839', 'sienna2': '#EE7942', 'gray89': '#E3E3E3', 'gray88': '#E0E0E0', 'SlateBlue4': '#473C8B', 'gray87': '#DEDEDE', 'LightSteelBlue1': '#CAE1FF', 'magenta3': '#CD00CD', 'IndianRed': '#CD5C5C', 'SlateBlue2': '#7A67EE', 'SlateBlue1': '#836FFF', 'LightBlue': '#ADD8E6', 'PeachPuff4': '#8B7765', 'seashell': '#FFF5EE', 'SaddleBrown': '#8B4513', 'PeachPuff1': '#FFDAB9', 'PeachPuff2': '#EECBAD', 'PeachPuff3': '#CDAF95', 'aquamarine': '#7FFFD4', 'LemonChiffon2': '#EEE9BF', 'LemonChiffon1': '#FFFACD', 'tan4': '#8B5A2B', 'tan3': '#CD853F', 'tan2': '#EE9A49', 'tan1': '#FFA54F', 'LemonChiffon4': '#8B8970', 'orange': '#FFA500', 'OldLace': '#FDF5E6', 'PowderBlue': '#B0E0E6', 'RosyBrown3': '#CD9B9B', 'RoyalBlue': '#4169E1', 'LightSkyBlue4': '#607B8B', 'LightSkyBlue1': '#B0E2FF', 'LightSkyBlue2': '#A4D3EE', 'LightSkyBlue3': '#8DB6CD', 'LightYellow1': '#FFFFE0', 'LightYellow2': '#EEEED1', 'LightYellow3': '#CDCDB4', 'LightYellow4': '#8B8B7A', 'goldenrod4': '#8B6914', 'goldenrod1': '#FFC125', 'goldenrod2': '#EEB422', 'goldenrod3': '#CD9B1D', 'grey32': '#525252', 'LemonChiffon': '#FFFACD', 'burlywood1': '#FFD39B', 'YellowGreen': '#9ACD32', 'LightCoral': '#F08080', 'burlywood3': '#CDAA7D', 'ivory3': '#CDCDC1', 'firebrick3': '#CD2626', 'ivory1': '#FFFFF0', 'grey8': '#141414', 'ivory4': '#8B8B83', 'grey9': '#171717', 'DarkSalmon': '#E9967A', 'SlateGray1': '#C6E2FF', 'SlateGray2': '#B9D3EE', 'SlateGray3': '#9FB6CD', 'SlateGray4': '#6C7B8B', 'RosyBrown2': '#EEB4B4', 'RosyBrown1': '#FFC1C1', 'gray85': '#D9D9D9', 'gray84': '#D6D6D6', 'LightGreen': '#90EE90', 'LavenderBlush1': '#FFF0F5', 'grey73': '#BABABA', 'LavenderBlush3': '#CDC1C5', 'LavenderBlush2': '#EEE0E5', 'grey76': '#C2C2C2', 'LavenderBlush4': '#8B8386', 'grey74': '#BDBDBD', 'grey75': '#BFBFBF', 'pink1': '#FFB5C5', 'pink3': '#CD919E', 'pink2': '#EEA9B8', 'pink4': '#8B636C', 'gray47': '#787878', 'gray46': '#757575', 'gray45': '#737373', 'gray44': '#707070', 'gray43': '#6E6E6E', 'gray42': '#6B6B6B', 'gray41': '#696969', 'gray40': '#666666', 'gray49': '#7D7D7D', 'gray48': '#7A7A7A', 'MediumAquamarine': '#66CDAA', 'MediumForestGreen': '#32814B', 'azure1': '#F0FFFF', 'azure3': '#C1CDCD', 'azure2': '#E0EEEE', 'indigo': '#4B0082', 'azure4': '#838B8B', 'firebrick': '#B22222', 'DarkGrey': '#A9A9A9', 'magenta4': '#8B008B', 'SlateBlue3': '#6959CD', 'magenta2': '#EE00EE', 'magenta1': '#FF00FF', 'grey51': '#828282', 'chartreuse': '#7FFF00', 'grey41': '#696969', 'DarkOliveGreen4': '#6E8B3D', 'turquoise': '#40E0D0', 'DarkOliveGreen1': '#CAFF70', 'DarkOliveGreen3': '#A2CD5A', 'DarkOliveGreen2': '#BCEE68', 'grey6': '#0F0F0F', 'grey7': '#121212', 'grey4': '#0A0A0A', 'grey5': '#0D0D0D', 'grey2': '#050505', 'grey3': '#080808', 'grey0': '#000000', 'grey1': '#030303', 'gray50': '#7F7F7F', 'cyan1': '#00FFFF', 'gray51': '#828282', 'gray24': '#3D3D3D', 'HotPink': '#FF69B4', 'DarkGoldenrod4': '#8B6508', 'gray54': '#8A8A8A', 'DarkGoldenrod1': '#FFB90F', 'DarkGoldenrod2': '#EEAD0E', 'DarkGoldenrod3': '#CD950C', 'IndianRed2': '#EE6363', 'DeepPink': '#FF1493', 'gray28': '#474747', 'IndianRed3': '#CD5555', 'DarkCyan': '#008B8B', 'GreenYellow': '#ADFF2F', 'LightSalmon': '#FFA07A', 'DarkOrange4': '#8B4500', 'DarkOrange1': '#FF7F00', 'transparent': '#000000', 'DarkOrange3': '#CD6600', 'orchid': '#DA70D6', 'purple': '#800080', 'wheat4': '#8B7E66', 'wheat1': '#FFE7BA', 'wheat3': '#CDBA96', 'SpringGreen1': '#00FF7F', 'coral3': '#CD5B45', 'coral2': '#EE6A50', 'coral1': '#FF7256', 'thistle1': '#FFE1FF', 'PaleTurquoise': '#AFEEEE', 'bisque': '#FFE4C4', 'DeepPink3': '#CD1076', 'DeepPink2': '#EE1289', 'DeepPink1': '#FF1493', 'khaki': '#F0E68C', 'wheat': '#F5DEB3', 'MediumSeaGreen': '#3CB371', 'DeepPink4': '#8B0A50', 'salmon': '#FA8072', 'grey44': '#707070', 'DarkSlateBlue': '#483D8B', 'PaleVioletRed4': '#8B475D', 'PaleVioletRed1': '#FF82AB', 'PaleVioletRed2': '#EE799F', 'PaleVioletRed3': '#CD6889', 'AntiqueWhite': '#FAEBD7', 'PaleTurquoise4': '#668B8B', 'PaleTurquoise3': '#96CDCD', 'PaleTurquoise2': '#AEEEEE', 'PaleTurquoise1': '#BBFFFF', 'gray56': '#8F8F8F', 'plum': '#DDA0DD', 'beige': '#F5F5DC', 'SpringGreen': '#00FF7F', 'azure': '#F0FFFF', 'honeydew1': '#F0FFF0', 'honeydew2': '#E0EEE0', 'honeydew3': '#C1CDC1', 'honeydew4': '#838B83', 'gray57': '#919191', 'snow4': '#8B8989', 'snow2': '#EEE9E9', 'snow3': '#CDC9C9', 'snow1': '#FFFAFA', 'SandyBrown': '#F4A460', 'grey13': '#212121', 'SeaGreen4': '#2E8B57', 'SeaGreen3': '#43CD80', 'SeaGreen2': '#4EEE94', 'SeaGreen1': '#54FF9F', 'grey29': '#4A4A4A', 'grey28': '#474747', 'grey25': '#404040', 'grey24': '#3D3D3D', 'grey27': '#454545', 'grey26': '#424242', 'fuchsia': '#FF00FF', 'grey20': '#333333', 'grey23': '#3B3B3B', 'grey22': '#383838', 'gray78': '#C7C7C7', 'gray79': '#C9C9C9', 'gray76': '#C2C2C2', 'gray77': '#C4C4C4', 'gray74': '#BDBDBD', 'gray75': '#BFBFBF', 'gray72': '#B8B8B8', 'gray73': '#BABABA', 'gray70': '#B3B3B3', 'gray71': '#B5B5B5', 'ivory': '#FFFFF0', 'LemonChiffon3': '#CDC9A5', 'DeepSkyBlue4': '#00688B', 'DeepSkyBlue3': '#009ACD', 'DeepSkyBlue2': '#00B2EE', 'DeepSkyBlue1': '#00BFFF', 'cornsilk4': '#8B8878', 'cornsilk2': '#EEE8CD', 'cornsilk3': '#CDC8B1', 'CadetBlue': '#5F9EA0', 'cornsilk1': '#FFF8DC', 'grey90': '#E5E5E5', 'grey91': '#E8E8E8', 'grey92': '#EBEBEB', 'goldenrod': '#DAA520', 'grey94': '#F0F0F0', 'grey95': '#F2F2F2', 'grey96': '#F5F5F5', 'grey97': '#F7F7F7', 'grey98': '#FAFAFA', 'grey99': '#FCFCFC', 'red3': '#CD0000', 'LightSteelBlue2': '#BCD2EE', 'LightSteelBlue3': '#A2B5CD', 'LightSteelBlue4': '#6E7B8B', 'LightBlue3': '#9AC0CD', 'maroon': '#800000', 'LightSkyBlue': '#87CEFA', 'LightGoldenrodYellow': '#FAFAD2', 'MediumBlue': '#0000CD', 'LightSlateGray': '#778899', 'DarkOrange2': '#EE7600', 'PaleVioletRed': '#DB7093'};
+var divtoname = {'#d322': 'khaki4', '#d600': 'gray34', '#d118': 'MediumPurple1', '#d119': 'MediumPurple2', '#d114': 'purple3', '#d115': 'purple4', '#d116': 'purple1', '#d117': 'MediumPurple', '#d110': 'purple', '#d111': 'indigo', '#d112': 'BlueViolet', '#d113': 'purple2', '#d529': 'grey67', '#d231': 'DarkSlateGray', '#d339': 'LightGoldenrod3', '#d233': 'MediumTurquoise', '#d232': 'DarkSlateGrey', '#d235': 'turquoise', '#d234': 'LightSeaGreen', '#d237': 'aquamarine', '#d236': 'aquamarine4', '#d239': 'aquamarine2', '#d238': 'aquamarine1', '#d332': 'gold1', '#d333': 'gold2', '#d334': 'gold3', '#d335': 'gold4', '#d336': 'LightGoldenrod', '#d337': 'LightGoldenrod4', '#d424': 'LightSalmon3', '#d425': 'LightSalmon', '#d426': 'LightSalmon1', '#d427': 'LightSalmon4', '#d420': 'sienna', '#d421': 'sienna1', '#d422': 'sienna2', '#d423': 'sienna3', '#d587': 'grey41', '#d586': 'gray41', '#d585': 'DimGrey', '#d584': 'DimGray', '#d428': 'LightSalmon2', '#d429': 'coral', '#d581': 'grey43', '#d580': 'gray43', '#d89': 'thistle4', '#d88': 'plum3', '#d349': 'goldenrod4', '#d348': 'goldenrod3', '#d81': 'thistle2', '#d80': 'thistle1', '#d83': 'plum2', '#d82': 'plum1', '#d85': 'thistle3', '#d84': 'thistle', '#d87': 'violet', '#d86': 'plum', '#d601': 'grey34', '#d67': 'DeepPink3', '#d66': 'DeepPink2', '#d65': 'DeepPink1', '#d64': 'DeepPink', '#d63': 'HotPink', '#d62': 'HotPink4', '#d61': 'HotPink1', '#d60': 'HotPink2', '#d69': 'maroon1', '#d68': 'DeepPink4', '#d510': 'grey76', '#d511': 'silver', '#d512': 'gray75', '#d513': 'grey75', '#d514': 'gray74', '#d515': 'grey74', '#d516': 'gray73', '#d517': 'grey73', '#d518': 'gray72', '#d519': 'grey72', '#d150': 'LightSteelBlue2', '#d151': 'LightSteelBlue3', '#d152': 'LightSteelBlue4', '#d153': 'SlateGray4', '#d154': 'SlateGray1', '#d155': 'SlateGray2', '#d156': 'SlateGray3', '#d157': 'LightSlateGray', '#d158': 'LightSlateGrey', '#d159': 'SlateGray', '#d565': 'gray50', '#d564': 'fractal', '#d567': 'gray', '#d566': 'grey50', '#d561': 'grey52', '#d560': 'gray52', '#d563': 'grey51', '#d562': 'gray51', '#d604': 'gray32', '#d605': 'grey32', '#d606': 'gray31', '#d607': 'grey31', '#d569': 'grey49', '#d568': 'gray49', '#d602': 'gray33', '#d603': 'grey33', '#d125': 'SlateBlue', '#d124': 'MediumSlateBlue', '#d127': 'SlateBlue2', '#d126': 'SlateBlue1', '#d121': 'MediumPurple4', '#d120': 'MediumPurple3', '#d123': 'LightSlateBlue', '#d122': 'DarkSlateBlue', '#d359': 'wheat1', '#d129': 'SlateBlue4', '#d128': 'SlateBlue3', '#d301': 'LightYellow', '#d300': 'ivory1', '#d303': 'beige', '#d302': 'LightYellow1', '#d305': 'LightGoldenrodYellow', '#d304': 'ivory2', '#d307': 'ivory3', '#d306': 'LightYellow2', '#d309': 'ivory4', '#d308': 'LightYellow3', '#d462': 'grey98', '#d351': 'DarkGoldenrod1', '#d464': 'grey97', '#d465': 'gray96', '#d466': 'grey96', '#d467': 'WhiteSmoke', '#d463': 'gray97', '#d268': 'PaleGreen3', '#d269': 'honeydew4', '#d266': 'DarkSeaGreen3', '#d267': 'DarkSeaGreen', '#d264': 'LightGreen', '#d265': 'PaleGreen2', '#d262': 'PaleGreen', '#d263': 'honeydew3', '#d260': 'DarkSeaGreen2', '#d261': 'PaleGreen1', '#d598': 'gray35', '#d29': 'firebrick4', '#d28': 'brown4', '#d23': 'red2', '#d22': 'firebrick3', '#d21': 'RosyBrown4', '#d20': 'red1', '#d27': 'IndianRed4', '#d26': 'red3', '#d25': 'brown', '#d24': 'firebrick', '#d599': 'grey35', '#d338': 'LightGoldenrod1', '#d419': 'sienna4', '#d418': 'seashell1', '#d230': 'teal', '#d415': 'chocolate4', '#d414': 'chocolate3', '#d417': 'seashell', '#d416': 'SaddleBrown', '#d411': 'chocolate', '#d410': 'seashell3', '#d413': 'chocolate2', '#d412': 'chocolate1', '#d398': 'tan1', '#d399': 'tan2', '#d392': 'DarkOrange1', '#d393': 'linen', '#d390': 'bisque1', '#d391': 'bisque3', '#d396': 'DarkOrange4', '#d397': 'peru', '#d394': 'DarkOrange2', '#d395': 'DarkOrange3', '#d194': 'CadetBlue2', '#d195': 'CadetBlue3', '#d196': 'CadetBlue4', '#d197': 'turquoise1', '#d190': 'LightBlue', '#d191': 'LightBlue4', '#d192': 'PowderBlue', '#d193': 'CadetBlue1', '#d198': 'turquoise2', '#d199': 'turquoise3', '#d330': 'cornsilk4', '#d331': 'gold', '#d640': 'gray14', '#d641': 'grey14', '#d642': 'gray13', '#d643': 'grey13', '#d644': 'gray12', '#d645': 'grey12', '#d646': 'gray11', '#d647': 'grey11', '#d648': 'gray10', '#d649': 'grey10', '#d668': 'black', '#d486': 'gainsboro', '#d487': 'gray86', '#d484': 'gray87', '#d485': 'grey87', '#d482': 'gray88', '#d483': 'grey88', '#d480': 'gray89', '#d481': 'grey89', '#d521': 'grey71', '#d520': 'gray71', '#d523': 'grey70', '#d522': 'gray70', '#d525': 'grey69', '#d524': 'gray69', '#d488': 'grey86', '#d489': 'gray85', '#d430': 'OrangeRed', '#d660': 'gray4', '#d169': 'SteelBlue1', '#d168': 'SteelBlue', '#d661': 'grey4', '#d161': 'DodgerBlue', '#d160': 'SlateGrey', '#d163': 'DodgerBlue2', '#d162': 'DodgerBlue1', '#d165': 'DodgerBlue3', '#d164': 'DodgerBlue4', '#d167': 'SteelBlue4', '#d166': 'AliceBlue', '#d635': 'grey17', '#d634': 'gray17', '#d637': 'grey16', '#d636': 'gray16', '#d631': 'grey19', '#d630': 'gray19', '#d633': 'grey18', '#d632': 'gray18', '#d639': 'grey15', '#d638': 'gray15', '#d368': 'PapayaWhip', '#d222': 'cyan', '#d223': 'cyan1', '#d220': 'LightCyan4', '#d221': 'aqua', '#d226': 'DarkSlateGray4', '#d227': 'cyan3', '#d224': 'PaleTurquoise4', '#d225': 'cyan2', '#d228': 'cyan4', '#d229': 'DarkCyan', '#d590': 'gray39', '#d538': 'gray63', '#d539': 'grey63', '#d591': 'grey39', '#d451': 'MistyRose', '#d450': 'MistyRose2', '#d453': 'salmon', '#d452': 'MistyRose1', '#d455': 'white', '#d454': 'MistyRose3', '#d457': 'grey100', '#d456': 'gray100', '#d459': 'gray99', '#d458': 'grey100', '#d592': 'gray38', '#d593': 'grey38', '#d594': 'gray37', '#d595': 'grey37', '#d596': 'gray36', '#d597': 'grey36', '#d297': 'YellowGreen', '#d296': 'OliveDrab3', '#d295': 'OliveDrab2', '#d294': 'OliveDrab1', '#d293': 'OliveDrab', '#d292': 'DarkOliveGreen', '#d291': 'DarkOliveGreen4', '#d290': 'DarkOliveGreen2', '#d356': 'wheat2', '#d357': 'OldLace', '#d354': 'DarkGoldenrod4', '#d355': 'FloralWhite', '#d352': 'DarkGoldenrod2', '#d353': 'DarkGoldenrod3', '#d299': 'ivory', '#d298': 'OliveDrab4', '#d468': 'gray95', '#d534': 'gray65', '#d535': 'grey65', '#d52': 'LavenderBlush2', '#d53': 'LavenderBlush4', '#d50': 'LavenderBlush1', '#d51': 'LavenderBlush3', '#d56': 'VioletRed3', '#d57': 'VioletRed1', '#d54': 'maroon', '#d55': 'HotPink3', '#d58': 'VioletRed2', '#d59': 'VioletRed4', '#d469': 'grey95', '#d558': 'gray53', '#d559': 'grey53', '#d576': 'gray45', '#d577': 'grey45', '#d574': 'gray46', '#d575': 'grey46', '#d572': 'gray47', '#d573': 'grey47', '#d570': 'gray48', '#d571': 'grey48', '#d671': 'opaque', '#d670': 'grey0', '#d673': 'transparent', '#d672': 'none', '#d578': 'gray44', '#d579': 'grey44', '#d589': 'grey40', '#d588': 'gray40', '#d4': 'RosyBrown2', '#d5': 'snow3', '#d6': 'LightCoral', '#d7': 'IndianRed1', '#d0': 'snow', '#d1': 'snow1', '#d2': 'snow2', '#d3': 'RosyBrown1', '#d8': 'RosyBrown3', '#d9': 'IndianRed2', '#d136': 'MediumBlue', '#d137': 'blue4', '#d134': 'blue2', '#d135': 'blue3', '#d132': 'blue', '#d133': 'blue1', '#d130': 'GhostWhite', '#d131': 'lavender', '#d583': 'grey42', '#d138': 'DarkBlue', '#d139': 'MidnightBlue', '#d312': 'yellow1', '#d313': 'yellow2', '#d310': 'LightYellow4', '#d311': 'yellow', '#d316': 'olive', '#d317': 'DarkKhaki', '#d314': 'yellow3', '#d315': 'yellow4', '#d318': 'khaki2', '#d319': 'LemonChiffon4', '#d259': 'DarkSeaGreen1', '#d258': 'honeydew2', '#d253': 'SeaGreen4', '#d252': 'SeaGreen1', '#d251': 'SeaGreen3', '#d250': 'SeaGreen', '#d257': 'honeydew1', '#d256': 'honeydew', '#d255': 'MediumForestGreen', '#d254': 'SeaGreen2', '#d345': 'goldenrod', '#d344': 'cornsilk1', '#d612': 'gray28', '#d347': 'goldenrod2', '#d461': 'gray98', '#d346': 'goldenrod1', '#d479': 'grey90', '#d341': 'cornsilk3', '#d478': 'gray90', '#d340': 'LightGoldenrod2', '#d343': 'cornsilk', '#d342': 'cornsilk2', '#d528': 'gray67', '#d408': 'seashell4', '#d409': 'seashell2', '#d406': 'PeachPuff3', '#d407': 'SandyBrown', '#d404': 'PeachPuff4', '#d405': 'PeachPuff2', '#d402': 'PeachPuff', '#d403': 'PeachPuff1', '#d400': 'tan3', '#d401': 'tan4', '#d552': 'gray56', '#d460': 'grey99', '#d16': 'firebrick2', '#d17': 'snow4', '#d14': 'IndianRed', '#d15': 'IndianRed3', '#d12': 'firebrick1', '#d13': 'brown2', '#d10': 'RosyBrown', '#d11': 'brown1', '#d532': 'gray66', '#d533': 'grey66', '#d530': 'DarkGray', '#d531': 'DarkGrey', '#d536': 'gray64', '#d537': 'grey64', '#d18': 'brown3', '#d19': 'red', '#d329': 'MediumGoldenRod', '#d328': 'LemonChiffon2', '#d178': 'LightSkyBlue1', '#d179': 'LightSkyBlue2', '#d172': 'SkyBlue4', '#d173': 'SkyBlue1', '#d170': 'SteelBlue2', '#d171': 'SteelBlue3', '#d176': 'LightSkyBlue', '#d177': 'LightSkyBlue4', '#d174': 'SkyBlue2', '#d175': 'SkyBlue3', '#d626': 'gray21', '#d627': 'grey21', '#d624': 'gray22', '#d625': 'grey22', '#d622': 'gray23', '#d623': 'grey23', '#d620': 'gray24', '#d621': 'grey24', '#d628': 'gray20', '#d629': 'grey20', '#d219': 'azure4', '#d218': 'DarkSlateGray3', '#d217': 'PaleTurquoise3', '#d216': 'DarkSlateGray2', '#d215': 'LightCyan3', '#d214': 'azure3', '#d213': 'DarkSlateGray1', '#d212': 'PaleTurquoise2', '#d211': 'PaleTurquoise', '#d210': 'PaleTurquoise1', '#d669': 'gray0', '#d582': 'gray42', '#d442': 'coral3', '#d443': 'coral4', '#d440': 'coral1', '#d441': 'coral2', '#d446': 'tomato1', '#d447': 'tomato2', '#d444': 'tomato4', '#d445': 'tomato', '#d448': 'tomato3', '#d449': 'MistyRose4', '#d280': 'DarkGreen', '#d281': 'LawnGreen', '#d282': 'chartreuse', '#d283': 'chartreuse1', '#d284': 'chartreuse2', '#d285': 'chartreuse3', '#d286': 'chartreuse4', '#d287': 'GreenYellow', '#d288': 'DarkOliveGreen3', '#d289': 'DarkOliveGreen1', '#d361': 'orange', '#d360': 'wheat3', '#d367': 'moccasin', '#d366': 'wheat4', '#d365': 'orange4', '#d364': 'orange3', '#d49': 'LavenderBlush', '#d48': 'PaleVioletRed3', '#d45': 'PaleVioletRed', '#d44': 'PaleVioletRed4', '#d47': 'PaleVioletRed1', '#d46': 'PaleVioletRed2', '#d41': 'pink2', '#d40': 'pink1', '#d43': 'pink4', '#d42': 'pink3', '#d358': 'wheat', '#d527': 'grey68', '#d526': 'gray68', '#d614': 'gray27', '#d543': 'grey61', '#d542': 'gray61', '#d541': 'grey62', '#d540': 'gray62', '#d547': 'grey59', '#d546': 'gray59', '#d545': 'grey60', '#d544': 'gray60', '#d662': 'gray3', '#d663': 'grey3', '#d549': 'grey58', '#d548': 'gray58', '#d666': 'gray1', '#d667': 'grey1', '#d664': 'gray2', '#d665': 'grey2', '#d103': 'MediumOrchid4', '#d102': 'MediumOrchid3', '#d101': 'MediumOrchid2', '#d100': 'MediumOrchid1', '#d107': 'DarkOrchid3', '#d106': 'DarkOrchid1', '#d105': 'DarkOrchid', '#d104': 'DarkViolet', '#d109': 'DarkOrchid4', '#d108': 'DarkOrchid2', '#d244': 'SpringGreen', '#d245': 'SpringGreen1', '#d246': 'SpringGreen2', '#d247': 'SpringGreen3', '#d240': 'aquamarine3', '#d241': 'MediumAquamarine', '#d242': 'MediumSpringGreen', '#d243': 'MintCream', '#d327': 'LemonChiffon3', '#d326': 'khaki', '#d325': 'LemonChiffon1', '#d324': 'LemonChiffon', '#d248': 'SpringGreen4', '#d249': 'MediumSeaGreen', '#d321': 'khaki3', '#d320': 'khaki1', '#d350': 'DarkGoldenrod', '#d439': 'salmon4', '#d438': 'salmon3', '#d98': 'purple', '#d99': 'MediumOrchid', '#d96': 'DarkMagenta', '#d97': 'magenta4', '#d94': 'magenta2', '#d95': 'magenta3', '#d92': 'magenta1', '#d93': 'plum4', '#d90': 'fuchsia', '#d91': 'magenta', '#d433': 'OrangeRed3', '#d432': 'OrangeRed2', '#d431': 'OrangeRed1', '#d74': 'VioletRed', '#d75': 'orchid2', '#d76': 'orchid', '#d77': 'orchid1', '#d70': 'maroon2', '#d71': 'maroon3', '#d72': 'maroon4', '#d73': 'MediumVioletRed', '#d437': 'salmon2', '#d78': 'orchid3', '#d79': 'orchid4', '#d436': 'salmon1', '#d435': 'DarkSalmon', '#d434': 'OrangeRed4', '#d507': 'gray77', '#d506': 'grey78', '#d505': 'gray78', '#d504': 'grey79', '#d503': 'gray79', '#d502': 'grey80', '#d501': 'gray80', '#d500': 'grey81', '#d509': 'gray76', '#d508': 'grey77', '#d473': 'grey93', '#d369': 'NavajoWhite3', '#d147': 'CornflowerBlue', '#d146': 'RoyalBlue4', '#d145': 'RoyalBlue3', '#d144': 'RoyalBlue2', '#d143': 'RoyalBlue1', '#d142': 'RoyalBlue', '#d141': 'NavyBlue', '#d140': 'navy', '#d149': 'LightSteelBlue1', '#d148': 'LightSteelBlue', '#d472': 'gray93', '#d613': 'grey28', '#d363': 'orange2', '#d611': 'grey29', '#d610': 'gray29', '#d617': 'grey26', '#d616': 'gray26', '#d615': 'grey27', '#d362': 'orange1', '#d619': 'grey25', '#d618': 'gray25', '#d208': 'azure2', '#d209': 'LightCyan2', '#d200': 'turquoise4', '#d201': 'cadet blue', '#d202': 'CadetBlue', '#d203': 'DarkTurquoise', '#d204': 'azure', '#d205': 'azure1', '#d206': 'LightCyan', '#d207': 'LightCyan1', '#d608': 'gray30', '#d609': 'grey30', '#d374': 'NavajoWhite4', '#d375': 'AntiqueWhite4', '#d376': 'AntiqueWhite', '#d377': 'tan', '#d370': 'BlanchedAlmond', '#d371': 'NavajoWhite', '#d372': 'NavajoWhite1', '#d373': 'NavajoWhite2', '#d477': 'grey91', '#d476': 'gray91', '#d475': 'grey92', '#d474': 'gray92', '#d378': 'bisque4', '#d379': 'burlywood', '#d471': 'grey94', '#d470': 'gray94', '#d279': 'green', '#d278': 'green4', '#d275': 'PaleGreen4', '#d274': 'green2', '#d277': 'ForestGreen', '#d276': 'green3', '#d271': 'lime', '#d270': 'green1', '#d273': 'DarkSeaGreen4', '#d272': 'LimeGreen', '#d38': 'pink', '#d39': 'crimson', '#d30': 'DarkRed', '#d31': 'red4', '#d32': 'maroon', '#d33': 'LightPink1', '#d34': 'LightPink3', '#d35': 'LightPink4', '#d36': 'LightPink2', '#d37': 'LightPink', '#d658': 'gray5', '#d389': 'bisque', '#d388': 'bisque2', '#d381': 'burlywood1', '#d380': 'AntiqueWhite2', '#d383': 'burlywood2', '#d382': 'burlywood3', '#d385': 'burlywood4', '#d384': 'AntiqueWhite1', '#d387': 'DarkOrange', '#d386': 'AntiqueWhite3', '#d189': 'LightBlue2', '#d188': 'LightBlue1', '#d183': 'DeepSkyBlue', '#d182': 'LightBlue3', '#d181': 'SkyBlue', '#d180': 'LightSkyBlue3', '#d187': 'DeepSkyBlue3', '#d186': 'DeepSkyBlue4', '#d185': 'DeepSkyBlue2', '#d184': 'DeepSkyBlue1', '#d657': 'grey6', '#d656': 'gray6', '#d655': 'grey7', '#d654': 'gray7', '#d653': 'grey8', '#d652': 'gray8', '#d651': 'grey9', '#d650': 'gray9', '#d550': 'gray57', '#d659': 'grey5', '#d551': 'grey57', '#d495': 'LightGray', '#d494': 'grey83', '#d497': 'gray82', '#d496': 'LightGrey', '#d491': 'gray84', '#d490': 'grey85', '#d493': 'gray83', '#d492': 'grey84', '#d554': 'gray55', '#d555': 'grey55', '#d556': 'gray54', '#d557': 'grey54', '#d499': 'gray81', '#d498': 'grey82', '#d323': 'PaleGoldenrod', '#d553': 'grey56'};
+var rgbtohex = {'rgb(255, 235, 205)': '#FFEBCD', 'rgb(205, 155, 155)': '#CD9B9B', 'rgb(0, 0, 128)': '#000080', 'rgb(179, 238, 58)': '#B3EE3A', 'rgb(205, 51, 51)': '#CD3333', 'rgb(118, 238, 198)': '#76EEC6', 'rgb(214, 214, 214)': '#D6D6D6', 'rgb(189, 189, 189)': '#BDBDBD', 'rgb(139, 131, 120)': '#8B8378', 'rgb(0, 238, 238)': '#00EEEE', 'rgb(137, 104, 205)': '#8968CD', 'rgb(85, 107, 47)': '#556B2F', 'rgb(107, 107, 107)': '#6B6B6B', 'rgb(205, 205, 180)': '#CDCDB4', 'rgb(218, 112, 214)': '#DA70D6', 'rgb(34, 139, 34)': '#228B22', 'rgb(245, 222, 179)': '#F5DEB3', 'rgb(139, 90, 43)': '#8B5A2B', 'rgb(255, 246, 143)': '#FFF68F', 'rgb(205, 91, 69)': '#CD5B45', 'rgb(255, 187, 255)': '#FFBBFF', 'rgb(162, 181, 205)': '#A2B5CD', 'rgb(238, 118, 0)': '#EE7600', 'rgb(238, 154, 73)': '#EE9A49', 'rgb(194, 194, 194)': '#C2C2C2', 'rgb(184, 134, 11)': '#B8860B', 'rgb(93, 71, 139)': '#5D478B', 'rgb(255, 182, 193)': '#FFB6C1', 'rgb(139, 69, 0)': '#8B4500', 'rgb(105, 89, 205)': '#6959CD', 'rgb(238, 173, 14)': '#EEAD0E', 'rgb(151, 255, 255)': '#97FFFF', 'rgb(205, 150, 205)': '#CD96CD', 'rgb(255, 69, 0)': '#FF4500', 'rgb(0, 134, 139)': '#00868B', 'rgb(0, 238, 0)': '#00EE00', 'rgb(255, 106, 106)': '#FF6A6A', 'rgb(186, 186, 186)': '#BABABA', 'rgb(143, 188, 143)': '#8FBC8F', 'rgb(139, 99, 108)': '#8B636C', 'rgb(224, 102, 255)': '#E066FF', 'rgb(100, 149, 237)': '#6495ED', 'rgb(0, 139, 69)': '#008B45', 'rgb(178, 223, 238)': '#B2DFEE', 'rgb(205, 192, 176)': '#CDC0B0', 'rgb(0, 206, 209)': '#00CED1', 'rgb(104, 131, 139)': '#68838B', 'rgb(155, 205, 155)': '#9BCD9B', 'rgb(139, 76, 57)': '#8B4C39', 'rgb(205, 149, 12)': '#CD950C', 'rgb(67, 205, 128)': '#43CD80', 'rgb(54, 54, 54)': '#363636', 'rgb(0, 205, 205)': '#00CDCD', 'rgb(99, 184, 255)': '#63B8FF', 'rgb(238, 233, 233)': '#EEE9E9', 'rgb(205, 201, 201)': '#CDC9C9', 'rgb(156, 156, 156)': '#9C9C9C', 'rgb(139, 125, 123)': '#8B7D7B', 'rgb(148, 148, 148)': '#949494', 'rgb(102, 205, 170)': '#66CDAA', 'rgb(139, 54, 38)': '#8B3626', 'rgb(255, 181, 197)': '#FFB5C5', 'rgb(173, 216, 230)': '#ADD8E6', 'rgb(46, 46, 46)': '#2E2E2E', 'rgb(164, 211, 238)': '#A4D3EE', 'rgb(232, 232, 232)': '#E8E8E8', 'rgb(105, 105, 105)': '#696969', 'rgb(205, 193, 197)': '#CDC1C5', 'rgb(20, 20, 20)': '#141414', 'rgb(139, 139, 131)': '#8B8B83', 'rgb(255, 114, 86)': '#FF7256', 'rgb(0, 104, 139)': '#00688B', 'rgb(205, 41, 144)': '#CD2990', 'rgb(127, 127, 127)': '#7F7F7F', 'rgb(255, 239, 213)': '#FFEFD5', 'rgb(238, 238, 209)': '#EEEED1', 'rgb(242, 242, 242)': '#F2F2F2', 'rgb(240, 230, 140)': '#F0E68C', 'rgb(238, 207, 161)': '#EECFA1', 'rgb(25, 25, 112)': '#191970', 'rgb(205, 79, 57)': '#CD4F39', 'rgb(84, 84, 84)': '#545454', 'rgb(110, 139, 61)': '#6E8B3D', 'rgb(255, 215, 0)': '#FFD700', 'rgb(143, 143, 143)': '#8F8F8F', 'rgb(238, 59, 59)': '#EE3B3B', 'rgb(166, 166, 166)': '#A6A6A6', 'rgb(255, 160, 122)': '#FFA07A', 'rgb(51, 51, 51)': '#333333', 'rgb(224, 238, 224)': '#E0EEE0', 'rgb(139, 121, 94)': '#8B795E', 'rgb(110, 123, 139)': '#6E7B8B', 'rgb(26, 26, 26)': '#1A1A1A', 'rgb(238, 99, 99)': '#EE6363', 'rgb(178, 58, 238)': '#B23AEE', 'rgb(238, 197, 145)': '#EEC591', 'rgb(171, 171, 171)': '#ABABAB', 'rgb(237, 237, 237)': '#EDEDED', 'rgb(238, 0, 0)': '#EE0000', 'rgb(139, 71, 38)': '#8B4726', 'rgb(82, 139, 139)': '#528B8B', 'rgb(139, 105, 105)': '#8B6969', 'rgb(160, 32, 240)': '#A020F0', 'rgb(78, 238, 148)': '#4EEE94', 'rgb(205, 85, 85)': '#CD5555', 'rgb(205, 181, 205)': '#CDB5CD', 'rgb(184, 184, 184)': '#B8B8B8', 'rgb(255, 222, 173)': '#FFDEAD', 'rgb(8, 8, 8)': '#080808', 'rgb(255, 248, 220)': '#FFF8DC', 'rgb(175, 238, 238)': '#AFEEEE', 'rgb(255, 130, 71)': '#FF8247', 'rgb(13, 13, 13)': '#0D0D0D', 'rgb(0, 139, 139)': '#008B8B', 'rgb(187, 255, 255)': '#BBFFFF', 'rgb(147, 112, 219)': '#9370DB', 'rgb(0, 128, 0)': '#008000', 'rgb(238, 64, 0)': '#EE4000', 'rgb(238, 18, 137)': '#EE1289', 'rgb(54, 100, 139)': '#36648B', 'rgb(176, 176, 176)': '#B0B0B0', 'rgb(0, 0, 238)': '#0000EE', 'rgb(238, 154, 0)': '#EE9A00', 'rgb(188, 143, 143)': '#BC8F8F', 'rgb(240, 255, 255)': '#F0FFFF', 'rgb(191, 62, 255)': '#BF3EFF', 'rgb(171, 130, 255)': '#AB82FF', 'rgb(205, 173, 0)': '#CDAD00', 'rgb(255, 48, 48)': '#FF3030', 'rgb(122, 197, 205)': '#7AC5CD', 'rgb(139, 87, 66)': '#8B5742', 'rgb(204, 204, 204)': '#CCCCCC', 'rgb(205, 129, 98)': '#CD8162', 'rgb(224, 224, 224)': '#E0E0E0', 'rgb(218, 165, 32)': '#DAA520', 'rgb(205, 145, 158)': '#CD919E', 'rgb(139, 62, 47)': '#8B3E2F', 'rgb(238, 122, 233)': '#EE7AE9', 'rgb(152, 251, 152)': '#98FB98', 'rgb(240, 128, 128)': '#F08080', 'rgb(162, 205, 90)': '#A2CD5A', 'rgb(79, 79, 79)': '#4F4F4F', 'rgb(169, 169, 169)': '#A9A9A9', 'rgb(255, 127, 0)': '#FF7F00', 'rgb(139, 28, 98)': '#8B1C62', 'rgb(253, 245, 230)': '#FDF5E6', 'rgb(141, 238, 238)': '#8DEEEE', 'rgb(238, 213, 210)': '#EED5D2', 'rgb(208, 32, 144)': '#D02090', 'rgb(0, 205, 0)': '#00CD00', 'rgb(139, 71, 137)': '#8B4789', 'rgb(205, 201, 165)': '#CDC9A5', 'rgb(0, 229, 238)': '#00E5EE', 'rgb(205, 140, 149)': '#CD8C95', 'rgb(124, 205, 124)': '#7CCD7C', 'rgb(220, 220, 220)': '#DCDCDC', 'rgb(238, 229, 222)': '#EEE5DE', 'rgb(87, 87, 87)': '#575757', 'rgb(70, 130, 180)': '#4682B4', 'rgb(205, 104, 137)': '#CD6889', 'rgb(15, 15, 15)': '#0F0F0F', 'rgb(38, 38, 38)': '#262626', 'rgb(238, 180, 34)': '#EEB422', 'rgb(205, 200, 177)': '#CDC8B1', 'rgb(238, 210, 238)': '#EED2EE', 'rgb(150, 150, 150)': '#969696', 'rgb(0, 255, 127)': '#00FF7F', 'rgb(139, 126, 102)': '#8B7E66', 'rgb(205, 175, 149)': '#CDAF95', 'rgb(152, 245, 255)': '#98F5FF', 'rgb(0, 250, 154)': '#00FA9A', 'rgb(120, 120, 120)': '#787878', 'rgb(238, 118, 33)': '#EE7621', 'rgb(128, 128, 0)': '#808000', 'rgb(139, 137, 112)': '#8B8970', 'rgb(107, 142, 35)': '#6B8E23', 'rgb(219, 219, 219)': '#DBDBDB', 'rgb(205, 205, 0)': '#CDCD00', 'rgb(180, 205, 205)': '#B4CDCD', 'rgb(115, 115, 115)': '#737373', 'rgb(131, 139, 139)': '#838B8B', 'rgb(0, 178, 238)': '#00B2EE', 'rgb(94, 94, 94)': '#5E5E5E', 'rgb(135, 135, 135)': '#878787', 'rgb(145, 145, 145)': '#919191', 'rgb(205, 0, 0)': '#CD0000', 'rgb(16, 78, 139)': '#104E8B', 'rgb(133, 133, 133)': '#858585', 'rgb(205, 38, 38)': '#CD2626', 'rgb(255, 193, 193)': '#FFC1C1', 'rgb(205, 183, 181)': '#CDB7B5', 'rgb(122, 55, 139)': '#7A378B', 'rgb(154, 192, 205)': '#9AC0CD', 'rgb(191, 239, 255)': '#BFEFFF', 'rgb(219, 112, 147)': '#DB7093', 'rgb(121, 205, 205)': '#79CDCD', 'rgb(238, 232, 170)': '#EEE8AA', 'rgb(102, 205, 0)': '#66CD00', 'rgb(255, 185, 15)': '#FFB90F', 'rgb(176, 196, 222)': '#B0C4DE', 'rgb(255, 236, 139)': '#FFEC8B', 'rgb(205, 105, 201)': '#CD69C9', 'rgb(250, 250, 250)': '#FAFAFA', 'rgb(245, 245, 220)': '#F5F5DC', 'rgb(238, 106, 80)': '#EE6A50', 'rgb(64, 64, 64)': '#404040', 'rgb(238, 220, 130)': '#EEDC82', 'white': '#000000', 'rgb(125, 38, 205)': '#7D26CD', 'rgb(205, 133, 63)': '#CD853F', 'rgb(139, 102, 139)': '#8B668B', 'rgb(71, 71, 71)': '#474747', 'rgb(118, 238, 0)': '#76EE00', 'rgb(192, 255, 62)': '#C0FF3E', 'rgb(0, 0, 139)': '#00008B', 'rgb(248, 248, 255)': '#F8F8FF', 'rgb(3, 3, 3)': '#030303', 'rgb(176, 226, 255)': '#B0E2FF', 'rgb(139, 105, 20)': '#8B6914', 'rgb(255, 105, 180)': '#FF69B4', 'rgb(124, 252, 0)': '#7CFC00', 'rgb(238, 238, 224)': '#EEEEE0', 'rgb(139, 69, 19)': '#8B4513', 'rgb(139, 0, 139)': '#8B008B', 'rgb(31, 31, 31)': '#1F1F1F', 'rgb(159, 182, 205)': '#9FB6CD', 'rgb(181, 181, 181)': '#B5B5B5', 'rgb(0, 245, 255)': '#00F5FF', 'rgb(105, 139, 105)': '#698B69', 'rgb(159, 121, 238)': '#9F79EE', 'rgb(205, 198, 115)': '#CDC673', 'rgb(77, 77, 77)': '#4D4D4D', 'rgb(139, 90, 0)': '#8B5A00', 'rgb(122, 122, 122)': '#7A7A7A', 'rgb(224, 238, 238)': '#E0EEEE', 'rgb(50, 129, 75)': '#32814B', 'rgb(202, 225, 255)': '#CAE1FF', 'rgb(255, 110, 180)': '#FF6EB4', 'rgb(238, 48, 167)': '#EE30A7', 'rgb(220, 20, 60)': '#DC143C', 'rgb(127, 255, 212)': '#7FFFD4', 'rgb(205, 179, 139)': '#CDB38B', 'rgb(28, 28, 28)': '#1C1C1C', 'rgb(229, 229, 229)': '#E5E5E5', 'rgb(47, 79, 79)': '#2F4F4F', 'rgb(59, 59, 59)': '#3B3B3B', 'rgb(69, 139, 116)': '#458B74', 'rgb(255, 211, 155)': '#FFD39B', 'rgb(139, 119, 101)': '#8B7765', 'rgb(238, 230, 133)': '#EEE685', 'rgb(10, 10, 10)': '#0A0A0A', 'rgb(144, 238, 144)': '#90EE90', 'rgb(99, 99, 99)': '#636363', 'rgb(188, 238, 104)': '#BCEE68', 'rgb(255, 231, 186)': '#FFE7BA', 'rgb(154, 50, 205)': '#9A32CD', 'rgb(46, 139, 87)': '#2E8B57', 'rgb(145, 44, 238)': '#912CEE', 'rgb(255, 240, 245)': '#FFF0F5', 'rgb(67, 110, 238)': '#436EEE', 'rgb(238, 180, 180)': '#EEB4B4', 'rgb(108, 166, 205)': '#6CA6CD', 'rgb(173, 173, 173)': '#ADADAD', 'rgb(176, 48, 96)': '#B03060', 'rgb(23, 23, 23)': '#171717', 'rgb(138, 138, 138)': '#8A8A8A', 'rgb(139, 137, 137)': '#8B8989', 'rgb(209, 193, 102)': '#D1C166', 'rgb(139, 123, 139)': '#8B7B8B', 'rgb(154, 255, 154)': '#9AFF9A', 'rgb(130, 130, 130)': '#828282', 'rgb(255, 99, 71)': '#FF6347', 'rgb(205, 183, 158)': '#CDB79E', 'rgb(205, 102, 29)': '#CD661D', 'rgb(128, 0, 0)': '#800000', 'rgb(0, 0, 255)': '#0000FF', 'rgb(255, 52, 179)': '#FF34B3', 'rgb(250, 235, 215)': '#FAEBD7', 'rgb(163, 163, 163)': '#A3A3A3', 'rgb(56, 56, 56)': '#383838', 'rgb(85, 26, 139)': '#551A8B', 'rgb(139, 58, 58)': '#8B3A3A', 'rgb(168, 168, 168)': '#A8A8A8', 'rgb(255, 225, 255)': '#FFE1FF', 'rgb(125, 125, 125)': '#7D7D7D', 'rgb(131, 111, 255)': '#836FFF', 'rgb(95, 158, 160)': '#5F9EA0', 'rgb(165, 42, 42)': '#A52A2A', 'rgb(245, 255, 250)': '#F5FFFA', 'rgb(255, 218, 185)': '#FFDAB9', 'rgb(255, 228, 225)': '#FFE4E1', 'rgb(216, 191, 216)': '#D8BFD8', 'rgb(139, 101, 8)': '#8B6508', 'rgb(205, 104, 57)': '#CD6839', 'rgb(255, 131, 250)': '#FF83FA', 'rgb(82, 82, 82)': '#525252', 'rgb(117, 117, 117)': '#757575', 'rgb(255, 165, 0)': '#FFA500', 'rgb(255, 64, 64)': '#FF4040', 'rgb(255, 165, 79)': '#FFA54F', 'rgb(205, 55, 0)': '#CD3700', 'rgb(188, 210, 238)': '#BCD2EE', 'rgb(238, 121, 159)': '#EE799F', 'rgb(5, 5, 5)': '#050505', 'rgb(217, 217, 217)': '#D9D9D9', 'rgb(205, 186, 150)': '#CDBA96', 'rgb(139, 131, 134)': '#8B8386', 'rgb(185, 211, 238)': '#B9D3EE', 'rgb(235, 235, 235)': '#EBEBEB', 'rgb(230, 230, 250)': '#E6E6FA', 'rgb(41, 41, 41)': '#292929', 'rgb(205, 92, 92)': '#CD5C5C', 'rgb(131, 139, 131)': '#838B83', 'rgb(123, 104, 238)': '#7B68EE', 'rgb(128, 0, 128)': '#800080', 'rgb(139, 26, 26)': '#8B1A1A', 'rgb(141, 182, 205)': '#8DB6CD', 'rgb(212, 212, 212)': '#D4D4D4', 'rgb(238, 162, 173)': '#EEA2AD', 'rgb(255, 255, 0)': '#FFFF00', 'rgb(192, 192, 192)': '#C0C0C0', 'rgb(139, 71, 93)': '#8B475D', 'rgb(0, 100, 0)': '#006400', 'rgb(139, 37, 0)': '#8B2500', 'rgb(198, 226, 255)': '#C6E2FF', 'rgb(24, 116, 205)': '#1874CD', 'rgb(178, 34, 34)': '#B22222', 'rgb(28, 134, 238)': '#1C86EE', 'rgb(255, 0, 255)': '#FF00FF', 'rgb(33, 33, 33)': '#212121', 'rgb(209, 238, 238)': '#D1EEEE', 'rgb(255, 127, 80)': '#FF7F50', 'rgb(0, 154, 205)': '#009ACD', 'rgb(255, 255, 224)': '#FFFFE0', 'rgb(75, 0, 130)': '#4B0082', 'rgb(160, 82, 45)': '#A0522D', 'rgb(138, 43, 226)': '#8A2BE2', 'rgb(238, 224, 229)': '#EEE0E5', 'rgb(106, 90, 205)': '#6A5ACD', 'rgb(227, 227, 227)': '#E3E3E3', 'rgb(255, 250, 250)': '#FFFAFA', 'rgb(255, 174, 185)': '#FFAEB9', 'rgb(205, 0, 205)': '#CD00CD', 'rgb(126, 126, 126)': '#7E7E7E', 'rgb(139, 10, 80)': '#8B0A50', 'rgb(186, 85, 211)': '#BA55D3', 'rgb(205, 133, 0)': '#CD8500', 'rgb(211, 211, 211)': '#D3D3D3', 'rgb(69, 69, 69)': '#454545', 'rgb(222, 222, 222)': '#DEDEDE', 'rgb(221, 160, 221)': '#DDA0DD', 'rgb(255, 255, 240)': '#FFFFF0', 'rgb(112, 112, 112)': '#707070', 'rgb(209, 95, 238)': '#D15FEE', 'rgb(0, 255, 0)': '#00FF00', 'rgb(238, 233, 191)': '#EEE9BF', 'rgb(92, 92, 92)': '#5C5C5C', 'rgb(205, 112, 84)': '#CD7054', 'rgb(255, 228, 196)': '#FFE4C4', 'rgb(255, 192, 203)': '#FFC0CB', 'rgb(238, 130, 238)': '#EE82EE', 'rgb(122, 103, 238)': '#7A67EE', 'rgb(238, 121, 66)': '#EE7942', 'rgb(102, 139, 139)': '#668B8B', 'rgb(250, 240, 230)': '#FAF0E6', 'rgb(247, 247, 247)': '#F7F7F7', 'rgb(32, 178, 170)': '#20B2AA', 'rgb(97, 97, 97)': '#616161', 'rgb(150, 205, 205)': '#96CDCD', 'rgb(158, 158, 158)': '#9E9E9E', 'rgb(238, 58, 140)': '#EE3A8C', 'rgb(255, 228, 181)': '#FFE4B5', 'rgb(0, 197, 205)': '#00C5CD', 'rgb(205, 96, 144)': '#CD6090', 'rgb(205, 16, 118)': '#CD1076', 'rgb(240, 240, 240)': '#F0F0F0', 'rgb(176, 224, 230)': '#B0E0E6', 'rgb(199, 21, 133)': '#C71585', 'rgb(238, 203, 173)': '#EECBAD', 'rgb(173, 255, 47)': '#ADFF2F', 'rgb(238, 174, 238)': '#EEAEEE', 'rgb(191, 191, 191)': '#BFBFBF', 'rgb(222, 184, 135)': '#DEB887', 'rgb(18, 18, 18)': '#121212', 'rgb(83, 134, 139)': '#53868B', 'rgb(139, 134, 130)': '#8B8682', 'rgb(142, 229, 238)': '#8EE5EE', 'rgb(0, 139, 0)': '#008B00', 'rgb(240, 255, 240)': '#F0FFF0', 'rgb(104, 34, 139)': '#68228B', 'rgb(193, 255, 193)': '#C1FFC1', 'rgb(0, 0, 0)': '#000000', 'rgb(139, 58, 98)': '#8B3A62', 'rgb(89, 89, 89)': '#595959', 'rgb(72, 118, 255)': '#4876FF', 'rgb(108, 123, 139)': '#6C7B8B', 'rgb(255, 20, 147)': '#FF1493', 'rgb(255, 250, 240)': '#FFFAF0', 'rgb(132, 112, 255)': '#8470FF', 'rgb(255, 62, 150)': '#FF3E96', 'rgb(139, 125, 107)': '#8B7D6B', 'rgb(64, 224, 208)': '#40E0D0', 'rgb(148, 0, 211)': '#9400D3', 'rgb(238, 106, 167)': '#EE6AA7', 'rgb(238, 44, 44)': '#EE2C2C', 'rgb(72, 209, 204)': '#48D1CC', 'rgb(205, 155, 29)': '#CD9B1D', 'rgb(139, 0, 0)': '#8B0000', 'rgb(238, 92, 66)': '#EE5C42', 'rgb(238, 216, 174)': '#EED8AE', 'rgb(65, 105, 225)': '#4169E1', 'rgb(0, 205, 102)': '#00CD66', 'rgb(96, 123, 139)': '#607B8B', 'rgb(210, 180, 140)': '#D2B48C', 'rgb(135, 206, 255)': '#87CEFF', 'rgb(252, 252, 252)': '#FCFCFC', 'rgb(61, 61, 61)': '#3D3D3D', 'rgb(205, 102, 0)': '#CD6600', 'rgb(58, 95, 205)': '#3A5FCD', 'rgb(30, 144, 255)': '#1E90FF', 'rgb(245, 245, 245)': '#F5F5F5', 'rgb(255, 130, 171)': '#FF82AB', 'rgb(60, 179, 113)': '#3CB371', 'rgb(139, 139, 122)': '#8B8B7A', 'rgb(139, 136, 120)': '#8B8878', 'rgb(139, 34, 82)': '#8B2252', 'rgb(238, 223, 204)': '#EEDFCC', 'rgb(238, 213, 183)': '#EED5B7', 'rgb(250, 250, 210)': '#FAFAD2', 'rgb(255, 250, 205)': '#FFFACD', 'rgb(39, 64, 139)': '#27408B', 'rgb(84, 139, 84)': '#548B54', 'rgb(238, 221, 130)': '#EEDD82', 'rgb(139, 95, 101)': '#8B5F65', 'rgb(210, 105, 30)': '#D2691E', 'rgb(139, 139, 0)': '#8B8B00', 'rgb(238, 149, 114)': '#EE9572', 'rgb(0, 255, 255)': '#00FFFF', 'rgb(71, 60, 139)': '#473C8B', 'rgb(207, 207, 207)': '#CFCFCF', 'rgb(153, 50, 204)': '#9932CC', 'rgb(36, 36, 36)': '#242424', 'rgb(153, 153, 153)': '#999999', 'rgb(250, 128, 114)': '#FA8072', 'rgb(174, 238, 238)': '#AEEEEE', 'rgb(139, 117, 0)': '#8B7500', 'rgb(139, 35, 35)': '#8B2323', 'rgb(92, 172, 238)': '#5CACEE', 'rgb(48, 48, 48)': '#303030', 'rgb(139, 129, 76)': '#8B814C', 'rgb(72, 61, 139)': '#483D8B', 'rgb(238, 169, 184)': '#EEA9B8', 'rgb(69, 139, 0)': '#458B00', 'rgb(0, 128, 128)': '#008080', 'rgb(255, 255, 255)': '#FFFFFF', 'rgb(244, 164, 96)': '#F4A460', 'rgb(154, 205, 50)': '#9ACD32', 'rgb(126, 192, 238)': '#7EC0EE', 'rgb(209, 209, 209)': '#D1D1D1', 'rgb(74, 112, 139)': '#4A708B', 'rgb(112, 128, 144)': '#708090', 'rgb(105, 139, 34)': '#698B22', 'rgb(110, 110, 110)': '#6E6E6E', 'rgb(179, 179, 179)': '#B3B3B3', 'rgb(205, 50, 120)': '#CD3278', 'rgb(119, 136, 153)': '#778899', 'rgb(139, 115, 85)': '#8B7355', 'rgb(255, 193, 37)': '#FFC125', 'rgb(224, 255, 255)': '#E0FFFF', 'rgb(66, 66, 66)': '#424242', 'rgb(193, 205, 193)': '#C1CDC1', 'rgb(0, 191, 255)': '#00BFFF', 'rgb(205, 205, 193)': '#CDCDC1', 'rgb(238, 238, 0)': '#EEEE00', 'rgb(255, 140, 105)': '#FF8C69', 'rgb(135, 206, 235)': '#87CEEB', 'rgb(238, 201, 0)': '#EEC900', 'rgb(238, 232, 205)': '#EEE8CD', 'rgb(0, 0, 205)': '#0000CD', 'rgb(238, 130, 98)': '#EE8262', 'rgb(155, 48, 255)': '#9B30FF', 'rgb(43, 43, 43)': '#2B2B2B', 'rgb(240, 248, 255)': '#F0F8FF', 'rgb(238, 0, 238)': '#EE00EE', 'rgb(128, 128, 128)': '#808080', 'rgb(193, 205, 205)': '#C1CDCD', 'rgb(50, 205, 50)': '#32CD32', 'rgb(201, 201, 201)': '#C9C9C9', 'rgb(255, 239, 219)': '#FFEFDB', 'rgb(196, 196, 196)': '#C4C4C4', 'rgb(135, 206, 250)': '#87CEFA', 'rgb(139, 134, 78)': '#8B864E', 'rgb(79, 148, 205)': '#4F94CD', 'rgb(74, 74, 74)': '#4A4A4A', 'rgb(255, 0, 0)': '#FF0000', 'rgb(233, 150, 122)': '#E9967A', 'rgb(205, 190, 112)': '#CDBE70', 'rgb(84, 255, 159)': '#54FF9F', 'rgb(205, 170, 125)': '#CDAA7D', 'rgb(127, 255, 0)': '#7FFF00', 'rgb(102, 102, 102)': '#666666', 'rgb(180, 238, 180)': '#B4EEB4', 'rgb(122, 139, 139)': '#7A8B8B', 'rgb(255, 140, 0)': '#FF8C00', 'rgb(205, 197, 191)': '#CDC5BF', 'rgb(140, 140, 140)': '#8C8C8C', 'rgb(199, 199, 199)': '#C7C7C7', 'rgb(202, 255, 112)': '#CAFF70', 'rgb(255, 245, 238)': '#FFF5EE', 'rgb(189, 183, 107)': '#BDB76B', 'rgb(0, 238, 118)': '#00EE76', 'rgb(180, 82, 205)': '#B452CD', 'rgb(255, 127, 36)': '#FF7F24', 'rgb(161, 161, 161)': '#A1A1A1'};
+var rgbtoname = {'rgb(255, 235, 205)': 'BlanchedAlmond', 'rgb(205, 155, 155)': 'RosyBrown3', 'rgb(0, 0, 128)': 'NavyBlue', 'rgb(179, 238, 58)': 'OliveDrab2', 'rgb(205, 51, 51)': 'brown3', 'rgb(118, 238, 198)': 'aquamarine2', 'rgb(214, 214, 214)': 'grey84', 'rgb(189, 189, 189)': 'grey74', 'rgb(139, 131, 120)': 'AntiqueWhite4', 'rgb(0, 238, 238)': 'cyan2', 'rgb(137, 104, 205)': 'MediumPurple3', 'rgb(85, 107, 47)': 'DarkOliveGreen', 'rgb(107, 107, 107)': 'grey42', 'rgb(205, 205, 180)': 'LightYellow3', 'rgb(218, 112, 214)': 'orchid', 'rgb(34, 139, 34)': 'ForestGreen', 'rgb(245, 222, 179)': 'wheat', 'rgb(139, 90, 43)': 'tan4', 'rgb(255, 246, 143)': 'khaki1', 'rgb(205, 91, 69)': 'coral3', 'rgb(255, 187, 255)': 'plum1', 'rgb(162, 181, 205)': 'LightSteelBlue3', 'rgb(238, 118, 0)': 'DarkOrange2', 'rgb(238, 154, 73)': 'tan2', 'rgb(194, 194, 194)': 'grey76', 'rgb(184, 134, 11)': 'DarkGoldenrod', 'rgb(93, 71, 139)': 'MediumPurple4', 'rgb(255, 182, 193)': 'LightPink', 'rgb(139, 69, 0)': 'DarkOrange4', 'rgb(105, 89, 205)': 'SlateBlue3', 'rgb(238, 173, 14)': 'DarkGoldenrod2', 'rgb(151, 255, 255)': 'DarkSlateGray1', 'rgb(205, 150, 205)': 'plum3', 'rgb(255, 69, 0)': 'OrangeRed1', 'rgb(0, 134, 139)': 'turquoise4', 'rgb(0, 238, 0)': 'green2', 'rgb(255, 106, 106)': 'IndianRed1', 'rgb(186, 186, 186)': 'grey73', 'rgb(143, 188, 143)': 'DarkSeaGreen', 'rgb(139, 99, 108)': 'pink4', 'rgb(224, 102, 255)': 'MediumOrchid1', 'rgb(100, 149, 237)': 'CornflowerBlue', 'rgb(0, 139, 69)': 'SpringGreen4', 'rgb(178, 223, 238)': 'LightBlue2', 'rgb(205, 192, 176)': 'AntiqueWhite3', 'rgb(0, 206, 209)': 'DarkTurquoise', 'rgb(104, 131, 139)': 'LightBlue4', 'rgb(155, 205, 155)': 'DarkSeaGreen3', 'rgb(139, 76, 57)': 'salmon4', 'rgb(205, 149, 12)': 'DarkGoldenrod3', 'rgb(67, 205, 128)': 'SeaGreen3', 'rgb(54, 54, 54)': 'grey21', 'rgb(0, 205, 205)': 'cyan3', 'rgb(99, 184, 255)': 'SteelBlue1', 'rgb(238, 233, 233)': 'snow2', 'rgb(205, 201, 201)': 'snow3', 'rgb(156, 156, 156)': 'grey61', 'rgb(139, 125, 123)': 'MistyRose4', 'rgb(148, 148, 148)': 'grey58', 'rgb(102, 205, 170)': 'MediumAquamarine', 'rgb(139, 54, 38)': 'tomato4', 'rgb(255, 181, 197)': 'pink1', 'rgb(173, 216, 230)': 'LightBlue', 'rgb(46, 46, 46)': 'grey18', 'rgb(164, 211, 238)': 'LightSkyBlue2', 'rgb(232, 232, 232)': 'grey91', 'rgb(105, 105, 105)': 'grey41', 'rgb(205, 193, 197)': 'LavenderBlush3', 'rgb(20, 20, 20)': 'grey8', 'rgb(139, 139, 131)': 'ivory4', 'rgb(255, 114, 86)': 'coral1', 'rgb(0, 104, 139)': 'DeepSkyBlue4', 'rgb(205, 41, 144)': 'maroon3', 'rgb(127, 127, 127)': 'grey50', 'rgb(255, 239, 213)': 'PapayaWhip', 'rgb(238, 238, 209)': 'LightYellow2', 'rgb(242, 242, 242)': 'grey95', 'rgb(240, 230, 140)': 'khaki', 'rgb(238, 207, 161)': 'NavajoWhite2', 'rgb(25, 25, 112)': 'MidnightBlue', 'rgb(205, 79, 57)': 'tomato3', 'rgb(84, 84, 84)': 'grey33', 'rgb(110, 139, 61)': 'DarkOliveGreen4', 'rgb(255, 215, 0)': 'gold1', 'rgb(143, 143, 143)': 'grey56', 'rgb(238, 59, 59)': 'brown2', 'rgb(166, 166, 166)': 'grey65', 'rgb(255, 160, 122)': 'LightSalmon1', 'rgb(51, 51, 51)': 'grey20', 'rgb(224, 238, 224)': 'honeydew2', 'rgb(139, 121, 94)': 'NavajoWhite4', 'rgb(110, 123, 139)': 'LightSteelBlue4', 'rgb(26, 26, 26)': 'grey10', 'rgb(238, 99, 99)': 'IndianRed2', 'rgb(178, 58, 238)': 'DarkOrchid2', 'rgb(238, 197, 145)': 'burlywood2', 'rgb(171, 171, 171)': 'grey67', 'rgb(237, 237, 237)': 'grey93', 'rgb(238, 0, 0)': 'red2', 'rgb(139, 71, 38)': 'sienna4', 'rgb(82, 139, 139)': 'DarkSlateGray4', 'rgb(139, 105, 105)': 'RosyBrown4', 'rgb(160, 32, 240)': 'purple', 'rgb(78, 238, 148)': 'SeaGreen2', 'rgb(205, 85, 85)': 'IndianRed3', 'rgb(205, 181, 205)': 'thistle3', 'rgb(184, 184, 184)': 'grey72', 'rgb(255, 222, 173)': 'NavajoWhite1', 'rgb(8, 8, 8)': 'grey3', 'rgb(255, 248, 220)': 'cornsilk1', 'rgb(175, 238, 238)': 'PaleTurquoise', 'rgb(255, 130, 71)': 'sienna1', 'rgb(13, 13, 13)': 'grey5', 'rgb(0, 139, 139)': 'DarkCyan', 'rgb(187, 255, 255)': 'PaleTurquoise1', 'rgb(147, 112, 219)': 'MediumPurple', 'rgb(0, 128, 0)': 'green', 'rgb(238, 64, 0)': 'OrangeRed2', 'rgb(238, 18, 137)': 'DeepPink2', 'rgb(54, 100, 139)': 'SteelBlue4', 'rgb(176, 176, 176)': 'grey69', 'rgb(0, 0, 238)': 'blue2', 'rgb(238, 154, 0)': 'orange2', 'rgb(188, 143, 143)': 'RosyBrown', 'rgb(240, 255, 255)': 'azure1', 'rgb(191, 62, 255)': 'DarkOrchid1', 'rgb(171, 130, 255)': 'MediumPurple1', 'rgb(205, 173, 0)': 'gold3', 'rgb(255, 48, 48)': 'firebrick1', 'rgb(122, 197, 205)': 'CadetBlue3', 'rgb(139, 87, 66)': 'LightSalmon4', 'rgb(204, 204, 204)': 'grey80', 'rgb(205, 129, 98)': 'LightSalmon3', 'rgb(224, 224, 224)': 'grey88', 'rgb(218, 165, 32)': 'goldenrod', 'rgb(205, 145, 158)': 'pink3', 'rgb(139, 62, 47)': 'coral4', 'rgb(238, 122, 233)': 'orchid2', 'rgb(152, 251, 152)': 'PaleGreen', 'rgb(240, 128, 128)': 'LightCoral', 'rgb(162, 205, 90)': 'DarkOliveGreen3', 'rgb(79, 79, 79)': 'grey31', 'rgb(169, 169, 169)': 'DarkGrey', 'rgb(255, 127, 0)': 'DarkOrange1', 'rgb(139, 28, 98)': 'maroon4', 'rgb(253, 245, 230)': 'OldLace', 'rgb(141, 238, 238)': 'DarkSlateGray2', 'rgb(238, 213, 210)': 'MistyRose2', 'rgb(208, 32, 144)': 'VioletRed', 'rgb(0, 205, 0)': 'green3', 'rgb(139, 71, 137)': 'orchid4', 'rgb(205, 201, 165)': 'LemonChiffon3', 'rgb(0, 229, 238)': 'turquoise2', 'rgb(205, 140, 149)': 'LightPink3', 'rgb(124, 205, 124)': 'PaleGreen3', 'rgb(220, 220, 220)': 'gainsboro', 'rgb(238, 229, 222)': 'seashell2', 'rgb(87, 87, 87)': 'grey34', 'rgb(70, 130, 180)': 'SteelBlue', 'rgb(205, 104, 137)': 'PaleVioletRed3', 'rgb(15, 15, 15)': 'grey6', 'rgb(38, 38, 38)': 'grey15', 'rgb(238, 180, 34)': 'goldenrod2', 'rgb(205, 200, 177)': 'cornsilk3', 'rgb(238, 210, 238)': 'thistle2', 'rgb(150, 150, 150)': 'grey59', 'rgb(0, 255, 127)': 'SpringGreen1', 'rgb(139, 126, 102)': 'wheat4', 'rgb(205, 175, 149)': 'PeachPuff3', 'rgb(152, 245, 255)': 'CadetBlue1', 'rgb(0, 250, 154)': 'MediumSpringGreen', 'rgb(120, 120, 120)': 'grey47', 'rgb(238, 118, 33)': 'chocolate2', 'rgb(128, 128, 0)': 'olive', 'rgb(139, 137, 112)': 'LemonChiffon4', 'rgb(107, 142, 35)': 'OliveDrab', 'rgb(219, 219, 219)': 'grey86', 'rgb(205, 205, 0)': 'yellow3', 'rgb(180, 205, 205)': 'LightCyan3', 'rgb(115, 115, 115)': 'grey45', 'rgb(131, 139, 139)': 'azure4', 'rgb(0, 178, 238)': 'DeepSkyBlue2', 'rgb(94, 94, 94)': 'grey37', 'rgb(135, 135, 135)': 'grey53', 'rgb(145, 145, 145)': 'grey57', 'rgb(205, 0, 0)': 'red3', 'rgb(16, 78, 139)': 'DodgerBlue4', 'rgb(133, 133, 133)': 'grey52', 'rgb(205, 38, 38)': 'firebrick3', 'rgb(255, 193, 193)': 'RosyBrown1', 'rgb(205, 183, 181)': 'MistyRose3', 'rgb(122, 55, 139)': 'MediumOrchid4', 'rgb(154, 192, 205)': 'LightBlue3', 'rgb(191, 239, 255)': 'LightBlue1', 'rgb(219, 112, 147)': 'PaleVioletRed', 'rgb(121, 205, 205)': 'DarkSlateGray3', 'rgb(238, 232, 170)': 'PaleGoldenrod', 'rgb(102, 205, 0)': 'chartreuse3', 'rgb(255, 185, 15)': 'DarkGoldenrod1', 'rgb(176, 196, 222)': 'LightSteelBlue', 'rgb(255, 236, 139)': 'LightGoldenrod1', 'rgb(205, 105, 201)': 'orchid3', 'rgb(250, 250, 250)': 'grey98', 'rgb(245, 245, 220)': 'beige', 'rgb(238, 106, 80)': 'coral2', 'rgb(64, 64, 64)': 'grey25', 'rgb(238, 220, 130)': 'LightGoldenrod2', 'white': 'none', 'rgb(125, 38, 205)': 'purple3', 'rgb(205, 133, 63)': 'tan3', 'rgb(139, 102, 139)': 'plum4', 'rgb(71, 71, 71)': 'grey28', 'rgb(118, 238, 0)': 'chartreuse2', 'rgb(192, 255, 62)': 'OliveDrab1', 'rgb(0, 0, 139)': 'DarkBlue', 'rgb(248, 248, 255)': 'GhostWhite', 'rgb(3, 3, 3)': 'grey1', 'rgb(176, 226, 255)': 'LightSkyBlue1', 'rgb(139, 105, 20)': 'goldenrod4', 'rgb(255, 105, 180)': 'HotPink', 'rgb(124, 252, 0)': 'LawnGreen', 'rgb(238, 238, 224)': 'ivory2', 'rgb(139, 69, 19)': 'SaddleBrown', 'rgb(139, 0, 139)': 'magenta4', 'rgb(31, 31, 31)': 'grey12', 'rgb(159, 182, 205)': 'SlateGray3', 'rgb(181, 181, 181)': 'grey71', 'rgb(0, 245, 255)': 'turquoise1', 'rgb(105, 139, 105)': 'DarkSeaGreen4', 'rgb(159, 121, 238)': 'MediumPurple2', 'rgb(205, 198, 115)': 'khaki3', 'rgb(77, 77, 77)': 'grey30', 'rgb(139, 90, 0)': 'orange4', 'rgb(122, 122, 122)': 'grey48', 'rgb(224, 238, 238)': 'azure2', 'rgb(50, 129, 75)': 'MediumForestGreen', 'rgb(202, 225, 255)': 'LightSteelBlue1', 'rgb(255, 110, 180)': 'HotPink1', 'rgb(238, 48, 167)': 'maroon2', 'rgb(220, 20, 60)': 'crimson', 'rgb(127, 255, 212)': 'aquamarine1', 'rgb(205, 179, 139)': 'NavajoWhite3', 'rgb(28, 28, 28)': 'grey11', 'rgb(229, 229, 229)': 'grey90', 'rgb(47, 79, 79)': 'DarkSlateGrey', 'rgb(59, 59, 59)': 'grey23', 'rgb(69, 139, 116)': 'aquamarine4', 'rgb(255, 211, 155)': 'burlywood1', 'rgb(139, 119, 101)': 'PeachPuff4', 'rgb(238, 230, 133)': 'khaki2', 'rgb(10, 10, 10)': 'grey4', 'rgb(144, 238, 144)': 'PaleGreen2', 'rgb(99, 99, 99)': 'grey39', 'rgb(188, 238, 104)': 'DarkOliveGreen2', 'rgb(255, 231, 186)': 'wheat1', 'rgb(154, 50, 205)': 'DarkOrchid3', 'rgb(46, 139, 87)': 'SeaGreen4', 'rgb(145, 44, 238)': 'purple2', 'rgb(255, 240, 245)': 'LavenderBlush1', 'rgb(67, 110, 238)': 'RoyalBlue2', 'rgb(238, 180, 180)': 'RosyBrown2', 'rgb(108, 166, 205)': 'SkyBlue3', 'rgb(173, 173, 173)': 'grey68', 'rgb(176, 48, 96)': 'maroon', 'rgb(23, 23, 23)': 'grey9', 'rgb(138, 138, 138)': 'grey54', 'rgb(139, 137, 137)': 'snow4', 'rgb(209, 193, 102)': 'MediumGoldenRod', 'rgb(139, 123, 139)': 'thistle4', 'rgb(154, 255, 154)': 'PaleGreen1', 'rgb(130, 130, 130)': 'grey51', 'rgb(255, 99, 71)': 'tomato1', 'rgb(205, 183, 158)': 'bisque3', 'rgb(205, 102, 29)': 'chocolate3', 'rgb(128, 0, 0)': 'maroon', 'rgb(0, 0, 255)': 'blue1', 'rgb(255, 52, 179)': 'maroon1', 'rgb(250, 235, 215)': 'AntiqueWhite', 'rgb(163, 163, 163)': 'grey64', 'rgb(56, 56, 56)': 'grey22', 'rgb(85, 26, 139)': 'purple4', 'rgb(139, 58, 58)': 'IndianRed4', 'rgb(168, 168, 168)': 'grey66', 'rgb(255, 225, 255)': 'thistle1', 'rgb(125, 125, 125)': 'grey49', 'rgb(131, 111, 255)': 'SlateBlue1', 'rgb(95, 158, 160)': 'CadetBlue', 'rgb(165, 42, 42)': 'brown', 'rgb(245, 255, 250)': 'MintCream', 'rgb(255, 218, 185)': 'PeachPuff1', 'rgb(255, 228, 225)': 'MistyRose1', 'rgb(216, 191, 216)': 'thistle', 'rgb(139, 101, 8)': 'DarkGoldenrod4', 'rgb(205, 104, 57)': 'sienna3', 'rgb(255, 131, 250)': 'orchid1', 'rgb(82, 82, 82)': 'grey32', 'rgb(117, 117, 117)': 'grey46', 'rgb(255, 165, 0)': 'orange1', 'rgb(255, 64, 64)': 'brown1', 'rgb(255, 165, 79)': 'tan1', 'rgb(205, 55, 0)': 'OrangeRed3', 'rgb(188, 210, 238)': 'LightSteelBlue2', 'rgb(238, 121, 159)': 'PaleVioletRed2', 'rgb(5, 5, 5)': 'grey2', 'rgb(217, 217, 217)': 'grey85', 'rgb(205, 186, 150)': 'wheat3', 'rgb(139, 131, 134)': 'LavenderBlush4', 'rgb(185, 211, 238)': 'SlateGray2', 'rgb(235, 235, 235)': 'grey92', 'rgb(230, 230, 250)': 'lavender', 'rgb(41, 41, 41)': 'grey16', 'rgb(205, 92, 92)': 'IndianRed', 'rgb(131, 139, 131)': 'honeydew4', 'rgb(123, 104, 238)': 'MediumSlateBlue', 'rgb(128, 0, 128)': 'purple', 'rgb(139, 26, 26)': 'firebrick4', 'rgb(141, 182, 205)': 'LightSkyBlue3', 'rgb(212, 212, 212)': 'grey83', 'rgb(238, 162, 173)': 'LightPink2', 'rgb(255, 255, 0)': 'yellow1', 'rgb(192, 192, 192)': 'silver', 'rgb(139, 71, 93)': 'PaleVioletRed4', 'rgb(0, 100, 0)': 'DarkGreen', 'rgb(139, 37, 0)': 'OrangeRed4', 'rgb(198, 226, 255)': 'SlateGray1', 'rgb(24, 116, 205)': 'DodgerBlue3', 'rgb(178, 34, 34)': 'firebrick', 'rgb(28, 134, 238)': 'DodgerBlue2', 'rgb(255, 0, 255)': 'magenta1', 'rgb(33, 33, 33)': 'grey13', 'rgb(209, 238, 238)': 'LightCyan2', 'rgb(255, 127, 80)': 'coral', 'rgb(0, 154, 205)': 'DeepSkyBlue3', 'rgb(255, 255, 224)': 'LightYellow1', 'rgb(75, 0, 130)': 'indigo', 'rgb(160, 82, 45)': 'sienna', 'rgb(138, 43, 226)': 'BlueViolet', 'rgb(238, 224, 229)': 'LavenderBlush2', 'rgb(106, 90, 205)': 'SlateBlue', 'rgb(227, 227, 227)': 'grey89', 'rgb(255, 250, 250)': 'snow1', 'rgb(255, 174, 185)': 'LightPink1', 'rgb(205, 0, 205)': 'magenta3', 'rgb(126, 126, 126)': 'gray', 'rgb(139, 10, 80)': 'DeepPink4', 'rgb(186, 85, 211)': 'MediumOrchid', 'rgb(205, 133, 0)': 'orange3', 'rgb(211, 211, 211)': 'LightGrey', 'rgb(69, 69, 69)': 'grey27', 'rgb(222, 222, 222)': 'grey87', 'rgb(221, 160, 221)': 'plum', 'rgb(255, 255, 240)': 'ivory1', 'rgb(112, 112, 112)': 'grey44', 'rgb(209, 95, 238)': 'MediumOrchid2', 'rgb(0, 255, 0)': 'lime', 'rgb(238, 233, 191)': 'LemonChiffon2', 'rgb(92, 92, 92)': 'grey36', 'rgb(205, 112, 84)': 'salmon3', 'rgb(255, 228, 196)': 'bisque1', 'rgb(255, 192, 203)': 'pink', 'rgb(238, 130, 238)': 'violet', 'rgb(122, 103, 238)': 'SlateBlue2', 'rgb(238, 121, 66)': 'sienna2', 'rgb(102, 139, 139)': 'PaleTurquoise4', 'rgb(250, 240, 230)': 'linen', 'rgb(247, 247, 247)': 'grey97', 'rgb(32, 178, 170)': 'LightSeaGreen', 'rgb(97, 97, 97)': 'grey38', 'rgb(150, 205, 205)': 'PaleTurquoise3', 'rgb(158, 158, 158)': 'grey62', 'rgb(238, 58, 140)': 'VioletRed2', 'rgb(255, 228, 181)': 'moccasin', 'rgb(0, 197, 205)': 'turquoise3', 'rgb(205, 96, 144)': 'HotPink3', 'rgb(205, 16, 118)': 'DeepPink3', 'rgb(240, 240, 240)': 'grey94', 'rgb(176, 224, 230)': 'PowderBlue', 'rgb(199, 21, 133)': 'MediumVioletRed', 'rgb(238, 203, 173)': 'PeachPuff2', 'rgb(173, 255, 47)': 'GreenYellow', 'rgb(238, 174, 238)': 'plum2', 'rgb(191, 191, 191)': 'grey75', 'rgb(222, 184, 135)': 'burlywood', 'rgb(18, 18, 18)': 'grey7', 'rgb(83, 134, 139)': 'CadetBlue4', 'rgb(139, 134, 130)': 'seashell4', 'rgb(142, 229, 238)': 'CadetBlue2', 'rgb(0, 139, 0)': 'green4', 'rgb(240, 255, 240)': 'honeydew1', 'rgb(104, 34, 139)': 'DarkOrchid4', 'rgb(193, 255, 193)': 'DarkSeaGreen1', 'rgb(0, 0, 0)': 'opaque', 'rgb(139, 58, 98)': 'HotPink4', 'rgb(89, 89, 89)': 'grey35', 'rgb(72, 118, 255)': 'RoyalBlue1', 'rgb(108, 123, 139)': 'SlateGray4', 'rgb(255, 20, 147)': 'DeepPink1', 'rgb(255, 250, 240)': 'FloralWhite', 'rgb(132, 112, 255)': 'LightSlateBlue', 'rgb(255, 62, 150)': 'VioletRed1', 'rgb(139, 125, 107)': 'bisque4', 'rgb(64, 224, 208)': 'turquoise', 'rgb(148, 0, 211)': 'DarkViolet', 'rgb(238, 106, 167)': 'HotPink2', 'rgb(238, 44, 44)': 'firebrick2', 'rgb(72, 209, 204)': 'MediumTurquoise', 'rgb(205, 155, 29)': 'goldenrod3', 'rgb(139, 0, 0)': 'red4', 'rgb(238, 92, 66)': 'tomato2', 'rgb(238, 216, 174)': 'wheat2', 'rgb(65, 105, 225)': 'RoyalBlue', 'rgb(0, 205, 102)': 'SpringGreen3', 'rgb(96, 123, 139)': 'LightSkyBlue4', 'rgb(210, 180, 140)': 'tan', 'rgb(135, 206, 255)': 'SkyBlue1', 'rgb(252, 252, 252)': 'grey99', 'rgb(61, 61, 61)': 'grey24', 'rgb(205, 102, 0)': 'DarkOrange3', 'rgb(58, 95, 205)': 'RoyalBlue3', 'rgb(30, 144, 255)': 'DodgerBlue1', 'rgb(245, 245, 245)': 'WhiteSmoke', 'rgb(255, 130, 171)': 'PaleVioletRed1', 'rgb(60, 179, 113)': 'MediumSeaGreen', 'rgb(139, 139, 122)': 'LightYellow4', 'rgb(139, 136, 120)': 'cornsilk4', 'rgb(139, 34, 82)': 'VioletRed4', 'rgb(238, 223, 204)': 'AntiqueWhite2', 'rgb(238, 213, 183)': 'bisque2', 'rgb(250, 250, 210)': 'LightGoldenrodYellow', 'rgb(255, 250, 205)': 'LemonChiffon1', 'rgb(39, 64, 139)': 'RoyalBlue4', 'rgb(84, 139, 84)': 'PaleGreen4', 'rgb(238, 221, 130)': 'LightGoldenrod', 'rgb(139, 95, 101)': 'LightPink4', 'rgb(210, 105, 30)': 'chocolate', 'rgb(139, 139, 0)': 'yellow4', 'rgb(238, 149, 114)': 'LightSalmon2', 'rgb(0, 255, 255)': 'cyan1', 'rgb(71, 60, 139)': 'SlateBlue4', 'rgb(207, 207, 207)': 'grey81', 'rgb(153, 50, 204)': 'DarkOrchid', 'rgb(36, 36, 36)': 'grey14', 'rgb(153, 153, 153)': 'grey60', 'rgb(250, 128, 114)': 'salmon', 'rgb(174, 238, 238)': 'PaleTurquoise2', 'rgb(139, 117, 0)': 'gold4', 'rgb(139, 35, 35)': 'brown4', 'rgb(92, 172, 238)': 'SteelBlue2', 'rgb(48, 48, 48)': 'grey19', 'rgb(139, 129, 76)': 'LightGoldenrod4', 'rgb(72, 61, 139)': 'DarkSlateBlue', 'rgb(238, 169, 184)': 'pink2', 'rgb(69, 139, 0)': 'chartreuse4', 'rgb(0, 128, 128)': 'teal', 'rgb(255, 255, 255)': 'grey100', 'rgb(244, 164, 96)': 'SandyBrown', 'rgb(154, 205, 50)': 'YellowGreen', 'rgb(126, 192, 238)': 'SkyBlue2', 'rgb(209, 209, 209)': 'grey82', 'rgb(74, 112, 139)': 'SkyBlue4', 'rgb(112, 128, 144)': 'SlateGrey', 'rgb(105, 139, 34)': 'OliveDrab4', 'rgb(110, 110, 110)': 'grey43', 'rgb(179, 179, 179)': 'grey70', 'rgb(205, 50, 120)': 'VioletRed3', 'rgb(119, 136, 153)': 'LightSlateGrey', 'rgb(139, 115, 85)': 'burlywood4', 'rgb(255, 193, 37)': 'goldenrod1', 'rgb(224, 255, 255)': 'LightCyan1', 'rgb(66, 66, 66)': 'grey26', 'rgb(193, 205, 193)': 'honeydew3', 'rgb(0, 191, 255)': 'DeepSkyBlue1', 'rgb(205, 205, 193)': 'ivory3', 'rgb(238, 238, 0)': 'yellow2', 'rgb(255, 140, 105)': 'salmon1', 'rgb(135, 206, 235)': 'SkyBlue', 'rgb(238, 201, 0)': 'gold2', 'rgb(238, 232, 205)': 'cornsilk2', 'rgb(0, 0, 205)': 'MediumBlue', 'rgb(238, 130, 98)': 'salmon2', 'rgb(155, 48, 255)': 'purple1', 'rgb(43, 43, 43)': 'grey17', 'rgb(240, 248, 255)': 'AliceBlue', 'rgb(238, 0, 238)': 'magenta2', 'rgb(128, 128, 128)': 'fractal', 'rgb(193, 205, 205)': 'azure3', 'rgb(50, 205, 50)': 'LimeGreen', 'rgb(201, 201, 201)': 'grey79', 'rgb(255, 239, 219)': 'AntiqueWhite1', 'rgb(196, 196, 196)': 'grey77', 'rgb(135, 206, 250)': 'LightSkyBlue', 'rgb(139, 134, 78)': 'khaki4', 'rgb(79, 148, 205)': 'SteelBlue3', 'rgb(74, 74, 74)': 'grey29', 'rgb(255, 0, 0)': 'red1', 'rgb(233, 150, 122)': 'DarkSalmon', 'rgb(205, 190, 112)': 'LightGoldenrod3', 'rgb(84, 255, 159)': 'SeaGreen1', 'rgb(205, 170, 125)': 'burlywood3', 'rgb(127, 255, 0)': 'chartreuse1', 'rgb(102, 102, 102)': 'grey40', 'rgb(180, 238, 180)': 'DarkSeaGreen2', 'rgb(122, 139, 139)': 'LightCyan4', 'rgb(255, 140, 0)': 'DarkOrange', 'rgb(205, 197, 191)': 'seashell3', 'rgb(140, 140, 140)': 'grey55', 'rgb(199, 199, 199)': 'grey78', 'rgb(202, 255, 112)': 'DarkOliveGreen1', 'rgb(255, 245, 238)': 'seashell1', 'rgb(189, 183, 107)': 'DarkKhaki', 'rgb(0, 238, 118)': 'SpringGreen2', 'rgb(180, 82, 205)': 'MediumOrchid3', 'rgb(255, 127, 36)': 'chocolate1', 'rgb(161, 161, 161)': 'grey63'};
+var hextorgb = {'#EE1289': 'rgb(238, 18, 137)', '#EE8262': 'rgb(238, 130, 98)', '#C4C4C4': 'rgb(196, 196, 196)', '#556B2F': 'rgb(85, 107, 47)', '#FF8C00': 'rgb(255, 140, 0)', '#8B7B8B': 'rgb(139, 123, 139)', '#0000EE': 'rgb(0, 0, 238)', '#EED5D2': 'rgb(238, 213, 210)', '#BA55D3': 'rgb(186, 85, 211)', '#FFF5EE': 'rgb(255, 245, 238)', '#912CEE': 'rgb(145, 44, 238)', '#2F4F4F': 'rgb(47, 79, 79)', '#32814B': 'rgb(50, 129, 75)', '#D15FEE': 'rgb(209, 95, 238)', '#F0FFF0': 'rgb(240, 255, 240)', '#B23AEE': 'rgb(178, 58, 238)', '#8B7765': 'rgb(139, 119, 101)', '#3D3D3D': 'rgb(61, 61, 61)', '#54FF9F': 'rgb(84, 255, 159)', '#636363': 'rgb(99, 99, 99)', '#8B8386': 'rgb(139, 131, 134)', '#FF4040': 'rgb(255, 64, 64)', '#EEA9B8': 'rgb(238, 169, 184)', '#C2C2C2': 'rgb(194, 194, 194)', '#800080': 'rgb(128, 0, 128)', '#545454': 'rgb(84, 84, 84)', '#EE3A8C': 'rgb(238, 58, 140)', '#8A8A8A': 'rgb(138, 138, 138)', '#FF00FF': 'rgb(255, 0, 255)', '#436EEE': 'rgb(67, 110, 238)', '#8B864E': 'rgb(139, 134, 78)', '#0A0A0A': 'rgb(10, 10, 10)', '#808000': 'rgb(128, 128, 0)', '#E3E3E3': 'rgb(227, 227, 227)', '#1874CD': 'rgb(24, 116, 205)', '#BCD2EE': 'rgb(188, 210, 238)', '#A9A9A9': 'rgb(169, 169, 169)', '#F4A460': 'rgb(244, 164, 96)', '#FF3030': 'rgb(255, 48, 48)', '#FFEBCD': 'rgb(255, 235, 205)', '#B0C4DE': 'rgb(176, 196, 222)', '#00CDCD': 'rgb(0, 205, 205)', '#C0FF3E': 'rgb(192, 255, 62)', '#FFD700': 'rgb(255, 215, 0)', '#242424': 'rgb(36, 36, 36)', '#8B2252': 'rgb(139, 34, 82)', '#4EEE94': 'rgb(78, 238, 148)', '#CD3278': 'rgb(205, 50, 120)', '#00E5EE': 'rgb(0, 229, 238)', '#CD853F': 'rgb(205, 133, 63)', '#ADD8E6': 'rgb(173, 216, 230)', '#C7C7C7': 'rgb(199, 199, 199)', '#CD2990': 'rgb(205, 41, 144)', '#EEE5DE': 'rgb(238, 229, 222)', '#66CD00': 'rgb(102, 205, 0)', '#878787': 'rgb(135, 135, 135)', '#FFA54F': 'rgb(255, 165, 79)', '#A2B5CD': 'rgb(162, 181, 205)', '#BC8F8F': 'rgb(188, 143, 143)', '#C9C9C9': 'rgb(201, 201, 201)', '#D1C166': 'rgb(209, 193, 102)', '#8B2323': 'rgb(139, 35, 35)', '#B3EE3A': 'rgb(179, 238, 58)', '#EEEED1': 'rgb(238, 238, 209)', '#AEEEEE': 'rgb(174, 238, 238)', '#BDBDBD': 'rgb(189, 189, 189)', '#FF7F00': 'rgb(255, 127, 0)', '#FFC0CB': 'rgb(255, 192, 203)', '#EE3B3B': 'rgb(238, 59, 59)', '#CDC8B1': 'rgb(205, 200, 177)', '#CDB38B': 'rgb(205, 179, 139)', '#CDBA96': 'rgb(205, 186, 150)', '#B4EEB4': 'rgb(180, 238, 180)', '#40E0D0': 'rgb(64, 224, 208)', '#8B795E': 'rgb(139, 121, 94)', '#27408B': 'rgb(39, 64, 139)', '#424242': 'rgb(66, 66, 66)', '#CDB7B5': 'rgb(205, 183, 181)', '#CAE1FF': 'rgb(202, 225, 255)', '#F0FFFF': 'rgb(240, 255, 255)', '#2E8B57': 'rgb(46, 139, 87)', '#87CEEB': 'rgb(135, 206, 235)', '#CD00CD': 'rgb(205, 0, 205)', '#CDAA7D': 'rgb(205, 170, 125)', '#836FFF': 'rgb(131, 111, 255)', '#ABABAB': 'rgb(171, 171, 171)', '#EEB4B4': 'rgb(238, 180, 180)', '#8B7355': 'rgb(139, 115, 85)', '#F0E68C': 'rgb(240, 230, 140)', '#CDCDB4': 'rgb(205, 205, 180)', '#4D4D4D': 'rgb(77, 77, 77)', '#B8B8B8': 'rgb(184, 184, 184)', '#B4CDCD': 'rgb(180, 205, 205)', '#008B8B': 'rgb(0, 139, 139)', '#828282': 'rgb(130, 130, 130)', '#00EEEE': 'rgb(0, 238, 238)', '#708090': 'rgb(112, 128, 144)', '#9AFF9A': 'rgb(154, 255, 154)', '#FFA07A': 'rgb(255, 160, 122)', '#EBEBEB': 'rgb(235, 235, 235)', '#FFB5C5': 'rgb(255, 181, 197)', '#00688B': 'rgb(0, 104, 139)', '#DBDBDB': 'rgb(219, 219, 219)', '#191970': 'rgb(25, 25, 112)', '#FF83FA': 'rgb(255, 131, 250)', '#A1A1A1': 'rgb(161, 161, 161)', '#838B8B': 'rgb(131, 139, 139)', '#FFA500': 'rgb(255, 165, 0)', '#00FF7F': 'rgb(0, 255, 127)', '#EEAD0E': 'rgb(238, 173, 14)', '#B03060': 'rgb(176, 48, 96)', '#96CDCD': 'rgb(150, 205, 205)', '#CD3333': 'rgb(205, 51, 51)', '#CDBE70': 'rgb(205, 190, 112)', '#7CCD7C': 'rgb(124, 205, 124)', '#97FFFF': 'rgb(151, 255, 255)', '#DAA520': 'rgb(218, 165, 32)', '#8B3A3A': 'rgb(139, 58, 58)', '#6B6B6B': 'rgb(107, 107, 107)', '#FFFAF0': 'rgb(255, 250, 240)', '#757575': 'rgb(117, 117, 117)', '#BFBFBF': 'rgb(191, 191, 191)', '#00EE76': 'rgb(0, 238, 118)', '#FFFAFA': 'rgb(255, 250, 250)', '#6E8B3D': 'rgb(110, 139, 61)', '#EEE685': 'rgb(238, 230, 133)', '#FF3E96': 'rgb(255, 62, 150)', '#EE0000': 'rgb(238, 0, 0)', '#FDF5E6': 'rgb(253, 245, 230)', '#E066FF': 'rgb(224, 102, 255)', '#8DB6CD': 'rgb(141, 182, 205)', '#FF7256': 'rgb(255, 114, 86)', '#7CFC00': 'rgb(124, 252, 0)', '#838B83': 'rgb(131, 139, 131)', '#BF3EFF': 'rgb(191, 62, 255)', '#8B6914': 'rgb(139, 105, 20)', '#00CD66': 'rgb(0, 205, 102)', '#525252': 'rgb(82, 82, 82)', '#A4D3EE': 'rgb(164, 211, 238)', '#00868B': 'rgb(0, 134, 139)', '#8DEEEE': 'rgb(141, 238, 238)', '#787878': 'rgb(120, 120, 120)', '#8B1C62': 'rgb(139, 28, 98)', '#616161': 'rgb(97, 97, 97)', '#4876FF': 'rgb(72, 118, 255)', '#9F79EE': 'rgb(159, 121, 238)', '#212121': 'rgb(33, 33, 33)', '#C1CDC1': 'rgb(193, 205, 193)', '#CD69C9': 'rgb(205, 105, 201)', '#E0EEEE': 'rgb(224, 238, 238)', '#8B7E66': 'rgb(139, 126, 102)', '#8A2BE2': 'rgb(138, 43, 226)', '#CDCD00': 'rgb(205, 205, 0)', '#EE5C42': 'rgb(238, 92, 66)', '#6E6E6E': 'rgb(110, 110, 110)', '#EEAEEE': 'rgb(238, 174, 238)', '#DC143C': 'rgb(220, 20, 60)', '#CD919E': 'rgb(205, 145, 158)', '#528B8B': 'rgb(82, 139, 139)', '#AFEEEE': 'rgb(175, 238, 238)', '#CD6889': 'rgb(205, 104, 137)', '#E6E6FA': 'rgb(230, 230, 250)', '#EE00EE': 'rgb(238, 0, 238)', '#999999': 'rgb(153, 153, 153)', '#F0F8FF': 'rgb(240, 248, 255)', '#595959': 'rgb(89, 89, 89)', '#FF7F50': 'rgb(255, 127, 80)', '#A6A6A6': 'rgb(166, 166, 166)', '#DEDEDE': 'rgb(222, 222, 222)', '#262626': 'rgb(38, 38, 38)', '#6CA6CD': 'rgb(108, 166, 205)', '#8B8B83': 'rgb(139, 139, 131)', '#474747': 'rgb(71, 71, 71)', '#F7F7F7': 'rgb(247, 247, 247)', '#548B54': 'rgb(84, 139, 84)', '#48D1CC': 'rgb(72, 209, 204)', '#C1CDCD': 'rgb(193, 205, 205)', '#E0EEE0': 'rgb(224, 238, 224)', '#FFB90F': 'rgb(255, 185, 15)', '#FFD39B': 'rgb(255, 211, 155)', '#8B5A2B': 'rgb(139, 90, 43)', '#EEE9BF': 'rgb(238, 233, 191)', '#BCEE68': 'rgb(188, 238, 104)', '#8470FF': 'rgb(132, 112, 255)', '#8B0A50': 'rgb(139, 10, 80)', '#FFF68F': 'rgb(255, 246, 143)', '#EEA2AD': 'rgb(238, 162, 173)', '#CD5B45': 'rgb(205, 91, 69)', '#7FFF00': 'rgb(127, 255, 0)', '#8B8378': 'rgb(139, 131, 120)', '#9BCD9B': 'rgb(155, 205, 155)', '#454545': 'rgb(69, 69, 69)', '#D1D1D1': 'rgb(209, 209, 209)', '#EEE8AA': 'rgb(238, 232, 170)', '#668B8B': 'rgb(102, 139, 139)', '#EE30A7': 'rgb(238, 48, 167)', '#FFC125': 'rgb(255, 193, 37)', '#8B475D': 'rgb(139, 71, 93)', '#D8BFD8': 'rgb(216, 191, 216)', '#404040': 'rgb(64, 64, 64)', '#EEEE00': 'rgb(238, 238, 0)', '#CDB5CD': 'rgb(205, 181, 205)', '#00C5CD': 'rgb(0, 197, 205)', '#00CED1': 'rgb(0, 206, 209)', '#CFCFCF': 'rgb(207, 207, 207)', '#008B00': 'rgb(0, 139, 0)', '#7A7A7A': 'rgb(122, 122, 122)', '#B8860B': 'rgb(184, 134, 11)', '#1C86EE': 'rgb(28, 134, 238)', '#8B5742': 'rgb(139, 87, 66)', '#1A1A1A': 'rgb(26, 26, 26)', '#8B008B': 'rgb(139, 0, 139)', '#0F0F0F': 'rgb(15, 15, 15)', '#CD3700': 'rgb(205, 55, 0)', '#7F7F7F': 'rgb(127, 127, 127)', '#FF6EB4': 'rgb(255, 110, 180)', '#6959CD': 'rgb(105, 89, 205)', '#90EE90': 'rgb(144, 238, 144)', '#8B4789': 'rgb(139, 71, 137)', '#EE7AE9': 'rgb(238, 122, 233)', '#8968CD': 'rgb(137, 104, 205)', '#080808': 'rgb(8, 8, 8)', '#CDC9C9': 'rgb(205, 201, 201)', '#BDB76B': 'rgb(189, 183, 107)', '#9370DB': 'rgb(147, 112, 219)', '#EEDC82': 'rgb(238, 220, 130)', '#3CB371': 'rgb(60, 179, 113)', '#F5FFFA': 'rgb(245, 255, 250)', '#303030': 'rgb(48, 48, 48)', '#B9D3EE': 'rgb(185, 211, 238)', '#575757': 'rgb(87, 87, 87)', '#F5F5DC': 'rgb(245, 245, 220)', '#BABABA': 'rgb(186, 186, 186)', '#0000CD': 'rgb(0, 0, 205)', '#FF8247': 'rgb(255, 130, 71)', '#F2F2F2': 'rgb(242, 242, 242)', '#EED5B7': 'rgb(238, 213, 183)', '#FFEC8B': 'rgb(255, 236, 139)', '#EE7600': 'rgb(238, 118, 0)', '#8B636C': 'rgb(139, 99, 108)', '#8B814C': 'rgb(139, 129, 76)', '#FFE4B5': 'rgb(255, 228, 181)', '#4F94CD': 'rgb(79, 148, 205)', '#CDAD00': 'rgb(205, 173, 0)', '#CD5555': 'rgb(205, 85, 85)', '#8B7500': 'rgb(139, 117, 0)', '#473C8B': 'rgb(71, 60, 139)', '#B0E0E6': 'rgb(176, 224, 230)', '#FFFF00': 'rgb(255, 255, 0)', '#CD96CD': 'rgb(205, 150, 205)', '#006400': 'rgb(0, 100, 0)', '#FAFAFA': 'rgb(250, 250, 250)', '#53868B': 'rgb(83, 134, 139)', '#8B4513': 'rgb(139, 69, 19)', '#98FB98': 'rgb(152, 251, 152)', '#63B8FF': 'rgb(99, 184, 255)', '#FFAEB9': 'rgb(255, 174, 185)', '#EE6A50': 'rgb(238, 106, 80)', '#87CEFF': 'rgb(135, 206, 255)', '#87CEFA': 'rgb(135, 206, 250)', '#ADFF2F': 'rgb(173, 255, 47)', '#008B45': 'rgb(0, 139, 69)', '#EE4000': 'rgb(238, 64, 0)', '#8B6969': 'rgb(139, 105, 105)', '#00008B': 'rgb(0, 0, 139)', '#DB7093': 'rgb(219, 112, 147)', '#7EC0EE': 'rgb(126, 192, 238)', '#3B3B3B': 'rgb(59, 59, 59)', '#8C8C8C': 'rgb(140, 140, 140)', '#5F9EA0': 'rgb(95, 158, 160)', '#EE799F': 'rgb(238, 121, 159)', '#CD6090': 'rgb(205, 96, 144)', '#8B8682': 'rgb(139, 134, 130)', '#458B74': 'rgb(69, 139, 116)', '#EECFA1': 'rgb(238, 207, 161)', '#76EE00': 'rgb(118, 238, 0)', '#000080': 'rgb(0, 0, 128)', '#228B22': 'rgb(34, 139, 34)', '#8B8B00': 'rgb(139, 139, 0)', '#B5B5B5': 'rgb(181, 181, 181)', '#CD950C': 'rgb(205, 149, 12)', '#EE82EE': 'rgb(238, 130, 238)', '#EDEDED': 'rgb(237, 237, 237)', '#F5DEB3': 'rgb(245, 222, 179)', '#3A5FCD': 'rgb(58, 95, 205)', '#00FA9A': 'rgb(0, 250, 154)', '#F0F0F0': 'rgb(240, 240, 240)', '#D1EEEE': 'rgb(209, 238, 238)', '#2E2E2E': 'rgb(46, 46, 46)', '#EEC591': 'rgb(238, 197, 145)', '#8B3E2F': 'rgb(139, 62, 47)', '#CD8162': 'rgb(205, 129, 98)', '#9AC0CD': 'rgb(154, 192, 205)', '#8B8989': 'rgb(139, 137, 137)', '#EED8AE': 'rgb(238, 216, 174)', '#551A8B': 'rgb(85, 26, 139)', '#919191': 'rgb(145, 145, 145)', '#949494': 'rgb(148, 148, 148)', '#778899': 'rgb(119, 136, 153)', '#FFFACD': 'rgb(255, 250, 205)', '#458B00': 'rgb(69, 139, 0)', '#008000': 'rgb(0, 128, 0)', '#FFFFF0': 'rgb(255, 255, 240)', '#E0E0E0': 'rgb(224, 224, 224)', '#EEB422': 'rgb(238, 180, 34)', '#A020F0': 'rgb(160, 32, 240)', '#5CACEE': 'rgb(92, 172, 238)', '#CD4F39': 'rgb(205, 79, 57)', '#CDC0B0': 'rgb(205, 192, 176)', '#6E7B8B': 'rgb(110, 123, 139)', '#9E9E9E': 'rgb(158, 158, 158)', '#CDC673': 'rgb(205, 198, 115)', '#104E8B': 'rgb(16, 78, 139)', '#E0FFFF': 'rgb(224, 255, 255)', '#FFFFFF': 'rgb(255, 255, 255)', '#6C7B8B': 'rgb(108, 123, 139)', '#FFC1C1': 'rgb(255, 193, 193)', '#D6D6D6': 'rgb(214, 214, 214)', '#8B4726': 'rgb(139, 71, 38)', '#CD9B1D': 'rgb(205, 155, 29)', '#FF6347': 'rgb(255, 99, 71)', '#FF34B3': 'rgb(255, 52, 179)', '#7D7D7D': 'rgb(125, 125, 125)', '#121212': 'rgb(18, 18, 18)', '#B0E2FF': 'rgb(176, 226, 255)', '#8B3A62': 'rgb(139, 58, 98)', '#CD5C5C': 'rgb(205, 92, 92)', '#4A4A4A': 'rgb(74, 74, 74)', '#B0B0B0': 'rgb(176, 176, 176)', '#D9D9D9': 'rgb(217, 217, 217)', '#A2CD5A': 'rgb(162, 205, 90)', '#8B0000': 'rgb(139, 0, 0)', '#FF6A6A': 'rgb(255, 106, 106)', '#CD6600': 'rgb(205, 102, 0)', '#FFEFDB': 'rgb(255, 239, 219)', '#E9967A': 'rgb(233, 150, 122)', '#EEE9E9': 'rgb(238, 233, 233)', '#D4D4D4': 'rgb(212, 212, 212)', '#383838': 'rgb(56, 56, 56)', '#7A67EE': 'rgb(122, 103, 238)', '#4169E1': 'rgb(65, 105, 225)', '#5E5E5E': 'rgb(94, 94, 94)', '#00F5FF': 'rgb(0, 245, 255)', '#FFEFD5': 'rgb(255, 239, 213)', '#CDAF95': 'rgb(205, 175, 149)', '#CCCCCC': 'rgb(204, 204, 204)', '#00BFFF': 'rgb(0, 191, 255)', '#CDB79E': 'rgb(205, 183, 158)', '#969696': 'rgb(150, 150, 150)', '#4F4F4F': 'rgb(79, 79, 79)', '#1E90FF': 'rgb(30, 144, 255)', '#FCFCFC': 'rgb(252, 252, 252)', '#EE2C2C': 'rgb(238, 44, 44)', '#8B6508': 'rgb(139, 101, 8)', '#696969': 'rgb(105, 105, 105)', '#FF7F24': 'rgb(255, 127, 36)', '#8FBC8F': 'rgb(143, 188, 143)', '#66CDAA': 'rgb(102, 205, 170)', '#6495ED': 'rgb(100, 149, 237)', '#0D0D0D': 'rgb(13, 13, 13)', '#EEE0E5': 'rgb(238, 224, 229)', '#666666': 'rgb(102, 102, 102)', '#B2DFEE': 'rgb(178, 223, 238)', '#B22222': 'rgb(178, 34, 34)', '#4B0082': 'rgb(75, 0, 130)', '#FF82AB': 'rgb(255, 130, 171)', '#AB82FF': 'rgb(171, 130, 255)', '#79CDCD': 'rgb(121, 205, 205)', '#FFE4C4': 'rgb(255, 228, 196)', '#DEB887': 'rgb(222, 184, 135)', '#5D478B': 'rgb(93, 71, 139)', '#8B3626': 'rgb(139, 54, 38)', '#FFFFE0': 'rgb(255, 255, 224)', '#FFE4E1': 'rgb(255, 228, 225)', '#171717': 'rgb(23, 23, 23)', '#EEDFCC': 'rgb(238, 223, 204)', '#9400D3': 'rgb(148, 0, 211)', '#BFEFFF': 'rgb(191, 239, 255)', '#8B7D6B': 'rgb(139, 125, 107)', '#FF8C69': 'rgb(255, 140, 105)', '#C6E2FF': 'rgb(198, 226, 255)', '#1C1C1C': 'rgb(28, 28, 28)', '#FF4500': 'rgb(255, 69, 0)', '#FFE7BA': 'rgb(255, 231, 186)', '#808080': 'rgb(128, 128, 128)', '#EE9572': 'rgb(238, 149, 114)', '#CD8500': 'rgb(205, 133, 0)', '#8B5A00': 'rgb(139, 90, 0)', '#9932CC': 'rgb(153, 50, 204)', '#EECBAD': 'rgb(238, 203, 173)', '#CD8C95': 'rgb(205, 140, 149)', '#292929': 'rgb(41, 41, 41)', '#CD1076': 'rgb(205, 16, 118)', '#7A378B': 'rgb(122, 55, 139)', '#FF0000': 'rgb(255, 0, 0)', '#698B22': 'rgb(105, 139, 34)', '#ADADAD': 'rgb(173, 173, 173)', '#EEE8CD': 'rgb(238, 232, 205)', '#DDA0DD': 'rgb(221, 160, 221)', '#7D26CD': 'rgb(125, 38, 205)', '#DA70D6': 'rgb(218, 112, 214)', '#DCDCDC': 'rgb(220, 220, 220)', '#68228B': 'rgb(104, 34, 139)', '#7B68EE': 'rgb(123, 104, 238)', '#000000': 'white', '#6B8E23': 'rgb(107, 142, 35)', '#FF69B4': 'rgb(255, 105, 180)', '#800000': 'rgb(128, 0, 0)', '#8B668B': 'rgb(139, 102, 139)', '#363636': 'rgb(54, 54, 54)', '#8B4500': 'rgb(139, 69, 0)', '#D3D3D3': 'rgb(211, 211, 211)', '#607B8B': 'rgb(96, 123, 139)', '#F08080': 'rgb(240, 128, 128)', '#CD9B9B': 'rgb(205, 155, 155)', '#76EEC6': 'rgb(118, 238, 198)', '#FAEBD7': 'rgb(250, 235, 215)', '#68838B': 'rgb(104, 131, 139)', '#7FFFD4': 'rgb(127, 255, 212)', '#C0C0C0': 'rgb(192, 192, 192)', '#EEDD82': 'rgb(238, 221, 130)', '#EE9A49': 'rgb(238, 154, 73)', '#4A708B': 'rgb(74, 112, 139)', '#008080': 'rgb(0, 128, 128)', '#7AC5CD': 'rgb(122, 197, 205)', '#98F5FF': 'rgb(152, 245, 255)', '#8B2500': 'rgb(139, 37, 0)', '#8F8F8F': 'rgb(143, 143, 143)', '#FFF0F5': 'rgb(255, 240, 245)', '#8B8970': 'rgb(139, 137, 112)', '#8B8878': 'rgb(139, 136, 120)', '#6A5ACD': 'rgb(106, 90, 205)', '#4682B4': 'rgb(70, 130, 180)', '#EEEEE0': 'rgb(238, 238, 224)', '#B3B3B3': 'rgb(179, 179, 179)', '#00FF00': 'rgb(0, 255, 0)', '#FFDEAD': 'rgb(255, 222, 173)', '#CD2626': 'rgb(205, 38, 38)', '#8B4C39': 'rgb(139, 76, 57)', '#9B30FF': 'rgb(155, 48, 255)', '#E5E5E5': 'rgb(229, 229, 229)', '#36648B': 'rgb(54, 100, 139)', '#9C9C9C': 'rgb(156, 156, 156)', '#F8F8FF': 'rgb(248, 248, 255)', '#333333': 'rgb(51, 51, 51)', '#5C5C5C': 'rgb(92, 92, 92)', '#737373': 'rgb(115, 115, 115)', '#EEC900': 'rgb(238, 201, 0)', '#FFE1FF': 'rgb(255, 225, 255)', '#C1FFC1': 'rgb(193, 255, 193)', '#CDC5BF': 'rgb(205, 197, 191)', '#A0522D': 'rgb(160, 82, 45)', '#8B5F65': 'rgb(139, 95, 101)', '#CDC1C5': 'rgb(205, 193, 197)', '#EE7621': 'rgb(238, 118, 33)', '#FFBBFF': 'rgb(255, 187, 255)', '#CD6839': 'rgb(205, 104, 57)', '#698B69': 'rgb(105, 139, 105)', '#050505': 'rgb(5, 5, 5)', '#CD661D': 'rgb(205, 102, 29)', '#FAFAD2': 'rgb(250, 250, 210)', '#CDCDC1': 'rgb(205, 205, 193)', '#FFF8DC': 'rgb(255, 248, 220)', '#A8A8A8': 'rgb(168, 168, 168)', '#B452CD': 'rgb(180, 82, 205)', '#D2B48C': 'rgb(210, 180, 140)', '#8EE5EE': 'rgb(142, 229, 238)', '#483D8B': 'rgb(72, 61, 139)', '#BBFFFF': 'rgb(187, 255, 255)', '#0000FF': 'rgb(0, 0, 255)', '#EE6AA7': 'rgb(238, 106, 167)', '#EE7942': 'rgb(238, 121, 66)', '#00CD00': 'rgb(0, 205, 0)', '#141414': 'rgb(20, 20, 20)', '#9ACD32': 'rgb(154, 205, 50)', '#C71585': 'rgb(199, 21, 133)', '#EE9A00': 'rgb(238, 154, 0)', '#CAFF70': 'rgb(202, 255, 112)', '#F5F5F5': 'rgb(245, 245, 245)', '#32CD32': 'rgb(50, 205, 50)', '#00EE00': 'rgb(0, 238, 0)', '#FFB6C1': 'rgb(255, 182, 193)', '#8B1A1A': 'rgb(139, 26, 26)', '#00B2EE': 'rgb(0, 178, 238)', '#20B2AA': 'rgb(32, 178, 170)', '#707070': 'rgb(112, 112, 112)', '#009ACD': 'rgb(0, 154, 205)', '#A52A2A': 'rgb(165, 42, 42)', '#EE6363': 'rgb(238, 99, 99)', '#FAF0E6': 'rgb(250, 240, 230)', '#8B7D7B': 'rgb(139, 125, 123)', '#9A32CD': 'rgb(154, 50, 205)', '#1F1F1F': 'rgb(31, 31, 31)', '#E8E8E8': 'rgb(232, 232, 232)', '#7E7E7E': 'rgb(126, 126, 126)', '#7A8B8B': 'rgb(122, 139, 139)', '#CD7054': 'rgb(205, 112, 84)', '#9FB6CD': 'rgb(159, 182, 205)', '#CDC9A5': 'rgb(205, 201, 165)', '#D02090': 'rgb(208, 32, 144)', '#00FFFF': 'rgb(0, 255, 255)', '#2B2B2B': 'rgb(43, 43, 43)', '#858585': 'rgb(133, 133, 133)', '#A3A3A3': 'rgb(163, 163, 163)', '#CD0000': 'rgb(205, 0, 0)', '#43CD80': 'rgb(67, 205, 128)', '#FA8072': 'rgb(250, 128, 114)', '#FFDAB9': 'rgb(255, 218, 185)', '#D2691E': 'rgb(210, 105, 30)', '#FF1493': 'rgb(255, 20, 147)', '#EED2EE': 'rgb(238, 210, 238)', '#030303': 'rgb(3, 3, 3)', '#8B8B7A': 'rgb(139, 139, 122)'};
+var color_values = ['#FFFAFA','#FFFAFA','#EEE9E9','#FFC1C1','#EEB4B4','#CDC9C9','#F08080','#FF6A6A','#CD9B9B','#EE6363','#BC8F8F','#FF4040','#FF3030','#EE3B3B','#CD5C5C','#CD5555','#EE2C2C','#8B8989','#CD3333','#FF0000','#FF0000','#8B6969','#CD2626','#EE0000','#B22222','#A52A2A','#CD0000','#8B3A3A','#8B2323','#8B1A1A','#8B0000','#8B0000','#800000','#FFAEB9','#CD8C95','#8B5F65','#EEA2AD','#FFB6C1','#FFC0CB','#DC143C','#FFB5C5','#EEA9B8','#CD919E','#8B636C','#8B475D','#DB7093','#EE799F','#FF82AB','#CD6889','#FFF0F5','#FFF0F5','#CDC1C5','#EEE0E5','#8B8386','#B03060','#CD6090','#CD3278','#FF3E96','#EE3A8C','#8B2252','#EE6AA7','#FF6EB4','#8B3A62','#FF69B4','#FF1493','#FF1493','#EE1289','#CD1076','#8B0A50','#FF34B3','#EE30A7','#CD2990','#8B1C62','#C71585','#D02090','#EE7AE9','#DA70D6','#FF83FA','#CD69C9','#8B4789','#FFE1FF','#EED2EE','#FFBBFF','#EEAEEE','#D8BFD8','#CDB5CD','#DDA0DD','#EE82EE','#CD96CD','#8B7B8B','#FF00FF','#FF00FF','#FF00FF','#8B668B','#EE00EE','#CD00CD','#8B008B','#8B008B','#800080','#BA55D3','#E066FF','#D15FEE','#B452CD','#7A378B','#9400D3','#9932CC','#BF3EFF','#9A32CD','#B23AEE','#68228B','#A020F0','#4B0082','#8A2BE2','#912CEE','#7D26CD','#551A8B','#9B30FF','#9370DB','#AB82FF','#9F79EE','#8968CD','#5D478B','#483D8B','#8470FF','#7B68EE','#6A5ACD','#836FFF','#7A67EE','#6959CD','#473C8B','#F8F8FF','#E6E6FA','#0000FF','#0000FF','#0000EE','#0000CD','#0000CD','#00008B','#00008B','#191970','#000080','#000080','#4169E1','#4876FF','#436EEE','#3A5FCD','#27408B','#6495ED','#B0C4DE','#CAE1FF','#BCD2EE','#A2B5CD','#6E7B8B','#6C7B8B','#C6E2FF','#B9D3EE','#9FB6CD','#778899','#778899','#708090','#708090','#1E90FF','#1E90FF','#1C86EE','#104E8B','#1874CD','#F0F8FF','#36648B','#4682B4','#63B8FF','#5CACEE','#4F94CD','#4A708B','#87CEFF','#7EC0EE','#6CA6CD','#87CEFA','#607B8B','#B0E2FF','#A4D3EE','#8DB6CD','#87CEEB','#9AC0CD','#00BFFF','#00BFFF','#00B2EE','#00688B','#009ACD','#BFEFFF','#B2DFEE','#ADD8E6','#68838B','#B0E0E6','#98F5FF','#8EE5EE','#7AC5CD','#53868B','#00F5FF','#00E5EE','#00C5CD','#00868B','#5F9EA0','#5F9EA0','#00CED1','#F0FFFF','#F0FFFF','#E0FFFF','#E0FFFF','#E0EEEE','#D1EEEE','#BBFFFF','#AFEEEE','#AEEEEE','#97FFFF','#C1CDCD','#B4CDCD','#8DEEEE','#96CDCD','#79CDCD','#838B8B','#7A8B8B','#00FFFF','#00FFFF','#00FFFF','#668B8B','#00EEEE','#528B8B','#00CDCD','#008B8B','#008B8B','#008080','#2F4F4F','#2F4F4F','#48D1CC','#20B2AA','#40E0D0','#458B74','#7FFFD4','#7FFFD4','#76EEC6','#66CDAA','#66CDAA','#00FA9A','#F5FFFA','#00FF7F','#00FF7F','#00EE76','#00CD66','#008B45','#3CB371','#2E8B57','#43CD80','#54FF9F','#2E8B57','#4EEE94','#32814B','#F0FFF0','#F0FFF0','#E0EEE0','#C1FFC1','#B4EEB4','#9AFF9A','#98FB98','#C1CDC1','#90EE90','#90EE90','#9BCD9B','#8FBC8F','#7CCD7C','#838B83','#00FF00','#00FF00','#32CD32','#698B69','#00EE00','#548B54','#00CD00','#228B22','#008B00','#008000','#006400','#7CFC00','#7FFF00','#7FFF00','#76EE00','#66CD00','#458B00','#ADFF2F','#A2CD5A','#CAFF70','#BCEE68','#6E8B3D','#556B2F','#6B8E23','#C0FF3E','#B3EE3A','#9ACD32','#9ACD32','#698B22','#FFFFF0','#FFFFF0','#FFFFE0','#FFFFE0','#F5F5DC','#EEEEE0','#FAFAD2','#EEEED1','#CDCDC1','#CDCDB4','#8B8B83','#8B8B7A','#FFFF00','#FFFF00','#EEEE00','#CDCD00','#8B8B00','#808000','#BDB76B','#EEE685','#8B8970','#FFF68F','#CDC673','#8B864E','#EEE8AA','#FFFACD','#FFFACD','#F0E68C','#CDC9A5','#EEE9BF','#D1C166','#8B8878','#FFD700','#FFD700','#EEC900','#CDAD00','#8B7500','#EEDD82','#8B814C','#FFEC8B','#CDBE70','#EEDC82','#CDC8B1','#EEE8CD','#FFF8DC','#FFF8DC','#DAA520','#FFC125','#EEB422','#CD9B1D','#8B6914','#B8860B','#FFB90F','#EEAD0E','#CD950C','#8B6508','#FFFAF0','#EED8AE','#FDF5E6','#F5DEB3','#FFE7BA','#CDBA96','#FFA500','#FFA500','#EE9A00','#CD8500','#8B5A00','#8B7E66','#FFE4B5','#FFEFD5','#CDB38B','#FFEBCD','#FFDEAD','#FFDEAD','#EECFA1','#8B795E','#8B8378','#FAEBD7','#D2B48C','#8B7D6B','#DEB887','#EEDFCC','#FFD39B','#CDAA7D','#EEC591','#FFEFDB','#8B7355','#CDC0B0','#FF8C00','#EED5B7','#FFE4C4','#FFE4C4','#CDB79E','#FF7F00','#FAF0E6','#EE7600','#CD6600','#8B4500','#CD853F','#FFA54F','#EE9A49','#CD853F','#8B5A2B','#FFDAB9','#FFDAB9','#8B7765','#EECBAD','#CDAF95','#F4A460','#8B8682','#EEE5DE','#CDC5BF','#D2691E','#FF7F24','#EE7621','#CD661D','#8B4513','#8B4513','#FFF5EE','#FFF5EE','#8B4726','#A0522D','#FF8247','#EE7942','#CD6839','#CD8162','#FFA07A','#FFA07A','#8B5742','#EE9572','#FF7F50','#FF4500','#FF4500','#EE4000','#CD3700','#8B2500','#E9967A','#FF8C69','#EE8262','#CD7054','#8B4C39','#FF7256','#EE6A50','#CD5B45','#8B3E2F','#8B3626','#FF6347','#FF6347','#EE5C42','#CD4F39','#8B7D7B','#EED5D2','#FFE4E1','#FFE4E1','#FA8072','#CDB7B5','#FFFFFF','#FFFFFF','#FFFFFF','#FFFFFF','#FCFCFC','#FCFCFC','#FAFAFA','#FAFAFA','#F7F7F7','#F7F7F7','#F5F5F5','#F5F5F5','#F5F5F5','#F2F2F2','#F2F2F2','#F0F0F0','#F0F0F0','#EDEDED','#EDEDED','#EBEBEB','#EBEBEB','#E8E8E8','#E8E8E8','#E5E5E5','#E5E5E5','#E3E3E3','#E3E3E3','#E0E0E0','#E0E0E0','#DEDEDE','#DEDEDE','#DCDCDC','#DBDBDB','#DBDBDB','#D9D9D9','#D9D9D9','#D6D6D6','#D6D6D6','#D4D4D4','#D4D4D4','#D3D3D3','#D3D3D3','#D1D1D1','#D1D1D1','#CFCFCF','#CFCFCF','#CCCCCC','#CCCCCC','#C9C9C9','#C9C9C9','#C7C7C7','#C7C7C7','#C4C4C4','#C4C4C4','#C2C2C2','#C2C2C2','#C0C0C0','#BFBFBF','#BFBFBF','#BDBDBD','#BDBDBD','#BABABA','#BABABA','#B8B8B8','#B8B8B8','#B5B5B5','#B5B5B5','#B3B3B3','#B3B3B3','#B0B0B0','#B0B0B0','#ADADAD','#ADADAD','#ABABAB','#ABABAB','#A9A9A9','#A9A9A9','#A8A8A8','#A8A8A8','#A6A6A6','#A6A6A6','#A3A3A3','#A3A3A3','#A1A1A1','#A1A1A1','#9E9E9E','#9E9E9E','#9C9C9C','#9C9C9C','#999999','#999999','#969696','#969696','#949494','#949494','#919191','#919191','#8F8F8F','#8F8F8F','#8C8C8C','#8C8C8C','#8A8A8A','#8A8A8A','#878787','#878787','#858585','#858585','#828282','#828282','#808080','#7F7F7F','#7F7F7F','#7E7E7E','#7D7D7D','#7D7D7D','#7A7A7A','#7A7A7A','#787878','#787878','#757575','#757575','#737373','#737373','#707070','#707070','#6E6E6E','#6E6E6E','#6B6B6B','#6B6B6B','#696969','#696969','#696969','#696969','#666666','#666666','#636363','#636363','#616161','#616161','#5E5E5E','#5E5E5E','#5C5C5C','#5C5C5C','#595959','#595959','#575757','#575757','#545454','#545454','#525252','#525252','#4F4F4F','#4F4F4F','#4D4D4D','#4D4D4D','#4A4A4A','#4A4A4A','#474747','#474747','#454545','#454545','#424242','#424242','#404040','#404040','#3D3D3D','#3D3D3D','#3B3B3B','#3B3B3B','#383838','#383838','#363636','#363636','#333333','#333333','#303030','#303030','#2E2E2E','#2E2E2E','#2B2B2B','#2B2B2B','#292929','#292929','#262626','#262626','#242424','#242424','#212121','#212121','#1F1F1F','#1F1F1F','#1C1C1C','#1C1C1C','#1A1A1A','#1A1A1A','#171717','#171717','#141414','#141414','#121212','#121212','#0F0F0F','#0F0F0F','#0D0D0D','#0D0D0D','#0A0A0A','#0A0A0A','#080808','#080808','#050505','#050505','#030303','#030303','#000000','#000000','#000000','#000000','#000000','#000000'];
diff --git a/frontend/im/colors/js/jquery-1.10.1.js b/frontend/im/colors/js/jquery-1.10.1.js new file mode 100644 index 0000000..e407e76 --- /dev/null +++ b/frontend/im/colors/js/jquery-1.10.1.js @@ -0,0 +1,6 @@ +/*! jQuery v1.10.1 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery-1.10.1.min.map +*/ +(function(e,t){var n,r,i=typeof t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.1",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return new x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return g.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(g.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return s},x.extend({expando:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)for(n in e)return v.call(e,n);for(n in e);return n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var r=k.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=x.trim(n),n&&E.test(n.replace(A,"@").replace(j,"]").replace(S,"")))?Function("return "+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return null==e?"":b.call(e)}:function(e){return null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in r)x.access(e,n,l,r[l],!0,a,s)}else if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new Date).getTime()},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=x(a),function(e,t){var n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new Date,w=e.document,T=0,C=0,N=lt(),k=lt(),E=lt(),S=!1,A=function(){return 0},j=typeof t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof e)return n;if(1!==(l=t.nodeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return n;if(a.id===s)return n.push(a),n}else if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return n.push(a),n}else{if(o[2])return M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=bt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",u=c.length;while(u--)c[u]=m+xt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return At(e.replace(z,"$1"),t,n,i)}function st(e){return K.test(e+"")}function lt(){var e=[];function t(n,r){return e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return t}function ut(e){return e[b]=!0,e}function ct(e){var t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function pt(e,t,n){e=e.split("|");var r,i=e.length,a=n?null:t;while(i--)(r=o.attrHandle[e[i]])&&r!==t||(o.attrHandle[e[i]]=a)}function ft(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:e[t]===!0?t.toLowerCase():null}function dt(e,t){return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}function ht(e){return"input"===e.nodeName.toLowerCase()?e.defaultValue:t}function gt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function mt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function yt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function vt(e){return ut(function(t){return t=+t,ut(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var n=e?e.ownerDocument||e:w,i=n.parentWindow;return n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.documentElement,h=!s(n),i&&i.frameElement&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ct(function(e){return e.innerHTML="<a href='#'></a>",pt("type|href|height|width",dt,"#"===e.firstChild.getAttribute("href")),pt(B,ft,null==e.getAttribute("disabled")),e.className="i",!e.getAttribute("className")}),r.input=ct(function(e){return e.innerHTML="<input>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}),pt("value",ht,r.attributes&&r.input),r.getElementsByTagName=ct(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ct(function(e){return e.innerHTML="<div class='a'></div><div class='a i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ct(function(e){return d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){return e.getAttribute("id")===t}}):(delete o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),o.find.TAG=r.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=st(n.querySelectorAll))&&(ct(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ct(function(e){var t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=st(y=d.webkitMatchesSelector||d.mozMatchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ct(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=st(d.contains)||d.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},r.sortDetached=ct(function(e){return 1&e.compareDocumentPosition(n.createElement("div"))}),A=d.compareDocumentPosition?function(e,t){if(e===t)return S=!0,0;var i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:c?F.call(c,e)-F.call(c,t):0;if(o===a)return gt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?gt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(i){}return at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDuplicates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return e},a=at.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return n},o=at.selectors={cacheLength:50,createPseudo:ut,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var n,r=!e[5]&&e[2];return Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=bt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+" "];return t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=at.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo: "+e);return r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?ut(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=F.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ut(function(e){var t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?ut(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ut(function(e){return function(t){return at(e,t).length>0}}),contains:ut(function(e){return function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:ut(function(e){return G.test(e||"")||at.error("unsupported lang: "+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:vt(function(){return[0]}),last:vt(function(e,t){return[t-1]}),eq:vt(function(e,t,n){return[0>n?n+t:n]}),even:vt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:vt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:vt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:vt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=mt(n);for(n in{submit:!0,reset:!0})o.pseudos[n]=yt(n);function bt(e,t){var n,r,i,a,s,l,u,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z," ")}),s=s.slice(n.length));for(a in o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?at.error(e):k(e,l).slice(0)}function xt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function wt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return e(t,n,i)}:function(t,n,s){var l,u,c,p=T+" "+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function Tt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function Ct(e,t,n,r,i){var o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return a}function Nt(e,t,n,r,i,o){return r&&!r[b]&&(r=Nt(r)),i&&!i[b]&&(i=Nt(i,o)),ut(function(o,a,s,l){var u,c,p,f=[],d=[],h=a.length,g=o||St(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:Ct(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=Ct(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else y=Ct(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function kt(e){var t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative[" "],l=a?1:0,c=wt(function(e){return e===t},s,!0),p=wt(function(e){return F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[wt(Tt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return Nt(l>1&&Tt(f),l>1&&xt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&kt(e.slice(l,r)),i>r&&kt(e=e.slice(r)),i>r&&xt(e))}f.push(n)}return Tt(f)}function Et(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=Ct(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return w&&(T=k,u=C),x};return r?ut(s):s}l=at.compile=function(e,t){var n,r=[],i=[],o=E[e+" "];if(!o){t||(t=bt(e)),n=t.length;while(n--)o=kt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Et(i,r))}return o};function St(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function At(e,t,n,i){var a,s,u,c,p,f=bt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parentNode||t))){if(s.splice(a,1),e=i.length&&xt(s),!e)return M.apply(n,i),n;break}}}return l(e,f)(i,t,!h,n,V.test(e)),n}o.pseudos.nth=o.pseudos.eq;function jt(){}jt.prototype=o.filters=o.pseudos,o.setFilters=new jt,r.sortStable=b.split("").sort(A).join("")===b,p(),[0,0].sort(A),r.detectDuplicates=S,x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXMLDoc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?O[e]||F(e):x.extend({},e);var n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function i(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return this},remove:function(){return l&&x.each(arguments,function(e,t){var r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return l=[],o=0,this},disable:function(){return l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!l||i&&!u||(n?u.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return t;s=a.createElement("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f in x(t))break;return t.ownLast="0"!==f,x(function(){var n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null) +}),n=s=l=u=r=o=null,t}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function R(e,n,r,i){if(x.acceptData(e)){var o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof n)return c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof n||"function"==typeof n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function W(e,t,n){if(x.acceptData(e)){var r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;while(i--)delete r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete a[s]:a[s]=null)}}}x.extend({cache:{},noData:{applet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return R(e,t,n,!0)},_removeData:function(e,t){return W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return o}return"object"==typeof e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return this.each(function(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else r=t}return r}function I(e){var t;for(t in e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,l="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(U," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=x(this),l=t,u=e.match(T)||[];while(o=u[a++])l=r?l:!s.hasClass(o),s[l?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(U," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=i?e.call(this,n,x(this).val()):e,null==o?o="":"number"==typeof o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFix[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var t=x.find.attr(e,"tabindex");return t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return x.expr.attrHandle[n]=o,a}:function(e,n,r){return r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var i;return r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}function at(){try{return a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new x.Event(g,"object"==typeof n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return n.result}},dispatch:function(e){e=x.event.fix(e);var n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,s=n.button,l=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?x.event.trigger(e,n,r,!0):t}});var st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e||[],!0))},filter:function(e){return this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return x.inArray(e,t)>=0!==n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return this}});function Lt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function Ht(e){return e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function _t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._data(t[r],"globalEval"))}function Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function Ot(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r in i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a++)Mt(i,r[a]);else Mt(e,o);return r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle); +u[o]&&(delete u[o],c?delete n[l]:typeof n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return a}return r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=x.camelCase(n);return n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.maxWidth=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function ln(e){var t=a,n=Gt[e];return n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function un(e,t){var n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity||(x.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var n=x(this).val();return null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var r,i=[],o=function(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==x.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function _n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":x.parseJSON,"text xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var t=e||w;return u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return C.abort();w="abort";for(i in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,N=n;2!==b&&(b=2,s&&clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return C},getJSON:function(e,t,n){return x.get(e,t,n,"json")},getScript:function(e,n){return x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["* "+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+" "+s[0]]||u["* "+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion from "+l+" to "+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||x.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(function(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete l.elem}),l=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)u.tweens[n].run(1);return t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return r;return x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function tr(e,t){var n,r,i,o,a;for(n in e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in c)a=Zn(f?d[r]:0,r,u),r in d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var r=e&&"object"==typeof e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return x.grep(x.timers,function(t){return e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,x.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOffset:function(e,t,n){var r=x.css(e,"position");"static"===r&&(e.style.position="relative");var i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.offsetParent;return e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return x.access(this,function(n,r,i){var o;return x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return this.length},x.fn.andSelf=x.fn.addBack,"object"==typeof module&&module&&"object"==typeof module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof define&&define.amd&&define("jquery",[],function(){return x}))})(window); diff --git a/frontend/im/colors/js/jquery-1.10.1.min.map b/frontend/im/colors/js/jquery-1.10.1.min.map new file mode 100644 index 0000000..095d031 --- /dev/null +++ b/frontend/im/colors/js/jquery-1.10.1.min.map @@ -0,0 +1 @@ +{"version":3,"file":"jquery-1.10.1.min.js","sources":["jquery-1.10.1.js"],"names":["window","undefined","readyList","rootjQuery","core_strundefined","location","document","docElem","documentElement","_jQuery","jQuery","_$","$","class2type","core_deletedIds","core_version","core_concat","concat","core_push","push","core_slice","slice","core_indexOf","indexOf","core_toString","toString","core_hasOwn","hasOwnProperty","core_trim","trim","selector","context","fn","init","core_pnum","source","core_rnotwhite","rtrim","rquickExpr","rsingleTag","rvalidchars","rvalidbraces","rvalidescape","rvalidtokens","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","completed","event","addEventListener","type","readyState","detach","ready","removeEventListener","detachEvent","prototype","jquery","constructor","match","elem","this","charAt","length","exec","find","merge","parseHTML","nodeType","ownerDocument","test","isPlainObject","isFunction","attr","getElementById","parentNode","id","makeArray","toArray","call","get","num","pushStack","elems","ret","prevObject","each","callback","args","promise","done","apply","arguments","first","eq","last","i","len","j","map","end","sort","splice","extend","src","copyIsArray","copy","name","options","clone","target","deep","isArray","expando","Math","random","replace","noConflict","isReady","readyWait","holdReady","hold","wait","body","setTimeout","resolveWith","trigger","off","obj","Array","isWindow","isNumeric","isNaN","parseFloat","isFinite","String","key","e","support","ownLast","isEmptyObject","error","msg","Error","data","keepScripts","parsed","scripts","createElement","buildFragment","remove","childNodes","parseJSON","JSON","parse","Function","parseXML","xml","tmp","DOMParser","parseFromString","ActiveXObject","async","loadXML","getElementsByTagName","noop","globalEval","execScript","camelCase","string","nodeName","toLowerCase","value","isArraylike","text","arr","results","Object","inArray","max","second","l","grep","inv","retVal","arg","guid","proxy","access","chainable","emptyGet","raw","bulk","now","Date","getTime","swap","old","style","Deferred","attachEvent","top","frameElement","doScroll","doScrollCheck","split","cachedruns","Expr","getText","isXML","compile","outermostContext","sortInput","setDocument","documentIsHTML","rbuggyQSA","rbuggyMatches","matches","contains","preferredDoc","dirruns","classCache","createCache","tokenCache","compilerCache","hasDuplicate","sortOrder","strundefined","MAX_NEGATIVE","hasOwn","pop","push_native","booleans","whitespace","characterEncoding","identifier","attributes","pseudos","RegExp","rcomma","rcombinators","rsibling","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rnative","rinputs","rheader","rescape","runescape","funescape","_","escaped","escapedWhitespace","high","fromCharCode","els","Sizzle","seed","m","groups","nid","newContext","newSelector","getElementsByClassName","qsa","tokenize","getAttribute","setAttribute","toSelector","join","querySelectorAll","qsaError","removeAttribute","select","isNative","keys","cache","cacheLength","shift","markFunction","assert","div","removeChild","addHandle","attrs","handler","current","setHandle","attrHandle","boolHandler","val","getAttributeNode","specified","interpolationHandler","valueHandler","defaultValue","siblingCheck","a","b","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createPositionalPseudo","argument","matchIndexes","node","doc","parent","parentWindow","innerHTML","firstChild","className","input","appendChild","createComment","getById","getElementsByName","filter","attrId","tag","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","sortDetached","div1","compare","aup","ap","bp","unshift","expr","elements","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","nodeValue","selectors","createPseudo","relative",">","dir"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","outerCache","nodeIndex","start","useCache","lastChild","pseudo","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","root","focus","activeElement","hasFocus","href","tabIndex","enabled","disabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","parseOnly","tokens","soFar","preFilters","cached","addCombinator","combinator","base","checkNonElements","doneName","dirkey","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","matcherFromGroupMatchers","elementMatchers","setMatchers","matcherCachedRuns","bySet","byElement","superMatcher","expandContext","setMatched","matchedCount","outermost","contextBackup","dirrunsUnique","group","contexts","token","filters","unique","isXMLDoc","optionsCache","createOptions","object","flag","Callbacks","firing","memory","fired","firingLength","firingIndex","firingStart","list","stack","once","fire","stopOnFalse","self","disable","add","index","lock","locked","fireWith","func","tuples","state","always","deferred","fail","then","fns","newDefer","tuple","action","returned","resolve","reject","progress","notify","pipe","stateString","when","subordinate","resolveValues","remaining","updateFunc","values","progressValues","notifyWith","progressContexts","resolveContexts","fragment","opt","eventName","isSupported","cssText","getSetAttribute","leadingWhitespace","tbody","htmlSerialize","hrefNormalized","opacity","cssFloat","checkOn","optSelected","enctype","html5Clone","cloneNode","outerHTML","inlineBlockNeedsLayout","shrinkWrapBlocks","pixelPosition","deleteExpando","noCloneEvent","reliableMarginRight","boxSizingReliable","noCloneChecked","optDisabled","radioValue","createDocumentFragment","appendChecked","checkClone","click","change","focusin","backgroundClip","clearCloneStyle","container","marginDiv","tds","divReset","offsetHeight","display","reliableHiddenOffsets","zoom","boxSizing","offsetWidth","getComputedStyle","width","marginRight","rbrace","rmultiDash","internalData","pvt","acceptData","thisCache","internalKey","isNode","toJSON","internalRemoveData","isEmptyDataObject","cleanData","noData","applet","embed","hasData","removeData","_data","_removeData","dataAttr","queue","dequeue","startLength","hooks","_queueHooks","next","stop","setter","delay","time","fx","speeds","timeout","clearTimeout","clearQueue","count","defer","nodeHook","boolHook","rclass","rreturn","rfocusable","rclickable","ruseDefault","getSetInput","removeAttr","prop","removeProp","propFix","addClass","classes","clazz","proceed","removeClass","toggleClass","stateVal","isBool","classNames","hasClass","valHooks","set","option","one","optionSet","nType","attrHooks","propName","attrNames","for","class","notxml","propHooks","tabindex","parseInt","getter","setAttributeNode","createAttribute","coords","contenteditable","rformElems","rkeyEvent","rmouseEvent","rfocusMorph","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","global","types","events","t","handleObjIn","special","eventHandle","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","onlyHandlers","ontype","bubbleType","eventPath","Event","isTrigger","namespace_re","noBubble","defaultView","isPropagationStopped","preventDefault","isDefaultPrevented","_default","fix","handlerQueue","delegateTarget","preDispatch","currentTarget","isImmediatePropagationStopped","stopPropagation","postDispatch","sel","originalEvent","fixHook","fixHooks","mouseHooks","keyHooks","props","srcElement","metaKey","original","which","charCode","keyCode","eventDoc","fromElement","pageX","clientX","scrollLeft","clientLeft","pageY","clientY","scrollTop","clientTop","relatedTarget","toElement","load","blur","beforeunload","returnValue","simulate","bubble","isSimulated","defaultPrevented","getPreventDefault","timeStamp","cancelBubble","stopImmediatePropagation","mouseenter","mouseleave","orig","related","submitBubbles","form","_submit_bubble","changeBubbles","propertyName","_just_changed","focusinBubbles","attaches","on","origFn","triggerHandler","isSimple","rparentsprev","rneedsContext","guaranteedUnique","children","contents","prev","targets","winnow","is","closest","pos","prevAll","addBack","sibling","parents","parentsUntil","until","nextAll","nextUntil","prevUntil","siblings","contentDocument","contentWindow","reverse","n","r","qualifier","createSafeFragment","nodeNames","safeFrag","rinlinejQuery","rnoshimcache","rleadingWhitespace","rxhtmlTag","rtagName","rtbody","rhtml","rnoInnerhtml","manipulation_rcheckableType","rchecked","rscriptType","rscriptTypeMasked","rcleanScript","wrapMap","legend","area","param","thead","tr","col","td","safeFragment","fragmentDiv","optgroup","tfoot","colgroup","caption","th","append","createTextNode","domManip","manipulationTarget","prepend","insertBefore","before","after","keepData","getAll","setGlobalEval","dataAndEvents","deepDataAndEvents","html","replaceWith","allowIntersection","hasScripts","iNoClone","disableScript","restoreScript","_evalUrl","content","refElements","cloneCopyEvent","dest","oldData","curData","fixCloneNodeIssues","defaultChecked","defaultSelected","appendTo","prependTo","insertAfter","replaceAll","insert","found","fixDefaultChecked","destElements","srcElements","inPage","selection","wrap","safe","nodes","url","ajax","dataType","throws","wrapAll","wrapInner","unwrap","iframe","getStyles","curCSS","ralpha","ropacity","rposition","rdisplayswap","rmargin","rnumsplit","rnumnonpx","rrelNum","elemdisplay","BODY","cssShow","position","visibility","cssNormalTransform","letterSpacing","fontWeight","cssExpand","cssPrefixes","vendorPropName","capName","origName","isHidden","el","css","showHide","show","hidden","css_defaultDisplay","styles","hide","toggle","cssHooks","computed","cssNumber","columnCount","fillOpacity","lineHeight","orphans","widows","zIndex","cssProps","float","extra","_computed","minWidth","maxWidth","getPropertyValue","currentStyle","left","rs","rsLeft","runtimeStyle","pixelLeft","setPositiveNumber","subtract","augmentWidthOrHeight","isBorderBox","getWidthOrHeight","valueIsBorderBox","actualDisplay","write","close","$1","visible","margin","padding","border","prefix","suffix","expand","expanded","parts","r20","rbracket","rCRLF","rsubmitterTypes","rsubmittable","serialize","serializeArray","traditional","s","encodeURIComponent","ajaxSettings","buildParams","v","hover","fnOver","fnOut","bind","unbind","delegate","undelegate","ajaxLocParts","ajaxLocation","ajax_nonce","ajax_rquery","rhash","rts","rheaders","rlocalProtocol","rnoContent","rprotocol","rurl","_load","prefilters","transports","allTypes","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","originalOptions","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","params","response","responseText","complete","status","active","lastModified","etag","isLocal","processData","contentType","accepts","*","json","responseFields","converters","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","cacheURL","responseHeadersString","timeoutTimer","fireGlobals","transport","responseHeaders","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","lname","overrideMimeType","mimeType","code","abort","statusText","finalText","success","method","crossDomain","hasContent","ifModified","headers","beforeSend","send","nativeStatusText","responses","isSuccess","modified","ajaxHandleResponses","ajaxConvert","rejectWith","getJSON","getScript","firstDataType","ct","finalDataType","conv2","conv","dataFilter","script","text script","head","scriptCharset","charset","onload","onreadystatechange","isAbort","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","xhrCallbacks","xhrSupported","xhrId","xhrOnUnloadAbort","createStandardXHR","XMLHttpRequest","createActiveXHR","xhr","cors","username","open","xhrFields","firefoxAccessException","unload","fxNow","timerId","rfxtypes","rfxnum","rrun","animationPrefilters","defaultPrefilter","tweeners","tween","createTween","unit","scale","maxIterations","createFxNow","animation","collection","Animation","properties","stopped","tick","currentTime","startTime","duration","percent","tweens","run","opts","specialEasing","originalProperties","Tween","easing","gotoEnd","propFilter","timer","anim","tweener","prefilter","oldfire","dataShow","unqueued","overflow","overflowX","overflowY","eased","step","cssFn","speed","animate","genFx","fadeTo","to","optall","doAnimation","finish","stopQueue","timers","includeWidth","height","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","linear","p","swing","cos","PI","interval","setInterval","clearInterval","slow","fast","animated","offset","setOffset","win","box","getBoundingClientRect","getWindow","pageYOffset","pageXOffset","curElem","curOffset","curCSSTop","curCSSLeft","calculatePosition","curPosition","curTop","curLeft","using","offsetParent","parentOffset","scrollTo","Height","Width","defaultExtra","funcName","size","andSelf","module","exports","define","amd"],"mappings":";;;CAaA,SAAWA,EAAQC,GAOnB,GAECC,GAGAC,EAIAC,QAA2BH,GAG3BI,EAAWL,EAAOK,SAClBC,EAAWN,EAAOM,SAClBC,EAAUD,EAASE,gBAGnBC,EAAUT,EAAOU,OAGjBC,EAAKX,EAAOY,EAGZC,KAGAC,KAEAC,EAAe,SAGfC,EAAcF,EAAgBG,OAC9BC,EAAYJ,EAAgBK,KAC5BC,EAAaN,EAAgBO,MAC7BC,EAAeR,EAAgBS,QAC/BC,EAAgBX,EAAWY,SAC3BC,EAAcb,EAAWc,eACzBC,EAAYb,EAAac,KAGzBnB,EAAS,SAAUoB,EAAUC,GAE5B,MAAO,IAAIrB,GAAOsB,GAAGC,KAAMH,EAAUC,EAAS5B,IAI/C+B,EAAY,sCAAsCC,OAGlDC,EAAiB,OAGjBC,EAAQ,qCAKRC,EAAa,sCAGbC,EAAa,6BAGbC,EAAc,gBACdC,EAAe,uBACfC,EAAe,qCACfC,EAAe,kEAGfC,EAAY,QACZC,EAAa,eAGbC,EAAa,SAAUC,EAAKC,GAC3B,MAAOA,GAAOC,eAIfC,EAAY,SAAUC,IAGhB7C,EAAS8C,kBAAmC,SAAfD,EAAME,MAA2C,aAAxB/C,EAASgD,cACnEC,IACA7C,EAAO8C,UAITD,EAAS,WACHjD,EAAS8C,kBACb9C,EAASmD,oBAAqB,mBAAoBP,GAAW,GAC7DlD,EAAOyD,oBAAqB,OAAQP,GAAW,KAG/C5C,EAASoD,YAAa,qBAAsBR,GAC5ClD,EAAO0D,YAAa,SAAUR,IAIjCxC,GAAOsB,GAAKtB,EAAOiD,WAElBC,OAAQ7C,EAER8C,YAAanD,EACbuB,KAAM,SAAUH,EAAUC,EAAS5B,GAClC,GAAI2D,GAAOC,CAGX,KAAMjC,EACL,MAAOkC,KAIR,IAAyB,gBAAblC,GAAwB,CAUnC,GAPCgC,EAF2B,MAAvBhC,EAASmC,OAAO,IAAyD,MAA3CnC,EAASmC,OAAQnC,EAASoC,OAAS,IAAepC,EAASoC,QAAU,GAE7F,KAAMpC,EAAU,MAGlBQ,EAAW6B,KAAMrC,IAIrBgC,IAAUA,EAAM,IAAO/B,EAqDrB,OAAMA,GAAWA,EAAQ6B,QACtB7B,GAAW5B,GAAaiE,KAAMtC,GAKhCkC,KAAKH,YAAa9B,GAAUqC,KAAMtC,EAxDzC,IAAKgC,EAAM,GAAK,CAWf,GAVA/B,EAAUA,YAAmBrB,GAASqB,EAAQ,GAAKA,EAGnDrB,EAAO2D,MAAOL,KAAMtD,EAAO4D,UAC1BR,EAAM,GACN/B,GAAWA,EAAQwC,SAAWxC,EAAQyC,eAAiBzC,EAAUzB,GACjE,IAIIiC,EAAWkC,KAAMX,EAAM,KAAQpD,EAAOgE,cAAe3C,GACzD,IAAM+B,IAAS/B,GAETrB,EAAOiE,WAAYX,KAAMF,IAC7BE,KAAMF,GAAS/B,EAAS+B,IAIxBE,KAAKY,KAAMd,EAAO/B,EAAS+B,GAK9B,OAAOE,MAQP,GAJAD,EAAOzD,EAASuE,eAAgBf,EAAM,IAIjCC,GAAQA,EAAKe,WAAa,CAG9B,GAAKf,EAAKgB,KAAOjB,EAAM,GACtB,MAAO3D,GAAWiE,KAAMtC,EAIzBkC,MAAKE,OAAS,EACdF,KAAK,GAAKD,EAKX,MAFAC,MAAKjC,QAAUzB,EACf0D,KAAKlC,SAAWA,EACTkC,KAcH,MAAKlC,GAASyC,UACpBP,KAAKjC,QAAUiC,KAAK,GAAKlC,EACzBkC,KAAKE,OAAS,EACPF,MAIItD,EAAOiE,WAAY7C,GACvB3B,EAAWqD,MAAO1B,IAGrBA,EAASA,WAAa7B,IAC1B+D,KAAKlC,SAAWA,EAASA,SACzBkC,KAAKjC,QAAUD,EAASC,SAGlBrB,EAAOsE,UAAWlD,EAAUkC,QAIpClC,SAAU,GAGVoC,OAAQ,EAERe,QAAS,WACR,MAAO7D,GAAW8D,KAAMlB,OAKzBmB,IAAK,SAAUC,GACd,MAAc,OAAPA,EAGNpB,KAAKiB,UAGG,EAANG,EAAUpB,KAAMA,KAAKE,OAASkB,GAAQpB,KAAMoB,IAKhDC,UAAW,SAAUC,GAGpB,GAAIC,GAAM7E,EAAO2D,MAAOL,KAAKH,cAAeyB,EAO5C,OAJAC,GAAIC,WAAaxB,KACjBuB,EAAIxD,QAAUiC,KAAKjC,QAGZwD,GAMRE,KAAM,SAAUC,EAAUC,GACzB,MAAOjF,GAAO+E,KAAMzB,KAAM0B,EAAUC,IAGrCnC,MAAO,SAAUxB,GAIhB,MAFAtB,GAAO8C,MAAMoC,UAAUC,KAAM7D,GAEtBgC,MAGR3C,MAAO,WACN,MAAO2C,MAAKqB,UAAWjE,EAAW0E,MAAO9B,KAAM+B,aAGhDC,MAAO,WACN,MAAOhC,MAAKiC,GAAI,IAGjBC,KAAM,WACL,MAAOlC,MAAKiC,GAAI,KAGjBA,GAAI,SAAUE,GACb,GAAIC,GAAMpC,KAAKE,OACdmC,GAAKF,GAAU,EAAJA,EAAQC,EAAM,EAC1B,OAAOpC,MAAKqB,UAAWgB,GAAK,GAASD,EAAJC,GAAYrC,KAAKqC,SAGnDC,IAAK,SAAUZ,GACd,MAAO1B,MAAKqB,UAAW3E,EAAO4F,IAAItC,KAAM,SAAUD,EAAMoC,GACvD,MAAOT,GAASR,KAAMnB,EAAMoC,EAAGpC,OAIjCwC,IAAK,WACJ,MAAOvC,MAAKwB,YAAcxB,KAAKH,YAAY,OAK5C1C,KAAMD,EACNsF,QAASA,KACTC,UAAWA,QAIZ/F,EAAOsB,GAAGC,KAAK0B,UAAYjD,EAAOsB,GAElCtB,EAAOgG,OAAShG,EAAOsB,GAAG0E,OAAS,WAClC,GAAIC,GAAKC,EAAaC,EAAMC,EAAMC,EAASC,EAC1CC,EAASlB,UAAU,OACnBI,EAAI,EACJjC,EAAS6B,UAAU7B,OACnBgD,GAAO,CAqBR,KAlBuB,iBAAXD,KACXC,EAAOD,EACPA,EAASlB,UAAU,OAEnBI,EAAI,GAIkB,gBAAXc,IAAwBvG,EAAOiE,WAAWsC,KACrDA,MAII/C,IAAWiC,IACfc,EAASjD,OACPmC,GAGSjC,EAAJiC,EAAYA,IAEnB,GAAmC,OAA7BY,EAAUhB,UAAWI,IAE1B,IAAMW,IAAQC,GACbJ,EAAMM,EAAQH,GACdD,EAAOE,EAASD,GAGXG,IAAWJ,IAKXK,GAAQL,IAAUnG,EAAOgE,cAAcmC,KAAUD,EAAclG,EAAOyG,QAAQN,MAC7ED,GACJA,GAAc,EACdI,EAAQL,GAAOjG,EAAOyG,QAAQR,GAAOA,MAGrCK,EAAQL,GAAOjG,EAAOgE,cAAciC,GAAOA,KAI5CM,EAAQH,GAASpG,EAAOgG,OAAQQ,EAAMF,EAAOH,IAGlCA,IAAS5G,IACpBgH,EAAQH,GAASD,GAOrB,OAAOI,IAGRvG,EAAOgG,QAGNU,QAAS,UAAarG,EAAesG,KAAKC,UAAWC,QAAS,MAAO,IAErEC,WAAY,SAAUN,GASrB,MARKlH,GAAOY,IAAMF,IACjBV,EAAOY,EAAID,GAGPuG,GAAQlH,EAAOU,SAAWA,IAC9BV,EAAOU,OAASD,GAGVC,GAIR+G,SAAS,EAITC,UAAW,EAGXC,UAAW,SAAUC,GACfA,EACJlH,EAAOgH,YAEPhH,EAAO8C,OAAO,IAKhBA,MAAO,SAAUqE,GAGhB,GAAKA,KAAS,KAASnH,EAAOgH,WAAYhH,EAAO+G,QAAjD,CAKA,IAAMnH,EAASwH,KACd,MAAOC,YAAYrH,EAAO8C,MAI3B9C,GAAO+G,SAAU,EAGZI,KAAS,KAAUnH,EAAOgH,UAAY,IAK3CxH,EAAU8H,YAAa1H,GAAYI,IAG9BA,EAAOsB,GAAGiG,SACdvH,EAAQJ,GAAW2H,QAAQ,SAASC,IAAI,YAO1CvD,WAAY,SAAUwD,GACrB,MAA4B,aAArBzH,EAAO2C,KAAK8E,IAGpBhB,QAASiB,MAAMjB,SAAW,SAAUgB,GACnC,MAA4B,UAArBzH,EAAO2C,KAAK8E,IAGpBE,SAAU,SAAUF,GAEnB,MAAc,OAAPA,GAAeA,GAAOA,EAAInI,QAGlCsI,UAAW,SAAUH,GACpB,OAAQI,MAAOC,WAAWL,KAAUM,SAAUN,IAG/C9E,KAAM,SAAU8E,GACf,MAAY,OAAPA,EACWA,EAARO,GAEc,gBAARP,IAAmC,kBAARA,GACxCtH,EAAYW,EAAc0D,KAAKiD,KAAU,eAClCA,IAGTzD,cAAe,SAAUyD,GACxB,GAAIQ,EAKJ,KAAMR,GAA4B,WAArBzH,EAAO2C,KAAK8E,IAAqBA,EAAI5D,UAAY7D,EAAO2H,SAAUF,GAC9E,OAAO,CAGR,KAEC,GAAKA,EAAItE,cACPnC,EAAYwD,KAAKiD,EAAK,iBACtBzG,EAAYwD,KAAKiD,EAAItE,YAAYF,UAAW,iBAC7C,OAAO,EAEP,MAAQiF,GAET,OAAO,EAKR,GAAKlI,EAAOmI,QAAQC,QACnB,IAAMH,IAAOR,GACZ,MAAOzG,GAAYwD,KAAMiD,EAAKQ,EAMhC,KAAMA,IAAOR,IAEb,MAAOQ,KAAQ1I,GAAayB,EAAYwD,KAAMiD,EAAKQ,IAGpDI,cAAe,SAAUZ,GACxB,GAAIrB,EACJ,KAAMA,IAAQqB,GACb,OAAO,CAER,QAAO,GAGRa,MAAO,SAAUC,GAChB,KAAUC,OAAOD,IAMlB3E,UAAW,SAAU6E,EAAMpH,EAASqH,GACnC,IAAMD,GAAwB,gBAATA,GACpB,MAAO,KAEgB,kBAAZpH,KACXqH,EAAcrH,EACdA,GAAU,GAEXA,EAAUA,GAAWzB,CAErB,IAAI+I,GAAS9G,EAAW4B,KAAMgF,GAC7BG,GAAWF,KAGZ,OAAKC,IACKtH,EAAQwH,cAAeF,EAAO,MAGxCA,EAAS3I,EAAO8I,eAAiBL,GAAQpH,EAASuH,GAC7CA,GACJ5I,EAAQ4I,GAAUG,SAEZ/I,EAAO2D,SAAWgF,EAAOK,cAGjCC,UAAW,SAAUR,GAEpB,MAAKnJ,GAAO4J,MAAQ5J,EAAO4J,KAAKC,MACxB7J,EAAO4J,KAAKC,MAAOV,GAGb,OAATA,EACGA,EAGa,gBAATA,KAGXA,EAAOzI,EAAOmB,KAAMsH,GAEfA,GAGC3G,EAAYiC,KAAM0E,EAAK5B,QAAS7E,EAAc,KACjD6E,QAAS5E,EAAc,KACvB4E,QAAS9E,EAAc,MAEXqH,SAAU,UAAYX,MAKtCzI,EAAOsI,MAAO,iBAAmBG,GAAjCzI,IAIDqJ,SAAU,SAAUZ,GACnB,GAAIa,GAAKC,CACT,KAAMd,GAAwB,gBAATA,GACpB,MAAO,KAER,KACMnJ,EAAOkK,WACXD,EAAM,GAAIC,WACVF,EAAMC,EAAIE,gBAAiBhB,EAAO,cAElCa,EAAM,GAAII,eAAe,oBACzBJ,EAAIK,MAAQ,QACZL,EAAIM,QAASnB,IAEb,MAAOP,GACRoB,EAAM/J,EAKP,MAHM+J,IAAQA,EAAIxJ,kBAAmBwJ,EAAIO,qBAAsB,eAAgBrG,QAC9ExD,EAAOsI,MAAO,gBAAkBG,GAE1Ba,GAGRQ,KAAM,aAKNC,WAAY,SAAUtB,GAChBA,GAAQzI,EAAOmB,KAAMsH,KAIvBnJ,EAAO0K,YAAc,SAAUvB,GAChCnJ,EAAe,KAAEkF,KAAMlF,EAAQmJ,KAC3BA,IAMPwB,UAAW,SAAUC,GACpB,MAAOA,GAAOrD,QAAS3E,EAAW,OAAQ2E,QAAS1E,EAAYC,IAGhE+H,SAAU,SAAU9G,EAAM+C,GACzB,MAAO/C,GAAK8G,UAAY9G,EAAK8G,SAASC,gBAAkBhE,EAAKgE,eAI9DrF,KAAM,SAAU0C,EAAKzC,EAAUC,GAC9B,GAAIoF,GACH5E,EAAI,EACJjC,EAASiE,EAAIjE,OACbiD,EAAU6D,EAAa7C,EAExB,IAAKxC,GACJ,GAAKwB,GACJ,KAAYjD,EAAJiC,EAAYA,IAGnB,GAFA4E,EAAQrF,EAASI,MAAOqC,EAAKhC,GAAKR,GAE7BoF,KAAU,EACd,UAIF,KAAM5E,IAAKgC,GAGV,GAFA4C,EAAQrF,EAASI,MAAOqC,EAAKhC,GAAKR,GAE7BoF,KAAU,EACd,UAOH,IAAK5D,GACJ,KAAYjD,EAAJiC,EAAYA,IAGnB,GAFA4E,EAAQrF,EAASR,KAAMiD,EAAKhC,GAAKA,EAAGgC,EAAKhC,IAEpC4E,KAAU,EACd,UAIF,KAAM5E,IAAKgC,GAGV,GAFA4C,EAAQrF,EAASR,KAAMiD,EAAKhC,GAAKA,EAAGgC,EAAKhC,IAEpC4E,KAAU,EACd,KAMJ,OAAO5C,IAIRtG,KAAMD,IAAcA,EAAUsD,KAAK,gBAClC,SAAU+F,GACT,MAAe,OAARA,EACN,GACArJ,EAAUsD,KAAM+F,IAIlB,SAAUA,GACT,MAAe,OAARA,EACN,IACEA,EAAO,IAAK1D,QAASlF,EAAO,KAIjC2C,UAAW,SAAUkG,EAAKC,GACzB,GAAI5F,GAAM4F,KAaV,OAXY,OAAPD,IACCF,EAAaI,OAAOF,IACxBxK,EAAO2D,MAAOkB,EACE,gBAAR2F,IACLA,GAAQA,GAGXhK,EAAUgE,KAAMK,EAAK2F,IAIhB3F,GAGR8F,QAAS,SAAUtH,EAAMmH,EAAK/E,GAC7B,GAAIC,EAEJ,IAAK8E,EAAM,CACV,GAAK5J,EACJ,MAAOA,GAAa4D,KAAMgG,EAAKnH,EAAMoC,EAMtC,KAHAC,EAAM8E,EAAIhH,OACViC,EAAIA,EAAQ,EAAJA,EAAQkB,KAAKiE,IAAK,EAAGlF,EAAMD,GAAMA,EAAI,EAEjCC,EAAJD,EAASA,IAEhB,GAAKA,IAAK+E,IAAOA,EAAK/E,KAAQpC,EAC7B,MAAOoC,GAKV,MAAO,IAGR9B,MAAO,SAAU2B,EAAOuF,GACvB,GAAIC,GAAID,EAAOrH,OACdiC,EAAIH,EAAM9B,OACVmC,EAAI,CAEL,IAAkB,gBAANmF,GACX,KAAYA,EAAJnF,EAAOA,IACdL,EAAOG,KAAQoF,EAAQlF,OAGxB,OAAQkF,EAAOlF,KAAOpG,EACrB+F,EAAOG,KAAQoF,EAAQlF,IAMzB,OAFAL,GAAM9B,OAASiC,EAERH,GAGRyF,KAAM,SAAUnG,EAAOI,EAAUgG,GAChC,GAAIC,GACHpG,KACAY,EAAI,EACJjC,EAASoB,EAAMpB,MAKhB,KAJAwH,IAAQA,EAIIxH,EAAJiC,EAAYA,IACnBwF,IAAWjG,EAAUJ,EAAOa,GAAKA,GAC5BuF,IAAQC,GACZpG,EAAIpE,KAAMmE,EAAOa,GAInB,OAAOZ,IAIRe,IAAK,SAAUhB,EAAOI,EAAUkG,GAC/B,GAAIb,GACH5E,EAAI,EACJjC,EAASoB,EAAMpB,OACfiD,EAAU6D,EAAa1F,GACvBC,IAGD,IAAK4B,EACJ,KAAYjD,EAAJiC,EAAYA,IACnB4E,EAAQrF,EAAUJ,EAAOa,GAAKA,EAAGyF,GAEnB,MAATb,IACJxF,EAAKA,EAAIrB,QAAW6G,OAMtB,KAAM5E,IAAKb,GACVyF,EAAQrF,EAAUJ,EAAOa,GAAKA,EAAGyF,GAEnB,MAATb,IACJxF,EAAKA,EAAIrB,QAAW6G,EAMvB,OAAO/J,GAAY8E,SAAWP,IAI/BsG,KAAM,EAINC,MAAO,SAAU9J,EAAID,GACpB,GAAI4D,GAAMmG,EAAO7B,CAUjB,OARwB,gBAAZlI,KACXkI,EAAMjI,EAAID,GACVA,EAAUC,EACVA,EAAKiI,GAKAvJ,EAAOiE,WAAY3C,IAKzB2D,EAAOvE,EAAW8D,KAAMa,UAAW,GACnC+F,EAAQ,WACP,MAAO9J,GAAG8D,MAAO/D,GAAWiC,KAAM2B,EAAK1E,OAAQG,EAAW8D,KAAMa,cAIjE+F,EAAMD,KAAO7J,EAAG6J,KAAO7J,EAAG6J,MAAQnL,EAAOmL,OAElCC,GAZC7L,GAiBT8L,OAAQ,SAAUzG,EAAOtD,EAAI2G,EAAKoC,EAAOiB,EAAWC,EAAUC,GAC7D,GAAI/F,GAAI,EACPjC,EAASoB,EAAMpB,OACfiI,EAAc,MAAPxD,CAGR,IAA4B,WAAvBjI,EAAO2C,KAAMsF,GAAqB,CACtCqD,GAAY,CACZ,KAAM7F,IAAKwC,GACVjI,EAAOqL,OAAQzG,EAAOtD,EAAImE,EAAGwC,EAAIxC,IAAI,EAAM8F,EAAUC,OAIhD,IAAKnB,IAAU9K,IACrB+L,GAAY,EAENtL,EAAOiE,WAAYoG,KACxBmB,GAAM,GAGFC,IAECD,GACJlK,EAAGkD,KAAMI,EAAOyF,GAChB/I,EAAK,OAILmK,EAAOnK,EACPA,EAAK,SAAU+B,EAAM4E,EAAKoC,GACzB,MAAOoB,GAAKjH,KAAMxE,EAAQqD,GAAQgH,MAKhC/I,GACJ,KAAYkC,EAAJiC,EAAYA,IACnBnE,EAAIsD,EAAMa,GAAIwC,EAAKuD,EAAMnB,EAAQA,EAAM7F,KAAMI,EAAMa,GAAIA,EAAGnE,EAAIsD,EAAMa,GAAIwC,IAK3E,OAAOqD,GACN1G,EAGA6G,EACCnK,EAAGkD,KAAMI,GACTpB,EAASlC,EAAIsD,EAAM,GAAIqD,GAAQsD,GAGlCG,IAAK,WACJ,OAAO,GAAMC,OAASC,WAMvBC,KAAM,SAAUxI,EAAMgD,EAASrB,EAAUC,GACxC,GAAIJ,GAAKuB,EACR0F,IAGD,KAAM1F,IAAQC,GACbyF,EAAK1F,GAAS/C,EAAK0I,MAAO3F,GAC1B/C,EAAK0I,MAAO3F,GAASC,EAASD,EAG/BvB,GAAMG,EAASI,MAAO/B,EAAM4B,MAG5B,KAAMmB,IAAQC,GACbhD,EAAK0I,MAAO3F,GAAS0F,EAAK1F,EAG3B,OAAOvB,MAIT7E,EAAO8C,MAAMoC,QAAU,SAAUuC,GAChC,IAAMjI,EAOL,GALAA,EAAYQ,EAAOgM,WAKU,aAAxBpM,EAASgD,WAEbyE,WAAYrH,EAAO8C,WAGb,IAAKlD,EAAS8C,iBAEpB9C,EAAS8C,iBAAkB,mBAAoBF,GAAW,GAG1DlD,EAAOoD,iBAAkB,OAAQF,GAAW,OAGtC,CAEN5C,EAASqM,YAAa,qBAAsBzJ,GAG5ClD,EAAO2M,YAAa,SAAUzJ,EAI9B,IAAI0J,IAAM,CAEV,KACCA,EAA6B,MAAvB5M,EAAO6M,cAAwBvM,EAASE,gBAC7C,MAAMoI,IAEHgE,GAAOA,EAAIE,UACf,QAAUC,KACT,IAAMrM,EAAO+G,QAAU,CAEtB,IAGCmF,EAAIE,SAAS,QACZ,MAAMlE,GACP,MAAOb,YAAYgF,EAAe,IAInCxJ,IAGA7C,EAAO8C,YAMZ,MAAOtD,GAAU0F,QAASuC,IAI3BzH,EAAO+E,KAAK,gEAAgEuH,MAAM,KAAM,SAAS7G,EAAGW,GACnGjG,EAAY,WAAaiG,EAAO,KAAQA,EAAKgE,eAG9C,SAASE,GAAa7C,GACrB,GAAIjE,GAASiE,EAAIjE,OAChBb,EAAO3C,EAAO2C,KAAM8E,EAErB,OAAKzH,GAAO2H,SAAUF,IACd,EAGc,IAAjBA,EAAI5D,UAAkBL,GACnB,EAGQ,UAATb,GAA6B,aAATA,IACb,IAAXa,GACgB,gBAAXA,IAAuBA,EAAS,GAAOA,EAAS,IAAOiE,IAIhEhI,EAAaO,EAAOJ,GAWpB,SAAWN,EAAQC,GAEnB,GAAIkG,GACH0C,EACAoE,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAGAC,EACAlN,EACAC,EACAkN,EACAC,EACAC,EACAC,EACAC,EAGAzG,EAAU,UAAY,GAAKiF,MAC3ByB,EAAe9N,EAAOM,SACtByN,EAAU,EACVlI,EAAO,EACPmI,EAAaC,KACbC,EAAaD,KACbE,EAAgBF,KAChBG,GAAe,EACfC,EAAY,WAAa,MAAO,IAGhCC,QAAsBrO,GACtBsO,EAAe,GAAK,GAGpBC,KAAc7M,eACduJ,KACAuD,EAAMvD,EAAIuD,IACVC,EAAcxD,EAAI/J,KAClBA,EAAO+J,EAAI/J,KACXE,EAAQ6J,EAAI7J,MAEZE,EAAU2J,EAAI3J,SAAW,SAAUwC,GAClC,GAAIoC,GAAI,EACPC,EAAMpC,KAAKE,MACZ,MAAYkC,EAAJD,EAASA,IAChB,GAAKnC,KAAKmC,KAAOpC,EAChB,MAAOoC,EAGT,OAAO,IAGRwI,EAAW,6HAKXC,EAAa,sBAEbC,EAAoB,mCAKpBC,EAAaD,EAAkBtH,QAAS,IAAK,MAG7CwH,EAAa,MAAQH,EAAa,KAAOC,EAAoB,IAAMD,EAClE,mBAAqBA,EAAa,wCAA0CE,EAAa,QAAUF,EAAa,OAQjHI,EAAU,KAAOH,EAAoB,mEAAqEE,EAAWxH,QAAS,EAAG,GAAM,eAGvIlF,EAAY4M,OAAQ,IAAML,EAAa,8BAAgCA,EAAa,KAAM,KAE1FM,EAAaD,OAAQ,IAAML,EAAa,KAAOA,EAAa,KAC5DO,EAAmBF,OAAQ,IAAML,EAAa,WAAaA,EAAa,IAAMA,EAAa,KAE3FQ,EAAeH,OAAQL,EAAa,SACpCS,EAAuBJ,OAAQ,IAAML,EAAa,gBAAkBA,EAAa,OAAQ,KAEzFU,EAAcL,OAAQD,GACtBO,EAAkBN,OAAQ,IAAMH,EAAa,KAE7CU,GACCC,GAAUR,OAAQ,MAAQJ,EAAoB,KAC9Ca,MAAaT,OAAQ,QAAUJ,EAAoB,KACnDc,IAAWV,OAAQ,KAAOJ,EAAkBtH,QAAS,IAAK,MAAS,KACnEqI,KAAYX,OAAQ,IAAMF,GAC1Bc,OAAcZ,OAAQ,IAAMD,GAC5Bc,MAAab,OAAQ,yDAA2DL,EAC/E,+BAAiCA,EAAa,cAAgBA,EAC9D,aAAeA,EAAa,SAAU,KACvCmB,KAAYd,OAAQ,OAASN,EAAW,KAAM,KAG9CqB,aAAoBf,OAAQ,IAAML,EAAa,mDAC9CA,EAAa,mBAAqBA,EAAa,mBAAoB,MAGrEqB,EAAU,yBAGV3N,EAAa,mCAEb4N,GAAU,sCACVC,GAAU,SAEVC,GAAU,QAGVC,GAAgBpB,OAAQ,qBAAuBL,EAAa,MAAQA,EAAa,OAAQ,MACzF0B,GAAY,SAAUC,EAAGC,EAASC,GACjC,GAAIC,GAAO,KAAOF,EAAU,KAI5B,OAAOE,KAASA,GAAQD,EACvBD,EAEO,EAAPE,EACChI,OAAOiI,aAAcD,EAAO,OAE5BhI,OAAOiI,aAA2B,MAAbD,GAAQ,GAA4B,MAAR,KAAPA,GAI9C,KACCvP,EAAK2E,MACHoF,EAAM7J,EAAM6D,KAAM4I,EAAapE,YAChCoE,EAAapE,YAIdwB,EAAK4C,EAAapE,WAAWxF,QAASK,SACrC,MAAQqE,IACTzH,GAAS2E,MAAOoF,EAAIhH,OAGnB,SAAU+C,EAAQ2J,GACjBlC,EAAY5I,MAAOmB,EAAQ5F,EAAM6D,KAAK0L,KAKvC,SAAU3J,EAAQ2J,GACjB,GAAIvK,GAAIY,EAAO/C,OACdiC,EAAI,CAEL,OAASc,EAAOZ,KAAOuK,EAAIzK,MAC3Bc,EAAO/C,OAASmC,EAAI,IAKvB,QAASwK,IAAQ/O,EAAUC,EAASoJ,EAAS2F,GAC5C,GAAIhN,GAAOC,EAAMgN,EAAGxM,EAEnB4B,EAAG6K,EAAQxE,EAAKyE,EAAKC,EAAYC,CASlC,KAPOpP,EAAUA,EAAQyC,eAAiBzC,EAAU+L,KAAmBxN,GACtEkN,EAAazL,GAGdA,EAAUA,GAAWzB,EACrB6K,EAAUA,OAEJrJ,GAAgC,gBAAbA,GACxB,MAAOqJ,EAGR,IAAuC,KAAjC5G,EAAWxC,EAAQwC,WAAgC,IAAbA,EAC3C,QAGD,IAAKkJ,IAAmBqD,EAAO,CAG9B,GAAMhN,EAAQxB,EAAW6B,KAAMrC,GAE9B,GAAMiP,EAAIjN,EAAM,IACf,GAAkB,IAAbS,EAAiB,CAIrB,GAHAR,EAAOhC,EAAQ8C,eAAgBkM,IAG1BhN,IAAQA,EAAKe,WAQjB,MAAOqG,EALP,IAAKpH,EAAKgB,KAAOgM,EAEhB,MADA5F,GAAQhK,KAAM4C,GACPoH,MAOT,IAAKpJ,EAAQyC,gBAAkBT,EAAOhC,EAAQyC,cAAcK,eAAgBkM,KAC3ElD,EAAU9L,EAASgC,IAAUA,EAAKgB,KAAOgM,EAEzC,MADA5F,GAAQhK,KAAM4C,GACPoH,MAKH,CAAA,GAAKrH,EAAM,GAEjB,MADA3C,GAAK2E,MAAOqF,EAASpJ,EAAQwI,qBAAsBzI,IAC5CqJ,CAGD,KAAM4F,EAAIjN,EAAM,KAAO+E,EAAQuI,wBAA0BrP,EAAQqP,uBAEvE,MADAjQ,GAAK2E,MAAOqF,EAASpJ,EAAQqP,uBAAwBL,IAC9C5F,EAKT,GAAKtC,EAAQwI,OAAS3D,IAAcA,EAAUjJ,KAAM3C,IAAc,CASjE,GARAmP,EAAMzE,EAAMpF,EACZ8J,EAAanP,EACboP,EAA2B,IAAb5M,GAAkBzC,EAMd,IAAbyC,GAAqD,WAAnCxC,EAAQ8I,SAASC,cAA6B,CACpEkG,EAASM,GAAUxP,IAEb0K,EAAMzK,EAAQwP,aAAa,OAChCN,EAAMzE,EAAIjF,QAAS6I,GAAS,QAE5BrO,EAAQyP,aAAc,KAAMP,GAE7BA,EAAM,QAAUA,EAAM,MAEtB9K,EAAI6K,EAAO9M,MACX,OAAQiC,IACP6K,EAAO7K,GAAK8K,EAAMQ,GAAYT,EAAO7K,GAEtC+K,GAAa9B,EAAS3K,KAAM3C,IAAcC,EAAQ+C,YAAc/C,EAChEoP,EAAcH,EAAOU,KAAK,KAG3B,GAAKP,EACJ,IAIC,MAHAhQ,GAAK2E,MAAOqF,EACX+F,EAAWS,iBAAkBR,IAEvBhG,EACN,MAAMyG,IACN,QACKpF,GACLzK,EAAQ8P,gBAAgB,QAQ7B,MAAOC,IAAQhQ,EAASyF,QAASlF,EAAO,MAAQN,EAASoJ,EAAS2F,GAOnE,QAASiB,IAAU/P,GAClB,MAAOiO,GAAQxL,KAAMzC,EAAK,IAS3B,QAASiM,MACR,GAAI+D,KAEJ,SAASC,GAAOtJ,EAAKoC,GAMpB,MAJKiH,GAAK7Q,KAAMwH,GAAO,KAAQuE,EAAKgF,mBAE5BD,GAAOD,EAAKG,SAEZF,EAAOtJ,GAAQoC,EAExB,MAAOkH,GAOR,QAASG,IAAcpQ,GAEtB,MADAA,GAAIoF,IAAY,EACTpF,EAOR,QAASqQ,IAAQrQ,GAChB,GAAIsQ,GAAMhS,EAASiJ,cAAc,MAEjC,KACC,QAASvH,EAAIsQ,GACZ,MAAO1J,GACR,OAAO,EACN,QAEI0J,EAAIxN,YACRwN,EAAIxN,WAAWyN,YAAaD,GAG7BA,EAAM,MAUR,QAASE,IAAWC,EAAOC,EAASjO,GACnCgO,EAAQA,EAAMzF,MAAM,IACpB,IAAI2F,GACHxM,EAAIsM,EAAMvO,OACV0O,EAAYnO,EAAO,KAAOiO,CAE3B,OAAQvM,KAEAwM,EAAUzF,EAAK2F,WAAYJ,EAAMtM,MAASwM,IAAYD,IAC5DxF,EAAK2F,WAAYJ,EAAMtM,IAAOyM,GAUjC,QAASE,IAAa/O,EAAM+C,GAE3B,GAAIiM,GAAMhP,EAAKiP,iBAAkBlM,EACjC,OAAOiM,IAAOA,EAAIE,UACjBF,EAAIhI,MACJhH,EAAM+C,MAAW,EAAOA,EAAKgE,cAAgB,KAS/C,QAASoI,IAAsBnP,EAAM+C,GAEpC,MAAO/C,GAAKwN,aAAczK,EAA6B,SAAvBA,EAAKgE,cAA2B,EAAI,GAQrE,QAASqI,IAAcpP,GAItB,MAAqC,UAAhCA,EAAK8G,SAASC,cACX/G,EAAKqP,aADb,EAWD,QAASC,IAAcC,EAAGC,GACzB,GAAIC,GAAMD,GAAKD,EACdG,EAAOD,GAAsB,IAAfF,EAAE/O,UAAiC,IAAfgP,EAAEhP,YAChCgP,EAAEG,aAAenF,KACjB+E,EAAEI,aAAenF,EAGtB,IAAKkF,EACJ,MAAOA,EAIR,IAAKD,EACJ,MAASA,EAAMA,EAAIG,YAClB,GAAKH,IAAQD,EACZ,MAAO,EAKV,OAAOD,GAAI,EAAI,GAOhB,QAASM,IAAmBvQ,GAC3B,MAAO,UAAUU,GAChB,GAAI+C,GAAO/C,EAAK8G,SAASC,aACzB,OAAgB,UAAThE,GAAoB/C,EAAKV,OAASA,GAQ3C,QAASwQ,IAAoBxQ,GAC5B,MAAO,UAAUU,GAChB,GAAI+C,GAAO/C,EAAK8G,SAASC,aACzB,QAAiB,UAAThE,GAA6B,WAATA,IAAsB/C,EAAKV,OAASA,GAQlE,QAASyQ,IAAwB9R,GAChC,MAAOoQ,IAAa,SAAU2B,GAE7B,MADAA,IAAYA,EACL3B,GAAa,SAAUtB,EAAMlD,GACnC,GAAIvH,GACH2N,EAAehS,KAAQ8O,EAAK5M,OAAQ6P,GACpC5N,EAAI6N,EAAa9P,MAGlB,OAAQiC,IACF2K,EAAOzK,EAAI2N,EAAa7N,MAC5B2K,EAAKzK,KAAOuH,EAAQvH,GAAKyK,EAAKzK,SAWnC+G,EAAQyD,GAAOzD,MAAQ,SAAUrJ,GAGhC,GAAIvD,GAAkBuD,IAASA,EAAKS,eAAiBT,GAAMvD,eAC3D,OAAOA,GAA+C,SAA7BA,EAAgBqK,UAAsB,GAIhEhC,EAAUgI,GAAOhI,WAOjB2E,EAAcqD,GAAOrD,YAAc,SAAUyG,GAC5C,GAAIC,GAAMD,EAAOA,EAAKzP,eAAiByP,EAAOnG,EAC7CqG,EAASD,EAAIE,YAGd,OAAKF,KAAQ5T,GAA6B,IAAjB4T,EAAI3P,UAAmB2P,EAAI1T,iBAKpDF,EAAW4T,EACX3T,EAAU2T,EAAI1T,gBAGdiN,GAAkBL,EAAO8G,GAKpBC,GAAUA,EAAOtH,cACrBsH,EAAOxH,YAAa,iBAAkB,WACrCa,MASF3E,EAAQkG,WAAasD,GAAO,SAAUC,GAYrC,MARAA,GAAI+B,UAAY,mBAChB7B,GAAW,yBAA0BU,GAA8D,MAAxCZ,EAAIgC,WAAW/C,aAAa,SAIvFiB,GAAW7D,EAAUmE,GAA6C,MAAhCR,EAAIf,aAAa,aAEnDe,EAAIiC,UAAY,KACRjC,EAAIf,aAAa,eAK1B1I,EAAQ2L,MAAQnC,GAAO,SAAUC,GAGhC,MAFAA,GAAI+B,UAAY,UAChB/B,EAAIgC,WAAW9C,aAAc,QAAS,IACY,KAA3Cc,EAAIgC,WAAW/C,aAAc,WAKrCiB,GAAW,QAASW,GAActK,EAAQkG,YAAclG,EAAQ2L,OAMhE3L,EAAQ0B,qBAAuB8H,GAAO,SAAUC,GAE/C,MADAA,GAAImC,YAAaP,EAAIQ,cAAc,MAC3BpC,EAAI/H,qBAAqB,KAAKrG,SAIvC2E,EAAQuI,uBAAyBiB,GAAO,SAAUC,GAQjD,MAPAA,GAAI+B,UAAY,+CAIhB/B,EAAIgC,WAAWC,UAAY,IAGuB,IAA3CjC,EAAIlB,uBAAuB,KAAKlN,SAOxC2E,EAAQ8L,QAAUtC,GAAO,SAAUC,GAElC,MADA/R,GAAQkU,YAAanC,GAAMvN,GAAKqC,GACxB8M,EAAIU,oBAAsBV,EAAIU,kBAAmBxN,GAAUlD,SAI/D2E,EAAQ8L,SACZzH,EAAK9I,KAAS,GAAI,SAAUW,EAAIhD,GAC/B,SAAYA,GAAQ8C,iBAAmByJ,GAAgBb,EAAiB,CACvE,GAAIsD,GAAIhP,EAAQ8C,eAAgBE,EAGhC,OAAOgM,IAAKA,EAAEjM,YAAciM,QAG9B7D,EAAK2H,OAAW,GAAI,SAAU9P,GAC7B,GAAI+P,GAAS/P,EAAGwC,QAAS8I,GAAWC,GACpC,OAAO,UAAUvM,GAChB,MAAOA,GAAKwN,aAAa,QAAUuD,YAM9B5H,GAAK9I,KAAS,GAErB8I,EAAK2H,OAAW,GAAK,SAAU9P,GAC9B,GAAI+P,GAAS/P,EAAGwC,QAAS8I,GAAWC,GACpC,OAAO,UAAUvM,GAChB,GAAIkQ,SAAclQ,GAAKiP,mBAAqB1E,GAAgBvK,EAAKiP,iBAAiB,KAClF,OAAOiB,IAAQA,EAAKlJ,QAAU+J,KAMjC5H,EAAK9I,KAAU,IAAIyE,EAAQ0B,qBAC1B,SAAUwK,EAAKhT,GACd,aAAYA,GAAQwI,uBAAyB+D,EACrCvM,EAAQwI,qBAAsBwK,GADtC,GAID,SAAUA,EAAKhT,GACd,GAAIgC,GACHkG,KACA9D,EAAI,EACJgF,EAAUpJ,EAAQwI,qBAAsBwK,EAGzC,IAAa,MAARA,EAAc,CAClB,MAAShR,EAAOoH,EAAQhF,KACA,IAAlBpC,EAAKQ,UACT0F,EAAI9I,KAAM4C,EAIZ,OAAOkG,GAER,MAAOkB,IAIT+B,EAAK9I,KAAY,MAAIyE,EAAQuI,wBAA0B,SAAUmD,EAAWxS,GAC3E,aAAYA,GAAQqP,yBAA2B9C,GAAgBb,EACvD1L,EAAQqP,uBAAwBmD,GADxC,GAWD5G,KAOAD,MAEM7E,EAAQwI,IAAMU,GAASmC,EAAIvC,qBAGhCU,GAAO,SAAUC,GAMhBA,EAAI+B,UAAY,iDAIV/B,EAAIX,iBAAiB,cAAczN,QACxCwJ,EAAUvM,KAAM,MAAQyN,EAAa,aAAeD,EAAW,KAM1D2D,EAAIX,iBAAiB,YAAYzN,QACtCwJ,EAAUvM,KAAK,cAIjBkR,GAAO,SAAUC,GAOhB,GAAIkC,GAAQN,EAAI3K,cAAc,QAC9BiL,GAAMhD,aAAc,OAAQ,UAC5Bc,EAAImC,YAAaD,GAAQhD,aAAc,IAAK,IAEvCc,EAAIX,iBAAiB,WAAWzN,QACpCwJ,EAAUvM,KAAM,SAAWyN,EAAa,gBAKnC0D,EAAIX,iBAAiB,YAAYzN,QACtCwJ,EAAUvM,KAAM,WAAY,aAI7BmR,EAAIX,iBAAiB,QACrBjE,EAAUvM,KAAK,YAIX0H,EAAQmM,gBAAkBjD,GAAWnE,EAAUrN,EAAQ0U,uBAC5D1U,EAAQ2U,oBACR3U,EAAQ4U,kBACR5U,EAAQ6U,qBAER/C,GAAO,SAAUC,GAGhBzJ,EAAQwM,kBAAoBzH,EAAQ1I,KAAMoN,EAAK,OAI/C1E,EAAQ1I,KAAMoN,EAAK,aACnB3E,EAAcxM,KAAM,KAAM6N,KAI5BtB,EAAYA,EAAUxJ,QAAc+K,OAAQvB,EAAUgE,KAAK,MAC3D/D,EAAgBA,EAAczJ,QAAc+K,OAAQtB,EAAc+D,KAAK,MAQvE7D,EAAWkE,GAASxR,EAAQsN,WAAatN,EAAQ+U,wBAChD,SAAUhC,EAAGC,GACZ,GAAIgC,GAAuB,IAAfjC,EAAE/O,SAAiB+O,EAAE9S,gBAAkB8S,EAClDkC,EAAMjC,GAAKA,EAAEzO,UACd,OAAOwO,KAAMkC,MAAWA,GAAwB,IAAjBA,EAAIjR,YAClCgR,EAAM1H,SACL0H,EAAM1H,SAAU2H,GAChBlC,EAAEgC,yBAA8D,GAAnChC,EAAEgC,wBAAyBE,MAG3D,SAAUlC,EAAGC,GACZ,GAAKA,EACJ,MAASA,EAAIA,EAAEzO,WACd,GAAKyO,IAAMD,EACV,OAAO,CAIV,QAAO,GAQTzK,EAAQ4M,aAAepD,GAAO,SAAUqD,GAEvC,MAAkE,GAA3DA,EAAKJ,wBAAyBpB,EAAI3K,cAAc,UAIxD8E,EAAY9N,EAAQ+U,wBACpB,SAAUhC,EAAGC,GAGZ,GAAKD,IAAMC,EAEV,MADAnF,IAAe,EACR,CAGR,IAAIuH,GAAUpC,EAAE+B,yBAA2BhC,EAAEgC,yBAA2BhC,EAAEgC,wBAAyB/B,EAEnG,OAAKoC,GAEW,EAAVA,IACF9M,EAAQ4M,cAAgBlC,EAAE+B,wBAAyBhC,KAAQqC,EAGxDrC,IAAMY,GAAOrG,EAASC,EAAcwF,GACjC,GAEHC,IAAMW,GAAOrG,EAASC,EAAcyF,GACjC,EAIDhG,EACJhM,EAAQ2D,KAAMqI,EAAW+F,GAAM/R,EAAQ2D,KAAMqI,EAAWgG,GAC1D,EAGe,EAAVoC,EAAc,GAAK,EAIpBrC,EAAEgC,wBAA0B,GAAK,GAEzC,SAAUhC,EAAGC,GACZ,GAAIC,GACHrN,EAAI,EACJyP,EAAMtC,EAAExO,WACR0Q,EAAMjC,EAAEzO,WACR+Q,GAAOvC,GACPwC,GAAOvC,EAGR,IAAKD,IAAMC,EAEV,MADAnF,IAAe,EACR,CAGD,KAAMwH,IAAQJ,EACpB,MAAOlC,KAAMY,EAAM,GAClBX,IAAMW,EAAM,EACZ0B,EAAM,GACNJ,EAAM,EACNjI,EACEhM,EAAQ2D,KAAMqI,EAAW+F,GAAM/R,EAAQ2D,KAAMqI,EAAWgG,GAC1D,CAGK,IAAKqC,IAAQJ,EACnB,MAAOnC,IAAcC,EAAGC,EAIzBC,GAAMF,CACN,OAASE,EAAMA,EAAI1O,WAClB+Q,EAAGE,QAASvC,EAEbA,GAAMD,CACN,OAASC,EAAMA,EAAI1O,WAClBgR,EAAGC,QAASvC,EAIb,OAAQqC,EAAG1P,KAAO2P,EAAG3P,GACpBA,GAGD,OAAOA,GAENkN,GAAcwC,EAAG1P,GAAI2P,EAAG3P,IAGxB0P,EAAG1P,KAAO2H,EAAe,GACzBgI,EAAG3P,KAAO2H,EAAe,EACzB,GAGKoG,GAtWC5T,GAyWTuQ,GAAOjD,QAAU,SAAUoI,EAAMC,GAChC,MAAOpF,IAAQmF,EAAM,KAAM,KAAMC,IAGlCpF,GAAOmE,gBAAkB,SAAUjR,EAAMiS,GASxC,IAPOjS,EAAKS,eAAiBT,KAAWzD,GACvCkN,EAAazJ,GAIdiS,EAAOA,EAAKzO,QAAS8H,EAAkB,aAElCxG,EAAQmM,kBAAmBvH,GAC5BE,GAAkBA,EAAclJ,KAAMuR,IACtCtI,GAAkBA,EAAUjJ,KAAMuR,IAErC,IACC,GAAIzQ,GAAMqI,EAAQ1I,KAAMnB,EAAMiS,EAG9B,IAAKzQ,GAAOsD,EAAQwM,mBAGlBtR,EAAKzD,UAAuC,KAA3ByD,EAAKzD,SAASiE,SAChC,MAAOgB,GAEP,MAAMqD,IAGT,MAAOiI,IAAQmF,EAAM1V,EAAU,MAAOyD,IAAQG,OAAS,GAGxD2M,GAAOhD,SAAW,SAAU9L,EAASgC,GAKpC,OAHOhC,EAAQyC,eAAiBzC,KAAczB,GAC7CkN,EAAazL,GAEP8L,EAAU9L,EAASgC,IAG3B8M,GAAOjM,KAAO,SAAUb,EAAM+C,IAEtB/C,EAAKS,eAAiBT,KAAWzD,GACvCkN,EAAazJ,EAGd,IAAI/B,GAAKkL,EAAK2F,WAAY/L,EAAKgE,eAE9BiI,EAAQ/Q,GAAMwM,EAAOtJ,KAAMgI,EAAK2F,WAAY/L,EAAKgE,eAChD9I,EAAI+B,EAAM+C,GAAO2G,GACjBxN,CAEF,OAAO8S,KAAQ9S,EACd4I,EAAQkG,aAAetB,EACtB1J,EAAKwN,aAAczK,IAClBiM,EAAMhP,EAAKiP,iBAAiBlM,KAAUiM,EAAIE,UAC1CF,EAAIhI,MACJ,KACFgI,GAGFlC,GAAO7H,MAAQ,SAAUC,GACxB,KAAUC,OAAO,0CAA4CD,IAO9D4H,GAAOqF,WAAa,SAAU/K,GAC7B,GAAIpH,GACHoS,KACA9P,EAAI,EACJF,EAAI,CAOL,IAJAiI,GAAgBvF,EAAQuN,iBACxB7I,GAAa1E,EAAQwN,YAAclL,EAAQ9J,MAAO,GAClD8J,EAAQ3E,KAAM6H,GAETD,EAAe,CACnB,MAASrK,EAAOoH,EAAQhF,KAClBpC,IAASoH,EAAShF,KACtBE,EAAI8P,EAAWhV,KAAMgF,GAGvB,OAAQE,IACP8E,EAAQ1E,OAAQ0P,EAAY9P,GAAK,GAInC,MAAO8E,IAORgC,EAAU0D,GAAO1D,QAAU,SAAUpJ,GACpC,GAAIkQ,GACH1O,EAAM,GACNY,EAAI,EACJ5B,EAAWR,EAAKQ,QAEjB,IAAMA,GAMC,GAAkB,IAAbA,GAA+B,IAAbA,GAA+B,KAAbA,EAAkB,CAGjE,GAAiC,gBAArBR,GAAKuS,YAChB,MAAOvS,GAAKuS,WAGZ,KAAMvS,EAAOA,EAAKuQ,WAAYvQ,EAAMA,EAAOA,EAAK4P,YAC/CpO,GAAO4H,EAASpJ,OAGZ,IAAkB,IAAbQ,GAA+B,IAAbA,EAC7B,MAAOR,GAAKwS,cAhBZ,MAAStC,EAAOlQ,EAAKoC,GAAKA,IAEzBZ,GAAO4H,EAAS8G,EAkBlB,OAAO1O,IAGR2H,EAAO2D,GAAO2F,WAGbtE,YAAa,GAEbuE,aAAcrE,GAEdtO,MAAO0L,EAEPqD,cAEAzO,QAEAsS,UACCC,KAAOC,IAAK,aAAc5Q,OAAO,GACjC6Q,KAAOD,IAAK,cACZE,KAAOF,IAAK,kBAAmB5Q,OAAO,GACtC+Q,KAAOH,IAAK,oBAGbI,WACCpH,KAAQ,SAAU9L,GAUjB,MATAA,GAAM,GAAKA,EAAM,GAAGyD,QAAS8I,GAAWC,IAGxCxM,EAAM,IAAOA,EAAM,IAAMA,EAAM,IAAM,IAAKyD,QAAS8I,GAAWC,IAE5C,OAAbxM,EAAM,KACVA,EAAM,GAAK,IAAMA,EAAM,GAAK,KAGtBA,EAAMzC,MAAO,EAAG,IAGxByO,MAAS,SAAUhM,GA6BlB,MAlBAA,GAAM,GAAKA,EAAM,GAAGgH,cAEY,QAA3BhH,EAAM,GAAGzC,MAAO,EAAG,IAEjByC,EAAM,IACX+M,GAAO7H,MAAOlF,EAAM,IAKrBA,EAAM,KAAQA,EAAM,GAAKA,EAAM,IAAMA,EAAM,IAAM,GAAK,GAAmB,SAAbA,EAAM,IAA8B,QAAbA,EAAM,KACzFA,EAAM,KAAUA,EAAM,GAAKA,EAAM,IAAqB,QAAbA,EAAM,KAGpCA,EAAM,IACjB+M,GAAO7H,MAAOlF,EAAM,IAGdA,GAGR+L,OAAU,SAAU/L,GACnB,GAAImT,GACHC,GAAYpT,EAAM,IAAMA,EAAM,EAE/B,OAAK0L,GAAiB,MAAE/K,KAAMX,EAAM,IAC5B,MAIHA,EAAM,IAAMA,EAAM,KAAO7D,EAC7B6D,EAAM,GAAKA,EAAM,GAGNoT,GAAY5H,EAAQ7K,KAAMyS,KAEpCD,EAAS3F,GAAU4F,GAAU,MAE7BD,EAASC,EAAS3V,QAAS,IAAK2V,EAAShT,OAAS+S,GAAWC,EAAShT,UAGvEJ,EAAM,GAAKA,EAAM,GAAGzC,MAAO,EAAG4V,GAC9BnT,EAAM,GAAKoT,EAAS7V,MAAO,EAAG4V,IAIxBnT,EAAMzC,MAAO,EAAG,MAIzBwT,QAEClF,IAAO,SAAUwH,GAChB,GAAItM,GAAWsM,EAAiB5P,QAAS8I,GAAWC,IAAYxF,aAChE,OAA4B,MAArBqM,EACN,WAAa,OAAO,GACpB,SAAUpT,GACT,MAAOA,GAAK8G,UAAY9G,EAAK8G,SAASC,gBAAkBD,IAI3D6E,MAAS,SAAU6E,GAClB,GAAI6C,GAAUpJ,EAAYuG,EAAY,IAEtC,OAAO6C,KACLA,EAAcnI,OAAQ,MAAQL,EAAa,IAAM2F,EAAY,IAAM3F,EAAa,SACjFZ,EAAYuG,EAAW,SAAUxQ,GAChC,MAAOqT,GAAQ3S,KAAgC,gBAAnBV,GAAKwQ,WAA0BxQ,EAAKwQ,iBAAoBxQ,GAAKwN,eAAiBjD,GAAgBvK,EAAKwN,aAAa,UAAY,OAI3J3B,KAAQ,SAAU9I,EAAMuQ,EAAUC,GACjC,MAAO,UAAUvT,GAChB,GAAIwT,GAAS1G,GAAOjM,KAAMb,EAAM+C,EAEhC,OAAe,OAAVyQ,EACgB,OAAbF,EAEFA,GAINE,GAAU,GAEU,MAAbF,EAAmBE,IAAWD,EACvB,OAAbD,EAAoBE,IAAWD,EAClB,OAAbD,EAAoBC,GAAqC,IAA5BC,EAAOhW,QAAS+V,GAChC,OAAbD,EAAoBC,GAASC,EAAOhW,QAAS+V,GAAU,GAC1C,OAAbD,EAAoBC,GAASC,EAAOlW,OAAQiW,EAAMpT,UAAaoT,EAClD,OAAbD,GAAsB,IAAME,EAAS,KAAMhW,QAAS+V,GAAU,GACjD,OAAbD,EAAoBE,IAAWD,GAASC,EAAOlW,MAAO,EAAGiW,EAAMpT,OAAS,KAAQoT,EAAQ,KACxF,IAZO,IAgBVxH,MAAS,SAAUzM,EAAMmU,EAAMzD,EAAU/N,EAAOE,GAC/C,GAAIuR,GAAgC,QAAvBpU,EAAKhC,MAAO,EAAG,GAC3BqW,EAA+B,SAArBrU,EAAKhC,MAAO,IACtBsW,EAAkB,YAATH,CAEV,OAAiB,KAAVxR,GAAwB,IAATE,EAGrB,SAAUnC,GACT,QAASA,EAAKe,YAGf,SAAUf,EAAMhC,EAASiI,GACxB,GAAIiI,GAAO2F,EAAY3D,EAAMR,EAAMoE,EAAWC,EAC7ClB,EAAMa,IAAWC,EAAU,cAAgB,kBAC3CvD,EAASpQ,EAAKe,WACdgC,EAAO6Q,GAAU5T,EAAK8G,SAASC,cAC/BiN,GAAY/N,IAAQ2N,CAErB,IAAKxD,EAAS,CAGb,GAAKsD,EAAS,CACb,MAAQb,EAAM,CACb3C,EAAOlQ,CACP,OAASkQ,EAAOA,EAAM2C,GACrB,GAAKe,EAAS1D,EAAKpJ,SAASC,gBAAkBhE,EAAyB,IAAlBmN,EAAK1P,SACzD,OAAO,CAITuT,GAAQlB,EAAe,SAATvT,IAAoByU,GAAS,cAE5C,OAAO,EAMR,GAHAA,GAAUJ,EAAUvD,EAAOG,WAAaH,EAAO6D,WAG1CN,GAAWK,EAAW,CAE1BH,EAAazD,EAAQ/M,KAAc+M,EAAQ/M,OAC3C6K,EAAQ2F,EAAYvU,OACpBwU,EAAY5F,EAAM,KAAOlE,GAAWkE,EAAM,GAC1CwB,EAAOxB,EAAM,KAAOlE,GAAWkE,EAAM,GACrCgC,EAAO4D,GAAa1D,EAAOzK,WAAYmO,EAEvC,OAAS5D,IAAS4D,GAAa5D,GAAQA,EAAM2C,KAG3CnD,EAAOoE,EAAY,IAAMC,EAAMrJ,MAGhC,GAAuB,IAAlBwF,EAAK1P,YAAoBkP,GAAQQ,IAASlQ,EAAO,CACrD6T,EAAYvU,IAAW0K,EAAS8J,EAAWpE,EAC3C,YAKI,IAAKsE,IAAa9F,GAASlO,EAAMqD,KAAcrD,EAAMqD,QAAkB/D,KAAW4O,EAAM,KAAOlE,EACrG0F,EAAOxB,EAAM,OAKb,OAASgC,IAAS4D,GAAa5D,GAAQA,EAAM2C,KAC3CnD,EAAOoE,EAAY,IAAMC,EAAMrJ,MAEhC,IAAOkJ,EAAS1D,EAAKpJ,SAASC,gBAAkBhE,EAAyB,IAAlBmN,EAAK1P,aAAsBkP,IAE5EsE,KACH9D,EAAM7M,KAAc6M,EAAM7M,QAAkB/D,IAAW0K,EAAS0F,IAG7DQ,IAASlQ,GACb,KAQJ,OADA0P,IAAQvN,EACDuN,IAASzN,GAA4B,IAAjByN,EAAOzN,GAAeyN,EAAOzN,GAAS,KAKrE6J,OAAU,SAAUoI,EAAQlE,GAK3B,GAAIpO,GACH3D,EAAKkL,EAAK8B,QAASiJ,IAAY/K,EAAKgL,WAAYD,EAAOnN,gBACtD+F,GAAO7H,MAAO,uBAAyBiP,EAKzC,OAAKjW,GAAIoF,GACDpF,EAAI+R,GAIP/R,EAAGkC,OAAS,GAChByB,GAASsS,EAAQA,EAAQ,GAAIlE,GACtB7G,EAAKgL,WAAWvW,eAAgBsW,EAAOnN,eAC7CsH,GAAa,SAAUtB,EAAMlD,GAC5B,GAAIuK,GACHC,EAAUpW,EAAI8O,EAAMiD,GACpB5N,EAAIiS,EAAQlU,MACb,OAAQiC,IACPgS,EAAM5W,EAAQ2D,KAAM4L,EAAMsH,EAAQjS,IAClC2K,EAAMqH,KAAWvK,EAASuK,GAAQC,EAAQjS,MAG5C,SAAUpC,GACT,MAAO/B,GAAI+B,EAAM,EAAG4B,KAIhB3D,IAITgN,SAECqJ,IAAOjG,GAAa,SAAUtQ,GAI7B,GAAI0S,MACHrJ,KACAmN,EAAUjL,EAASvL,EAASyF,QAASlF,EAAO,MAE7C,OAAOiW,GAASlR,GACfgL,GAAa,SAAUtB,EAAMlD,EAAS7L,EAASiI,GAC9C,GAAIjG,GACHwU,EAAYD,EAASxH,EAAM,KAAM9G,MACjC7D,EAAI2K,EAAK5M,MAGV,OAAQiC,KACDpC,EAAOwU,EAAUpS,MACtB2K,EAAK3K,KAAOyH,EAAQzH,GAAKpC,MAI5B,SAAUA,EAAMhC,EAASiI,GAGxB,MAFAwK,GAAM,GAAKzQ,EACXuU,EAAS9D,EAAO,KAAMxK,EAAKmB,IACnBA,EAAQsD,SAInB+J,IAAOpG,GAAa,SAAUtQ,GAC7B,MAAO,UAAUiC,GAChB,MAAO8M,IAAQ/O,EAAUiC,GAAOG,OAAS,KAI3C2J,SAAYuE,GAAa,SAAUnH,GAClC,MAAO,UAAUlH,GAChB,OAASA,EAAKuS,aAAevS,EAAK0U,WAAatL,EAASpJ,IAASxC,QAAS0J,GAAS,MAWrFyN,KAAQtG,GAAc,SAAUsG,GAM/B,MAJMnJ,GAAY9K,KAAKiU,GAAQ,KAC9B7H,GAAO7H,MAAO,qBAAuB0P,GAEtCA,EAAOA,EAAKnR,QAAS8I,GAAWC,IAAYxF,cACrC,SAAU/G,GAChB,GAAI4U,EACJ,GACC,IAAMA,EAAWlL,EAChB1J,EAAK2U,KACL3U,EAAKwN,aAAa,aAAexN,EAAKwN,aAAa,QAGnD,MADAoH,GAAWA,EAAS7N,cACb6N,IAAaD,GAA2C,IAAnCC,EAASpX,QAASmX,EAAO,YAE5C3U,EAAOA,EAAKe,aAAiC,IAAlBf,EAAKQ,SAC3C,QAAO,KAKT0C,OAAU,SAAUlD,GACnB,GAAI6U,GAAO5Y,EAAOK,UAAYL,EAAOK,SAASuY,IAC9C,OAAOA,IAAQA,EAAKvX,MAAO,KAAQ0C,EAAKgB,IAGzC8T,KAAQ,SAAU9U,GACjB,MAAOA,KAASxD,GAGjBuY,MAAS,SAAU/U,GAClB,MAAOA,KAASzD,EAASyY,iBAAmBzY,EAAS0Y,UAAY1Y,EAAS0Y,gBAAkBjV,EAAKV,MAAQU,EAAKkV,OAASlV,EAAKmV,WAI7HC,QAAW,SAAUpV,GACpB,MAAOA,GAAKqV,YAAa,GAG1BA,SAAY,SAAUrV,GACrB,MAAOA,GAAKqV,YAAa,GAG1BC,QAAW,SAAUtV,GAGpB,GAAI8G,GAAW9G,EAAK8G,SAASC,aAC7B,OAAqB,UAAbD,KAA0B9G,EAAKsV,SAA0B,WAAbxO,KAA2B9G,EAAKuV,UAGrFA,SAAY,SAAUvV,GAOrB,MAJKA,GAAKe,YACTf,EAAKe,WAAWyU,cAGVxV,EAAKuV,YAAa,GAI1BE,MAAS,SAAUzV,GAMlB,IAAMA,EAAOA,EAAKuQ,WAAYvQ,EAAMA,EAAOA,EAAK4P,YAC/C,GAAK5P,EAAK8G,SAAW,KAAyB,IAAlB9G,EAAKQ,UAAoC,IAAlBR,EAAKQ,SACvD,OAAO,CAGT,QAAO,GAGR4P,OAAU,SAAUpQ,GACnB,OAAQmJ,EAAK8B,QAAe,MAAGjL,IAIhC0V,OAAU,SAAU1V,GACnB,MAAOoM,IAAQ1L,KAAMV,EAAK8G,WAG3B2J,MAAS,SAAUzQ,GAClB,MAAOmM,IAAQzL,KAAMV,EAAK8G,WAG3B6O,OAAU,SAAU3V,GACnB,GAAI+C,GAAO/C,EAAK8G,SAASC,aACzB,OAAgB,UAAThE,GAAkC,WAAd/C,EAAKV,MAA8B,WAATyD,GAGtDmE,KAAQ,SAAUlH,GACjB,GAAIa,EAGJ,OAAuC,UAAhCb,EAAK8G,SAASC,eACN,SAAd/G,EAAKV,OACmC,OAArCuB,EAAOb,EAAKwN,aAAa,UAAoB3M,EAAKkG,gBAAkB/G,EAAKV,OAI9E2C,MAAS8N,GAAuB,WAC/B,OAAS,KAGV5N,KAAQ4N,GAAuB,SAAUE,EAAc9P,GACtD,OAASA,EAAS,KAGnB+B,GAAM6N,GAAuB,SAAUE,EAAc9P,EAAQ6P,GAC5D,OAAoB,EAAXA,EAAeA,EAAW7P,EAAS6P,KAG7C4F,KAAQ7F,GAAuB,SAAUE,EAAc9P,GACtD,GAAIiC,GAAI,CACR,MAAYjC,EAAJiC,EAAYA,GAAK,EACxB6N,EAAa7S,KAAMgF,EAEpB,OAAO6N,KAGR4F,IAAO9F,GAAuB,SAAUE,EAAc9P,GACrD,GAAIiC,GAAI,CACR,MAAYjC,EAAJiC,EAAYA,GAAK,EACxB6N,EAAa7S,KAAMgF,EAEpB,OAAO6N,KAGR6F,GAAM/F,GAAuB,SAAUE,EAAc9P,EAAQ6P,GAC5D,GAAI5N,GAAe,EAAX4N,EAAeA,EAAW7P,EAAS6P,CAC3C,QAAU5N,GAAK,GACd6N,EAAa7S,KAAMgF,EAEpB,OAAO6N,KAGR8F,GAAMhG,GAAuB,SAAUE,EAAc9P,EAAQ6P,GAC5D,GAAI5N,GAAe,EAAX4N,EAAeA,EAAW7P,EAAS6P,CAC3C,MAAc7P,IAAJiC,GACT6N,EAAa7S,KAAMgF,EAEpB,OAAO6N,MAMV,KAAM7N,KAAO4T,OAAO,EAAMC,UAAU,EAAMC,MAAM,EAAMC,UAAU,EAAMC,OAAO,GAC5EjN,EAAK8B,QAAS7I,GAAMyN,GAAmBzN,EAExC,KAAMA,KAAOiU,QAAQ,EAAMC,OAAO,GACjCnN,EAAK8B,QAAS7I,GAAM0N,GAAoB1N,EAGzC,SAASmL,IAAUxP,EAAUwY,GAC5B,GAAIlC,GAAStU,EAAOyW,EAAQlX,EAC3BmX,EAAOxJ,EAAQyJ,EACfC,EAASxM,EAAYpM,EAAW,IAEjC,IAAK4Y,EACJ,MAAOJ,GAAY,EAAII,EAAOrZ,MAAO,EAGtCmZ,GAAQ1Y,EACRkP,KACAyJ,EAAavN,EAAK8J,SAElB,OAAQwD,EAAQ,GAGTpC,IAAYtU,EAAQoL,EAAO/K,KAAMqW,OACjC1W,IAEJ0W,EAAQA,EAAMnZ,MAAOyC,EAAM,GAAGI,SAAYsW,GAE3CxJ,EAAO7P,KAAMoZ,OAGdnC,GAAU,GAGJtU,EAAQqL,EAAahL,KAAMqW,MAChCpC,EAAUtU,EAAMqO,QAChBoI,EAAOpZ,MACN4J,MAAOqN,EAEP/U,KAAMS,EAAM,GAAGyD,QAASlF,EAAO,OAEhCmY,EAAQA,EAAMnZ,MAAO+W,EAAQlU,QAI9B,KAAMb,IAAQ6J,GAAK2H,SACZ/Q,EAAQ0L,EAAWnM,GAAOc,KAAMqW,KAAcC,EAAYpX,MAC9DS,EAAQ2W,EAAYpX,GAAQS,MAC7BsU,EAAUtU,EAAMqO,QAChBoI,EAAOpZ,MACN4J,MAAOqN,EACP/U,KAAMA,EACNuK,QAAS9J,IAEV0W,EAAQA,EAAMnZ,MAAO+W,EAAQlU,QAI/B,KAAMkU,EACL,MAOF,MAAOkC,GACNE,EAAMtW,OACNsW,EACC3J,GAAO7H,MAAOlH,GAEdoM,EAAYpM,EAAUkP,GAAS3P,MAAO,GAGzC,QAASoQ,IAAY8I,GACpB,GAAIpU,GAAI,EACPC,EAAMmU,EAAOrW,OACbpC,EAAW,EACZ,MAAYsE,EAAJD,EAASA,IAChBrE,GAAYyY,EAAOpU,GAAG4E,KAEvB,OAAOjJ,GAGR,QAAS6Y,IAAerC,EAASsC,EAAYC,GAC5C,GAAIjE,GAAMgE,EAAWhE,IACpBkE,EAAmBD,GAAgB,eAARjE,EAC3BmE,EAAWlV,GAEZ,OAAO+U,GAAW5U,MAEjB,SAAUjC,EAAMhC,EAASiI,GACxB,MAASjG,EAAOA,EAAM6S,GACrB,GAAuB,IAAlB7S,EAAKQ,UAAkBuW,EAC3B,MAAOxC,GAASvU,EAAMhC,EAASiI,IAMlC,SAAUjG,EAAMhC,EAASiI,GACxB,GAAIb,GAAM8I,EAAO2F,EAChBoD,EAASjN,EAAU,IAAMgN,CAG1B,IAAK/Q,GACJ,MAASjG,EAAOA,EAAM6S,GACrB,IAAuB,IAAlB7S,EAAKQ,UAAkBuW,IACtBxC,EAASvU,EAAMhC,EAASiI,GAC5B,OAAO,MAKV,OAASjG,EAAOA,EAAM6S,GACrB,GAAuB,IAAlB7S,EAAKQ,UAAkBuW,EAE3B,GADAlD,EAAa7T,EAAMqD,KAAcrD,EAAMqD,QACjC6K,EAAQ2F,EAAYhB,KAAU3E,EAAM,KAAO+I,GAChD,IAAM7R,EAAO8I,EAAM,OAAQ,GAAQ9I,IAAS8D,EAC3C,MAAO9D,MAAS,MAKjB,IAFA8I,EAAQ2F,EAAYhB,IAAUoE,GAC9B/I,EAAM,GAAKqG,EAASvU,EAAMhC,EAASiI,IAASiD,EACvCgF,EAAM,MAAO,EACjB,OAAO,GASf,QAASgJ,IAAgBC,GACxB,MAAOA,GAAShX,OAAS,EACxB,SAAUH,EAAMhC,EAASiI,GACxB,GAAI7D,GAAI+U,EAAShX,MACjB,OAAQiC,IACP,IAAM+U,EAAS/U,GAAIpC,EAAMhC,EAASiI,GACjC,OAAO,CAGT,QAAO,GAERkR,EAAS,GAGX,QAASC,IAAU5C,EAAWjS,EAAKuO,EAAQ9S,EAASiI,GACnD,GAAIjG,GACHqX,KACAjV,EAAI,EACJC,EAAMmS,EAAUrU,OAChBmX,EAAgB,MAAP/U,CAEV,MAAYF,EAAJD,EAASA,KACVpC,EAAOwU,EAAUpS,OAChB0O,GAAUA,EAAQ9Q,EAAMhC,EAASiI,MACtCoR,EAAaja,KAAM4C,GACdsX,GACJ/U,EAAInF,KAAMgF,GAMd,OAAOiV,GAGR,QAASE,IAAYtE,EAAWlV,EAAUwW,EAASiD,EAAYC,EAAYC,GAO1E,MANKF,KAAeA,EAAYnU,KAC/BmU,EAAaD,GAAYC,IAErBC,IAAeA,EAAYpU,KAC/BoU,EAAaF,GAAYE,EAAYC,IAE/BrJ,GAAa,SAAUtB,EAAM3F,EAASpJ,EAASiI,GACrD,GAAI0R,GAAMvV,EAAGpC,EACZ4X,KACAC,KACAC,EAAc1Q,EAAQjH,OAGtBoB,EAAQwL,GAAQgL,GAAkBha,GAAY,IAAKC,EAAQwC,UAAaxC,GAAYA,MAGpFga,GAAY/E,IAAelG,GAAShP,EAEnCwD,EADA6V,GAAU7V,EAAOqW,EAAQ3E,EAAWjV,EAASiI,GAG9CgS,EAAa1D,EAEZkD,IAAgB1K,EAAOkG,EAAY6E,GAAeN,MAMjDpQ,EACD4Q,CAQF,IALKzD,GACJA,EAASyD,EAAWC,EAAYja,EAASiI,GAIrCuR,EAAa,CACjBG,EAAOP,GAAUa,EAAYJ,GAC7BL,EAAYG,KAAU3Z,EAASiI,GAG/B7D,EAAIuV,EAAKxX,MACT,OAAQiC,KACDpC,EAAO2X,EAAKvV,MACjB6V,EAAYJ,EAAQzV,MAAS4V,EAAWH,EAAQzV,IAAOpC,IAK1D,GAAK+M,GACJ,GAAK0K,GAAcxE,EAAY,CAC9B,GAAKwE,EAAa,CAEjBE,KACAvV,EAAI6V,EAAW9X,MACf,OAAQiC,KACDpC,EAAOiY,EAAW7V,KAEvBuV,EAAKva,KAAO4a,EAAU5V,GAAKpC,EAG7ByX,GAAY,KAAOQ,KAAkBN,EAAM1R,GAI5C7D,EAAI6V,EAAW9X,MACf,OAAQiC,KACDpC,EAAOiY,EAAW7V,MACtBuV,EAAOF,EAAaja,EAAQ2D,KAAM4L,EAAM/M,GAAS4X,EAAOxV,IAAM,KAE/D2K,EAAK4K,KAAUvQ,EAAQuQ,GAAQ3X,SAOlCiY,GAAab,GACZa,IAAe7Q,EACd6Q,EAAWvV,OAAQoV,EAAaG,EAAW9X,QAC3C8X,GAEGR,EACJA,EAAY,KAAMrQ,EAAS6Q,EAAYhS,GAEvC7I,EAAK2E,MAAOqF,EAAS6Q,KAMzB,QAASC,IAAmB1B,GAC3B,GAAI2B,GAAc5D,EAASjS,EAC1BD,EAAMmU,EAAOrW,OACbiY,EAAkBjP,EAAKwJ,SAAU6D,EAAO,GAAGlX,MAC3C+Y,EAAmBD,GAAmBjP,EAAKwJ,SAAS,KACpDvQ,EAAIgW,EAAkB,EAAI,EAG1BE,EAAe1B,GAAe,SAAU5W,GACvC,MAAOA,KAASmY,GACdE,GAAkB,GACrBE,EAAkB3B,GAAe,SAAU5W,GAC1C,MAAOxC,GAAQ2D,KAAMgX,EAAcnY,GAAS,IAC1CqY,GAAkB,GACrBlB,GAAa,SAAUnX,EAAMhC,EAASiI,GACrC,OAAUmS,IAAqBnS,GAAOjI,IAAYuL,MAChD4O,EAAena,GAASwC,SACxB8X,EAActY,EAAMhC,EAASiI,GAC7BsS,EAAiBvY,EAAMhC,EAASiI,KAGpC,MAAY5D,EAAJD,EAASA,IAChB,GAAMmS,EAAUpL,EAAKwJ,SAAU6D,EAAOpU,GAAG9C,MACxC6X,GAAaP,GAAcM,GAAgBC,GAAY5C,QACjD,CAIN,GAHAA,EAAUpL,EAAK2H,OAAQ0F,EAAOpU,GAAG9C,MAAOyC,MAAO,KAAMyU,EAAOpU,GAAGyH,SAG1D0K,EAASlR,GAAY,CAGzB,IADAf,IAAMF,EACMC,EAAJC,EAASA,IAChB,GAAK6G,EAAKwJ,SAAU6D,EAAOlU,GAAGhD,MAC7B,KAGF,OAAOiY,IACNnV,EAAI,GAAK8U,GAAgBC,GACzB/U,EAAI,GAAKsL,GAER8I,EAAOlZ,MAAO,EAAG8E,EAAI,GAAIlF,QAAS8J,MAAgC,MAAzBwP,EAAQpU,EAAI,GAAI9C,KAAe,IAAM,MAC7EkE,QAASlF,EAAO,MAClBiW,EACIjS,EAAJF,GAAS8V,GAAmB1B,EAAOlZ,MAAO8E,EAAGE,IACzCD,EAAJC,GAAW4V,GAAoB1B,EAASA,EAAOlZ,MAAOgF,IAClDD,EAAJC,GAAWoL,GAAY8I,IAGzBW,EAAS/Z,KAAMmX,GAIjB,MAAO2C,IAAgBC,GAGxB,QAASqB,IAA0BC,EAAiBC,GAEnD,GAAIC,GAAoB,EACvBC,EAAQF,EAAYvY,OAAS,EAC7B0Y,EAAYJ,EAAgBtY,OAAS,EACrC2Y,EAAe,SAAU/L,EAAM/O,EAASiI,EAAKmB,EAAS2R,GACrD,GAAI/Y,GAAMsC,EAAGiS,EACZyE,KACAC,EAAe,EACf7W,EAAI,IACJoS,EAAYzH,MACZmM,EAA6B,MAAjBH,EACZI,EAAgB5P,EAEhBhI,EAAQwL,GAAQ8L,GAAa1P,EAAK9I,KAAU,IAAG,IAAK0Y,GAAiB/a,EAAQ+C,YAAc/C,GAE3Fob,EAAiBpP,GAA4B,MAAjBmP,EAAwB,EAAI7V,KAAKC,UAAY,EAS1E,KAPK2V,IACJ3P,EAAmBvL,IAAYzB,GAAYyB,EAC3CkL,EAAayP,GAKe,OAApB3Y,EAAOuB,EAAMa,IAAaA,IAAM,CACxC,GAAKyW,GAAa7Y,EAAO,CACxBsC,EAAI,CACJ,OAASiS,EAAUkE,EAAgBnW,KAClC,GAAKiS,EAASvU,EAAMhC,EAASiI,GAAQ,CACpCmB,EAAQhK,KAAM4C,EACd,OAGGkZ,IACJlP,EAAUoP,EACVlQ,IAAeyP,GAKZC,KAEE5Y,GAAQuU,GAAWvU,IACxBiZ,IAIIlM,GACJyH,EAAUpX,KAAM4C,IAOnB,GADAiZ,GAAgB7W,EACXwW,GAASxW,IAAM6W,EAAe,CAClC3W,EAAI,CACJ,OAASiS,EAAUmE,EAAYpW,KAC9BiS,EAASC,EAAWwE,EAAYhb,EAASiI,EAG1C,IAAK8G,EAAO,CAEX,GAAKkM,EAAe,EACnB,MAAQ7W,IACAoS,EAAUpS,IAAM4W,EAAW5W,KACjC4W,EAAW5W,GAAKsI,EAAIvJ,KAAMiG,GAM7B4R,GAAa5B,GAAU4B,GAIxB5b,EAAK2E,MAAOqF,EAAS4R,GAGhBE,IAAcnM,GAAQiM,EAAW7Y,OAAS,GAC5C8Y,EAAeP,EAAYvY,OAAW,GAExC2M,GAAOqF,WAAY/K,GAUrB,MALK8R,KACJlP,EAAUoP,EACV7P,EAAmB4P,GAGb3E,EAGT,OAAOoE,GACNvK,GAAcyK,GACdA,EAGFxP,EAAUwD,GAAOxD,QAAU,SAAUvL,EAAUsb,GAC9C,GAAIjX,GACHsW,KACAD,KACA9B,EAASvM,EAAerM,EAAW,IAEpC,KAAM4Y,EAAS,CAER0C,IACLA,EAAQ9L,GAAUxP,IAEnBqE,EAAIiX,EAAMlZ,MACV,OAAQiC,IACPuU,EAASuB,GAAmBmB,EAAMjX,IAC7BuU,EAAQtT,GACZqV,EAAYtb,KAAMuZ,GAElB8B,EAAgBrb,KAAMuZ,EAKxBA,GAASvM,EAAerM,EAAUya,GAA0BC,EAAiBC,IAE9E,MAAO/B,GAGR,SAASoB,IAAkBha,EAAUub,EAAUlS,GAC9C,GAAIhF,GAAI,EACPC,EAAMiX,EAASnZ,MAChB,MAAYkC,EAAJD,EAASA,IAChB0K,GAAQ/O,EAAUub,EAASlX,GAAIgF,EAEhC,OAAOA,GAGR,QAAS2G,IAAQhQ,EAAUC,EAASoJ,EAAS2F,GAC5C,GAAI3K,GAAGoU,EAAQ+C,EAAOja,EAAMe,EAC3BN,EAAQwN,GAAUxP,EAEnB,KAAMgP,GAEiB,IAAjBhN,EAAMI,OAAe,CAIzB,GADAqW,EAASzW,EAAM,GAAKA,EAAM,GAAGzC,MAAO,GAC/BkZ,EAAOrW,OAAS,GAAkC,QAA5BoZ,EAAQ/C,EAAO,IAAIlX,MAC5CwF,EAAQ8L,SAAgC,IAArB5S,EAAQwC,UAAkBkJ,GAC7CP,EAAKwJ,SAAU6D,EAAO,GAAGlX,MAAS,CAGnC,GADAtB,GAAYmL,EAAK9I,KAAS,GAAGkZ,EAAM1P,QAAQ,GAAGrG,QAAQ8I,GAAWC,IAAYvO,QAAkB,IACzFA,EACL,MAAOoJ,EAERrJ,GAAWA,EAAST,MAAOkZ,EAAOpI,QAAQpH,MAAM7G,QAIjDiC,EAAIqJ,EAAwB,aAAE/K,KAAM3C,GAAa,EAAIyY,EAAOrW,MAC5D,OAAQiC,IAAM,CAIb,GAHAmX,EAAQ/C,EAAOpU,GAGV+G,EAAKwJ,SAAWrT,EAAOia,EAAMja,MACjC,KAED,KAAMe,EAAO8I,EAAK9I,KAAMf,MAEjByN,EAAO1M,EACZkZ,EAAM1P,QAAQ,GAAGrG,QAAS8I,GAAWC,IACrClB,EAAS3K,KAAM8V,EAAO,GAAGlX,OAAUtB,EAAQ+C,YAAc/C,IACrD,CAKJ,GAFAwY,EAAO9T,OAAQN,EAAG,GAClBrE,EAAWgP,EAAK5M,QAAUuN,GAAY8I,IAChCzY,EAEL,MADAX,GAAK2E,MAAOqF,EAAS2F,GACd3F,CAGR,SAgBL,MAPAkC,GAASvL,EAAUgC,GAClBgN,EACA/O,GACC0L,EACDtC,EACAiE,EAAS3K,KAAM3C,IAETqJ,EAIR+B,EAAK8B,QAAa,IAAI9B,EAAK8B,QAAY,EAGvC,SAASkJ,OACTA,GAAWvU,UAAYuJ,EAAKqQ,QAAUrQ,EAAK8B,QAC3C9B,EAAKgL,WAAa,GAAIA,IAKtBrP,EAAQwN,WAAajP,EAAQ4F,MAAM,IAAIxG,KAAM6H,GAAYqD,KAAK,MAAQtK,EAGtEoG,KAIC,EAAG,GAAGhH,KAAM6H,GACbxF,EAAQuN,iBAAmBhI,EAE3B1N,EAAO0D,KAAOyM,GACdnQ,EAAOsV,KAAOnF,GAAO2F,UACrB9V,EAAOsV,KAAK,KAAOtV,EAAOsV,KAAKhH,QAC/BtO,EAAO8c,OAAS3M,GAAOqF,WACvBxV,EAAOuK,KAAO4F,GAAO1D,QACrBzM,EAAO+c,SAAW5M,GAAOzD,MACzB1M,EAAOmN,SAAWgD,GAAOhD,UAGrB7N,EAEJ,IAAI0d,KAGJ,SAASC,GAAe5W,GACvB,GAAI6W,GAASF,EAAc3W,KAI3B,OAHArG,GAAO+E,KAAMsB,EAAQjD,MAAO1B,OAAwB,SAAUmO,EAAGsN,GAChED,EAAQC,IAAS,IAEXD,EAyBRld,EAAOod,UAAY,SAAU/W,GAI5BA,EAA6B,gBAAZA,GACd2W,EAAc3W,IAAa4W,EAAe5W,GAC5CrG,EAAOgG,UAAYK,EAEpB,IACCgX,GAEAC,EAEAC,EAEAC,EAEAC,EAEAC,EAEAC,KAEAC,GAASvX,EAAQwX,SAEjBC,EAAO,SAAUrV,GAOhB,IANA6U,EAASjX,EAAQiX,QAAU7U,EAC3B8U,GAAQ,EACRE,EAAcC,GAAe,EAC7BA,EAAc,EACdF,EAAeG,EAAKna,OACpB6Z,GAAS,EACDM,GAAsBH,EAAdC,EAA4BA,IAC3C,GAAKE,EAAMF,GAAcrY,MAAOqD,EAAM,GAAKA,EAAM,OAAU,GAASpC,EAAQ0X,YAAc,CACzFT,GAAS,CACT,OAGFD,GAAS,EACJM,IACCC,EACCA,EAAMpa,QACVsa,EAAMF,EAAMnM,SAEF6L,EACXK,KAEAK,EAAKC,YAKRD,GAECE,IAAK,WACJ,GAAKP,EAAO,CAEX,GAAIvG,GAAQuG,EAAKna,QACjB,QAAU0a,GAAKjZ,GACdjF,EAAO+E,KAAME,EAAM,SAAU4K,EAAG3E,GAC/B,GAAIvI,GAAO3C,EAAO2C,KAAMuI,EACV,cAATvI,EACE0D,EAAQyW,QAAWkB,EAAKlG,IAAK5M,IAClCyS,EAAKld,KAAMyK,GAEDA,GAAOA,EAAI1H,QAAmB,WAATb,GAEhCub,EAAKhT,OAGJ7F,WAGCgY,EACJG,EAAeG,EAAKna,OAGT8Z,IACXI,EAActG,EACd0G,EAAMR,IAGR,MAAOha,OAGRyF,OAAQ,WAkBP,MAjBK4U,IACJ3d,EAAO+E,KAAMM,UAAW,SAAUwK,EAAG3E,GACpC,GAAIiT,EACJ,QAASA,EAAQne,EAAO2K,QAASO,EAAKyS,EAAMQ,IAAY,GACvDR,EAAK5X,OAAQoY,EAAO,GAEfd,IACUG,GAATW,GACJX,IAEaC,GAATU,GACJV,OAMEna,MAIRwU,IAAK,SAAUxW,GACd,MAAOA,GAAKtB,EAAO2K,QAASrJ,EAAIqc,GAAS,MAASA,IAAQA,EAAKna,SAGhEsV,MAAO,WAGN,MAFA6E,MACAH,EAAe,EACRla,MAGR2a,QAAS,WAER,MADAN,GAAOC,EAAQN,EAAS/d,EACjB+D,MAGRoV,SAAU,WACT,OAAQiF,GAGTS,KAAM,WAKL,MAJAR,GAAQre,EACF+d,GACLU,EAAKC,UAEC3a,MAGR+a,OAAQ,WACP,OAAQT,GAGTU,SAAU,SAAUjd,EAAS4D,GAU5B,MATAA,GAAOA,MACPA,GAAS5D,EAAS4D,EAAKtE,MAAQsE,EAAKtE,QAAUsE,IACzC0Y,GAAWJ,IAASK,IACnBP,EACJO,EAAMnd,KAAMwE,GAEZ6Y,EAAM7Y,IAGD3B,MAGRwa,KAAM,WAEL,MADAE,GAAKM,SAAUhb,KAAM+B,WACd/B,MAGRia,MAAO,WACN,QAASA,GAIZ,OAAOS,IAERhe,EAAOgG,QAENgG,SAAU,SAAUuS,GACnB,GAAIC,KAEA,UAAW,OAAQxe,EAAOod,UAAU,eAAgB,aACpD,SAAU,OAAQpd,EAAOod,UAAU,eAAgB,aACnD,SAAU,WAAYpd,EAAOod,UAAU,YAE1CqB,EAAQ,UACRvZ,GACCuZ,MAAO,WACN,MAAOA,IAERC,OAAQ,WAEP,MADAC,GAASxZ,KAAME,WAAYuZ,KAAMvZ,WAC1B/B,MAERub,KAAM,WACL,GAAIC,GAAMzZ,SACV,OAAOrF,GAAOgM,SAAS,SAAU+S,GAChC/e,EAAO+E,KAAMyZ,EAAQ,SAAU/Y,EAAGuZ,GACjC,GAAIC,GAASD,EAAO,GACnB1d,EAAKtB,EAAOiE,WAAY6a,EAAKrZ,KAASqZ,EAAKrZ,EAE5CkZ,GAAUK,EAAM,IAAK,WACpB,GAAIE,GAAW5d,GAAMA,EAAG8D,MAAO9B,KAAM+B,UAChC6Z,IAAYlf,EAAOiE,WAAYib,EAASha,SAC5Cga,EAASha,UACPC,KAAM4Z,EAASI,SACfP,KAAMG,EAASK,QACfC,SAAUN,EAASO,QAErBP,EAAUE,EAAS,QAAU3b,OAAS4B,EAAU6Z,EAAS7Z,UAAY5B,KAAMhC,GAAO4d,GAAa7Z,eAIlGyZ,EAAM,OACJ5Z,WAIJA,QAAS,SAAUuC,GAClB,MAAc,OAAPA,EAAczH,EAAOgG,OAAQyB,EAAKvC,GAAYA,IAGvDyZ,IAwCD,OArCAzZ,GAAQqa,KAAOra,EAAQ2Z,KAGvB7e,EAAO+E,KAAMyZ,EAAQ,SAAU/Y,EAAGuZ,GACjC,GAAIrB,GAAOqB,EAAO,GACjBQ,EAAcR,EAAO,EAGtB9Z,GAAS8Z,EAAM,IAAOrB,EAAKO,IAGtBsB,GACJ7B,EAAKO,IAAI,WAERO,EAAQe,GAGNhB,EAAY,EAAJ/Y,GAAS,GAAIwY,QAASO,EAAQ,GAAK,GAAIJ,MAInDO,EAAUK,EAAM,IAAO,WAEtB,MADAL,GAAUK,EAAM,GAAK,QAAU1b,OAASqb,EAAWzZ,EAAU5B,KAAM+B,WAC5D/B,MAERqb,EAAUK,EAAM,GAAK,QAAWrB,EAAKW,WAItCpZ,EAAQA,QAASyZ,GAGZJ,GACJA,EAAK/Z,KAAMma,EAAUA,GAIfA,GAIRc,KAAM,SAAUC,GACf,GAAIja,GAAI,EACPka,EAAgBjf,EAAW8D,KAAMa,WACjC7B,EAASmc,EAAcnc,OAGvBoc,EAAuB,IAAXpc,GAAkBkc,GAAe1f,EAAOiE,WAAYyb,EAAYxa,SAAc1B,EAAS,EAGnGmb,EAAyB,IAAdiB,EAAkBF,EAAc1f,EAAOgM,WAGlD6T,EAAa,SAAUpa,EAAGkX,EAAUmD,GACnC,MAAO,UAAUzV,GAChBsS,EAAUlX,GAAMnC,KAChBwc,EAAQra,GAAMJ,UAAU7B,OAAS,EAAI9C,EAAW8D,KAAMa,WAAcgF,EAChEyV,IAAWC,EACdpB,EAASqB,WAAYrD,EAAUmD,KACfF,GAChBjB,EAASrX,YAAaqV,EAAUmD,KAKnCC,EAAgBE,EAAkBC,CAGnC,IAAK1c,EAAS,EAIb,IAHAuc,EAAqBrY,MAAOlE,GAC5Byc,EAAuBvY,MAAOlE,GAC9B0c,EAAsBxY,MAAOlE,GACjBA,EAAJiC,EAAYA,IACdka,EAAela,IAAOzF,EAAOiE,WAAY0b,EAAela,GAAIP,SAChEya,EAAela,GAAIP,UACjBC,KAAM0a,EAAYpa,EAAGya,EAAiBP,IACtCf,KAAMD,EAASS,QACfC,SAAUQ,EAAYpa,EAAGwa,EAAkBF,MAE3CH,CAUL,OAJMA,IACLjB,EAASrX,YAAa4Y,EAAiBP,GAGjChB,EAASzZ,aAGlBlF,EAAOmI,QAAU,SAAWA,GAE3B,GAAI9F,GAAKuQ,EAAGkB,EAAO1C,EAAQ+O,EAAUC,EAAKC,EAAWC,EAAa7a,EACjEmM,EAAMhS,EAASiJ,cAAc,MAS9B,IANA+I,EAAId,aAAc,YAAa,KAC/Bc,EAAI+B,UAAY,qEAGhBtR,EAAMuP,EAAI/H,qBAAqB,SAC/B+I,EAAIhB,EAAI/H,qBAAqB,KAAM,IAC7B+I,IAAMA,EAAE7G,QAAU1J,EAAImB,OAC3B,MAAO2E,EAIRiJ,GAASxR,EAASiJ,cAAc,UAChCuX,EAAMhP,EAAO2C,YAAanU,EAASiJ,cAAc,WACjDiL,EAAQlC,EAAI/H,qBAAqB,SAAU,GAE3C+I,EAAE7G,MAAMwU,QAAU,gCAGlBpY,EAAQqY,gBAAoC,MAAlB5O,EAAIiC,UAG9B1L,EAAQsY,kBAAgD,IAA5B7O,EAAIgC,WAAW/P,SAI3CsE,EAAQuY,OAAS9O,EAAI/H,qBAAqB,SAASrG,OAInD2E,EAAQwY,gBAAkB/O,EAAI/H,qBAAqB,QAAQrG,OAI3D2E,EAAQ4D,MAAQ,MAAMhI,KAAM6O,EAAE/B,aAAa,UAI3C1I,EAAQyY,eAA4C,OAA3BhO,EAAE/B,aAAa,QAKxC1I,EAAQ0Y,QAAU,OAAO9c,KAAM6O,EAAE7G,MAAM8U,SAIvC1Y,EAAQ2Y,WAAalO,EAAE7G,MAAM+U,SAG7B3Y,EAAQ4Y,UAAYjN,EAAMzJ,MAI1BlC,EAAQ6Y,YAAcZ,EAAIxH,SAG1BzQ,EAAQ8Y,UAAYrhB,EAASiJ,cAAc,QAAQoY,QAInD9Y,EAAQ+Y,WAA2E,kBAA9DthB,EAASiJ,cAAc,OAAOsY,WAAW,GAAOC,UAGrEjZ,EAAQkZ,wBAAyB,EACjClZ,EAAQmZ,kBAAmB,EAC3BnZ,EAAQoZ,eAAgB,EACxBpZ,EAAQqZ,eAAgB,EACxBrZ,EAAQsZ,cAAe,EACvBtZ,EAAQuZ,qBAAsB,EAC9BvZ,EAAQwZ,mBAAoB,EAG5B7N,EAAM6E,SAAU,EAChBxQ,EAAQyZ,eAAiB9N,EAAMqN,WAAW,GAAOxI,QAIjDvH,EAAOsH,UAAW,EAClBvQ,EAAQ0Z,aAAezB,EAAI1H,QAG3B,WACQ9G,GAAI7N,KACV,MAAOmE,GACRC,EAAQqZ,eAAgB,EAIzB1N,EAAQlU,EAASiJ,cAAc,SAC/BiL,EAAMhD,aAAc,QAAS,IAC7B3I,EAAQ2L,MAA0C,KAAlCA,EAAMjD,aAAc,SAGpCiD,EAAMzJ,MAAQ,IACdyJ,EAAMhD,aAAc,OAAQ,SAC5B3I,EAAQ2Z,WAA6B,MAAhBhO,EAAMzJ,MAG3ByJ,EAAMhD,aAAc,UAAW,KAC/BgD,EAAMhD,aAAc,OAAQ,KAE5BqP,EAAWvgB,EAASmiB,yBACpB5B,EAASpM,YAAaD,GAItB3L,EAAQ6Z,cAAgBlO,EAAM6E,QAG9BxQ,EAAQ8Z,WAAa9B,EAASgB,WAAW,GAAOA,WAAW,GAAO7J,UAAUqB,QAKvE/G,EAAI3F,cACR2F,EAAI3F,YAAa,UAAW,WAC3B9D,EAAQsZ,cAAe,IAGxB7P,EAAIuP,WAAW,GAAOe,QAKvB,KAAMzc,KAAOiU,QAAQ,EAAMyI,QAAQ,EAAMC,SAAS,GACjDxQ,EAAId,aAAcuP,EAAY,KAAO5a,EAAG,KAExC0C,EAAS1C,EAAI,WAAc4a,IAAa/gB,IAAUsS,EAAIvD,WAAYgS,GAAY3Z,WAAY,CAG3FkL,GAAI7F,MAAMsW,eAAiB,cAC3BzQ,EAAIuP,WAAW,GAAOpV,MAAMsW,eAAiB,GAC7Cla,EAAQma,gBAA+C,gBAA7B1Q,EAAI7F,MAAMsW,cAIpC,KAAM5c,IAAKzF,GAAQmI,GAClB,KAoGD,OAlGAA,GAAQC,QAAgB,MAAN3C,EAGlBzF,EAAO,WACN,GAAIuiB,GAAWC,EAAWC,EACzBC,EAAW,+HACXtb,EAAOxH,EAASiK,qBAAqB,QAAQ,EAExCzC,KAKNmb,EAAY3iB,EAASiJ,cAAc,OACnC0Z,EAAUxW,MAAMwU,QAAU,gFAE1BnZ,EAAK2M,YAAawO,GAAYxO,YAAanC,GAS3CA,EAAI+B,UAAY,8CAChB8O,EAAM7Q,EAAI/H,qBAAqB,MAC/B4Y,EAAK,GAAI1W,MAAMwU,QAAU,2CACzBD,EAA0C,IAA1BmC,EAAK,GAAIE,aAEzBF,EAAK,GAAI1W,MAAM6W,QAAU,GACzBH,EAAK,GAAI1W,MAAM6W,QAAU,OAIzBza,EAAQ0a,sBAAwBvC,GAA2C,IAA1BmC,EAAK,GAAIE,aAG1D/Q,EAAI+B,UAAY,GAChB/B,EAAI7F,MAAMwU,QAAU,wKAIpBvgB,EAAO6L,KAAMzE,EAAyB,MAAnBA,EAAK2E,MAAM+W,MAAiBA,KAAM,MAAU,WAC9D3a,EAAQ4a,UAAgC,IAApBnR,EAAIoR,cAIpB1jB,EAAO2jB,mBACX9a,EAAQoZ,cAAuE,QAArDjiB,EAAO2jB,iBAAkBrR,EAAK,WAAe1F,IACvE/D,EAAQwZ,kBAA2F,SAArEriB,EAAO2jB,iBAAkBrR,EAAK,QAAYsR,MAAO,QAAUA,MAMzFV,EAAY5Q,EAAImC,YAAanU,EAASiJ,cAAc,QACpD2Z,EAAUzW,MAAMwU,QAAU3O,EAAI7F,MAAMwU,QAAUmC,EAC9CF,EAAUzW,MAAMoX,YAAcX,EAAUzW,MAAMmX,MAAQ,IACtDtR,EAAI7F,MAAMmX,MAAQ,MAElB/a,EAAQuZ,qBACN5Z,YAAcxI,EAAO2jB,iBAAkBT,EAAW,WAAeW,oBAGxDvR,GAAI7F,MAAM+W,OAASpjB,IAK9BkS,EAAI+B,UAAY,GAChB/B,EAAI7F,MAAMwU,QAAUmC,EAAW,8CAC/Bva,EAAQkZ,uBAA+C,IAApBzP,EAAIoR,YAIvCpR,EAAI7F,MAAM6W,QAAU,QACpBhR,EAAI+B,UAAY,cAChB/B,EAAIgC,WAAW7H,MAAMmX,MAAQ,MAC7B/a,EAAQmZ,iBAAyC,IAApB1P,EAAIoR,YAE5B7a,EAAQkZ,yBAIZja,EAAK2E,MAAM+W,KAAO,IAIpB1b,EAAKyK,YAAa0Q,GAGlBA,EAAY3Q,EAAM6Q,EAAMD,EAAY;GAIrCngB,EAAM+O,EAAS+O,EAAWC,EAAMxN,EAAIkB,EAAQ,KAErC3L,MAGR,IAAIib,GAAS,+BACZC,EAAa,UAEd,SAASC,GAAcjgB,EAAM+C,EAAMqC,EAAM8a,GACxC,GAAMvjB,EAAOwjB,WAAYngB,GAAzB,CAIA,GAAIwB,GAAK4e,EACRC,EAAc1jB,EAAO0G,QAIrBid,EAAStgB,EAAKQ,SAId0N,EAAQoS,EAAS3jB,EAAOuR,MAAQlO,EAIhCgB,EAAKsf,EAAStgB,EAAMqgB,GAAgBrgB,EAAMqgB,IAAiBA,CAI5D,IAAOrf,GAAOkN,EAAMlN,KAASkf,GAAQhS,EAAMlN,GAAIoE,OAAUA,IAASlJ,GAA6B,gBAAT6G,GAgEtF,MA5DM/B,KAIJA,EADIsf,EACCtgB,EAAMqgB,GAAgBtjB,EAAgB2N,OAAS/N,EAAOmL,OAEtDuY,GAIDnS,EAAOlN,KAGZkN,EAAOlN,GAAOsf,MAAgBC,OAAQ5jB,EAAO8J,QAKzB,gBAAT1D,IAAqC,kBAATA,MAClCmd,EACJhS,EAAOlN,GAAOrE,EAAOgG,OAAQuL,EAAOlN,GAAM+B,GAE1CmL,EAAOlN,GAAKoE,KAAOzI,EAAOgG,OAAQuL,EAAOlN,GAAKoE,KAAMrC,IAItDqd,EAAYlS,EAAOlN,GAKbkf,IACCE,EAAUhb,OACfgb,EAAUhb,SAGXgb,EAAYA,EAAUhb,MAGlBA,IAASlJ,IACbkkB,EAAWzjB,EAAOiK,UAAW7D,IAAWqC,GAKpB,gBAATrC,IAGXvB,EAAM4e,EAAWrd,GAGL,MAAPvB,IAGJA,EAAM4e,EAAWzjB,EAAOiK,UAAW7D,MAGpCvB,EAAM4e,EAGA5e,GAGR,QAASgf,GAAoBxgB,EAAM+C,EAAMmd,GACxC,GAAMvjB,EAAOwjB,WAAYngB,GAAzB,CAIA,GAAIogB,GAAWhe,EACdke,EAAStgB,EAAKQ,SAGd0N,EAAQoS,EAAS3jB,EAAOuR,MAAQlO,EAChCgB,EAAKsf,EAAStgB,EAAMrD,EAAO0G,SAAY1G,EAAO0G,OAI/C,IAAM6K,EAAOlN,GAAb,CAIA,GAAK+B,IAEJqd,EAAYF,EAAMhS,EAAOlN,GAAOkN,EAAOlN,GAAKoE,MAE3B,CAGVzI,EAAOyG,QAASL,GAsBrBA,EAAOA,EAAK7F,OAAQP,EAAO4F,IAAKQ,EAAMpG,EAAOiK,YAnBxC7D,IAAQqd,GACZrd,GAASA,IAITA,EAAOpG,EAAOiK,UAAW7D,GAExBA,EADIA,IAAQqd,IACHrd,GAEFA,EAAKkG,MAAM,MAarB7G,EAAIW,EAAK5C,MACT,OAAQiC,UACAge,GAAWrd,EAAKX,GAKxB,IAAK8d,GAAOO,EAAkBL,IAAczjB,EAAOqI,cAAcob,GAChE,QAMGF,UACEhS,GAAOlN,GAAKoE,KAIbqb,EAAmBvS,EAAOlN,QAM5Bsf,EACJ3jB,EAAO+jB,WAAa1gB,IAAQ,GAIjBrD,EAAOmI,QAAQqZ,eAAiBjQ,GAASA,EAAMjS,aAEnDiS,GAAOlN,GAIdkN,EAAOlN,GAAO,QAIhBrE,EAAOgG,QACNuL,SAIAyS,QACCC,QAAU,EACVC,OAAS,EAEThH,OAAU,8CAGXiH,QAAS,SAAU9gB,GAElB,MADAA,GAAOA,EAAKQ,SAAW7D,EAAOuR,MAAOlO,EAAKrD,EAAO0G,UAAarD,EAAMrD,EAAO0G,WAClErD,IAASygB,EAAmBzgB,IAGtCoF,KAAM,SAAUpF,EAAM+C,EAAMqC,GAC3B,MAAO6a,GAAcjgB,EAAM+C,EAAMqC,IAGlC2b,WAAY,SAAU/gB,EAAM+C,GAC3B,MAAOyd,GAAoBxgB,EAAM+C,IAIlCie,MAAO,SAAUhhB,EAAM+C,EAAMqC,GAC5B,MAAO6a,GAAcjgB,EAAM+C,EAAMqC,GAAM,IAGxC6b,YAAa,SAAUjhB,EAAM+C,GAC5B,MAAOyd,GAAoBxgB,EAAM+C,GAAM,IAIxCod,WAAY,SAAUngB,GAErB,GAAKA,EAAKQ,UAA8B,IAAlBR,EAAKQ,UAAoC,IAAlBR,EAAKQ,SACjD,OAAO,CAGR,IAAImgB,GAAS3gB,EAAK8G,UAAYnK,EAAOgkB,OAAQ3gB,EAAK8G,SAASC,cAG3D,QAAQ4Z,GAAUA,KAAW,GAAQ3gB,EAAKwN,aAAa,aAAemT,KAIxEhkB,EAAOsB,GAAG0E,QACTyC,KAAM,SAAUR,EAAKoC,GACpB,GAAI0H,GAAO3L,EACVqC,EAAO,KACPhD,EAAI,EACJpC,EAAOC,KAAK,EAMb,IAAK2E,IAAQ1I,EAAY,CACxB,GAAK+D,KAAKE,SACTiF,EAAOzI,EAAOyI,KAAMpF,GAEG,IAAlBA,EAAKQ,WAAmB7D,EAAOqkB,MAAOhhB,EAAM,gBAAkB,CAElE,IADA0O,EAAQ1O,EAAKgL,WACD0D,EAAMvO,OAAViC,EAAkBA,IACzBW,EAAO2L,EAAMtM,GAAGW,KAEe,IAA1BA,EAAKvF,QAAQ,WACjBuF,EAAOpG,EAAOiK,UAAW7D,EAAKzF,MAAM,IAEpC4jB,EAAUlhB,EAAM+C,EAAMqC,EAAMrC,IAG9BpG,GAAOqkB,MAAOhhB,EAAM,eAAe,GAIrC,MAAOoF,GAIR,MAAoB,gBAARR,GACJ3E,KAAKyB,KAAK,WAChB/E,EAAOyI,KAAMnF,KAAM2E,KAId5C,UAAU7B,OAAS,EAGzBF,KAAKyB,KAAK,WACT/E,EAAOyI,KAAMnF,KAAM2E,EAAKoC,KAKzBhH,EAAOkhB,EAAUlhB,EAAM4E,EAAKjI,EAAOyI,KAAMpF,EAAM4E,IAAU,MAG3Dmc,WAAY,SAAUnc,GACrB,MAAO3E,MAAKyB,KAAK,WAChB/E,EAAOokB,WAAY9gB,KAAM2E,OAK5B,SAASsc,GAAUlhB,EAAM4E,EAAKQ,GAG7B,GAAKA,IAASlJ,GAA+B,IAAlB8D,EAAKQ,SAAiB,CAEhD,GAAIuC,GAAO,QAAU6B,EAAIpB,QAASwc,EAAY,OAAQjZ,aAItD,IAFA3B,EAAOpF,EAAKwN,aAAczK,GAEL,gBAATqC,GAAoB,CAC/B,IACCA,EAAgB,SAATA,GAAkB,EACf,UAATA,GAAmB,EACV,SAATA,EAAkB,MAEjBA,EAAO,KAAOA,GAAQA,EACvB2a,EAAOrf,KAAM0E,GAASzI,EAAOiJ,UAAWR,GACvCA,EACD,MAAOP,IAGTlI,EAAOyI,KAAMpF,EAAM4E,EAAKQ,OAGxBA,GAAOlJ,EAIT,MAAOkJ,GAIR,QAASqb,GAAmBrc,GAC3B,GAAIrB,EACJ,KAAMA,IAAQqB,GAGb,IAAc,SAATrB,IAAmBpG,EAAOqI,cAAeZ,EAAIrB,MAGpC,WAATA,EACJ,OAAO,CAIT,QAAO,EAERpG,EAAOgG,QACNwe,MAAO,SAAUnhB,EAAMV,EAAM8F,GAC5B,GAAI+b,EAEJ,OAAKnhB,IACJV,GAASA,GAAQ,MAAS,QAC1B6hB,EAAQxkB,EAAOqkB,MAAOhhB,EAAMV,GAGvB8F,KACE+b,GAASxkB,EAAOyG,QAAQgC,GAC7B+b,EAAQxkB,EAAOqkB,MAAOhhB,EAAMV,EAAM3C,EAAOsE,UAAUmE,IAEnD+b,EAAM/jB,KAAMgI,IAGP+b,OAZR,GAgBDC,QAAS,SAAUphB,EAAMV,GACxBA,EAAOA,GAAQ,IAEf,IAAI6hB,GAAQxkB,EAAOwkB,MAAOnhB,EAAMV,GAC/B+hB,EAAcF,EAAMhhB,OACpBlC,EAAKkjB,EAAM/S,QACXkT,EAAQ3kB,EAAO4kB,YAAavhB,EAAMV,GAClCkiB,EAAO,WACN7kB,EAAOykB,QAASphB,EAAMV,GAIZ,gBAAPrB,IACJA,EAAKkjB,EAAM/S,QACXiT,KAGIpjB,IAIU,OAATqB,GACJ6hB,EAAMnP,QAAS,oBAITsP,GAAMG,KACbxjB,EAAGkD,KAAMnB,EAAMwhB,EAAMF,KAGhBD,GAAeC,GACpBA,EAAM7L,MAAMgF,QAKd8G,YAAa,SAAUvhB,EAAMV,GAC5B,GAAIsF,GAAMtF,EAAO,YACjB,OAAO3C,GAAOqkB,MAAOhhB,EAAM4E,IAASjI,EAAOqkB,MAAOhhB,EAAM4E,GACvD6Q,MAAO9Y,EAAOod,UAAU,eAAec,IAAI,WAC1Cle,EAAOskB,YAAajhB,EAAMV,EAAO,SACjC3C,EAAOskB,YAAajhB,EAAM4E,UAM9BjI,EAAOsB,GAAG0E,QACTwe,MAAO,SAAU7hB,EAAM8F,GACtB,GAAIsc,GAAS,CAQb,OANqB,gBAATpiB,KACX8F,EAAO9F,EACPA,EAAO,KACPoiB,KAGuBA,EAAnB1f,UAAU7B,OACPxD,EAAOwkB,MAAOlhB,KAAK,GAAIX,GAGxB8F,IAASlJ,EACf+D,KACAA,KAAKyB,KAAK,WACT,GAAIyf,GAAQxkB,EAAOwkB,MAAOlhB,KAAMX,EAAM8F,EAGtCzI,GAAO4kB,YAAathB,KAAMX,GAEZ,OAATA,GAA8B,eAAb6hB,EAAM,IAC3BxkB,EAAOykB,QAASnhB,KAAMX,MAI1B8hB,QAAS,SAAU9hB,GAClB,MAAOW,MAAKyB,KAAK,WAChB/E,EAAOykB,QAASnhB,KAAMX,MAKxBqiB,MAAO,SAAUC,EAAMtiB,GAItB,MAHAsiB,GAAOjlB,EAAOklB,GAAKllB,EAAOklB,GAAGC,OAAQF,IAAUA,EAAOA,EACtDtiB,EAAOA,GAAQ,KAERW,KAAKkhB,MAAO7hB,EAAM,SAAUkiB,EAAMF,GACxC,GAAIS,GAAU/d,WAAYwd,EAAMI,EAChCN,GAAMG,KAAO,WACZO,aAAcD,OAIjBE,WAAY,SAAU3iB,GACrB,MAAOW,MAAKkhB,MAAO7hB,GAAQ,UAI5BuC,QAAS,SAAUvC,EAAM8E,GACxB,GAAI8B,GACHgc,EAAQ,EACRC,EAAQxlB,EAAOgM,WACfuJ,EAAWjS,KACXmC,EAAInC,KAAKE,OACT2b,EAAU,aACCoG,GACTC,EAAMle,YAAaiO,GAAYA,IAIb,iBAAT5S,KACX8E,EAAM9E,EACNA,EAAOpD,GAERoD,EAAOA,GAAQ,IAEf,OAAO8C,IACN8D,EAAMvJ,EAAOqkB,MAAO9O,EAAU9P,GAAK9C,EAAO,cACrC4G,GAAOA,EAAIuP,QACfyM,IACAhc,EAAIuP,MAAMoF,IAAKiB,GAIjB,OADAA,KACOqG,EAAMtgB,QAASuC,KAGxB,IAAIge,GAAUC,EACbC,EAAS,cACTC,EAAU,MACVC,EAAa,6CACbC,EAAa,gBACbC,EAAc,0BACdvF,EAAkBxgB,EAAOmI,QAAQqY,gBACjCwF,EAAchmB,EAAOmI,QAAQ2L,KAE9B9T,GAAOsB,GAAG0E,QACT9B,KAAM,SAAUkC,EAAMiE,GACrB,MAAOrK,GAAOqL,OAAQ/H,KAAMtD,EAAOkE,KAAMkC,EAAMiE,EAAOhF,UAAU7B,OAAS,IAG1EyiB,WAAY,SAAU7f,GACrB,MAAO9C,MAAKyB,KAAK,WAChB/E,EAAOimB,WAAY3iB,KAAM8C,MAI3B8f,KAAM,SAAU9f,EAAMiE,GACrB,MAAOrK,GAAOqL,OAAQ/H,KAAMtD,EAAOkmB,KAAM9f,EAAMiE,EAAOhF,UAAU7B,OAAS,IAG1E2iB,WAAY,SAAU/f,GAErB,MADAA,GAAOpG,EAAOomB,QAAShgB,IAAUA,EAC1B9C,KAAKyB,KAAK,WAEhB,IACCzB,KAAM8C,GAAS7G,QACR+D,MAAM8C,GACZ,MAAO8B,QAIXme,SAAU,SAAUhc,GACnB,GAAIic,GAASjjB,EAAMyP,EAAKyT,EAAO5gB,EAC9BF,EAAI,EACJC,EAAMpC,KAAKE,OACXgjB,EAA2B,gBAAVnc,IAAsBA,CAExC,IAAKrK,EAAOiE,WAAYoG,GACvB,MAAO/G,MAAKyB,KAAK,SAAUY,GAC1B3F,EAAQsD,MAAO+iB,SAAUhc,EAAM7F,KAAMlB,KAAMqC,EAAGrC,KAAKuQ,aAIrD,IAAK2S,EAIJ,IAFAF,GAAYjc,GAAS,IAAKjH,MAAO1B,OAErBgE,EAAJD,EAASA,IAOhB,GANApC,EAAOC,KAAMmC,GACbqN,EAAwB,IAAlBzP,EAAKQ,WAAoBR,EAAKwQ,WACjC,IAAMxQ,EAAKwQ,UAAY,KAAMhN,QAAS8e,EAAQ,KAChD,KAGU,CACVhgB,EAAI,CACJ,OAAS4gB,EAAQD,EAAQ3gB,KACgB,EAAnCmN,EAAIjS,QAAS,IAAM0lB,EAAQ,OAC/BzT,GAAOyT,EAAQ,IAGjBljB,GAAKwQ,UAAY7T,EAAOmB,KAAM2R,GAMjC,MAAOxP,OAGRmjB,YAAa,SAAUpc,GACtB,GAAIic,GAASjjB,EAAMyP,EAAKyT,EAAO5gB,EAC9BF,EAAI,EACJC,EAAMpC,KAAKE,OACXgjB,EAA+B,IAArBnhB,UAAU7B,QAAiC,gBAAV6G,IAAsBA,CAElE,IAAKrK,EAAOiE,WAAYoG,GACvB,MAAO/G,MAAKyB,KAAK,SAAUY,GAC1B3F,EAAQsD,MAAOmjB,YAAapc,EAAM7F,KAAMlB,KAAMqC,EAAGrC,KAAKuQ,aAGxD,IAAK2S,EAGJ,IAFAF,GAAYjc,GAAS,IAAKjH,MAAO1B,OAErBgE,EAAJD,EAASA,IAQhB,GAPApC,EAAOC,KAAMmC,GAEbqN,EAAwB,IAAlBzP,EAAKQ,WAAoBR,EAAKwQ,WACjC,IAAMxQ,EAAKwQ,UAAY,KAAMhN,QAAS8e,EAAQ,KAChD,IAGU,CACVhgB,EAAI,CACJ,OAAS4gB,EAAQD,EAAQ3gB,KAExB,MAAQmN,EAAIjS,QAAS,IAAM0lB,EAAQ,MAAS,EAC3CzT,EAAMA,EAAIjM,QAAS,IAAM0f,EAAQ,IAAK,IAGxCljB,GAAKwQ,UAAYxJ,EAAQrK,EAAOmB,KAAM2R,GAAQ,GAKjD,MAAOxP,OAGRojB,YAAa,SAAUrc,EAAOsc,GAC7B,GAAIhkB,SAAc0H,GACjBuc,EAA6B,iBAAbD,EAEjB,OAAK3mB,GAAOiE,WAAYoG,GAChB/G,KAAKyB,KAAK,SAAUU,GAC1BzF,EAAQsD,MAAOojB,YAAarc,EAAM7F,KAAKlB,KAAMmC,EAAGnC,KAAKuQ,UAAW8S,GAAWA,KAItErjB,KAAKyB,KAAK,WAChB,GAAc,WAATpC,EAAoB,CAExB,GAAIkR,GACHpO,EAAI,EACJuY,EAAOhe,EAAQsD,MACfmb,EAAQkI,EACRE,EAAaxc,EAAMjH,MAAO1B,MAE3B,OAASmS,EAAYgT,EAAYphB,KAEhCgZ,EAAQmI,EAASnI,GAAST,EAAK8I,SAAUjT,GACzCmK,EAAMS,EAAQ,WAAa,eAAiB5K,QAIlClR,IAASjD,GAA8B,YAATiD,KACpCW,KAAKuQ,WAET7T,EAAOqkB,MAAO/gB,KAAM,gBAAiBA,KAAKuQ,WAO3CvQ,KAAKuQ,UAAYvQ,KAAKuQ,WAAaxJ,KAAU,EAAQ,GAAKrK,EAAOqkB,MAAO/gB,KAAM,kBAAqB,OAKtGwjB,SAAU,SAAU1lB,GACnB,GAAIyS,GAAY,IAAMzS,EAAW,IAChCqE,EAAI,EACJqF,EAAIxH,KAAKE,MACV,MAAYsH,EAAJrF,EAAOA,IACd,GAA0B,IAArBnC,KAAKmC,GAAG5B,WAAmB,IAAMP,KAAKmC,GAAGoO,UAAY,KAAKhN,QAAQ8e,EAAQ,KAAK9kB,QAASgT,IAAe,EAC3G,OAAO,CAIT,QAAO,GAGRxB,IAAK,SAAUhI,GACd,GAAIxF,GAAK8f,EAAO1gB,EACfZ,EAAOC,KAAK,EAEb,EAAA,GAAM+B,UAAU7B,OAsBhB,MAFAS,GAAajE,EAAOiE,WAAYoG,GAEzB/G,KAAKyB,KAAK,SAAUU,GAC1B,GAAI4M,EAEmB,KAAlB/O,KAAKO,WAKTwO,EADIpO,EACEoG,EAAM7F,KAAMlB,KAAMmC,EAAGzF,EAAQsD,MAAO+O,OAEpChI,EAIK,MAAPgI,EACJA,EAAM,GACoB,gBAARA,GAClBA,GAAO,GACIrS,EAAOyG,QAAS4L,KAC3BA,EAAMrS,EAAO4F,IAAIyM,EAAK,SAAWhI,GAChC,MAAgB,OAATA,EAAgB,GAAKA,EAAQ,MAItCsa,EAAQ3kB,EAAO+mB,SAAUzjB,KAAKX,OAAU3C,EAAO+mB,SAAUzjB,KAAK6G,SAASC,eAGjEua,GAAW,OAASA,IAAUA,EAAMqC,IAAK1jB,KAAM+O,EAAK,WAAc9S,IACvE+D,KAAK+G,MAAQgI,KAjDd,IAAKhP,EAGJ,MAFAshB,GAAQ3kB,EAAO+mB,SAAU1jB,EAAKV,OAAU3C,EAAO+mB,SAAU1jB,EAAK8G,SAASC,eAElEua,GAAS,OAASA,KAAU9f,EAAM8f,EAAMlgB,IAAKpB,EAAM,YAAe9D,EAC/DsF,GAGRA,EAAMxB,EAAKgH,MAEW,gBAARxF,GAEbA,EAAIgC,QAAQ+e,EAAS,IAEd,MAAP/gB,EAAc,GAAKA,OA0CxB7E,EAAOgG,QACN+gB,UACCE,QACCxiB,IAAK,SAAUpB,GAEd,GAAIgP,GAAMrS,EAAO0D,KAAKQ,KAAMb,EAAM,QAClC,OAAc,OAAPgP,EACNA,EACAhP,EAAKkH,OAGR6G,QACC3M,IAAK,SAAUpB,GACd,GAAIgH,GAAO4c,EACV5gB,EAAUhD,EAAKgD,QACf8X,EAAQ9a,EAAKwV,cACbqO,EAAoB,eAAd7jB,EAAKV,MAAiC,EAARwb,EACpC2B,EAASoH,EAAM,QACftc,EAAMsc,EAAM/I,EAAQ,EAAI9X,EAAQ7C,OAChCiC,EAAY,EAAR0Y,EACHvT,EACAsc,EAAM/I,EAAQ,CAGhB,MAAYvT,EAAJnF,EAASA,IAIhB,GAHAwhB,EAAS5gB,EAASZ,MAGXwhB,EAAOrO,UAAYnT,IAAM0Y,IAE5Bne,EAAOmI,QAAQ0Z,YAAeoF,EAAOvO,SAA+C,OAApCuO,EAAOpW,aAAa,cACnEoW,EAAO7iB,WAAWsU,UAAa1Y,EAAOmK,SAAU8c,EAAO7iB,WAAY,aAAiB,CAMxF,GAHAiG,EAAQrK,EAAQinB,GAAS5U,MAGpB6U,EACJ,MAAO7c,EAIRyV,GAAOrf,KAAM4J,GAIf,MAAOyV,IAGRkH,IAAK,SAAU3jB,EAAMgH,GACpB,GAAI8c,GAAWF,EACd5gB,EAAUhD,EAAKgD,QACfyZ,EAAS9f,EAAOsE,UAAW+F,GAC3B5E,EAAIY,EAAQ7C,MAEb,OAAQiC,IACPwhB,EAAS5gB,EAASZ,IACZwhB,EAAOrO,SAAW5Y,EAAO2K,QAAS3K,EAAOinB,GAAQ5U,MAAOyN,IAAY,KACzEqH,GAAY,EAQd,OAHMA,KACL9jB,EAAKwV,cAAgB,IAEfiH,KAKV5b,KAAM,SAAUb,EAAM+C,EAAMiE,GAC3B,GAAIsa,GAAO9f,EACVuiB,EAAQ/jB,EAAKQ,QAGd,IAAMR,GAAkB,IAAV+jB,GAAyB,IAAVA,GAAyB,IAAVA,EAK5C,aAAY/jB,GAAKwN,eAAiBnR,EAC1BM,EAAOkmB,KAAM7iB,EAAM+C,EAAMiE,IAKlB,IAAV+c,GAAgBpnB,EAAO+c,SAAU1Z,KACrC+C,EAAOA,EAAKgE,cACZua,EAAQ3kB,EAAOqnB,UAAWjhB,KACvBpG,EAAOsV,KAAKlS,MAAMiM,KAAKtL,KAAMqC,GAASsf,EAAWD,IAGhDpb,IAAU9K,EAaHolB,GAAS,OAASA,IAA6C,QAAnC9f,EAAM8f,EAAMlgB,IAAKpB,EAAM+C,IACvDvB,GAGPA,EAAM7E,EAAO0D,KAAKQ,KAAMb,EAAM+C,GAGhB,MAAPvB,EACNtF,EACAsF,GApBc,OAAVwF,EAGOsa,GAAS,OAASA,KAAU9f,EAAM8f,EAAMqC,IAAK3jB,EAAMgH,EAAOjE,MAAY7G,EAC1EsF,GAGPxB,EAAKyN,aAAc1K,EAAMiE,EAAQ,IAC1BA,IAPPrK,EAAOimB,WAAY5iB,EAAM+C,GAAzBpG,KAuBHimB,WAAY,SAAU5iB,EAAMgH,GAC3B,GAAIjE,GAAMkhB,EACT7hB,EAAI,EACJ8hB,EAAYld,GAASA,EAAMjH,MAAO1B,EAEnC,IAAK6lB,GAA+B,IAAlBlkB,EAAKQ,SACtB,MAASuC,EAAOmhB,EAAU9hB,KACzB6hB,EAAWtnB,EAAOomB,QAAShgB,IAAUA,EAGhCpG,EAAOsV,KAAKlS,MAAMiM,KAAKtL,KAAMqC,GAE5B4f,GAAexF,IAAoBuF,EAAYhiB,KAAMqC,GACzD/C,EAAMikB,IAAa,EAInBjkB,EAAMrD,EAAOiK,UAAW,WAAa7D,IACpC/C,EAAMikB,IAAa,EAKrBtnB,EAAOkE,KAAMb,EAAM+C,EAAM,IAG1B/C,EAAK8N,gBAAiBqP,EAAkBpa,EAAOkhB,IAKlDD,WACC1kB,MACCqkB,IAAK,SAAU3jB,EAAMgH,GACpB,IAAMrK,EAAOmI,QAAQ2Z,YAAwB,UAAVzX,GAAqBrK,EAAOmK,SAAS9G,EAAM,SAAW,CAGxF,GAAIgP,GAAMhP,EAAKgH,KAKf,OAJAhH,GAAKyN,aAAc,OAAQzG,GACtBgI,IACJhP,EAAKgH,MAAQgI,GAEPhI,MAMX+b,SACCoB,MAAO,UACPC,QAAS,aAGVvB,KAAM,SAAU7iB,EAAM+C,EAAMiE,GAC3B,GAAIxF,GAAK8f,EAAO+C,EACfN,EAAQ/jB,EAAKQ,QAGd,IAAMR,GAAkB,IAAV+jB,GAAyB,IAAVA,GAAyB,IAAVA,EAY5C,MARAM,GAAmB,IAAVN,IAAgBpnB,EAAO+c,SAAU1Z,GAErCqkB,IAEJthB,EAAOpG,EAAOomB,QAAShgB,IAAUA,EACjCue,EAAQ3kB,EAAO2nB,UAAWvhB,IAGtBiE,IAAU9K,EACPolB,GAAS,OAASA,KAAU9f,EAAM8f,EAAMqC,IAAK3jB,EAAMgH,EAAOjE,MAAY7G,EAC5EsF,EACExB,EAAM+C,GAASiE,EAGXsa,GAAS,OAASA,IAA6C,QAAnC9f,EAAM8f,EAAMlgB,IAAKpB,EAAM+C,IACzDvB,EACAxB,EAAM+C,IAITuhB,WACCnP,UACC/T,IAAK,SAAUpB,GAId,GAAIukB,GAAW5nB,EAAO0D,KAAKQ,KAAMb,EAAM,WAEvC,OAAOukB,GACNC,SAAUD,EAAU,IACpB/B,EAAW9hB,KAAMV,EAAK8G,WAAc2b,EAAW/hB,KAAMV,EAAK8G,WAAc9G,EAAKkV,KAC5E,EACA,QAONmN,GACCsB,IAAK,SAAU3jB,EAAMgH,EAAOjE,GAa3B,MAZKiE,MAAU,EAEdrK,EAAOimB,WAAY5iB,EAAM+C,GACd4f,GAAexF,IAAoBuF,EAAYhiB,KAAMqC,GAEhE/C,EAAKyN,cAAe0P,GAAmBxgB,EAAOomB,QAAShgB,IAAUA,EAAMA,GAIvE/C,EAAMrD,EAAOiK,UAAW,WAAa7D,IAAW/C,EAAM+C,IAAS,EAGzDA,IAGTpG,EAAO+E,KAAM/E,EAAOsV,KAAKlS,MAAMiM,KAAK5N,OAAO2B,MAAO,QAAU,SAAUqC,EAAGW,GACxE,GAAI0hB,GAAS9nB,EAAOsV,KAAKnD,WAAY/L,IAAUpG,EAAO0D,KAAKQ,IAE3DlE,GAAOsV,KAAKnD,WAAY/L,GAAS4f,GAAexF,IAAoBuF,EAAYhiB,KAAMqC,GACrF,SAAU/C,EAAM+C,EAAMsG,GACrB,GAAIpL,GAAKtB,EAAOsV,KAAKnD,WAAY/L,GAChCvB,EAAM6H,EACLnN,GAECS,EAAOsV,KAAKnD,WAAY/L,GAAS7G,IACjCuoB,EAAQzkB,EAAM+C,EAAMsG,GAEpBtG,EAAKgE,cACL,IAEH,OADApK,GAAOsV,KAAKnD,WAAY/L,GAAS9E,EAC1BuD,GAER,SAAUxB,EAAM+C,EAAMsG,GACrB,MAAOA,GACNnN,EACA8D,EAAMrD,EAAOiK,UAAW,WAAa7D,IACpCA,EAAKgE,cACL,QAKC4b,GAAgBxF,IACrBxgB,EAAOqnB,UAAUhd,OAChB2c,IAAK,SAAU3jB,EAAMgH,EAAOjE,GAC3B,MAAKpG,GAAOmK,SAAU9G,EAAM,UAE3BA,EAAKqP,aAAerI,EAApBhH,GAGOoiB,GAAYA,EAASuB,IAAK3jB,EAAMgH,EAAOjE,MAO5Coa,IAILiF,GACCuB,IAAK,SAAU3jB,EAAMgH,EAAOjE,GAE3B,GAAIvB,GAAMxB,EAAKiP,iBAAkBlM,EAUjC,OATMvB,IACLxB,EAAK0kB,iBACHljB,EAAMxB,EAAKS,cAAckkB,gBAAiB5hB,IAI7CvB,EAAIwF,MAAQA,GAAS,GAGL,UAATjE,GAAoBiE,IAAUhH,EAAKwN,aAAczK,GACvDiE,EACA9K,IAGHS,EAAOsV,KAAKnD,WAAW9N,GAAKrE,EAAOsV,KAAKnD,WAAW/L,KAAOpG,EAAOsV,KAAKnD,WAAW8V,OAEhF,SAAU5kB,EAAM+C,EAAMsG,GACrB,GAAI7H,EACJ,OAAO6H,GACNnN,GACCsF,EAAMxB,EAAKiP,iBAAkBlM,KAAyB,KAAdvB,EAAIwF,MAC5CxF,EAAIwF,MACJ,MAEJrK,EAAO+mB,SAAS/N,QACfvU,IAAK,SAAUpB,EAAM+C,GACpB,GAAIvB,GAAMxB,EAAKiP,iBAAkBlM,EACjC,OAAOvB,IAAOA,EAAI0N,UACjB1N,EAAIwF,MACJ9K,GAEFynB,IAAKvB,EAASuB,KAKfhnB,EAAOqnB,UAAUa,iBAChBlB,IAAK,SAAU3jB,EAAMgH,EAAOjE,GAC3Bqf,EAASuB,IAAK3jB,EAAgB,KAAVgH,GAAe,EAAQA,EAAOjE,KAMpDpG,EAAO+E,MAAO,QAAS,UAAY,SAAUU,EAAGW,GAC/CpG,EAAOqnB,UAAWjhB,IACjB4gB,IAAK,SAAU3jB,EAAMgH,GACpB,MAAe,KAAVA,GACJhH,EAAKyN,aAAc1K,EAAM,QAClBiE,GAFR,OAYErK,EAAOmI,QAAQyY,gBAEpB5gB,EAAO+E,MAAO,OAAQ,OAAS,SAAUU,EAAGW,GAC3CpG,EAAO2nB,UAAWvhB,IACjB3B,IAAK,SAAUpB,GACd,MAAOA,GAAKwN,aAAczK,EAAM,OAM9BpG,EAAOmI,QAAQ4D,QACpB/L,EAAOqnB,UAAUtb,OAChBtH,IAAK,SAAUpB,GAId,MAAOA,GAAK0I,MAAMwU,SAAWhhB,GAE9BynB,IAAK,SAAU3jB,EAAMgH,GACpB,MAAShH,GAAK0I,MAAMwU,QAAUlW,EAAQ,MAOnCrK,EAAOmI,QAAQ6Y,cACpBhhB,EAAO2nB,UAAU/O,UAChBnU,IAAK,SAAUpB,GACd,GAAIoQ,GAASpQ,EAAKe,UAUlB,OARKqP,KACJA,EAAOoF,cAGFpF,EAAOrP,YACXqP,EAAOrP,WAAWyU,eAGb,QAKV7Y,EAAO+E,MACN,WACA,WACA,YACA,cACA,cACA,UACA,UACA,SACA,cACA,mBACE,WACF/E,EAAOomB,QAAS9iB,KAAK8G,eAAkB9G,OAIlCtD,EAAOmI,QAAQ8Y,UACpBjhB,EAAOomB,QAAQnF,QAAU,YAI1BjhB,EAAO+E,MAAO,QAAS,YAAc,WACpC/E,EAAO+mB,SAAUzjB,OAChB0jB,IAAK,SAAU3jB,EAAMgH,GACpB,MAAKrK,GAAOyG,QAAS4D,GACXhH,EAAKsV,QAAU3Y,EAAO2K,QAAS3K,EAAOqD,GAAMgP,MAAOhI,IAAW,EADxE,IAKIrK,EAAOmI,QAAQ4Y,UACpB/gB,EAAO+mB,SAAUzjB,MAAOmB,IAAM,SAAUpB,GAGvC,MAAsC,QAA/BA,EAAKwN,aAAa,SAAoB,KAAOxN,EAAKgH,SAI5D,IAAI8d,GAAa,+BAChBC,GAAY,OACZC,GAAc,+BACdC,GAAc,kCACdC,GAAiB,sBAElB,SAASC,MACR,OAAO,EAGR,QAASC,MACR,OAAO,EAGR,QAASC,MACR,IACC,MAAO9oB,GAASyY,cACf,MAAQsQ,KAOX3oB,EAAOyC,OAENmmB,UAEA1K,IAAK,SAAU7a,EAAMwlB,EAAO7W,EAASvJ,EAAMrH,GAC1C,GAAImI,GAAKuf,EAAQC,EAAGC,EACnBC,EAASC,EAAaC,EACtBC,EAAUzmB,EAAM0mB,EAAYC,EAC5BC,EAAWvpB,EAAOqkB,MAAOhhB,EAG1B,IAAMkmB,EAAN,CAKKvX,EAAQA,UACZgX,EAAchX,EACdA,EAAUgX,EAAYhX,QACtB5Q,EAAW4nB,EAAY5nB,UAIlB4Q,EAAQ7G,OACb6G,EAAQ7G,KAAOnL,EAAOmL,SAIhB2d,EAASS,EAAST,UACxBA,EAASS,EAAST,YAEZI,EAAcK,EAASC,UAC7BN,EAAcK,EAASC,OAAS,SAAUthB,GAGzC,aAAclI,KAAWN,GAAuBwI,GAAKlI,EAAOyC,MAAMgnB,YAAcvhB,EAAEvF,KAEjFpD,EADAS,EAAOyC,MAAMinB,SAAStkB,MAAO8jB,EAAY7lB,KAAMgC,YAIjD6jB,EAAY7lB,KAAOA,GAIpBwlB,GAAUA,GAAS,IAAKzlB,MAAO1B,KAAqB,IACpDqnB,EAAIF,EAAMrlB,MACV,OAAQulB,IACPxf,EAAMgf,GAAe9kB,KAAMolB,EAAME,QACjCpmB,EAAO2mB,EAAW/f,EAAI,GACtB8f,GAAe9f,EAAI,IAAM,IAAK+C,MAAO,KAAMxG,OAGrCnD,IAKNsmB,EAAUjpB,EAAOyC,MAAMwmB,QAAStmB,OAGhCA,GAASvB,EAAW6nB,EAAQU,aAAeV,EAAQW,WAAcjnB,EAGjEsmB,EAAUjpB,EAAOyC,MAAMwmB,QAAStmB,OAGhCwmB,EAAYnpB,EAAOgG,QAClBrD,KAAMA,EACN2mB,SAAUA,EACV7gB,KAAMA,EACNuJ,QAASA,EACT7G,KAAM6G,EAAQ7G,KACd/J,SAAUA,EACVkO,aAAclO,GAAYpB,EAAOsV,KAAKlS,MAAMkM,aAAavL,KAAM3C,GAC/DyoB,UAAWR,EAAWrY,KAAK,MACzBgY,IAGII,EAAWN,EAAQnmB,MACzBymB,EAAWN,EAAQnmB,MACnBymB,EAASU,cAAgB,EAGnBb,EAAQc,OAASd,EAAQc,MAAMvlB,KAAMnB,EAAMoF,EAAM4gB,EAAYH,MAAkB,IAE/E7lB,EAAKX,iBACTW,EAAKX,iBAAkBC,EAAMumB,GAAa,GAE/B7lB,EAAK4I,aAChB5I,EAAK4I,YAAa,KAAOtJ,EAAMumB,KAK7BD,EAAQ/K,MACZ+K,EAAQ/K,IAAI1Z,KAAMnB,EAAM8lB,GAElBA,EAAUnX,QAAQ7G,OACvBge,EAAUnX,QAAQ7G,KAAO6G,EAAQ7G,OAK9B/J,EACJgoB,EAASrjB,OAAQqjB,EAASU,gBAAiB,EAAGX,GAE9CC,EAAS3oB,KAAM0oB,GAIhBnpB,EAAOyC,MAAMmmB,OAAQjmB,IAAS,EAI/BU,GAAO,OAIR0F,OAAQ,SAAU1F,EAAMwlB,EAAO7W,EAAS5Q,EAAU4oB,GACjD,GAAIrkB,GAAGwjB,EAAW5f,EACjB0gB,EAAWlB,EAAGD,EACdG,EAASG,EAAUzmB,EACnB0mB,EAAYC,EACZC,EAAWvpB,EAAOmkB,QAAS9gB,IAAUrD,EAAOqkB,MAAOhhB,EAEpD,IAAMkmB,IAAcT,EAASS,EAAST,QAAtC,CAKAD,GAAUA,GAAS,IAAKzlB,MAAO1B,KAAqB,IACpDqnB,EAAIF,EAAMrlB,MACV,OAAQulB,IAMP,GALAxf,EAAMgf,GAAe9kB,KAAMolB,EAAME,QACjCpmB,EAAO2mB,EAAW/f,EAAI,GACtB8f,GAAe9f,EAAI,IAAM,IAAK+C,MAAO,KAAMxG,OAGrCnD,EAAN,CAOAsmB,EAAUjpB,EAAOyC,MAAMwmB,QAAStmB,OAChCA,GAASvB,EAAW6nB,EAAQU,aAAeV,EAAQW,WAAcjnB,EACjEymB,EAAWN,EAAQnmB,OACnB4G,EAAMA,EAAI,IAAUgF,OAAQ,UAAY8a,EAAWrY,KAAK,iBAAmB,WAG3EiZ,EAAYtkB,EAAIyjB,EAAS5lB,MACzB,OAAQmC,IACPwjB,EAAYC,EAAUzjB,IAEfqkB,GAAeV,IAAaH,EAAUG,UACzCtX,GAAWA,EAAQ7G,OAASge,EAAUhe,MACtC5B,IAAOA,EAAIxF,KAAMolB,EAAUU,YAC3BzoB,GAAYA,IAAa+nB,EAAU/nB,WAAyB,OAAbA,IAAqB+nB,EAAU/nB,YACjFgoB,EAASrjB,OAAQJ,EAAG,GAEfwjB,EAAU/nB,UACdgoB,EAASU,gBAELb,EAAQlgB,QACZkgB,EAAQlgB,OAAOvE,KAAMnB,EAAM8lB,GAOzBc,KAAcb,EAAS5lB,SACrBylB,EAAQiB,UAAYjB,EAAQiB,SAAS1lB,KAAMnB,EAAMgmB,EAAYE,EAASC,WAAa,GACxFxpB,EAAOmqB,YAAa9mB,EAAMV,EAAM4mB,EAASC,cAGnCV,GAAQnmB,QAtCf,KAAMA,IAAQmmB,GACb9oB,EAAOyC,MAAMsG,OAAQ1F,EAAMV,EAAOkmB,EAAOE,GAAK/W,EAAS5Q,GAAU,EA0C/DpB,GAAOqI,cAAeygB,WACnBS,GAASC,OAIhBxpB,EAAOskB,YAAajhB,EAAM,aAI5BkE,QAAS,SAAU9E,EAAOgG,EAAMpF,EAAM+mB,GACrC,GAAIZ,GAAQa,EAAQvX,EACnBwX,EAAYrB,EAAS1f,EAAK9D,EAC1B8kB,GAAclnB,GAAQzD,GACtB+C,EAAO3B,EAAYwD,KAAM/B,EAAO,QAAWA,EAAME,KAAOF,EACxD4mB,EAAaroB,EAAYwD,KAAM/B,EAAO,aAAgBA,EAAMonB,UAAUvd,MAAM,OAK7E,IAHAwG,EAAMvJ,EAAMlG,EAAOA,GAAQzD,EAGJ,IAAlByD,EAAKQ,UAAoC,IAAlBR,EAAKQ,WAK5BykB,GAAYvkB,KAAMpB,EAAO3C,EAAOyC,MAAMgnB,aAItC9mB,EAAK9B,QAAQ,MAAQ,IAEzBwoB,EAAa1mB,EAAK2J,MAAM,KACxB3J,EAAO0mB,EAAW5X,QAClB4X,EAAWvjB,QAEZukB,EAA6B,EAApB1nB,EAAK9B,QAAQ,MAAY,KAAO8B,EAGzCF,EAAQA,EAAOzC,EAAO0G,SACrBjE,EACA,GAAIzC,GAAOwqB,MAAO7nB,EAAuB,gBAAVF,IAAsBA,GAGtDA,EAAMgoB,UAAYL,EAAe,EAAI,EACrC3nB,EAAMonB,UAAYR,EAAWrY,KAAK,KAClCvO,EAAMioB,aAAejoB,EAAMonB,UACtBtb,OAAQ,UAAY8a,EAAWrY,KAAK,iBAAmB,WAC3D,KAGDvO,EAAMoU,OAAStX,EACTkD,EAAM8D,SACX9D,EAAM8D,OAASlD,GAIhBoF,EAAe,MAARA,GACJhG,GACFzC,EAAOsE,UAAWmE,GAAQhG,IAG3BwmB,EAAUjpB,EAAOyC,MAAMwmB,QAAStmB,OAC1BynB,IAAgBnB,EAAQ1hB,SAAW0hB,EAAQ1hB,QAAQnC,MAAO/B,EAAMoF,MAAW,GAAjF,CAMA,IAAM2hB,IAAiBnB,EAAQ0B,WAAa3qB,EAAO2H,SAAUtE,GAAS,CAMrE,IAJAinB,EAAarB,EAAQU,cAAgBhnB,EAC/B2lB,GAAYvkB,KAAMumB,EAAa3nB,KACpCmQ,EAAMA,EAAI1O,YAEH0O,EAAKA,EAAMA,EAAI1O,WACtBmmB,EAAU9pB,KAAMqS,GAChBvJ,EAAMuJ,CAIFvJ,MAASlG,EAAKS,eAAiBlE,IACnC2qB,EAAU9pB,KAAM8I,EAAIqhB,aAAerhB,EAAImK,cAAgBpU,GAKzDmG,EAAI,CACJ,QAASqN,EAAMyX,EAAU9kB,QAAUhD,EAAMooB,uBAExCpoB,EAAME,KAAO8C,EAAI,EAChB6kB,EACArB,EAAQW,UAAYjnB,EAGrB6mB,GAAWxpB,EAAOqkB,MAAOvR,EAAK,eAAoBrQ,EAAME,OAAU3C,EAAOqkB,MAAOvR,EAAK,UAChF0W,GACJA,EAAOpkB,MAAO0N,EAAKrK,GAIpB+gB,EAASa,GAAUvX,EAAKuX,GACnBb,GAAUxpB,EAAOwjB,WAAY1Q,IAAS0W,EAAOpkB,OAASokB,EAAOpkB,MAAO0N,EAAKrK,MAAW,GACxFhG,EAAMqoB,gBAMR,IAHAroB,EAAME,KAAOA,GAGPynB,IAAiB3nB,EAAMsoB,wBAErB9B,EAAQ+B,UAAY/B,EAAQ+B,SAAS5lB,MAAOmlB,EAAUxc,MAAOtF,MAAW,IAC9EzI,EAAOwjB,WAAYngB,IAKdgnB,GAAUhnB,EAAMV,KAAW3C,EAAO2H,SAAUtE,GAAS,CAGzDkG,EAAMlG,EAAMgnB,GAEP9gB,IACJlG,EAAMgnB,GAAW,MAIlBrqB,EAAOyC,MAAMgnB,UAAY9mB,CACzB,KACCU,EAAMV,KACL,MAAQuF,IAIVlI,EAAOyC,MAAMgnB,UAAYlqB,EAEpBgK,IACJlG,EAAMgnB,GAAW9gB,GAMrB,MAAO9G,GAAMoU,SAGd6S,SAAU,SAAUjnB,GAGnBA,EAAQzC,EAAOyC,MAAMwoB,IAAKxoB,EAE1B,IAAIgD,GAAGZ,EAAKskB,EAAWzR,EAAS/R,EAC/BulB,KACAjmB,EAAOvE,EAAW8D,KAAMa,WACxB+jB,GAAappB,EAAOqkB,MAAO/gB,KAAM,eAAoBb,EAAME,UAC3DsmB,EAAUjpB,EAAOyC,MAAMwmB,QAASxmB,EAAME,SAOvC,IAJAsC,EAAK,GAAKxC,EACVA,EAAM0oB,eAAiB7nB,MAGlB2lB,EAAQmC,aAAenC,EAAQmC,YAAY5mB,KAAMlB,KAAMb,MAAY,EAAxE,CAKAyoB,EAAelrB,EAAOyC,MAAM2mB,SAAS5kB,KAAMlB,KAAMb,EAAO2mB,GAGxD3jB,EAAI,CACJ,QAASiS,EAAUwT,EAAczlB,QAAWhD,EAAMooB,uBAAyB,CAC1EpoB,EAAM4oB,cAAgB3T,EAAQrU,KAE9BsC,EAAI,CACJ,QAASwjB,EAAYzR,EAAQ0R,SAAUzjB,QAAWlD,EAAM6oB,kCAIjD7oB,EAAMioB,cAAgBjoB,EAAMioB,aAAa3mB,KAAMolB,EAAUU,cAE9DpnB,EAAM0mB,UAAYA,EAClB1mB,EAAMgG,KAAO0gB,EAAU1gB,KAEvB5D,IAAS7E,EAAOyC,MAAMwmB,QAASE,EAAUG,eAAkBE,QAAUL,EAAUnX,SAC5E5M,MAAOsS,EAAQrU,KAAM4B,GAEnBJ,IAAQtF,IACNkD,EAAMoU,OAAShS,MAAS,IAC7BpC,EAAMqoB,iBACNroB,EAAM8oB,oBAYX,MAJKtC,GAAQuC,cACZvC,EAAQuC,aAAahnB,KAAMlB,KAAMb,GAG3BA,EAAMoU,SAGduS,SAAU,SAAU3mB,EAAO2mB,GAC1B,GAAIqC,GAAKtC,EAAWjc,EAASzH,EAC5BylB,KACApB,EAAgBV,EAASU,cACzBhX,EAAMrQ,EAAM8D,MAKb,IAAKujB,GAAiBhX,EAAIjP,YAAcpB,EAAMuW,QAAyB,UAAfvW,EAAME,MAG7D,KAAQmQ,GAAOxP,KAAMwP,EAAMA,EAAI1O,YAAcd,KAK5C,GAAsB,IAAjBwP,EAAIjP,WAAmBiP,EAAI4F,YAAa,GAAuB,UAAfjW,EAAME,MAAoB,CAE9E,IADAuK,KACMzH,EAAI,EAAOqkB,EAAJrkB,EAAmBA,IAC/B0jB,EAAYC,EAAU3jB,GAGtBgmB,EAAMtC,EAAU/nB,SAAW,IAEtB8L,EAASue,KAAUlsB,IACvB2N,EAASue,GAAQtC,EAAU7Z,aAC1BtP,EAAQyrB,EAAKnoB,MAAO6a,MAAOrL,IAAS,EACpC9S,EAAO0D,KAAM+nB,EAAKnoB,KAAM,MAAQwP,IAAQtP,QAErC0J,EAASue,IACbve,EAAQzM,KAAM0oB,EAGXjc,GAAQ1J,QACZ0nB,EAAazqB,MAAO4C,KAAMyP,EAAKsW,SAAUlc,IAW7C,MAJqBkc,GAAS5lB,OAAzBsmB,GACJoB,EAAazqB,MAAO4C,KAAMC,KAAM8lB,SAAUA,EAASzoB,MAAOmpB,KAGpDoB,GAGRD,IAAK,SAAUxoB,GACd,GAAKA,EAAOzC,EAAO0G,SAClB,MAAOjE,EAIR,IAAIgD,GAAGygB,EAAM/f,EACZxD,EAAOF,EAAME,KACb+oB,EAAgBjpB,EAChBkpB,EAAUroB,KAAKsoB,SAAUjpB,EAEpBgpB,KACLroB,KAAKsoB,SAAUjpB,GAASgpB,EACvBtD,GAAYtkB,KAAMpB,GAASW,KAAKuoB,WAChCzD,GAAUrkB,KAAMpB,GAASW,KAAKwoB,aAGhC3lB,EAAOwlB,EAAQI,MAAQzoB,KAAKyoB,MAAMxrB,OAAQorB,EAAQI,OAAUzoB,KAAKyoB,MAEjEtpB,EAAQ,GAAIzC,GAAOwqB,MAAOkB,GAE1BjmB,EAAIU,EAAK3C,MACT,OAAQiC,IACPygB,EAAO/f,EAAMV,GACbhD,EAAOyjB,GAASwF,EAAexF,EAmBhC,OAdMzjB,GAAM8D,SACX9D,EAAM8D,OAASmlB,EAAcM,YAAcpsB,GAKb,IAA1B6C,EAAM8D,OAAO1C,WACjBpB,EAAM8D,OAAS9D,EAAM8D,OAAOnC,YAK7B3B,EAAMwpB,UAAYxpB,EAAMwpB,QAEjBN,EAAQxX,OAASwX,EAAQxX,OAAQ1R,EAAOipB,GAAkBjpB,GAIlEspB,MAAO,wHAAwHzf,MAAM,KAErIsf,YAEAE,UACCC,MAAO,4BAA4Bzf,MAAM,KACzC6H,OAAQ,SAAU1R,EAAOypB,GAOxB,MAJoB,OAAfzpB,EAAM0pB,QACV1pB,EAAM0pB,MAA6B,MAArBD,EAASE,SAAmBF,EAASE,SAAWF,EAASG,SAGjE5pB,IAITopB,YACCE,MAAO,mGAAmGzf,MAAM,KAChH6H,OAAQ,SAAU1R,EAAOypB,GACxB,GAAI9kB,GAAMklB,EAAU9Y,EACnBwF,EAASkT,EAASlT,OAClBuT,EAAcL,EAASK,WAuBxB,OApBoB,OAAf9pB,EAAM+pB,OAAqC,MAApBN,EAASO,UACpCH,EAAW7pB,EAAM8D,OAAOzC,eAAiBlE,EACzC4T,EAAM8Y,EAASxsB,gBACfsH,EAAOklB,EAASllB,KAEhB3E,EAAM+pB,MAAQN,EAASO,SAAYjZ,GAAOA,EAAIkZ,YAActlB,GAAQA,EAAKslB,YAAc,IAAQlZ,GAAOA,EAAImZ,YAAcvlB,GAAQA,EAAKulB,YAAc,GACnJlqB,EAAMmqB,MAAQV,EAASW,SAAYrZ,GAAOA,EAAIsZ,WAAc1lB,GAAQA,EAAK0lB,WAAc,IAAQtZ,GAAOA,EAAIuZ,WAAc3lB,GAAQA,EAAK2lB,WAAc,KAI9ItqB,EAAMuqB,eAAiBT,IAC5B9pB,EAAMuqB,cAAgBT,IAAgB9pB,EAAM8D,OAAS2lB,EAASe,UAAYV,GAKrE9pB,EAAM0pB,OAASnT,IAAWzZ,IAC/BkD,EAAM0pB,MAAmB,EAATnT,EAAa,EAAe,EAATA,EAAa,EAAe,EAATA,EAAa,EAAI,GAGjEvW,IAITwmB,SACCiE,MAECvC,UAAU,GAEXvS,OAEC7Q,QAAS,WACR,GAAKjE,OAASolB,MAAuBplB,KAAK8U,MACzC,IAEC,MADA9U,MAAK8U,SACE,EACN,MAAQlQ,MAOZyhB,aAAc,WAEfwD,MACC5lB,QAAS,WACR,MAAKjE,QAASolB,MAAuBplB,KAAK6pB,MACzC7pB,KAAK6pB,QACE,GAFR,GAKDxD,aAAc,YAEfzH,OAEC3a,QAAS,WACR,MAAKvH,GAAOmK,SAAU7G,KAAM,UAA2B,aAAdA,KAAKX,MAAuBW,KAAK4e,OACzE5e,KAAK4e,SACE,GAFR,GAOD8I,SAAU,SAAUvoB,GACnB,MAAOzC,GAAOmK,SAAU1H,EAAM8D,OAAQ,OAIxC6mB,cACC5B,aAAc,SAAU/oB,GAGlBA,EAAMoU,SAAWtX,IACrBkD,EAAMipB,cAAc2B,YAAc5qB,EAAMoU,WAM5CyW,SAAU,SAAU3qB,EAAMU,EAAMZ,EAAO8qB,GAItC,GAAIrlB,GAAIlI,EAAOgG,OACd,GAAIhG,GAAOwqB,MACX/nB,GAECE,KAAMA,EACN6qB,aAAa,EACb9B,kBAGG6B,GACJvtB,EAAOyC,MAAM8E,QAASW,EAAG,KAAM7E,GAE/BrD,EAAOyC,MAAMinB,SAASllB,KAAMnB,EAAM6E,GAE9BA,EAAE6iB,sBACNtoB,EAAMqoB,mBAKT9qB,EAAOmqB,YAAcvqB,EAASmD,oBAC7B,SAAUM,EAAMV,EAAM6mB,GAChBnmB,EAAKN,qBACTM,EAAKN,oBAAqBJ,EAAM6mB,GAAQ,IAG1C,SAAUnmB,EAAMV,EAAM6mB,GACrB,GAAIpjB,GAAO,KAAOzD,CAEbU,GAAKL,oBAIGK,GAAM+C,KAAW1G,IAC5B2D,EAAM+C,GAAS,MAGhB/C,EAAKL,YAAaoD,EAAMojB,KAI3BxpB,EAAOwqB,MAAQ,SAAUvkB,EAAK8lB,GAE7B,MAAOzoB,gBAAgBtD,GAAOwqB,OAKzBvkB,GAAOA,EAAItD,MACfW,KAAKooB,cAAgBzlB,EACrB3C,KAAKX,KAAOsD,EAAItD,KAIhBW,KAAKynB,mBAAuB9kB,EAAIwnB,kBAAoBxnB,EAAIonB,eAAgB,GACvEpnB,EAAIynB,mBAAqBznB,EAAIynB,oBAAwBlF,GAAaC,IAInEnlB,KAAKX,KAAOsD,EAIR8lB,GACJ/rB,EAAOgG,OAAQ1C,KAAMyoB,GAItBzoB,KAAKqqB,UAAY1nB,GAAOA,EAAI0nB,WAAa3tB,EAAO0L,MAGhDpI,KAAMtD,EAAO0G,UAAY,EAvBzB,GAJQ,GAAI1G,GAAOwqB,MAAOvkB,EAAK8lB,IAgChC/rB,EAAOwqB,MAAMvnB,WACZ8nB,mBAAoBtC,GACpBoC,qBAAsBpC,GACtB6C,8BAA+B7C,GAE/BqC,eAAgB,WACf,GAAI5iB,GAAI5E,KAAKooB,aAEbpoB,MAAKynB,mBAAqBvC,GACpBtgB,IAKDA,EAAE4iB,eACN5iB,EAAE4iB,iBAKF5iB,EAAEmlB,aAAc,IAGlB9B,gBAAiB,WAChB,GAAIrjB,GAAI5E,KAAKooB,aAEbpoB,MAAKunB,qBAAuBrC,GACtBtgB,IAIDA,EAAEqjB,iBACNrjB,EAAEqjB,kBAKHrjB,EAAE0lB,cAAe,IAElBC,yBAA0B,WACzBvqB,KAAKgoB,8BAAgC9C,GACrCllB,KAAKioB,oBAKPvrB,EAAO+E,MACN+oB,WAAY,YACZC,WAAY,YACV,SAAUC,EAAM/C,GAClBjrB,EAAOyC,MAAMwmB,QAAS+E,IACrBrE,aAAcsB,EACdrB,SAAUqB,EAEVzB,OAAQ,SAAU/mB,GACjB,GAAIoC,GACH0B,EAASjD,KACT2qB,EAAUxrB,EAAMuqB,cAChB7D,EAAY1mB,EAAM0mB,SASnB,SALM8E,GAAYA,IAAY1nB,IAAWvG,EAAOmN,SAAU5G,EAAQ0nB,MACjExrB,EAAME,KAAOwmB,EAAUG,SACvBzkB,EAAMskB,EAAUnX,QAAQ5M,MAAO9B,KAAM+B,WACrC5C,EAAME,KAAOsoB,GAEPpmB,MAMJ7E,EAAOmI,QAAQ+lB,gBAEpBluB,EAAOyC,MAAMwmB,QAAQvP,QACpBqQ,MAAO,WAEN,MAAK/pB,GAAOmK,SAAU7G,KAAM,SACpB,GAIRtD,EAAOyC,MAAMyb,IAAK5a,KAAM,iCAAkC,SAAU4E,GAEnE,GAAI7E,GAAO6E,EAAE3B,OACZ4nB,EAAOnuB,EAAOmK,SAAU9G,EAAM,UAAarD,EAAOmK,SAAU9G,EAAM,UAAaA,EAAK8qB,KAAO5uB,CACvF4uB,KAASnuB,EAAOqkB,MAAO8J,EAAM,mBACjCnuB,EAAOyC,MAAMyb,IAAKiQ,EAAM,iBAAkB,SAAU1rB,GACnDA,EAAM2rB,gBAAiB,IAExBpuB,EAAOqkB,MAAO8J,EAAM,iBAAiB,MARvCnuB,IAcDwrB,aAAc,SAAU/oB,GAElBA,EAAM2rB,uBACH3rB,GAAM2rB,eACR9qB,KAAKc,aAAe3B,EAAMgoB,WAC9BzqB,EAAOyC,MAAM6qB,SAAU,SAAUhqB,KAAKc,WAAY3B,GAAO,KAK5DynB,SAAU,WAET,MAAKlqB,GAAOmK,SAAU7G,KAAM,SACpB,GAIRtD,EAAOyC,MAAMsG,OAAQzF,KAAM,YAA3BtD,MAMGA,EAAOmI,QAAQkmB,gBAEpBruB,EAAOyC,MAAMwmB,QAAQ9G,QAEpB4H,MAAO,WAEN,MAAK5B,GAAWpkB,KAAMT,KAAK6G,YAIP,aAAd7G,KAAKX,MAAqC,UAAdW,KAAKX,QACrC3C,EAAOyC,MAAMyb,IAAK5a,KAAM,yBAA0B,SAAUb,GACjB,YAArCA,EAAMipB,cAAc4C,eACxBhrB,KAAKirB,eAAgB,KAGvBvuB,EAAOyC,MAAMyb,IAAK5a,KAAM,gBAAiB,SAAUb,GAC7Ca,KAAKirB,gBAAkB9rB,EAAMgoB,YACjCnnB,KAAKirB,eAAgB,GAGtBvuB,EAAOyC,MAAM6qB,SAAU,SAAUhqB,KAAMb,GAAO,OAGzC,IAGRzC,EAAOyC,MAAMyb,IAAK5a,KAAM,yBAA0B,SAAU4E,GAC3D,GAAI7E,GAAO6E,EAAE3B,MAER4hB,GAAWpkB,KAAMV,EAAK8G,YAAenK,EAAOqkB,MAAOhhB,EAAM,mBAC7DrD,EAAOyC,MAAMyb,IAAK7a,EAAM,iBAAkB,SAAUZ,IAC9Ca,KAAKc,YAAe3B,EAAM+qB,aAAgB/qB,EAAMgoB,WACpDzqB,EAAOyC,MAAM6qB,SAAU,SAAUhqB,KAAKc,WAAY3B,GAAO,KAG3DzC,EAAOqkB,MAAOhhB,EAAM,iBAAiB,MATvCrD,IAcDwpB,OAAQ,SAAU/mB,GACjB,GAAIY,GAAOZ,EAAM8D,MAGjB,OAAKjD,QAASD,GAAQZ,EAAM+qB,aAAe/qB,EAAMgoB,WAA4B,UAAdpnB,EAAKV,MAAkC,aAAdU,EAAKV,KACrFF,EAAM0mB,UAAUnX,QAAQ5M,MAAO9B,KAAM+B,WAD7C,GAKD6kB,SAAU,WAGT,MAFAlqB,GAAOyC,MAAMsG,OAAQzF,KAAM,aAEnB6kB,EAAWpkB,KAAMT,KAAK6G,aAM3BnK,EAAOmI,QAAQqmB,gBACpBxuB,EAAO+E,MAAOqT,MAAO,UAAW+U,KAAM,YAAc,SAAUa,EAAM/C,GAGnE,GAAIwD,GAAW,EACdzc,EAAU,SAAUvP,GACnBzC,EAAOyC,MAAM6qB,SAAUrC,EAAKxoB,EAAM8D,OAAQvG,EAAOyC,MAAMwoB,IAAKxoB,IAAS,GAGvEzC,GAAOyC,MAAMwmB,QAASgC,IACrBlB,MAAO,WACc,IAAf0E,KACJ7uB,EAAS8C,iBAAkBsrB,EAAMhc,GAAS,IAG5CkY,SAAU,WACW,MAAbuE,GACN7uB,EAASmD,oBAAqBirB,EAAMhc,GAAS,OAOlDhS,EAAOsB,GAAG0E,QAET0oB,GAAI,SAAU7F,EAAOznB,EAAUqH,EAAMnH,EAAiB4lB,GACrD,GAAIvkB,GAAMgsB,CAGV,IAAsB,gBAAV9F,GAAqB,CAEP,gBAAbznB,KAEXqH,EAAOA,GAAQrH,EACfA,EAAW7B,EAEZ,KAAMoD,IAAQkmB,GACbvlB,KAAKorB,GAAI/rB,EAAMvB,EAAUqH,EAAMogB,EAAOlmB,GAAQukB,EAE/C,OAAO5jB,MAmBR,GAhBa,MAARmF,GAAsB,MAANnH,GAEpBA,EAAKF,EACLqH,EAAOrH,EAAW7B,GACD,MAAN+B,IACc,gBAAbF,IAEXE,EAAKmH,EACLA,EAAOlJ,IAGP+B,EAAKmH,EACLA,EAAOrH,EACPA,EAAW7B,IAGR+B,KAAO,EACXA,EAAKmnB,OACC,KAAMnnB,EACZ,MAAOgC,KAaR,OAVa,KAAR4jB,IACJyH,EAASrtB,EACTA,EAAK,SAAUmB,GAGd,MADAzC,KAASwH,IAAK/E,GACPksB,EAAOvpB,MAAO9B,KAAM+B,YAG5B/D,EAAG6J,KAAOwjB,EAAOxjB,OAAUwjB,EAAOxjB,KAAOnL,EAAOmL,SAE1C7H,KAAKyB,KAAM,WACjB/E,EAAOyC,MAAMyb,IAAK5a,KAAMulB,EAAOvnB,EAAImH,EAAMrH,MAG3C8lB,IAAK,SAAU2B,EAAOznB,EAAUqH,EAAMnH,GACrC,MAAOgC,MAAKorB,GAAI7F,EAAOznB,EAAUqH,EAAMnH,EAAI,IAE5CkG,IAAK,SAAUqhB,EAAOznB,EAAUE,GAC/B,GAAI6nB,GAAWxmB,CACf,IAAKkmB,GAASA,EAAMiC,gBAAkBjC,EAAMM,UAQ3C,MANAA,GAAYN,EAAMM,UAClBnpB,EAAQ6oB,EAAMsC,gBAAiB3jB,IAC9B2hB,EAAUU,UAAYV,EAAUG,SAAW,IAAMH,EAAUU,UAAYV,EAAUG,SACjFH,EAAU/nB,SACV+nB,EAAUnX,SAEJ1O,IAER,IAAsB,gBAAVulB,GAAqB,CAEhC,IAAMlmB,IAAQkmB,GACbvlB,KAAKkE,IAAK7E,EAAMvB,EAAUynB,EAAOlmB,GAElC,OAAOW,MAUR,OARKlC,KAAa,GAA6B,kBAAbA,MAEjCE,EAAKF,EACLA,EAAW7B,GAEP+B,KAAO,IACXA,EAAKmnB,IAECnlB,KAAKyB,KAAK,WAChB/E,EAAOyC,MAAMsG,OAAQzF,KAAMulB,EAAOvnB,EAAIF,MAIxCmG,QAAS,SAAU5E,EAAM8F,GACxB,MAAOnF,MAAKyB,KAAK,WAChB/E,EAAOyC,MAAM8E,QAAS5E,EAAM8F,EAAMnF,SAGpCsrB,eAAgB,SAAUjsB,EAAM8F,GAC/B,GAAIpF,GAAOC,KAAK,EAChB,OAAKD,GACGrD,EAAOyC,MAAM8E,QAAS5E,EAAM8F,EAAMpF,GAAM,GADhD,IAKF,IAAIwrB,IAAW,iBACdC,GAAe,iCACfC,GAAgB/uB,EAAOsV,KAAKlS,MAAMkM,aAElC0f,IACCC,UAAU,EACVC,UAAU,EACVrK,MAAM,EACNsK,MAAM,EAGRnvB,GAAOsB,GAAG0E,QACTtC,KAAM,SAAUtC,GACf,GAAIqE,GACHZ,KACAmZ,EAAO1a,KACPoC,EAAMsY,EAAKxa,MAEZ,IAAyB,gBAAbpC,GACX,MAAOkC,MAAKqB,UAAW3E,EAAQoB,GAAW+S,OAAO,WAChD,IAAM1O,EAAI,EAAOC,EAAJD,EAASA,IACrB,GAAKzF,EAAOmN,SAAU6Q,EAAMvY,GAAKnC,MAChC,OAAO,IAMX,KAAMmC,EAAI,EAAOC,EAAJD,EAASA,IACrBzF,EAAO0D,KAAMtC,EAAU4c,EAAMvY,GAAKZ,EAMnC,OAFAA,GAAMvB,KAAKqB,UAAWe,EAAM,EAAI1F,EAAO8c,OAAQjY,GAAQA,GACvDA,EAAIzD,SAAWkC,KAAKlC,SAAWkC,KAAKlC,SAAW,IAAMA,EAAWA,EACzDyD,GAGRiT,IAAK,SAAUvR,GACd,GAAId,GACH2pB,EAAUpvB,EAAQuG,EAAQjD,MAC1BoC,EAAM0pB,EAAQ5rB,MAEf,OAAOF,MAAK6Q,OAAO,WAClB,IAAM1O,EAAI,EAAOC,EAAJD,EAASA,IACrB,GAAKzF,EAAOmN,SAAU7J,KAAM8rB,EAAQ3pB,IACnC,OAAO,KAMXkS,IAAK,SAAUvW,GACd,MAAOkC,MAAKqB,UAAW0qB,GAAO/rB,KAAMlC,OAAgB,KAGrD+S,OAAQ,SAAU/S,GACjB,MAAOkC,MAAKqB,UAAW0qB,GAAO/rB,KAAMlC,OAAgB,KAGrDkuB,GAAI,SAAUluB,GACb,QAASiuB,GACR/rB,KAIoB,gBAAblC,IAAyB2tB,GAAchrB,KAAM3C,GACnDpB,EAAQoB,GACRA,OACD,GACCoC,QAGH+rB,QAAS,SAAUzZ,EAAWzU,GAC7B,GAAIyR,GACHrN,EAAI,EACJqF,EAAIxH,KAAKE,OACTqB,KACA2qB,EAAMT,GAAchrB,KAAM+R,IAAoC,gBAAdA,GAC/C9V,EAAQ8V,EAAWzU,GAAWiC,KAAKjC,SACnC,CAEF,MAAYyJ,EAAJrF,EAAOA,IACd,IAAMqN,EAAMxP,KAAKmC,GAAIqN,GAAOA,IAAQzR,EAASyR,EAAMA,EAAI1O,WAEtD,GAAoB,GAAf0O,EAAIjP,WAAkB2rB,EAC1BA,EAAIrR,MAAMrL,GAAO,GAGA,IAAjBA,EAAIjP,UACH7D,EAAO0D,KAAK4Q,gBAAgBxB,EAAKgD,IAAc,CAEhDhD,EAAMjO,EAAIpE,KAAMqS,EAChB,OAKH,MAAOxP,MAAKqB,UAAWE,EAAIrB,OAAS,EAAIxD,EAAO8c,OAAQjY,GAAQA,IAKhEsZ,MAAO,SAAU9a,GAGhB,MAAMA,GAKe,gBAATA,GACJrD,EAAO2K,QAASrH,KAAK,GAAItD,EAAQqD,IAIlCrD,EAAO2K,QAEbtH,EAAKH,OAASG,EAAK,GAAKA,EAAMC,MAXrBA,KAAK,IAAMA,KAAK,GAAGc,WAAed,KAAKgC,QAAQmqB,UAAUjsB,OAAS,IAc7E0a,IAAK,SAAU9c,EAAUC,GACxB,GAAI2lB,GAA0B,gBAAb5lB,GACfpB,EAAQoB,EAAUC,GAClBrB,EAAOsE,UAAWlD,GAAYA,EAASyC,UAAazC,GAAaA,GAClEiB,EAAMrC,EAAO2D,MAAOL,KAAKmB,MAAOuiB,EAEjC,OAAO1jB,MAAKqB,UAAW3E,EAAO8c,OAAOza,KAGtCqtB,QAAS,SAAUtuB,GAClB,MAAOkC,MAAK4a,IAAiB,MAAZ9c,EAChBkC,KAAKwB,WAAaxB,KAAKwB,WAAWqP,OAAO/S,MAK5C,SAASuuB,IAAS7c,EAAKoD,GACtB,EACCpD,GAAMA,EAAKoD,SACFpD,GAAwB,IAAjBA,EAAIjP,SAErB,OAAOiP,GAGR9S,EAAO+E,MACN0O,OAAQ,SAAUpQ,GACjB,GAAIoQ,GAASpQ,EAAKe,UAClB,OAAOqP,IAA8B,KAApBA,EAAO5P,SAAkB4P,EAAS,MAEpDmc,QAAS,SAAUvsB,GAClB,MAAOrD,GAAOkW,IAAK7S,EAAM,eAE1BwsB,aAAc,SAAUxsB,EAAMoC,EAAGqqB,GAChC,MAAO9vB,GAAOkW,IAAK7S,EAAM,aAAcysB,IAExCjL,KAAM,SAAUxhB,GACf,MAAOssB,IAAStsB,EAAM,gBAEvB8rB,KAAM,SAAU9rB,GACf,MAAOssB,IAAStsB,EAAM,oBAEvB0sB,QAAS,SAAU1sB,GAClB,MAAOrD,GAAOkW,IAAK7S,EAAM,gBAE1BosB,QAAS,SAAUpsB,GAClB,MAAOrD,GAAOkW,IAAK7S,EAAM,oBAE1B2sB,UAAW,SAAU3sB,EAAMoC,EAAGqqB,GAC7B,MAAO9vB,GAAOkW,IAAK7S,EAAM,cAAeysB,IAEzCG,UAAW,SAAU5sB,EAAMoC,EAAGqqB,GAC7B,MAAO9vB,GAAOkW,IAAK7S,EAAM,kBAAmBysB,IAE7CI,SAAU,SAAU7sB,GACnB,MAAOrD,GAAO2vB,SAAWtsB,EAAKe,gBAAmBwP,WAAYvQ,IAE9D4rB,SAAU,SAAU5rB,GACnB,MAAOrD,GAAO2vB,QAAStsB,EAAKuQ,aAE7Bsb,SAAU,SAAU7rB,GACnB,MAAOrD,GAAOmK,SAAU9G,EAAM,UAC7BA,EAAK8sB,iBAAmB9sB,EAAK+sB,cAAcxwB,SAC3CI,EAAO2D,SAAWN,EAAK2F,cAEvB,SAAU5C,EAAM9E,GAClBtB,EAAOsB,GAAI8E,GAAS,SAAU0pB,EAAO1uB,GACpC,GAAIyD,GAAM7E,EAAO4F,IAAKtC,KAAMhC,EAAIwuB,EAsBhC,OApB0B,UAArB1pB,EAAKzF,MAAO,MAChBS,EAAW0uB,GAGP1uB,GAAgC,gBAAbA,KACvByD,EAAM7E,EAAOmU,OAAQ/S,EAAUyD,IAG3BvB,KAAKE,OAAS,IAEZwrB,GAAkB5oB,KACvBvB,EAAM7E,EAAO8c,OAAQjY,IAIjBiqB,GAAa/qB,KAAMqC,KACvBvB,EAAMA,EAAIwrB,YAIL/sB,KAAKqB,UAAWE,MAIzB7E,EAAOgG,QACNmO,OAAQ,SAAUmB,EAAM1Q,EAAO+S,GAC9B,GAAItU,GAAOuB,EAAO,EAMlB,OAJK+S,KACJrC,EAAO,QAAUA,EAAO,KAGD,IAAjB1Q,EAAMpB,QAAkC,IAAlBH,EAAKQ,SACjC7D,EAAO0D,KAAK4Q,gBAAiBjR,EAAMiS,IAAWjS,MAC9CrD,EAAO0D,KAAKwJ,QAASoI,EAAMtV,EAAO+K,KAAMnG,EAAO,SAAUvB,GACxD,MAAyB,KAAlBA,EAAKQ,aAIfqS,IAAK,SAAU7S,EAAM6S,EAAK4Z,GACzB,GAAIpY,MACH5E,EAAMzP,EAAM6S,EAEb,OAAQpD,GAAwB,IAAjBA,EAAIjP,WAAmBisB,IAAUvwB,GAA8B,IAAjBuT,EAAIjP,WAAmB7D,EAAQ8S,GAAMwc,GAAIQ,IAC/E,IAAjBhd,EAAIjP,UACR6T,EAAQjX,KAAMqS,GAEfA,EAAMA,EAAIoD,EAEX,OAAOwB,IAGRiY,QAAS,SAAUW,EAAGjtB,GACrB,GAAIktB,KAEJ,MAAQD,EAAGA,EAAIA,EAAErd,YACI,IAAfqd,EAAEzsB,UAAkBysB,IAAMjtB,GAC9BktB,EAAE9vB,KAAM6vB,EAIV,OAAOC,KAKT,SAASlB,IAAQ9Z,EAAUib,EAAW7Y,GACrC,GAAK3X,EAAOiE,WAAYusB,GACvB,MAAOxwB,GAAO+K,KAAMwK,EAAU,SAAUlS,EAAMoC,GAE7C,QAAS+qB,EAAUhsB,KAAMnB,EAAMoC,EAAGpC,KAAWsU,GAK/C,IAAK6Y,EAAU3sB,SACd,MAAO7D,GAAO+K,KAAMwK,EAAU,SAAUlS,GACvC,MAASA,KAASmtB,IAAgB7Y,GAKpC,IAA0B,gBAAd6Y,GAAyB,CACpC,GAAK3B,GAAS9qB,KAAMysB,GACnB,MAAOxwB,GAAOmU,OAAQqc,EAAWjb,EAAUoC,EAG5C6Y,GAAYxwB,EAAOmU,OAAQqc,EAAWjb,GAGvC,MAAOvV,GAAO+K,KAAMwK,EAAU,SAAUlS,GACvC,MAASrD,GAAO2K,QAAStH,EAAMmtB,IAAe,IAAQ7Y,IAGxD,QAAS8Y,IAAoB7wB,GAC5B,GAAI+d,GAAO+S,GAAUpkB,MAAO,KAC3BqkB,EAAW/wB,EAASmiB,wBAErB,IAAK4O,EAAS9nB,cACb,MAAQ8U,EAAKna,OACZmtB,EAAS9nB,cACR8U,EAAK5P,MAIR,OAAO4iB,GAGR,GAAID,IAAY,6JAEfE,GAAgB,6BAChBC,GAAmBtiB,OAAO,OAASmiB,GAAY,WAAY,KAC3DI,GAAqB,OACrBC,GAAY,0EACZC,GAAW,YACXC,GAAS,UACTC,GAAQ,YACRC,GAAe,0BACfC,GAA8B,wBAE9BC,GAAW,oCACXC,GAAc,4BACdC,GAAoB,cACpBC,GAAe,2CAGfC,IACCxK,QAAU,EAAG,+BAAgC,aAC7CyK,QAAU,EAAG,aAAc,eAC3BC,MAAQ,EAAG,QAAS,UACpBC,OAAS,EAAG,WAAY,aACxBC,OAAS,EAAG,UAAW,YACvBC,IAAM,EAAG,iBAAkB,oBAC3BC,KAAO,EAAG,mCAAoC,uBAC9CC,IAAM,EAAG,qBAAsB,yBAI/BhH,SAAUhrB,EAAOmI,QAAQwY,eAAkB,EAAG,GAAI,KAAS,EAAG,SAAU,WAEzEsR,GAAexB,GAAoB7wB,GACnCsyB,GAAcD,GAAale,YAAanU,EAASiJ,cAAc,OAEhE4oB,IAAQU,SAAWV,GAAQxK,OAC3BwK,GAAQ/Q,MAAQ+Q,GAAQW,MAAQX,GAAQY,SAAWZ,GAAQa,QAAUb,GAAQI,MAC7EJ,GAAQc,GAAKd,GAAQO,GAErBhyB,EAAOsB,GAAG0E,QACTuE,KAAM,SAAUF,GACf,MAAOrK,GAAOqL,OAAQ/H,KAAM,SAAU+G,GACrC,MAAOA,KAAU9K,EAChBS,EAAOuK,KAAMjH,MACbA,KAAKwV,QAAQ0Z,QAAUlvB,KAAK,IAAMA,KAAK,GAAGQ,eAAiBlE,GAAW6yB,eAAgBpoB,KACrF,KAAMA,EAAOhF,UAAU7B,SAG3BgvB,OAAQ,WACP,MAAOlvB,MAAKovB,SAAUrtB,UAAW,SAAUhC,GAC1C,GAAuB,IAAlBC,KAAKO,UAAoC,KAAlBP,KAAKO,UAAqC,IAAlBP,KAAKO,SAAiB,CACzE,GAAI0C,GAASosB,GAAoBrvB,KAAMD,EACvCkD,GAAOwN,YAAa1Q,OAKvBuvB,QAAS,WACR,MAAOtvB,MAAKovB,SAAUrtB,UAAW,SAAUhC,GAC1C,GAAuB,IAAlBC,KAAKO,UAAoC,KAAlBP,KAAKO,UAAqC,IAAlBP,KAAKO,SAAiB,CACzE,GAAI0C,GAASosB,GAAoBrvB,KAAMD,EACvCkD,GAAOssB,aAAcxvB,EAAMkD,EAAOqN,gBAKrCkf,OAAQ,WACP,MAAOxvB,MAAKovB,SAAUrtB,UAAW,SAAUhC,GACrCC,KAAKc,YACTd,KAAKc,WAAWyuB,aAAcxvB,EAAMC,SAKvCyvB,MAAO,WACN,MAAOzvB,MAAKovB,SAAUrtB,UAAW,SAAUhC,GACrCC,KAAKc,YACTd,KAAKc,WAAWyuB,aAAcxvB,EAAMC,KAAK2P,gBAM5ClK,OAAQ,SAAU3H,EAAU4xB,GAC3B,GAAI3vB,GACHuB,EAAQxD,EAAWpB,EAAOmU,OAAQ/S,EAAUkC,MAASA,KACrDmC,EAAI,CAEL,MAA6B,OAApBpC,EAAOuB,EAAMa,IAAaA,IAE5ButB,GAA8B,IAAlB3vB,EAAKQ,UACtB7D,EAAO+jB,UAAWkP,GAAQ5vB,IAGtBA,EAAKe,aACJ4uB,GAAYhzB,EAAOmN,SAAU9J,EAAKS,cAAeT,IACrD6vB,GAAeD,GAAQ5vB,EAAM,WAE9BA,EAAKe,WAAWyN,YAAaxO,GAI/B,OAAOC,OAGRwV,MAAO,WACN,GAAIzV,GACHoC,EAAI,CAEL,MAA4B,OAAnBpC,EAAOC,KAAKmC,IAAaA,IAAM,CAEhB,IAAlBpC,EAAKQ,UACT7D,EAAO+jB,UAAWkP,GAAQ5vB,GAAM,GAIjC,OAAQA,EAAKuQ,WACZvQ,EAAKwO,YAAaxO,EAAKuQ,WAKnBvQ,GAAKgD,SAAWrG,EAAOmK,SAAU9G,EAAM,YAC3CA,EAAKgD,QAAQ7C,OAAS,GAIxB,MAAOF,OAGRgD,MAAO,SAAU6sB,EAAeC,GAI/B,MAHAD,GAAiC,MAAjBA,GAAwB,EAAQA,EAChDC,EAAyC,MAArBA,EAA4BD,EAAgBC,EAEzD9vB,KAAKsC,IAAK,WAChB,MAAO5F,GAAOsG,MAAOhD,KAAM6vB,EAAeC,MAI5CC,KAAM,SAAUhpB,GACf,MAAOrK,GAAOqL,OAAQ/H,KAAM,SAAU+G,GACrC,GAAIhH,GAAOC,KAAK,OACfmC,EAAI,EACJqF,EAAIxH,KAAKE,MAEV,IAAK6G,IAAU9K,EACd,MAAyB,KAAlB8D,EAAKQ,SACXR,EAAKsQ,UAAU9M,QAAS+pB,GAAe,IACvCrxB,CAIF,MAAsB,gBAAV8K,IAAuB8mB,GAAaptB,KAAMsG,KACnDrK,EAAOmI,QAAQwY,eAAkBkQ,GAAa9sB,KAAMsG,KACpDrK,EAAOmI,QAAQsY,mBAAsBqQ,GAAmB/sB,KAAMsG,IAC/DonB,IAAWT,GAASvtB,KAAM4G,KAAY,GAAI,KAAM,GAAGD,gBAAkB,CAEtEC,EAAQA,EAAMxD,QAASkqB,GAAW,YAElC,KACC,KAAWjmB,EAAJrF,EAAOA,IAEbpC,EAAOC,KAAKmC,OACW,IAAlBpC,EAAKQ,WACT7D,EAAO+jB,UAAWkP,GAAQ5vB,GAAM,IAChCA,EAAKsQ,UAAYtJ,EAInBhH,GAAO,EAGN,MAAM6E,KAGJ7E,GACJC,KAAKwV,QAAQ0Z,OAAQnoB,IAEpB,KAAMA,EAAOhF,UAAU7B,SAG3B8vB,YAAa,WACZ,GAECruB,GAAOjF,EAAO4F,IAAKtC,KAAM,SAAUD,GAClC,OAASA,EAAK4P,YAAa5P,EAAKe,cAEjCqB,EAAI,CAmBL,OAhBAnC,MAAKovB,SAAUrtB,UAAW,SAAUhC,GACnC,GAAIwhB,GAAO5f,EAAMQ,KAChBgO,EAASxO,EAAMQ,IAEXgO,KAECoR,GAAQA,EAAKzgB,aAAeqP,IAChCoR,EAAOvhB,KAAK2P,aAEbjT,EAAQsD,MAAOyF,SACf0K,EAAOof,aAAcxvB,EAAMwhB,MAG1B,GAGIpf,EAAInC,KAAOA,KAAKyF,UAGxBlG,OAAQ,SAAUzB,GACjB,MAAOkC,MAAKyF,OAAQ3H,GAAU,IAG/BsxB,SAAU,SAAUztB,EAAMD,EAAUuuB,GAGnCtuB,EAAO3E,EAAY8E,SAAWH,EAE9B,IAAIK,GAAOiO,EAAMigB,EAChB5qB,EAAS4K,EAAK2M,EACd1a,EAAI,EACJqF,EAAIxH,KAAKE,OACTwjB,EAAM1jB,KACNmwB,EAAW3oB,EAAI,EACfT,EAAQpF,EAAK,GACbhB,EAAajE,EAAOiE,WAAYoG,EAGjC,IAAKpG,KAAsB,GAAL6G,GAA2B,gBAAVT,IAAsBrK,EAAOmI,QAAQ8Z,aAAeoP,GAASttB,KAAMsG,GACzG,MAAO/G,MAAKyB,KAAK,SAAUoZ,GAC1B,GAAIH,GAAOgJ,EAAIzhB,GAAI4Y,EACdla,KACJgB,EAAK,GAAKoF,EAAM7F,KAAMlB,KAAM6a,EAAOH,EAAKqV,SAEzCrV,EAAK0U,SAAUztB,EAAMD,EAAUuuB,IAIjC,IAAKzoB,IACJqV,EAAWngB,EAAO8I,cAAe7D,EAAM3B,KAAM,GAAIQ,eAAe,GAAQyvB,GAAqBjwB,MAC7FgC,EAAQ6a,EAASvM,WAEmB,IAA/BuM,EAASnX,WAAWxF,SACxB2c,EAAW7a,GAGPA,GAAQ,CAMZ,IALAsD,EAAU5I,EAAO4F,IAAKqtB,GAAQ9S,EAAU,UAAYuT,IACpDF,EAAa5qB,EAAQpF,OAITsH,EAAJrF,EAAOA,IACd8N,EAAO4M,EAEF1a,IAAMguB,IACVlgB,EAAOvT,EAAOsG,MAAOiN,GAAM,GAAM,GAG5BigB,GACJxzB,EAAO2D,MAAOiF,EAASqqB,GAAQ1f,EAAM,YAIvCvO,EAASR,KAAMlB,KAAKmC,GAAI8N,EAAM9N,EAG/B,IAAK+tB,EAOJ,IANAhgB,EAAM5K,EAASA,EAAQpF,OAAS,GAAIM,cAGpC9D,EAAO4F,IAAKgD,EAAS+qB,IAGfluB,EAAI,EAAO+tB,EAAJ/tB,EAAgBA,IAC5B8N,EAAO3K,EAASnD,GACX6rB,GAAYvtB,KAAMwP,EAAK5Q,MAAQ,MAClC3C,EAAOqkB,MAAO9Q,EAAM,eAAkBvT,EAAOmN,SAAUqG,EAAKD,KAExDA,EAAKtN,IAETjG,EAAO4zB,SAAUrgB,EAAKtN,KAEtBjG,EAAO+J,YAAcwJ,EAAKhJ,MAAQgJ,EAAKqC,aAAerC,EAAKI,WAAa,IAAK9M,QAAS2qB,GAAc,KAOxGrR,GAAW7a,EAAQ,KAIrB,MAAOhC,QAMT,SAASqvB,IAAoBtvB,EAAMwwB,GAClC,MAAO7zB,GAAOmK,SAAU9G,EAAM,UAC7BrD,EAAOmK,SAA+B,IAArB0pB,EAAQhwB,SAAiBgwB,EAAUA,EAAQjgB,WAAY,MAExEvQ,EAAKwG,qBAAqB,SAAS,IAClCxG,EAAK0Q,YAAa1Q,EAAKS,cAAc+E,cAAc,UACpDxF,EAIF,QAASqwB,IAAerwB,GAEvB,MADAA,GAAKV,MAA6C,OAArC3C,EAAO0D,KAAKQ,KAAMb,EAAM,SAAqB,IAAMA,EAAKV,KAC9DU,EAER,QAASswB,IAAetwB,GACvB,GAAID,GAAQmuB,GAAkB9tB,KAAMJ,EAAKV,KAMzC,OALKS,GACJC,EAAKV,KAAOS,EAAM,GAElBC,EAAK8N,gBAAgB,QAEf9N,EAIR,QAAS6vB,IAAetuB,EAAOkvB,GAC9B,GAAIzwB,GACHoC,EAAI,CACL,MAA6B,OAApBpC,EAAOuB,EAAMa,IAAaA,IAClCzF,EAAOqkB,MAAOhhB,EAAM,cAAeywB,GAAe9zB,EAAOqkB,MAAOyP,EAAYruB,GAAI,eAIlF,QAASsuB,IAAgB9tB,EAAK+tB,GAE7B,GAAuB,IAAlBA,EAAKnwB,UAAmB7D,EAAOmkB,QAASle,GAA7C,CAIA,GAAItD,GAAM8C,EAAGqF,EACZmpB,EAAUj0B,EAAOqkB,MAAOpe,GACxBiuB,EAAUl0B,EAAOqkB,MAAO2P,EAAMC,GAC9BnL,EAASmL,EAAQnL,MAElB,IAAKA,EAAS,OACNoL,GAAQ1K,OACf0K,EAAQpL,SAER,KAAMnmB,IAAQmmB,GACb,IAAMrjB,EAAI,EAAGqF,EAAIge,EAAQnmB,GAAOa,OAAYsH,EAAJrF,EAAOA,IAC9CzF,EAAOyC,MAAMyb,IAAK8V,EAAMrxB,EAAMmmB,EAAQnmB,GAAQ8C,IAM5CyuB,EAAQzrB,OACZyrB,EAAQzrB,KAAOzI,EAAOgG,UAAYkuB,EAAQzrB,QAI5C,QAAS0rB,IAAoBluB,EAAK+tB,GACjC,GAAI7pB,GAAUjC,EAAGO,CAGjB,IAAuB,IAAlBurB,EAAKnwB,SAAV,CAOA,GAHAsG,EAAW6pB,EAAK7pB,SAASC,eAGnBpK,EAAOmI,QAAQsZ,cAAgBuS,EAAMh0B,EAAO0G,SAAY,CAC7D+B,EAAOzI,EAAOqkB,MAAO2P,EAErB,KAAM9rB,IAAKO,GAAKqgB,OACf9oB,EAAOmqB,YAAa6J,EAAM9rB,EAAGO,EAAK+gB,OAInCwK,GAAK7iB,gBAAiBnR,EAAO0G,SAIZ,WAAbyD,GAAyB6pB,EAAKzpB,OAAStE,EAAIsE,MAC/CmpB,GAAeM,GAAOzpB,KAAOtE,EAAIsE,KACjCopB,GAAeK,IAIS,WAAb7pB,GACN6pB,EAAK5vB,aACT4vB,EAAK5S,UAAYnb,EAAImb,WAOjBphB,EAAOmI,QAAQ+Y,YAAgBjb,EAAI0N,YAAc3T,EAAOmB,KAAK6yB,EAAKrgB,aACtEqgB,EAAKrgB,UAAY1N,EAAI0N,YAGE,UAAbxJ,GAAwBinB,GAA4BrtB,KAAMkC,EAAItD,OAKzEqxB,EAAKI,eAAiBJ,EAAKrb,QAAU1S,EAAI0S,QAIpCqb,EAAK3pB,QAAUpE,EAAIoE,QACvB2pB,EAAK3pB,MAAQpE,EAAIoE,QAKM,WAAbF,EACX6pB,EAAKK,gBAAkBL,EAAKpb,SAAW3S,EAAIouB,iBAInB,UAAblqB,GAAqC,aAAbA,KACnC6pB,EAAKthB,aAAezM,EAAIyM,eAI1B1S,EAAO+E,MACNuvB,SAAU,SACVC,UAAW,UACX1B,aAAc,SACd2B,YAAa,QACbC,WAAY,eACV,SAAUruB,EAAM8lB,GAClBlsB,EAAOsB,GAAI8E,GAAS,SAAUhF,GAC7B,GAAIwD,GACHa,EAAI,EACJZ,KACA6vB,EAAS10B,EAAQoB,GACjBoE,EAAOkvB,EAAOlxB,OAAS,CAExB,MAAagC,GAALC,EAAWA,IAClBb,EAAQa,IAAMD,EAAOlC,KAAOA,KAAKgD,OAAM,GACvCtG,EAAQ00B,EAAOjvB,IAAMymB,GAAYtnB,GAGjCpE,EAAU4E,MAAOP,EAAKD,EAAMH,MAG7B,OAAOnB,MAAKqB,UAAWE,KAIzB,SAASouB,IAAQ5xB,EAASgT,GACzB,GAAIzP,GAAOvB,EACVoC,EAAI,EACJkvB,QAAetzB,GAAQwI,uBAAyBnK,EAAoB2B,EAAQwI,qBAAsBwK,GAAO,WACjGhT,GAAQ4P,mBAAqBvR,EAAoB2B,EAAQ4P,iBAAkBoD,GAAO,KACzF9U,CAEF,KAAMo1B,EACL,IAAMA,KAAY/vB,EAAQvD,EAAQ2H,YAAc3H,EAA8B,OAApBgC,EAAOuB,EAAMa,IAAaA,KAC7E4O,GAAOrU,EAAOmK,SAAU9G,EAAMgR,GACnCsgB,EAAMl0B,KAAM4C,GAEZrD,EAAO2D,MAAOgxB,EAAO1B,GAAQ5vB,EAAMgR,GAKtC,OAAOA,KAAQ9U,GAAa8U,GAAOrU,EAAOmK,SAAU9I,EAASgT,GAC5DrU,EAAO2D,OAAStC,GAAWszB,GAC3BA,EAIF,QAASC,IAAmBvxB,GACtB+tB,GAA4BrtB,KAAMV,EAAKV,QAC3CU,EAAK+wB,eAAiB/wB,EAAKsV,SAI7B3Y,EAAOgG,QACNM,MAAO,SAAUjD,EAAM8vB,EAAeC,GACrC,GAAIyB,GAActhB,EAAMjN,EAAOb,EAAGqvB,EACjCC,EAAS/0B,EAAOmN,SAAU9J,EAAKS,cAAeT,EAW/C,IATKrD,EAAOmI,QAAQ+Y,YAAclhB,EAAO+c,SAAS1Z,KAAUwtB,GAAa9sB,KAAM,IAAMV,EAAK8G,SAAW,KACpG7D,EAAQjD,EAAK8d,WAAW,IAIxB+Q,GAAYve,UAAYtQ,EAAK+d,UAC7B8Q,GAAYrgB,YAAavL,EAAQ4rB,GAAYte,eAGvC5T,EAAOmI,QAAQsZ,cAAiBzhB,EAAOmI,QAAQyZ,gBACjC,IAAlBve,EAAKQ,UAAoC,KAAlBR,EAAKQ,UAAqB7D,EAAO+c,SAAS1Z,IAOnE,IAJAwxB,EAAe5B,GAAQ3sB,GACvBwuB,EAAc7B,GAAQ5vB,GAGhBoC,EAAI,EAA8B,OAA1B8N,EAAOuhB,EAAYrvB,MAAeA,EAE1CovB,EAAapvB,IACjB0uB,GAAoB5gB,EAAMshB,EAAapvB,GAM1C,IAAK0tB,EACJ,GAAKC,EAIJ,IAHA0B,EAAcA,GAAe7B,GAAQ5vB,GACrCwxB,EAAeA,GAAgB5B,GAAQ3sB,GAEjCb,EAAI,EAA8B,OAA1B8N,EAAOuhB,EAAYrvB,IAAaA,IAC7CsuB,GAAgBxgB,EAAMshB,EAAapvB,QAGpCsuB,IAAgB1wB,EAAMiD,EAaxB,OARAuuB,GAAe5B,GAAQ3sB,EAAO,UACzBuuB,EAAarxB,OAAS,GAC1B0vB,GAAe2B,GAAeE,GAAU9B,GAAQ5vB,EAAM,WAGvDwxB,EAAeC,EAAcvhB,EAAO,KAG7BjN,GAGRwC,cAAe,SAAUlE,EAAOvD,EAASuH,EAASosB,GACjD,GAAIrvB,GAAGtC,EAAM8J,EACZ5D,EAAK8K,EAAKqM,EAAOuU,EACjBnqB,EAAIlG,EAAMpB,OAGV0xB,EAAOzE,GAAoBpvB,GAE3B8zB,KACA1vB,EAAI,CAEL,MAAYqF,EAAJrF,EAAOA,IAGd,GAFApC,EAAOuB,EAAOa,GAETpC,GAAiB,IAATA,EAGZ,GAA6B,WAAxBrD,EAAO2C,KAAMU,GACjBrD,EAAO2D,MAAOwxB,EAAO9xB,EAAKQ,UAAaR,GAASA,OAG1C,IAAM6tB,GAAMntB,KAAMV,GAIlB,CACNkG,EAAMA,GAAO2rB,EAAKnhB,YAAa1S,EAAQwH,cAAc,QAGrDwL,GAAQ2c,GAASvtB,KAAMJ,KAAW,GAAI,KAAM,GAAG+G,cAC/C6qB,EAAOxD,GAASpd,IAASod,GAAQzG,SAEjCzhB,EAAIoK,UAAYshB,EAAK,GAAK5xB,EAAKwD,QAASkqB,GAAW,aAAgBkE,EAAK,GAGxEtvB,EAAIsvB,EAAK,EACT,OAAQtvB,IACP4D,EAAMA,EAAI+N,SASX,KALMtX,EAAOmI,QAAQsY,mBAAqBqQ,GAAmB/sB,KAAMV,IAClE8xB,EAAM10B,KAAMY,EAAQoxB,eAAgB3B,GAAmBrtB,KAAMJ,GAAO,MAI/DrD,EAAOmI,QAAQuY,MAAQ,CAG5Brd,EAAe,UAARgR,GAAoB4c,GAAOltB,KAAMV,GAI3B,YAAZ4xB,EAAK,IAAqBhE,GAAOltB,KAAMV,GAEtC,EADAkG,EAJDA,EAAIqK,WAOLjO,EAAItC,GAAQA,EAAK2F,WAAWxF,MAC5B,OAAQmC,IACF3F,EAAOmK,SAAWuW,EAAQrd,EAAK2F,WAAWrD,GAAK,WAAc+a,EAAM1X,WAAWxF,QAClFH,EAAKwO,YAAa6O,GAKrB1gB,EAAO2D,MAAOwxB,EAAO5rB,EAAIP,YAGzBO,EAAIqM,YAAc,EAGlB,OAAQrM,EAAIqK,WACXrK,EAAIsI,YAAatI,EAAIqK,WAItBrK,GAAM2rB,EAAK5d,cAtDX6d,GAAM10B,KAAMY,EAAQoxB,eAAgBpvB,GA4DlCkG,IACJ2rB,EAAKrjB,YAAatI,GAKbvJ,EAAOmI,QAAQ6Z,eACpBhiB,EAAO+K,KAAMkoB,GAAQkC,EAAO,SAAWP,IAGxCnvB,EAAI,CACJ,OAASpC,EAAO8xB,EAAO1vB,KAItB,KAAKuvB,GAAmD,KAAtCh1B,EAAO2K,QAAStH,EAAM2xB,MAIxC7nB,EAAWnN,EAAOmN,SAAU9J,EAAKS,cAAeT,GAGhDkG,EAAM0pB,GAAQiC,EAAKnhB,YAAa1Q,GAAQ,UAGnC8J,GACJ+lB,GAAe3pB,GAIXX,GAAU,CACdjD,EAAI,CACJ,OAAStC,EAAOkG,EAAK5D,KACf2rB,GAAYvtB,KAAMV,EAAKV,MAAQ,KACnCiG,EAAQnI,KAAM4C,GAQlB,MAFAkG,GAAM,KAEC2rB,GAGRnR,UAAW,SAAUnf,EAAsB4e,GAC1C,GAAIngB,GAAMV,EAAM0B,EAAIoE,EACnBhD,EAAI,EACJie,EAAc1jB,EAAO0G,QACrB6K,EAAQvR,EAAOuR,MACfiQ,EAAgBxhB,EAAOmI,QAAQqZ,cAC/ByH,EAAUjpB,EAAOyC,MAAMwmB,OAExB,MAA6B,OAApB5lB,EAAOuB,EAAMa,IAAaA,IAElC,IAAK+d,GAAcxjB,EAAOwjB,WAAYngB,MAErCgB,EAAKhB,EAAMqgB,GACXjb,EAAOpE,GAAMkN,EAAOlN,IAER,CACX,GAAKoE,EAAKqgB,OACT,IAAMnmB,IAAQ8F,GAAKqgB,OACbG,EAAStmB,GACb3C,EAAOyC,MAAMsG,OAAQ1F,EAAMV,GAI3B3C,EAAOmqB,YAAa9mB,EAAMV,EAAM8F,EAAK+gB,OAMnCjY;EAAOlN,WAEJkN,GAAOlN,GAKTmd,QACGne,GAAMqgB,SAEKrgB,GAAK8N,kBAAoBzR,EAC3C2D,EAAK8N,gBAAiBuS,GAGtBrgB,EAAMqgB,GAAgB,KAGvBtjB,EAAgBK,KAAM4D,MAO3BuvB,SAAU,SAAUwB,GACnB,MAAOp1B,GAAOq1B,MACbD,IAAKA,EACLzyB,KAAM,MACN2yB,SAAU,SACV3rB,OAAO,EACPif,QAAQ,EACR2M,UAAU,OAIbv1B,EAAOsB,GAAG0E,QACTwvB,QAAS,SAAUnC,GAClB,GAAKrzB,EAAOiE,WAAYovB,GACvB,MAAO/vB,MAAKyB,KAAK,SAASU,GACzBzF,EAAOsD,MAAMkyB,QAASnC,EAAK7uB,KAAKlB,KAAMmC,KAIxC,IAAKnC,KAAK,GAAK,CAEd,GAAI2xB,GAAOj1B,EAAQqzB,EAAM/vB,KAAK,GAAGQ,eAAgByB,GAAG,GAAGe,OAAM,EAExDhD,MAAK,GAAGc,YACZ6wB,EAAKpC,aAAcvvB,KAAK,IAGzB2xB,EAAKrvB,IAAI,WACR,GAAIvC,GAAOC,IAEX,OAAQD,EAAKuQ,YAA2C,IAA7BvQ,EAAKuQ,WAAW/P,SAC1CR,EAAOA,EAAKuQ,UAGb,OAAOvQ,KACLmvB,OAAQlvB,MAGZ,MAAOA,OAGRmyB,UAAW,SAAUpC,GACpB,MAAKrzB,GAAOiE,WAAYovB,GAChB/vB,KAAKyB,KAAK,SAASU,GACzBzF,EAAOsD,MAAMmyB,UAAWpC,EAAK7uB,KAAKlB,KAAMmC,MAInCnC,KAAKyB,KAAK,WAChB,GAAIiZ,GAAOhe,EAAQsD,MAClB4rB,EAAWlR,EAAKkR,UAEZA,GAAS1rB,OACb0rB,EAASsG,QAASnC,GAGlBrV,EAAKwU,OAAQa,MAKhB4B,KAAM,SAAU5B,GACf,GAAIpvB,GAAajE,EAAOiE,WAAYovB,EAEpC,OAAO/vB,MAAKyB,KAAK,SAASU,GACzBzF,EAAQsD,MAAOkyB,QAASvxB,EAAaovB,EAAK7uB,KAAKlB,KAAMmC,GAAK4tB,MAI5DqC,OAAQ,WACP,MAAOpyB,MAAKmQ,SAAS1O,KAAK,WACnB/E,EAAOmK,SAAU7G,KAAM,SAC5BtD,EAAQsD,MAAOgwB,YAAahwB,KAAK0F,cAEhCnD,QAGL,IAAI8vB,IAAQC,GAAWC,GACtBC,GAAS,kBACTC,GAAW,wBACXC,GAAY,4BAGZC,GAAe,4BACfC,GAAU,UACVC,GAAgB5nB,OAAQ,KAAO/M,EAAY,SAAU,KACrD40B,GAAgB7nB,OAAQ,KAAO/M,EAAY,kBAAmB,KAC9D60B,GAAc9nB,OAAQ,YAAc/M,EAAY,IAAK,KACrD80B,IAAgBC,KAAM,SAEtBC,IAAYC,SAAU,WAAYC,WAAY,SAAU9T,QAAS,SACjE+T,IACCC,cAAe,EACfC,WAAY,KAGbC,IAAc,MAAO,QAAS,SAAU,QACxCC,IAAgB,SAAU,IAAK,MAAO,KAGvC,SAASC,IAAgBjrB,EAAO3F,GAG/B,GAAKA,IAAQ2F,GACZ,MAAO3F,EAIR,IAAI6wB,GAAU7wB,EAAK7C,OAAO,GAAGhB,cAAgB6D,EAAKzF,MAAM,GACvDu2B,EAAW9wB,EACXX,EAAIsxB,GAAYvzB,MAEjB,OAAQiC,IAEP,GADAW,EAAO2wB,GAAatxB,GAAMwxB,EACrB7wB,IAAQ2F,GACZ,MAAO3F,EAIT,OAAO8wB,GAGR,QAASC,IAAU9zB,EAAM+zB,GAIxB,MADA/zB,GAAO+zB,GAAM/zB,EAC4B,SAAlCrD,EAAOq3B,IAAKh0B,EAAM,aAA2BrD,EAAOmN,SAAU9J,EAAKS,cAAeT,GAG1F,QAASi0B,IAAU/hB,EAAUgiB,GAC5B,GAAI3U,GAASvf,EAAMm0B,EAClB1X,KACA3B,EAAQ,EACR3a,EAAS+R,EAAS/R,MAEnB,MAAgBA,EAAR2a,EAAgBA,IACvB9a,EAAOkS,EAAU4I,GACX9a,EAAK0I,QAIX+T,EAAQ3B,GAAUne,EAAOqkB,MAAOhhB,EAAM,cACtCuf,EAAUvf,EAAK0I,MAAM6W,QAChB2U,GAGEzX,EAAQ3B,IAAuB,SAAZyE,IACxBvf,EAAK0I,MAAM6W,QAAU,IAMM,KAAvBvf,EAAK0I,MAAM6W,SAAkBuU,GAAU9zB,KAC3Cyc,EAAQ3B,GAAUne,EAAOqkB,MAAOhhB,EAAM,aAAco0B,GAAmBp0B,EAAK8G,aAIvE2V,EAAQ3B,KACbqZ,EAASL,GAAU9zB,IAEduf,GAAuB,SAAZA,IAAuB4U,IACtCx3B,EAAOqkB,MAAOhhB,EAAM,aAAcm0B,EAAS5U,EAAU5iB,EAAOq3B,IAAKh0B,EAAM,aAQ3E,KAAM8a,EAAQ,EAAW3a,EAAR2a,EAAgBA,IAChC9a,EAAOkS,EAAU4I,GACX9a,EAAK0I,QAGLwrB,GAA+B,SAAvBl0B,EAAK0I,MAAM6W,SAA6C,KAAvBvf,EAAK0I,MAAM6W,UACzDvf,EAAK0I,MAAM6W,QAAU2U,EAAOzX,EAAQ3B,IAAW,GAAK,QAItD,OAAO5I,GAGRvV,EAAOsB,GAAG0E,QACTqxB,IAAK,SAAUjxB,EAAMiE,GACpB,MAAOrK,GAAOqL,OAAQ/H,KAAM,SAAUD,EAAM+C,EAAMiE,GACjD,GAAI3E,GAAKgyB,EACR9xB,KACAH,EAAI,CAEL,IAAKzF,EAAOyG,QAASL,GAAS,CAI7B,IAHAsxB,EAAS9B,GAAWvyB,GACpBqC,EAAMU,EAAK5C,OAECkC,EAAJD,EAASA,IAChBG,EAAKQ,EAAMX,IAAQzF,EAAOq3B,IAAKh0B,EAAM+C,EAAMX,IAAK,EAAOiyB,EAGxD,OAAO9xB,GAGR,MAAOyE,KAAU9K,EAChBS,EAAO+L,MAAO1I,EAAM+C,EAAMiE,GAC1BrK,EAAOq3B,IAAKh0B,EAAM+C,IACjBA,EAAMiE,EAAOhF,UAAU7B,OAAS,IAEpC+zB,KAAM,WACL,MAAOD,IAAUh0B,MAAM,IAExBq0B,KAAM,WACL,MAAOL,IAAUh0B,OAElBs0B,OAAQ,SAAUnZ,GACjB,GAAIpP,GAAwB,iBAAVoP,EAElB,OAAOnb,MAAKyB,KAAK,YACXsK,EAAOoP,EAAQ0Y,GAAU7zB,OAC7BtD,EAAQsD,MAAOi0B,OAEfv3B,EAAQsD,MAAOq0B,YAMnB33B,EAAOgG,QAGN6xB,UACChX,SACCpc,IAAK,SAAUpB,EAAMy0B,GACpB,GAAKA,EAAW,CAEf,GAAIjzB,GAAMgxB,GAAQxyB,EAAM,UACxB,OAAe,KAARwB,EAAa,IAAMA,MAO9BkzB,WACCC,aAAe,EACfC,aAAe,EACfpB,YAAc,EACdqB,YAAc,EACdrX,SAAW,EACXsX,SAAW,EACXC,QAAU,EACVC,QAAU,EACVvV,MAAQ,GAKTwV,UAECC,QAASv4B,EAAOmI,QAAQ2Y,SAAW,WAAa,cAIjD/U,MAAO,SAAU1I,EAAM+C,EAAMiE,EAAOmuB,GAEnC,GAAMn1B,GAA0B,IAAlBA,EAAKQ,UAAoC,IAAlBR,EAAKQ,UAAmBR,EAAK0I,MAAlE,CAKA,GAAIlH,GAAKlC,EAAMgiB,EACduS,EAAWl3B,EAAOiK,UAAW7D,GAC7B2F,EAAQ1I,EAAK0I,KASd,IAPA3F,EAAOpG,EAAOs4B,SAAUpB,KAAgBl3B,EAAOs4B,SAAUpB,GAAaF,GAAgBjrB,EAAOmrB,IAI7FvS,EAAQ3kB,EAAO63B,SAAUzxB,IAAUpG,EAAO63B,SAAUX,GAG/C7sB,IAAU9K,EAsCd,MAAKolB,IAAS,OAASA,KAAU9f,EAAM8f,EAAMlgB,IAAKpB,GAAM,EAAOm1B,MAAaj5B,EACpEsF,EAIDkH,EAAO3F,EAhCd,IAVAzD,QAAc0H,GAGA,WAAT1H,IAAsBkC,EAAMwxB,GAAQ5yB,KAAM4G,MAC9CA,GAAUxF,EAAI,GAAK,GAAMA,EAAI,GAAKiD,WAAY9H,EAAOq3B,IAAKh0B,EAAM+C,IAEhEzD,EAAO,YAIM,MAAT0H,GAA0B,WAAT1H,GAAqBkF,MAAOwC,KAKpC,WAAT1H,GAAsB3C,EAAO+3B,UAAWb,KAC5C7sB,GAAS,MAKJrK,EAAOmI,QAAQma,iBAA6B,KAAVjY,GAA+C,IAA/BjE,EAAKvF,QAAQ,gBACpEkL,EAAO3F,GAAS,WAIXue,GAAW,OAASA,KAAWta,EAAQsa,EAAMqC,IAAK3jB,EAAMgH,EAAOmuB,MAAaj5B,IAIjF,IACCwM,EAAO3F,GAASiE,EACf,MAAMnC,OAcXmvB,IAAK,SAAUh0B,EAAM+C,EAAMoyB,EAAOd,GACjC,GAAIhzB,GAAK2N,EAAKsS,EACbuS,EAAWl3B,EAAOiK,UAAW7D,EAyB9B,OAtBAA,GAAOpG,EAAOs4B,SAAUpB,KAAgBl3B,EAAOs4B,SAAUpB,GAAaF,GAAgB3zB,EAAK0I,MAAOmrB,IAIlGvS,EAAQ3kB,EAAO63B,SAAUzxB,IAAUpG,EAAO63B,SAAUX,GAG/CvS,GAAS,OAASA,KACtBtS,EAAMsS,EAAMlgB,IAAKpB,GAAM,EAAMm1B,IAIzBnmB,IAAQ9S,IACZ8S,EAAMwjB,GAAQxyB,EAAM+C,EAAMsxB,IAId,WAARrlB,GAAoBjM,IAAQuwB,MAChCtkB,EAAMskB,GAAoBvwB,IAIZ,KAAVoyB,GAAgBA,GACpB9zB,EAAMoD,WAAYuK,GACXmmB,KAAU,GAAQx4B,EAAO4H,UAAWlD,GAAQA,GAAO,EAAI2N,GAExDA,KAMJ/S,EAAO2jB,kBACX2S,GAAY,SAAUvyB,GACrB,MAAO/D,GAAO2jB,iBAAkB5f,EAAM,OAGvCwyB,GAAS,SAAUxyB,EAAM+C,EAAMqyB,GAC9B,GAAIvV,GAAOwV,EAAUC,EACpBb,EAAWW,GAAa7C,GAAWvyB,GAGnCwB,EAAMizB,EAAWA,EAASc,iBAAkBxyB,IAAU0xB,EAAU1xB,GAAS7G,EACzEwM,EAAQ1I,EAAK0I,KA8Bd,OA5BK+rB,KAES,KAARjzB,GAAe7E,EAAOmN,SAAU9J,EAAKS,cAAeT,KACxDwB,EAAM7E,EAAO+L,MAAO1I,EAAM+C,IAOtBgwB,GAAUryB,KAAMc,IAASqxB,GAAQnyB,KAAMqC,KAG3C8c,EAAQnX,EAAMmX,MACdwV,EAAW3sB,EAAM2sB,SACjBC,EAAW5sB,EAAM4sB,SAGjB5sB,EAAM2sB,SAAW3sB,EAAM4sB,SAAW5sB,EAAMmX,MAAQre,EAChDA,EAAMizB,EAAS5U,MAGfnX,EAAMmX,MAAQA,EACdnX,EAAM2sB,SAAWA,EACjB3sB,EAAM4sB,SAAWA,IAIZ9zB,IAEGjF,EAASE,gBAAgB+4B,eACpCjD,GAAY,SAAUvyB,GACrB,MAAOA,GAAKw1B,cAGbhD,GAAS,SAAUxyB,EAAM+C,EAAMqyB,GAC9B,GAAIK,GAAMC,EAAIC,EACblB,EAAWW,GAAa7C,GAAWvyB,GACnCwB,EAAMizB,EAAWA,EAAU1xB,GAAS7G,EACpCwM,EAAQ1I,EAAK0I,KAoCd,OAhCY,OAAPlH,GAAekH,GAASA,EAAO3F,KACnCvB,EAAMkH,EAAO3F,IAUTgwB,GAAUryB,KAAMc,KAAUmxB,GAAUjyB,KAAMqC,KAG9C0yB,EAAO/sB,EAAM+sB,KACbC,EAAK11B,EAAK41B,aACVD,EAASD,GAAMA,EAAGD,KAGbE,IACJD,EAAGD,KAAOz1B,EAAKw1B,aAAaC,MAE7B/sB,EAAM+sB,KAAgB,aAAT1yB,EAAsB,MAAQvB,EAC3CA,EAAMkH,EAAMmtB,UAAY,KAGxBntB,EAAM+sB,KAAOA,EACRE,IACJD,EAAGD,KAAOE,IAIG,KAARn0B,EAAa,OAASA,GAI/B,SAASs0B,IAAmB91B,EAAMgH,EAAO+uB,GACxC,GAAIlsB,GAAUipB,GAAU1yB,KAAM4G,EAC9B,OAAO6C,GAENvG,KAAKiE,IAAK,EAAGsC,EAAS,IAAQksB,GAAY,KAAUlsB,EAAS,IAAO,MACpE7C,EAGF,QAASgvB,IAAsBh2B,EAAM+C,EAAMoyB,EAAOc,EAAa5B,GAC9D,GAAIjyB,GAAI+yB,KAAYc,EAAc,SAAW,WAE5C,EAES,UAATlzB,EAAmB,EAAI,EAEvBiM,EAAM,CAEP,MAAY,EAAJ5M,EAAOA,GAAK,EAEJ,WAAV+yB,IACJnmB,GAAOrS,EAAOq3B,IAAKh0B,EAAMm1B,EAAQ1B,GAAWrxB,IAAK,EAAMiyB,IAGnD4B,GAEW,YAAVd,IACJnmB,GAAOrS,EAAOq3B,IAAKh0B,EAAM,UAAYyzB,GAAWrxB,IAAK,EAAMiyB,IAI7C,WAAVc,IACJnmB,GAAOrS,EAAOq3B,IAAKh0B,EAAM,SAAWyzB,GAAWrxB,GAAM,SAAS,EAAMiyB,MAIrErlB,GAAOrS,EAAOq3B,IAAKh0B,EAAM,UAAYyzB,GAAWrxB,IAAK,EAAMiyB,GAG5C,YAAVc,IACJnmB,GAAOrS,EAAOq3B,IAAKh0B,EAAM,SAAWyzB,GAAWrxB,GAAM,SAAS,EAAMiyB,IAKvE,OAAOrlB,GAGR,QAASknB,IAAkBl2B,EAAM+C,EAAMoyB,GAGtC,GAAIgB,IAAmB,EACtBnnB,EAAe,UAATjM,EAAmB/C,EAAK2f,YAAc3f,EAAKsf,aACjD+U,EAAS9B,GAAWvyB,GACpBi2B,EAAct5B,EAAOmI,QAAQ4a,WAAgE,eAAnD/iB,EAAOq3B,IAAKh0B,EAAM,aAAa,EAAOq0B,EAKjF,IAAY,GAAPrlB,GAAmB,MAAPA,EAAc,CAQ9B,GANAA,EAAMwjB,GAAQxyB,EAAM+C,EAAMsxB,IACf,EAANrlB,GAAkB,MAAPA,KACfA,EAAMhP,EAAK0I,MAAO3F,IAIdgwB,GAAUryB,KAAKsO,GACnB,MAAOA,EAKRmnB,GAAmBF,IAAiBt5B,EAAOmI,QAAQwZ,mBAAqBtP,IAAQhP,EAAK0I,MAAO3F,IAG5FiM,EAAMvK,WAAYuK,IAAS,EAI5B,MAASA,GACRgnB,GACCh2B,EACA+C,EACAoyB,IAAWc,EAAc,SAAW,WACpCE,EACA9B,GAEE,KAIL,QAASD,IAAoBttB,GAC5B,GAAIqJ,GAAM5T,EACTgjB,EAAU0T,GAAansB,EA0BxB,OAxBMyY,KACLA,EAAU6W,GAAetvB,EAAUqJ,GAGlB,SAAZoP,GAAuBA,IAE3B+S,IAAWA,IACV31B,EAAO,kDACNq3B,IAAK,UAAW,6BAChB/C,SAAU9gB,EAAI1T,iBAGhB0T,GAAQmiB,GAAO,GAAGvF,eAAiBuF,GAAO,GAAGxF,iBAAkBvwB,SAC/D4T,EAAIkmB,MAAM,+BACVlmB,EAAImmB,QAEJ/W,EAAU6W,GAAetvB,EAAUqJ,GACnCmiB,GAAO9yB,UAIRyzB,GAAansB,GAAayY,GAGpBA,EAIR,QAAS6W,IAAerzB,EAAMoN,GAC7B,GAAInQ,GAAOrD,EAAQwT,EAAI3K,cAAezC,IAASkuB,SAAU9gB,EAAIpM,MAC5Dwb,EAAU5iB,EAAOq3B,IAAKh0B,EAAK,GAAI,UAEhC,OADAA,GAAK0F,SACE6Z,EAGR5iB,EAAO+E,MAAO,SAAU,SAAW,SAAUU,EAAGW,GAC/CpG,EAAO63B,SAAUzxB,IAChB3B,IAAK,SAAUpB,EAAMy0B,EAAUU,GAC9B,MAAKV,GAGwB,IAArBz0B,EAAK2f,aAAqBiT,GAAalyB,KAAM/D,EAAOq3B,IAAKh0B,EAAM,YACrErD,EAAO6L,KAAMxI,EAAMmzB,GAAS,WAC3B,MAAO+C,IAAkBl2B,EAAM+C,EAAMoyB,KAEtCe,GAAkBl2B,EAAM+C,EAAMoyB,GAPhC,GAWDxR,IAAK,SAAU3jB,EAAMgH,EAAOmuB,GAC3B,GAAId,GAASc,GAAS5C,GAAWvyB,EACjC,OAAO81B,IAAmB91B,EAAMgH,EAAOmuB,EACtCa,GACCh2B,EACA+C,EACAoyB,EACAx4B,EAAOmI,QAAQ4a,WAAgE,eAAnD/iB,EAAOq3B,IAAKh0B,EAAM,aAAa,EAAOq0B,GAClEA,GACG,OAMF13B,EAAOmI,QAAQ0Y,UACpB7gB,EAAO63B,SAAShX,SACfpc,IAAK,SAAUpB,EAAMy0B,GAEpB,MAAO/B,IAAShyB,MAAO+zB,GAAYz0B,EAAKw1B,aAAex1B,EAAKw1B,aAAa1kB,OAAS9Q,EAAK0I,MAAMoI,SAAW,IACrG,IAAOrM,WAAYyG,OAAOqrB,IAAS,GACrC9B,EAAW,IAAM,IAGnB9Q,IAAK,SAAU3jB,EAAMgH,GACpB,GAAI0B,GAAQ1I,EAAK0I,MAChB8sB,EAAex1B,EAAKw1B,aACpBhY,EAAU7gB,EAAO4H,UAAWyC,GAAU,iBAA2B,IAARA,EAAc,IAAM,GAC7E8J,EAAS0kB,GAAgBA,EAAa1kB,QAAUpI,EAAMoI,QAAU,EAIjEpI,GAAM+W,KAAO,GAINzY,GAAS,GAAe,KAAVA,IAC6B,KAAhDrK,EAAOmB,KAAMgT,EAAOtN,QAASivB,GAAQ,MACrC/pB,EAAMoF,kBAKPpF,EAAMoF,gBAAiB,UAGR,KAAV9G,GAAgBwuB,IAAiBA,EAAa1kB,UAMpDpI,EAAMoI,OAAS2hB,GAAO/xB,KAAMoQ,GAC3BA,EAAOtN,QAASivB,GAAQjV,GACxB1M,EAAS,IAAM0M,MAOnB7gB,EAAO,WACAA,EAAOmI,QAAQuZ,sBACpB1hB,EAAO63B,SAAS1U,aACf1e,IAAK,SAAUpB,EAAMy0B,GACpB,MAAKA,GAGG93B,EAAO6L,KAAMxI,GAAQuf,QAAW,gBACtCiT,IAAUxyB,EAAM,gBAJlB,MAaGrD,EAAOmI,QAAQoZ,eAAiBvhB,EAAOsB,GAAGm1B,UAC/Cz2B,EAAO+E,MAAQ,MAAO,QAAU,SAAUU,EAAGygB,GAC5ClmB,EAAO63B,SAAU3R,IAChBzhB,IAAK,SAAUpB,EAAMy0B,GACpB,MAAKA,IACJA,EAAWjC,GAAQxyB,EAAM6iB,GAElBkQ,GAAUryB,KAAM+zB,GACtB93B,EAAQqD,GAAOozB,WAAYvQ,GAAS,KACpC4R,GALF,QAcA93B,EAAOsV,MAAQtV,EAAOsV,KAAKuH,UAC/B7c,EAAOsV,KAAKuH,QAAQ2a,OAAS,SAAUn0B,GAGtC,MAA2B,IAApBA,EAAK2f,aAAyC,GAArB3f,EAAKsf,eAClC3iB,EAAOmI,QAAQ0a,uBAAmG,UAAxExf,EAAK0I,OAAS1I,EAAK0I,MAAM6W,SAAY5iB,EAAOq3B,IAAKh0B,EAAM,aAGrGrD,EAAOsV,KAAKuH,QAAQgd,QAAU,SAAUx2B,GACvC,OAAQrD,EAAOsV,KAAKuH,QAAQ2a,OAAQn0B,KAKtCrD,EAAO+E,MACN+0B,OAAQ,GACRC,QAAS,GACTC,OAAQ,SACN,SAAUC,EAAQC,GACpBl6B,EAAO63B,SAAUoC,EAASC,IACzBC,OAAQ,SAAU9vB,GACjB,GAAI5E,GAAI,EACP20B,KAGAC,EAAyB,gBAAVhwB,GAAqBA,EAAMiC,MAAM,MAASjC,EAE1D,MAAY,EAAJ5E,EAAOA,IACd20B,EAAUH,EAASnD,GAAWrxB,GAAMy0B,GACnCG,EAAO50B,IAAO40B,EAAO50B,EAAI,IAAO40B,EAAO,EAGzC,OAAOD,KAIHlE,GAAQnyB,KAAMk2B,KACnBj6B,EAAO63B,SAAUoC,EAASC,GAASlT,IAAMmS,KAG3C,IAAImB,IAAM,OACTC,GAAW,QACXC,GAAQ,SACRC,GAAkB,wCAClBC,GAAe,oCAEhB16B,GAAOsB,GAAG0E,QACT20B,UAAW,WACV,MAAO36B,GAAO4xB,MAAOtuB,KAAKs3B,mBAE3BA,eAAgB,WACf,MAAOt3B,MAAKsC,IAAI,WAEf,GAAI2P,GAAWvV,EAAOkmB,KAAM5iB,KAAM,WAClC,OAAOiS,GAAWvV,EAAOsE,UAAWiR,GAAajS,OAEjD6Q,OAAO,WACP,GAAIxR,GAAOW,KAAKX,IAEhB,OAAOW,MAAK8C,OAASpG,EAAQsD,MAAOgsB,GAAI,cACvCoL,GAAa32B,KAAMT,KAAK6G,YAAeswB,GAAgB12B,KAAMpB,KAC3DW,KAAKqV,UAAYyY,GAA4BrtB,KAAMpB,MAEtDiD,IAAI,SAAUH,EAAGpC,GACjB,GAAIgP,GAAMrS,EAAQsD,MAAO+O,KAEzB,OAAc,OAAPA,EACN,KACArS,EAAOyG,QAAS4L,GACfrS,EAAO4F,IAAKyM,EAAK,SAAUA,GAC1B,OAASjM,KAAM/C,EAAK+C,KAAMiE,MAAOgI,EAAIxL,QAAS2zB,GAAO,YAEpDp0B,KAAM/C,EAAK+C,KAAMiE,MAAOgI,EAAIxL,QAAS2zB,GAAO,WAC9C/1B,SAMLzE,EAAO4xB,MAAQ,SAAUhf,EAAGioB,GAC3B,GAAIZ,GACHa,KACA5c,EAAM,SAAUjW,EAAKoC,GAEpBA,EAAQrK,EAAOiE,WAAYoG,GAAUA,IAAqB,MAATA,EAAgB,GAAKA,EACtEywB,EAAGA,EAAEt3B,QAAWu3B,mBAAoB9yB,GAAQ,IAAM8yB,mBAAoB1wB,GASxE,IALKwwB,IAAgBt7B,IACpBs7B,EAAc76B,EAAOg7B,cAAgBh7B,EAAOg7B,aAAaH,aAIrD76B,EAAOyG,QAASmM,IAASA,EAAE1P,SAAWlD,EAAOgE,cAAe4O,GAEhE5S,EAAO+E,KAAM6N,EAAG,WACfsL,EAAK5a,KAAK8C,KAAM9C,KAAK+G,aAMtB,KAAM4vB,IAAUrnB,GACfqoB,GAAahB,EAAQrnB,EAAGqnB,GAAUY,EAAa3c,EAKjD,OAAO4c,GAAE9pB,KAAM,KAAMnK,QAASyzB,GAAK,KAGpC,SAASW,IAAahB,EAAQxyB,EAAKozB,EAAa3c,GAC/C,GAAI9X,EAEJ,IAAKpG,EAAOyG,QAASgB,GAEpBzH,EAAO+E,KAAM0C,EAAK,SAAUhC,EAAGy1B,GACzBL,GAAeN,GAASx2B,KAAMk2B,GAElC/b,EAAK+b,EAAQiB,GAIbD,GAAahB,EAAS,KAAqB,gBAANiB,GAAiBz1B,EAAI,IAAO,IAAKy1B,EAAGL,EAAa3c,SAIlF,IAAM2c,GAAsC,WAAvB76B,EAAO2C,KAAM8E,GAQxCyW,EAAK+b,EAAQxyB,OANb,KAAMrB,IAAQqB,GACbwzB,GAAahB,EAAS,IAAM7zB,EAAO,IAAKqB,EAAKrB,GAAQy0B,EAAa3c,GAQrEle,EAAO+E,KAAM,0MAEqDuH,MAAM,KAAM,SAAU7G,EAAGW,GAG1FpG,EAAOsB,GAAI8E,GAAS,SAAUqC,EAAMnH,GACnC,MAAO+D,WAAU7B,OAAS,EACzBF,KAAKorB,GAAItoB,EAAM,KAAMqC,EAAMnH,GAC3BgC,KAAKiE,QAASnB,MAIjBpG,EAAOsB,GAAG0E,QACTm1B,MAAO,SAAUC,EAAQC,GACxB,MAAO/3B,MAAKwqB,WAAYsN,GAASrN,WAAYsN,GAASD,IAGvDE,KAAM,SAAUzS,EAAOpgB,EAAMnH,GAC5B,MAAOgC,MAAKorB,GAAI7F,EAAO,KAAMpgB,EAAMnH,IAEpCi6B,OAAQ,SAAU1S,EAAOvnB,GACxB,MAAOgC,MAAKkE,IAAKqhB,EAAO,KAAMvnB,IAG/Bk6B,SAAU,SAAUp6B,EAAUynB,EAAOpgB,EAAMnH,GAC1C,MAAOgC,MAAKorB,GAAI7F,EAAOznB,EAAUqH,EAAMnH,IAExCm6B,WAAY,SAAUr6B,EAAUynB,EAAOvnB,GAEtC,MAA4B,KAArB+D,UAAU7B,OAAeF,KAAKkE,IAAKpG,EAAU,MAASkC,KAAKkE,IAAKqhB,EAAOznB,GAAY,KAAME,KAGlG,IAECo6B,IACAC,GACAC,GAAa57B,EAAO0L,MAEpBmwB,GAAc,KACdC,GAAQ,OACRC,GAAM,gBACNC,GAAW,gCAEXC,GAAiB,4DACjBC,GAAa,iBACbC,GAAY,QACZC,GAAO,8CAGPC,GAAQr8B,EAAOsB,GAAG4rB,KAWlBoP,MAOAC,MAGAC,GAAW,KAAKj8B,OAAO,IAIxB,KACCo7B,GAAeh8B,EAAS4Y,KACvB,MAAOrQ,IAGRyzB,GAAe/7B,EAASiJ,cAAe,KACvC8yB,GAAapjB,KAAO,GACpBojB,GAAeA,GAAapjB,KAI7BmjB,GAAeU,GAAK34B,KAAMk4B,GAAavxB,kBAGvC,SAASqyB,IAA6BC,GAGrC,MAAO,UAAUC,EAAoBpe,GAED,gBAAvBoe,KACXpe,EAAOoe,EACPA,EAAqB,IAGtB,IAAIrH,GACH7vB,EAAI,EACJm3B,EAAYD,EAAmBvyB,cAAchH,MAAO1B,MAErD,IAAK1B,EAAOiE,WAAYsa,GAEvB,MAAS+W,EAAWsH,EAAUn3B,KAER,MAAhB6vB,EAAS,IACbA,EAAWA,EAAS30B,MAAO,IAAO,KACjC+7B,EAAWpH,GAAaoH,EAAWpH,QAAkBjgB,QAASkJ,KAI9Dme,EAAWpH,GAAaoH,EAAWpH,QAAkB70B,KAAM8d,IAQjE,QAASse,IAA+BH,EAAWr2B,EAASy2B,EAAiBC,GAE5E,GAAIC,MACHC,EAAqBP,IAAcH,EAEpC,SAASW,GAAS5H,GACjB,GAAI1c,EAYJ,OAXAokB,GAAW1H,IAAa,EACxBt1B,EAAO+E,KAAM23B,EAAWpH,OAAkB,SAAUzlB,EAAGstB,GACtD,GAAIC,GAAsBD,EAAoB92B,EAASy2B,EAAiBC,EACxE,OAAmC,gBAAxBK,IAAqCH,GAAqBD,EAAWI,GAIpEH,IACDrkB,EAAWwkB,GADf,GAHN/2B,EAAQu2B,UAAUvnB,QAAS+nB,GAC3BF,EAASE,IACF,KAKFxkB,EAGR,MAAOskB,GAAS72B,EAAQu2B,UAAW,MAAUI,EAAW,MAASE,EAAS,KAM3E,QAASG,IAAY92B,EAAQN,GAC5B,GAAIO,GAAMyB,EACTq1B,EAAct9B,EAAOg7B,aAAasC,eAEnC,KAAMr1B,IAAOhC,GACPA,EAAKgC,KAAU1I,KACjB+9B,EAAar1B,GAAQ1B,EAAWC,IAASA,OAAgByB,GAAQhC,EAAKgC,GAO1E,OAJKzB,IACJxG,EAAOgG,QAAQ,EAAMO,EAAQC,GAGvBD,EAGRvG,EAAOsB,GAAG4rB,KAAO,SAAUkI,EAAKmI,EAAQv4B,GACvC,GAAoB,gBAARowB,IAAoBiH,GAC/B,MAAOA,IAAMj3B,MAAO9B,KAAM+B,UAG3B,IAAIjE,GAAUo8B,EAAU76B,EACvBqb,EAAO1a,KACPkE,EAAM4tB,EAAIv0B,QAAQ,IA+CnB,OA7CK2G,IAAO,IACXpG,EAAWg0B,EAAIz0B,MAAO6G,EAAK4tB,EAAI5xB,QAC/B4xB,EAAMA,EAAIz0B,MAAO,EAAG6G,IAIhBxH,EAAOiE,WAAYs5B,IAGvBv4B,EAAWu4B,EACXA,EAASh+B,GAGEg+B,GAA4B,gBAAXA,KAC5B56B,EAAO,QAIHqb,EAAKxa,OAAS,GAClBxD,EAAOq1B,MACND,IAAKA,EAGLzyB,KAAMA,EACN2yB,SAAU,OACV7sB,KAAM80B,IACJp4B,KAAK,SAAUs4B,GAGjBD,EAAWn4B,UAEX2Y,EAAKqV,KAAMjyB,EAIVpB,EAAO,SAASwyB,OAAQxyB,EAAO4D,UAAW65B,IAAiB/5B,KAAMtC,GAGjEq8B,KAECC,SAAU14B,GAAY,SAAU+3B,EAAOY,GACzC3f,EAAKjZ,KAAMC,EAAUw4B,IAAcT,EAAMU,aAAcE,EAAQZ,MAI1Dz5B,MAIRtD,EAAO+E,MAAQ,YAAa,WAAY,eAAgB,YAAa,cAAe,YAAc,SAAUU,EAAG9C,GAC9G3C,EAAOsB,GAAIqB,GAAS,SAAUrB,GAC7B,MAAOgC,MAAKorB,GAAI/rB,EAAMrB,MAIxBtB,EAAOgG,QAGN43B,OAAQ,EAGRC,gBACAC,QAEA9C,cACC5F,IAAKuG,GACLh5B,KAAM,MACNo7B,QAAS9B,GAAel4B,KAAM23B,GAAc,IAC5C9S,QAAQ,EACRoV,aAAa,EACbr0B,OAAO,EACPs0B,YAAa,mDAabC,SACCC,IAAK3B,GACLjyB,KAAM,aACN8oB,KAAM,YACN/pB,IAAK,4BACL80B,KAAM,qCAGPlP,UACC5lB,IAAK,MACL+pB,KAAM,OACN+K,KAAM,QAGPC,gBACC/0B,IAAK,cACLiB,KAAM,eACN6zB,KAAM,gBAKPE,YAGCC,SAAUv2B,OAGVw2B,aAAa,EAGbC,YAAaz+B,EAAOiJ,UAGpBy1B,WAAY1+B,EAAOqJ,UAOpBi0B,aACClI,KAAK,EACL/zB,SAAS,IAOXs9B,UAAW,SAAUp4B,EAAQq4B,GAC5B,MAAOA,GAGNvB,GAAYA,GAAY92B,EAAQvG,EAAOg7B,cAAgB4D,GAGvDvB,GAAYr9B,EAAOg7B,aAAcz0B,IAGnCs4B,cAAepC,GAA6BH,IAC5CwC,cAAerC,GAA6BF,IAG5ClH,KAAM,SAAUD,EAAK/uB,GAGA,gBAAR+uB,KACX/uB,EAAU+uB,EACVA,EAAM71B,GAIP8G,EAAUA,KAEV,IACCg0B,GAEA50B,EAEAs5B,EAEAC,EAEAC,EAGAC,EAEAC,EAEAC,EAEAtE,EAAI96B,EAAO2+B,aAAet4B,GAE1Bg5B,EAAkBvE,EAAEz5B,SAAWy5B,EAE/BwE,EAAqBxE,EAAEz5B,UAAag+B,EAAgBx7B,UAAYw7B,EAAgBn8B,QAC/ElD,EAAQq/B,GACRr/B,EAAOyC,MAERkc,EAAW3e,EAAOgM,WAClBuzB,EAAmBv/B,EAAOod,UAAU,eAEpCoiB,EAAa1E,EAAE0E,eAEfC,KACAC,KAEAjhB,EAAQ,EAERkhB,EAAW,WAEX5C,GACCn6B,WAAY,EAGZg9B,kBAAmB,SAAU33B,GAC5B,GAAI7E,EACJ,IAAe,IAAVqb,EAAc,CAClB,IAAM2gB,EAAkB,CACvBA,IACA,OAASh8B,EAAQ44B,GAASv4B,KAAMu7B,GAC/BI,EAAiBh8B,EAAM,GAAGgH,eAAkBhH,EAAO,GAGrDA,EAAQg8B,EAAiBn3B,EAAImC,eAE9B,MAAgB,OAAThH,EAAgB,KAAOA,GAI/By8B,sBAAuB,WACtB,MAAiB,KAAVphB,EAAcugB,EAAwB,MAI9Cc,iBAAkB,SAAU15B,EAAMiE,GACjC,GAAI01B,GAAQ35B,EAAKgE,aAKjB,OAJMqU,KACLrY,EAAOs5B,EAAqBK,GAAUL,EAAqBK,IAAW35B,EACtEq5B,EAAgBr5B,GAASiE,GAEnB/G,MAIR08B,iBAAkB,SAAUr9B,GAI3B,MAHM8b,KACLqc,EAAEmF,SAAWt9B,GAEPW,MAIRk8B,WAAY,SAAU55B,GACrB,GAAIs6B,EACJ,IAAKt6B,EACJ,GAAa,EAAR6Y,EACJ,IAAMyhB,IAAQt6B,GAEb45B,EAAYU,IAAWV,EAAYU,GAAQt6B,EAAKs6B,QAIjDnD,GAAMre,OAAQ9Y,EAAKm3B,EAAMY,QAG3B,OAAOr6B,OAIR68B,MAAO,SAAUC,GAChB,GAAIC,GAAYD,GAAcT,CAK9B,OAJKR,IACJA,EAAUgB,MAAOE,GAElBl7B,EAAM,EAAGk7B,GACF/8B,MAwCV,IAnCAqb,EAASzZ,QAAS63B,GAAQW,SAAW6B,EAAiBrhB,IACtD6e,EAAMuD,QAAUvD,EAAM53B,KACtB43B,EAAMz0B,MAAQy0B,EAAMne,KAMpBkc,EAAE1F,MAAUA,GAAO0F,EAAE1F,KAAOuG,IAAiB,IAAK90B,QAASi1B,GAAO,IAAKj1B,QAASs1B,GAAWT,GAAc,GAAM,MAG/GZ,EAAEn4B,KAAO0D,EAAQk6B,QAAUl6B,EAAQ1D,MAAQm4B,EAAEyF,QAAUzF,EAAEn4B,KAGzDm4B,EAAE8B,UAAY58B,EAAOmB,KAAM25B,EAAExF,UAAY,KAAMlrB,cAAchH,MAAO1B,KAAqB,IAGnE,MAAjBo5B,EAAE0F,cACNnG,EAAQ+B,GAAK34B,KAAMq3B,EAAE1F,IAAIhrB,eACzB0wB,EAAE0F,eAAkBnG,GACjBA,EAAO,KAAQqB,GAAc,IAAOrB,EAAO,KAAQqB,GAAc,KAChErB,EAAO,KAAwB,UAAfA,EAAO,GAAkB,KAAO,WAC/CqB,GAAc,KAA+B,UAAtBA,GAAc,GAAkB,KAAO,UAK/DZ,EAAEryB,MAAQqyB,EAAEkD,aAAiC,gBAAXlD,GAAEryB,OACxCqyB,EAAEryB,KAAOzI,EAAO4xB,MAAOkJ,EAAEryB,KAAMqyB,EAAED,cAIlCgC,GAA+BP,GAAYxB,EAAGz0B,EAAS02B,GAGxC,IAAVte,EACJ,MAAOse,EAIRmC,GAAcpE,EAAElS,OAGXsW,GAAmC,IAApBl/B,EAAO49B,UAC1B59B,EAAOyC,MAAM8E,QAAQ,aAItBuzB,EAAEn4B,KAAOm4B,EAAEn4B,KAAKJ,cAGhBu4B,EAAE2F,YAAcvE,GAAWn4B,KAAM+2B,EAAEn4B,MAInCo8B,EAAWjE,EAAE1F,IAGP0F,EAAE2F,aAGF3F,EAAEryB,OACNs2B,EAAajE,EAAE1F,MAASyG,GAAY93B,KAAMg7B,GAAa,IAAM,KAAQjE,EAAEryB,WAEhEqyB,GAAEryB,MAILqyB,EAAEvpB,SAAU,IAChBupB,EAAE1F,IAAM2G,GAAIh4B,KAAMg7B,GAGjBA,EAASl4B,QAASk1B,GAAK,OAASH,MAGhCmD,GAAalD,GAAY93B,KAAMg7B,GAAa,IAAM,KAAQ,KAAOnD,OAK/Dd,EAAE4F,aACD1gC,EAAO69B,aAAckB,IACzBhC,EAAM+C,iBAAkB,oBAAqB9/B,EAAO69B,aAAckB,IAE9D/+B,EAAO89B,KAAMiB,IACjBhC,EAAM+C,iBAAkB,gBAAiB9/B,EAAO89B,KAAMiB,MAKnDjE,EAAEryB,MAAQqyB,EAAE2F,YAAc3F,EAAEmD,eAAgB,GAAS53B,EAAQ43B,cACjElB,EAAM+C,iBAAkB,eAAgBhF,EAAEmD,aAI3ClB,EAAM+C,iBACL,SACAhF,EAAE8B,UAAW,IAAO9B,EAAEoD,QAASpD,EAAE8B,UAAU,IAC1C9B,EAAEoD,QAASpD,EAAE8B,UAAU,KAA8B,MAArB9B,EAAE8B,UAAW,GAAc,KAAOJ,GAAW,WAAa,IAC1F1B,EAAEoD,QAAS,KAIb,KAAMz4B,IAAKq1B,GAAE6F,QACZ5D,EAAM+C,iBAAkBr6B,EAAGq1B,EAAE6F,QAASl7B,GAIvC,IAAKq1B,EAAE8F,aAAgB9F,EAAE8F,WAAWp8B,KAAM66B,EAAiBtC,EAAOjC,MAAQ,GAAmB,IAAVrc,GAElF,MAAOse,GAAMoD,OAIdR,GAAW,OAGX,KAAMl6B,KAAO66B,QAAS,EAAGh4B,MAAO,EAAGo1B,SAAU,GAC5CX,EAAOt3B,GAAKq1B,EAAGr1B,GAOhB,IAHA05B,EAAYtC,GAA+BN,GAAYzB,EAAGz0B,EAAS02B,GAK5D,CACNA,EAAMn6B,WAAa,EAGds8B,GACJI,EAAmB/3B,QAAS,YAAcw1B,EAAOjC,IAG7CA,EAAEnxB,OAASmxB,EAAE1V,QAAU,IAC3B6Z,EAAe53B,WAAW,WACzB01B,EAAMoD,MAAM,YACVrF,EAAE1V,SAGN,KACC3G,EAAQ,EACR0gB,EAAU0B,KAAMpB,EAAgBt6B,GAC/B,MAAQ+C,GAET,KAAa,EAARuW,GAIJ,KAAMvW,EAHN/C,GAAM,GAAI+C,QArBZ/C,GAAM,GAAI,eA8BX,SAASA,GAAMw4B,EAAQmD,EAAkBC,EAAWJ,GACnD,GAAIK,GAAWV,EAASh4B,EAAOk1B,EAAUyD,EACxCb,EAAaU,CAGC,KAAVriB,IAKLA,EAAQ,EAGHwgB,GACJ5Z,aAAc4Z,GAKfE,EAAY5/B,EAGZy/B,EAAwB2B,GAAW,GAGnC5D,EAAMn6B,WAAa+6B,EAAS,EAAI,EAAI,EAGpCqD,EAAYrD,GAAU,KAAgB,IAATA,GAA2B,MAAXA,EAGxCoD,IACJvD,EAAW0D,GAAqBpG,EAAGiC,EAAOgE,IAI3CvD,EAAW2D,GAAarG,EAAG0C,EAAUT,EAAOiE,GAGvCA,GAGClG,EAAE4F,aACNO,EAAWlE,EAAM6C,kBAAkB,iBAC9BqB,IACJjhC,EAAO69B,aAAckB,GAAakC,GAEnCA,EAAWlE,EAAM6C,kBAAkB,QAC9BqB,IACJjhC,EAAO89B,KAAMiB,GAAakC,IAKZ,MAAXtD,GAA6B,SAAX7C,EAAEn4B,KACxBy9B,EAAa,YAGS,MAAXzC,EACXyC,EAAa,eAIbA,EAAa5C,EAAS/e,MACtB6hB,EAAU9C,EAAS/0B,KACnBH,EAAQk1B,EAASl1B,MACjB04B,GAAa14B,KAKdA,EAAQ83B,GACHzC,IAAWyC,KACfA,EAAa,QACC,EAATzC,IACJA,EAAS,KAMZZ,EAAMY,OAASA,EACfZ,EAAMqD,YAAeU,GAAoBV,GAAe,GAGnDY,EACJriB,EAASrX,YAAa+3B,GAAmBiB,EAASF,EAAYrD,IAE9Dpe,EAASyiB,WAAY/B,GAAmBtC,EAAOqD,EAAY93B,IAI5Dy0B,EAAMyC,WAAYA,GAClBA,EAAajgC,EAER2/B,GACJI,EAAmB/3B,QAASy5B,EAAY,cAAgB,aACrDjE,EAAOjC,EAAGkG,EAAYV,EAAUh4B,IAIpCi3B,EAAiBjhB,SAAU+gB,GAAmBtC,EAAOqD,IAEhDlB,IACJI,EAAmB/3B,QAAS,gBAAkBw1B,EAAOjC,MAE3C96B,EAAO49B,QAChB59B,EAAOyC,MAAM8E,QAAQ,cAKxB,MAAOw1B,IAGRsE,QAAS,SAAUjM,EAAK3sB,EAAMzD,GAC7B,MAAOhF,GAAOyE,IAAK2wB,EAAK3sB,EAAMzD,EAAU,SAGzCs8B,UAAW,SAAUlM,EAAKpwB,GACzB,MAAOhF,GAAOyE,IAAK2wB,EAAK71B,EAAWyF,EAAU,aAI/ChF,EAAO+E,MAAQ,MAAO,QAAU,SAAUU,EAAG86B,GAC5CvgC,EAAQugC,GAAW,SAAUnL,EAAK3sB,EAAMzD,EAAUrC,GAQjD,MANK3C,GAAOiE,WAAYwE,KACvB9F,EAAOA,GAAQqC,EACfA,EAAWyD,EACXA,EAAOlJ,GAGDS,EAAOq1B,MACbD,IAAKA,EACLzyB,KAAM49B,EACNjL,SAAU3yB,EACV8F,KAAMA,EACN63B,QAASt7B,MASZ,SAASk8B,IAAqBpG,EAAGiC,EAAOgE,GACvC,GAAIQ,GAAeC,EAAIC,EAAe9+B,EACrCusB,EAAW4L,EAAE5L,SACb0N,EAAY9B,EAAE8B,SAGf,OAA0B,MAAnBA,EAAW,GACjBA,EAAUnrB,QACL+vB,IAAOjiC,IACXiiC,EAAK1G,EAAEmF,UAAYlD,EAAM6C,kBAAkB,gBAK7C,IAAK4B,EACJ,IAAM7+B,IAAQusB,GACb,GAAKA,EAAUvsB,IAAUusB,EAAUvsB,GAAOoB,KAAMy9B,GAAO,CACtD5E,EAAUvnB,QAAS1S,EACnB,OAMH,GAAKi6B,EAAW,IAAOmE,GACtBU,EAAgB7E,EAAW,OACrB,CAEN,IAAMj6B,IAAQo+B,GAAY,CACzB,IAAMnE,EAAW,IAAO9B,EAAEwD,WAAY37B,EAAO,IAAMi6B,EAAU,IAAO,CACnE6E,EAAgB9+B,CAChB,OAEK4+B,IACLA,EAAgB5+B,GAIlB8+B,EAAgBA,GAAiBF,EAMlC,MAAKE,IACCA,IAAkB7E,EAAW,IACjCA,EAAUvnB,QAASosB,GAEbV,EAAWU,IAJnB,EAWD,QAASN,IAAarG,EAAG0C,EAAUT,EAAOiE,GACzC,GAAIU,GAAOzvB,EAAS0vB,EAAMp4B,EAAK4lB,EAC9BmP,KAEA1B,EAAY9B,EAAE8B,UAAUj8B,OAGzB,IAAKi8B,EAAW,GACf,IAAM+E,IAAQ7G,GAAEwD,WACfA,EAAYqD,EAAKv3B,eAAkB0wB,EAAEwD,WAAYqD,EAInD1vB,GAAU2qB,EAAUnrB,OAGpB,OAAQQ,EAcP,GAZK6oB,EAAEuD,eAAgBpsB,KACtB8qB,EAAOjC,EAAEuD,eAAgBpsB,IAAcurB,IAIlCrO,GAAQ6R,GAAalG,EAAE8G,aAC5BpE,EAAW1C,EAAE8G,WAAYpE,EAAU1C,EAAExF,WAGtCnG,EAAOld,EACPA,EAAU2qB,EAAUnrB,QAKnB,GAAiB,MAAZQ,EAEJA,EAAUkd,MAGJ,IAAc,MAATA,GAAgBA,IAASld,EAAU,CAM9C,GAHA0vB,EAAOrD,EAAYnP,EAAO,IAAMld,IAAaqsB,EAAY,KAAOrsB,IAG1D0vB,EACL,IAAMD,IAASpD,GAId,GADA/0B,EAAMm4B,EAAMp1B,MAAO,KACd/C,EAAK,KAAQ0I,IAGjB0vB,EAAOrD,EAAYnP,EAAO,IAAM5lB,EAAK,KACpC+0B,EAAY,KAAO/0B,EAAK,KACb,CAENo4B,KAAS,EACbA,EAAOrD,EAAYoD,GAGRpD,EAAYoD,MAAY,IACnCzvB,EAAU1I,EAAK,GACfqzB,EAAUvnB,QAAS9L,EAAK,IAEzB,OAOJ,GAAKo4B,KAAS,EAGb,GAAKA,GAAQ7G,EAAG,UACf0C,EAAWmE,EAAMnE,OAEjB,KACCA,EAAWmE,EAAMnE,GAChB,MAAQt1B,GACT,OAASuW,MAAO,cAAenW,MAAOq5B,EAAOz5B,EAAI,sBAAwBinB,EAAO,OAASld,IAQ/F,OAASwM,MAAO,UAAWhW,KAAM+0B,GAGlCx9B,EAAO2+B,WACNT,SACC2D,OAAQ,6FAET3S,UACC2S,OAAQ,uBAETvD,YACCwD,cAAe,SAAUv3B,GAExB,MADAvK,GAAO+J,WAAYQ,GACZA,MAMVvK,EAAO6+B,cAAe,SAAU,SAAU/D,GACpCA,EAAEvpB,QAAUhS,IAChBu7B,EAAEvpB,OAAQ,GAENupB,EAAE0F,cACN1F,EAAEn4B,KAAO,MACTm4B,EAAElS,QAAS,KAKb5oB,EAAO8+B,cAAe,SAAU,SAAShE,GAGxC,GAAKA,EAAE0F,YAAc,CAEpB,GAAIqB,GACHE,EAAOniC,EAASmiC,MAAQ/hC,EAAO,QAAQ,IAAMJ,EAASE,eAEvD,QAEC+gC,KAAM,SAAUhxB,EAAG7K,GAElB68B,EAASjiC,EAASiJ,cAAc,UAEhCg5B,EAAOl4B,OAAQ,EAEVmxB,EAAEkH,gBACNH,EAAOI,QAAUnH,EAAEkH,eAGpBH,EAAO57B,IAAM60B,EAAE1F,IAGfyM,EAAOK,OAASL,EAAOM,mBAAqB,SAAUtyB,EAAGuyB,IAEnDA,IAAYP,EAAOj/B,YAAc,kBAAkBmB,KAAM89B,EAAOj/B,eAGpEi/B,EAAOK,OAASL,EAAOM,mBAAqB,KAGvCN,EAAOz9B,YACXy9B,EAAOz9B,WAAWyN,YAAagwB,GAIhCA,EAAS,KAGHO,GACLp9B,EAAU,IAAK,aAOlB+8B,EAAKlP,aAAcgP,EAAQE,EAAKnuB,aAGjCusB,MAAO,WACD0B,GACJA,EAAOK,OAAQ3iC,GAAW,OAM/B,IAAI8iC,OACHC,GAAS,mBAGVtiC,GAAO2+B,WACN4D,MAAO,WACPC,cAAe,WACd,GAAIx9B,GAAWq9B,GAAat0B,OAAW/N,EAAO0G,QAAU,IAAQk1B,IAEhE,OADAt4B,MAAM0B,IAAa,EACZA,KAKThF,EAAO6+B,cAAe,aAAc,SAAU/D,EAAG2H,EAAkB1F,GAElE,GAAI2F,GAAcC,EAAaC,EAC9BC,EAAW/H,EAAEyH,SAAU,IAAWD,GAAOv+B,KAAM+2B,EAAE1F,KAChD,MACkB,gBAAX0F,GAAEryB,QAAwBqyB,EAAEmD,aAAe,IAAKp9B,QAAQ,sCAAwCyhC,GAAOv+B,KAAM+2B,EAAEryB,OAAU,OAIlI,OAAKo6B,IAAiC,UAArB/H,EAAE8B,UAAW,IAG7B8F,EAAe5H,EAAE0H,cAAgBxiC,EAAOiE,WAAY62B,EAAE0H,eACrD1H,EAAE0H,gBACF1H,EAAE0H,cAGEK,EACJ/H,EAAG+H,GAAa/H,EAAG+H,GAAWh8B,QAASy7B,GAAQ,KAAOI,GAC3C5H,EAAEyH,SAAU,IACvBzH,EAAE1F,MAASyG,GAAY93B,KAAM+2B,EAAE1F,KAAQ,IAAM,KAAQ0F,EAAEyH,MAAQ,IAAMG,GAItE5H,EAAEwD,WAAW,eAAiB,WAI7B,MAHMsE,IACL5iC,EAAOsI,MAAOo6B,EAAe,mBAEvBE,EAAmB,IAI3B9H,EAAE8B,UAAW,GAAM,OAGnB+F,EAAcrjC,EAAQojC,GACtBpjC,EAAQojC,GAAiB,WACxBE,EAAoBv9B,WAIrB03B,EAAMre,OAAO,WAEZpf,EAAQojC,GAAiBC,EAGpB7H,EAAG4H,KAEP5H,EAAE0H,cAAgBC,EAAiBD,cAGnCH,GAAa5hC,KAAMiiC,IAIfE,GAAqB5iC,EAAOiE,WAAY0+B,IAC5CA,EAAaC,EAAmB,IAGjCA,EAAoBD,EAAcpjC,IAI5B,UAtDR,GAyDD,IAAIujC,IAAcC,GACjBC,GAAQ,EAERC,GAAmB3jC,EAAOoK,eAAiB,WAE1C,GAAIzB,EACJ,KAAMA,IAAO66B,IACZA,GAAc76B,GAAO1I,GAAW,GAKnC,SAAS2jC,MACR,IACC,MAAO,IAAI5jC,GAAO6jC,eACjB,MAAOj7B,KAGV,QAASk7B,MACR,IACC,MAAO,IAAI9jC,GAAOoK,cAAc,qBAC/B,MAAOxB,KAKVlI,EAAOg7B,aAAaqI,IAAM/jC,EAAOoK,cAOhC,WACC,OAAQpG,KAAKy6B,SAAWmF,MAAuBE,MAGhDF,GAGDH,GAAe/iC,EAAOg7B,aAAaqI,MACnCrjC,EAAOmI,QAAQm7B,OAASP,IAAkB,mBAAqBA,IAC/DA,GAAe/iC,EAAOmI,QAAQktB,OAAS0N,GAGlCA,IAEJ/iC,EAAO8+B,cAAc,SAAUhE,GAE9B,IAAMA,EAAE0F,aAAexgC,EAAOmI,QAAQm7B,KAAO,CAE5C,GAAIt+B,EAEJ,QACC67B,KAAM,SAAUF,EAASjD,GAGxB,GAAIlU,GAAQ/jB,EACX49B,EAAMvI,EAAEuI,KAWT,IAPKvI,EAAEyI,SACNF,EAAIG,KAAM1I,EAAEn4B,KAAMm4B,EAAE1F,IAAK0F,EAAEnxB,MAAOmxB,EAAEyI,SAAUzI,EAAEthB,UAEhD6pB,EAAIG,KAAM1I,EAAEn4B,KAAMm4B,EAAE1F,IAAK0F,EAAEnxB,OAIvBmxB,EAAE2I,UACN,IAAMh+B,IAAKq1B,GAAE2I,UACZJ,EAAK59B,GAAMq1B,EAAE2I,UAAWh+B,EAKrBq1B,GAAEmF,UAAYoD,EAAIrD,kBACtBqD,EAAIrD,iBAAkBlF,EAAEmF,UAQnBnF,EAAE0F,aAAgBG,EAAQ,sBAC/BA,EAAQ,oBAAsB,iBAI/B,KACC,IAAMl7B,IAAKk7B,GACV0C,EAAIvD,iBAAkBr6B,EAAGk7B,EAASl7B,IAElC,MAAOkjB,IAKT0a,EAAIxC,KAAQ/F,EAAE2F,YAAc3F,EAAEryB,MAAU,MAGxCzD,EAAW,SAAU6K,EAAGuyB,GACvB,GAAIzE,GAAQyB,EAAiBgB,EAAYW,CAKzC,KAGC,GAAK/7B,IAAco9B,GAA8B,IAAnBiB,EAAIzgC,YAcjC,GAXAoC,EAAWzF,EAGNiqB,IACJ6Z,EAAIlB,mBAAqBniC,EAAO8J,KAC3Bm5B,UACGH,IAActZ,IAKlB4Y,EAEoB,IAAnBiB,EAAIzgC,YACRygC,EAAIlD,YAEC,CACNY,KACApD,EAAS0F,EAAI1F,OACbyB,EAAkBiE,EAAIxD,wBAIW,gBAArBwD,GAAI5F,eACfsD,EAAUx2B,KAAO84B,EAAI5F,aAKtB,KACC2C,EAAaiD,EAAIjD,WAChB,MAAOl4B,GAERk4B,EAAa,GAQRzC,IAAU7C,EAAEiD,SAAYjD,EAAE0F,YAGT,OAAX7C,IACXA,EAAS,KAHTA,EAASoD,EAAUx2B,KAAO,IAAM,KAOlC,MAAOm5B,GACFtB,GACL1E,EAAU,GAAIgG,GAKX3C,GACJrD,EAAUC,EAAQyC,EAAYW,EAAW3B,IAIrCtE,EAAEnxB,MAGuB,IAAnB05B,EAAIzgC,WAGfyE,WAAYrC,IAEZwkB,IAAWwZ,GACNC,KAGEH,KACLA,MACA9iC,EAAQV,GAASqkC,OAAQV,KAG1BH,GAActZ,GAAWxkB,GAE1Bq+B,EAAIlB,mBAAqBn9B,GAjBzBA,KAqBFm7B,MAAO,WACDn7B,GACJA,EAAUzF,GAAW,OAO3B,IAAIqkC,IAAOC,GACVC,GAAW,yBACXC,GAAax1B,OAAQ,iBAAmB/M,EAAY,cAAe,KACnEwiC,GAAO,cACPC,IAAwBC,IACxBC,IACChG,KAAM,SAAUjY,EAAM7b,GACrB,GAAI+5B,GAAQ9gC,KAAK+gC,YAAane,EAAM7b,GACnC9D,EAAS69B,EAAMtxB,MACfunB,EAAQ0J,GAAOtgC,KAAM4G,GACrBi6B,EAAOjK,GAASA,EAAO,KAASr6B,EAAO+3B,UAAW7R,GAAS,GAAK,MAGhE9O,GAAUpX,EAAO+3B,UAAW7R,IAAmB,OAAToe,IAAkB/9B,IACvDw9B,GAAOtgC,KAAMzD,EAAOq3B,IAAK+M,EAAM/gC,KAAM6iB,IACtCqe,EAAQ,EACRC,EAAgB,EAEjB,IAAKptB,GAASA,EAAO,KAAQktB,EAAO,CAEnCA,EAAOA,GAAQltB,EAAO,GAGtBijB,EAAQA,MAGRjjB,GAAS7Q,GAAU,CAEnB,GAGCg+B,GAAQA,GAAS,KAGjBntB,GAAgBmtB,EAChBvkC,EAAO+L,MAAOq4B,EAAM/gC,KAAM6iB,EAAM9O,EAAQktB,SAI/BC,KAAWA,EAAQH,EAAMtxB,MAAQvM,IAAqB,IAAVg+B,KAAiBC,GAaxE,MATKnK,KACJjjB,EAAQgtB,EAAMhtB,OAASA,IAAU7Q,GAAU,EAC3C69B,EAAME,KAAOA,EAEbF,EAAMv+B,IAAMw0B,EAAO,GAClBjjB,GAAUijB,EAAO,GAAM,GAAMA,EAAO,IACnCA,EAAO,IAGH+J,IAKV,SAASK,MAIR,MAHAp9B,YAAW,WACVu8B,GAAQrkC,IAEAqkC,GAAQ5jC,EAAO0L,MAGzB,QAAS24B,IAAah6B,EAAO6b,EAAMwe,GAClC,GAAIN,GACHO,GAAeR,GAAUje,QAAe3lB,OAAQ4jC,GAAU,MAC1DhmB,EAAQ,EACR3a,EAASmhC,EAAWnhC,MACrB,MAAgBA,EAAR2a,EAAgBA,IACvB,GAAMimB,EAAQO,EAAYxmB,GAAQ3Z,KAAMkgC,EAAWxe,EAAM7b,GAGxD,MAAO+5B,GAKV,QAASQ,IAAWvhC,EAAMwhC,EAAYx+B,GACrC,GAAIwQ,GACHiuB,EACA3mB,EAAQ,EACR3a,EAASygC,GAAoBzgC,OAC7Bmb,EAAW3e,EAAOgM,WAAW0S,OAAQ,iBAE7BqmB,GAAK1hC,OAEb0hC,EAAO,WACN,GAAKD,EACJ,OAAO,CAER,IAAIE,GAAcpB,IAASa,KAC1B7kB,EAAYjZ,KAAKiE,IAAK,EAAG85B,EAAUO,UAAYP,EAAUQ,SAAWF,GAEpEhqB,EAAO4E,EAAY8kB,EAAUQ,UAAY,EACzCC,EAAU,EAAInqB,EACdmD,EAAQ,EACR3a,EAASkhC,EAAUU,OAAO5hC,MAE3B,MAAgBA,EAAR2a,EAAiBA,IACxBumB,EAAUU,OAAQjnB,GAAQknB,IAAKF,EAKhC,OAFAxmB,GAASqB,WAAY3c,GAAQqhC,EAAWS,EAASvlB,IAElC,EAAVulB,GAAe3hC,EACZoc,GAEPjB,EAASrX,YAAajE,GAAQqhC,KACvB,IAGTA,EAAY/lB,EAASzZ,SACpB7B,KAAMA,EACN0oB,MAAO/rB,EAAOgG,UAAY6+B,GAC1BS,KAAMtlC,EAAOgG,QAAQ,GAAQu/B,kBAAqBl/B,GAClDm/B,mBAAoBX,EACpB/H,gBAAiBz2B,EACjB4+B,UAAWrB,IAASa,KACpBS,SAAU7+B,EAAQ6+B,SAClBE,UACAf,YAAa,SAAUne,EAAMrgB,GAC5B,GAAIu+B,GAAQpkC,EAAOylC,MAAOpiC,EAAMqhC,EAAUY,KAAMpf,EAAMrgB,EACpD6+B,EAAUY,KAAKC,cAAerf,IAAUwe,EAAUY,KAAKI,OAEzD,OADAhB,GAAUU,OAAO3kC,KAAM2jC,GAChBA,GAERtf,KAAM,SAAU6gB,GACf,GAAIxnB,GAAQ,EAGX3a,EAASmiC,EAAUjB,EAAUU,OAAO5hC,OAAS,CAC9C,IAAKshC,EACJ,MAAOxhC,KAGR,KADAwhC,GAAU,EACMthC,EAAR2a,EAAiBA,IACxBumB,EAAUU,OAAQjnB,GAAQknB,IAAK,EAUhC,OALKM,GACJhnB,EAASrX,YAAajE,GAAQqhC,EAAWiB,IAEzChnB,EAASyiB,WAAY/9B,GAAQqhC,EAAWiB,IAElCriC,QAGTyoB,EAAQ2Y,EAAU3Y,KAInB,KAFA6Z,GAAY7Z,EAAO2Y,EAAUY,KAAKC,eAElB/hC,EAAR2a,EAAiBA,IAExB,GADAtH,EAASotB,GAAqB9lB,GAAQ3Z,KAAMkgC,EAAWrhC,EAAM0oB,EAAO2Y,EAAUY,MAE7E,MAAOzuB,EAmBT,OAfA7W,GAAO4F,IAAKmmB,EAAOsY,GAAaK,GAE3B1kC,EAAOiE,WAAYygC,EAAUY,KAAKluB,QACtCstB,EAAUY,KAAKluB,MAAM5S,KAAMnB,EAAMqhC,GAGlC1kC,EAAOklB,GAAG2gB,MACT7lC,EAAOgG,OAAQ++B,GACd1hC,KAAMA,EACNyiC,KAAMpB,EACNlgB,MAAOkgB,EAAUY,KAAK9gB,SAKjBkgB,EAAUrlB,SAAUqlB,EAAUY,KAAKjmB,UACxCla,KAAMu/B,EAAUY,KAAKngC,KAAMu/B,EAAUY,KAAK5H,UAC1C9e,KAAM8lB,EAAUY,KAAK1mB,MACrBF,OAAQgmB,EAAUY,KAAK5mB,QAG1B,QAASknB,IAAY7Z,EAAOwZ,GAC3B,GAAIpnB,GAAO/X,EAAMs/B,EAAQr7B,EAAOsa,CAGhC,KAAMxG,IAAS4N,GAed,GAdA3lB,EAAOpG,EAAOiK,UAAWkU,GACzBunB,EAASH,EAAen/B,GACxBiE,EAAQ0hB,EAAO5N,GACVne,EAAOyG,QAAS4D,KACpBq7B,EAASr7B,EAAO,GAChBA,EAAQ0hB,EAAO5N,GAAU9T,EAAO,IAG5B8T,IAAU/X,IACd2lB,EAAO3lB,GAASiE,QACT0hB,GAAO5N,IAGfwG,EAAQ3kB,EAAO63B,SAAUzxB,GACpBue,GAAS,UAAYA,GAAQ,CACjCta,EAAQsa,EAAMwV,OAAQ9vB,SACf0hB,GAAO3lB,EAId,KAAM+X,IAAS9T,GACN8T,IAAS4N,KAChBA,EAAO5N,GAAU9T,EAAO8T,GACxBonB,EAAepnB,GAAUunB,OAI3BH,GAAen/B,GAASs/B,EAK3B1lC,EAAO4kC,UAAY5kC,EAAOgG,OAAQ4+B,IAEjCmB,QAAS,SAAUha,EAAO/mB,GACpBhF,EAAOiE,WAAY8nB,IACvB/mB,EAAW+mB,EACXA,GAAU,MAEVA,EAAQA,EAAMzf,MAAM,IAGrB,IAAI4Z,GACH/H,EAAQ,EACR3a,EAASuoB,EAAMvoB,MAEhB,MAAgBA,EAAR2a,EAAiBA,IACxB+H,EAAO6F,EAAO5N,GACdgmB,GAAUje,GAASie,GAAUje,OAC7Bie,GAAUje,GAAO7Q,QAASrQ,IAI5BghC,UAAW,SAAUhhC,EAAU4tB,GACzBA,EACJqR,GAAoB5uB,QAASrQ,GAE7Bi/B,GAAoBxjC,KAAMuE,KAK7B,SAASk/B,IAAkB7gC,EAAM0oB,EAAOuZ,GAEvC,GAAIpf,GAAM7b,EAAOutB,EAAQwM,EAAOzf,EAAOshB,EACtCH,EAAOxiC,KACP0qB,KACAjiB,EAAQ1I,EAAK0I,MACbyrB,EAASn0B,EAAKQ,UAAYszB,GAAU9zB,GACpC6iC,EAAWlmC,EAAOqkB,MAAOhhB,EAAM,SAG1BiiC,GAAK9gB,QACVG,EAAQ3kB,EAAO4kB,YAAavhB,EAAM,MACX,MAAlBshB,EAAMwhB,WACVxhB,EAAMwhB,SAAW,EACjBF,EAAUthB,EAAM7L,MAAMgF,KACtB6G,EAAM7L,MAAMgF,KAAO,WACZ6G,EAAMwhB,UACXF,MAIHthB,EAAMwhB,WAENL,EAAKpnB,OAAO,WAGXonB,EAAKpnB,OAAO,WACXiG,EAAMwhB,WACAnmC,EAAOwkB,MAAOnhB,EAAM,MAAOG,QAChCmhB,EAAM7L,MAAMgF,YAOO,IAAlBza,EAAKQ,WAAoB,UAAYkoB,IAAS,SAAWA,MAK7DuZ,EAAKc,UAAar6B,EAAMq6B,SAAUr6B,EAAMs6B,UAAWt6B,EAAMu6B,WAIlB,WAAlCtmC,EAAOq3B,IAAKh0B,EAAM,YACW,SAAhCrD,EAAOq3B,IAAKh0B,EAAM,WAIbrD,EAAOmI,QAAQkZ,wBAAkE,WAAxCoW,GAAoBp0B,EAAK8G,UAIvE4B,EAAM+W,KAAO,EAHb/W,EAAM6W,QAAU,iBAQd0iB,EAAKc,WACTr6B,EAAMq6B,SAAW,SACXpmC,EAAOmI,QAAQmZ,kBACpBwkB,EAAKpnB,OAAO,WACX3S,EAAMq6B,SAAWd,EAAKc,SAAU,GAChCr6B,EAAMs6B,UAAYf,EAAKc,SAAU,GACjCr6B,EAAMu6B,UAAYhB,EAAKc,SAAU,KAOpC,KAAMlgB,IAAQ6F,GAEb,GADA1hB,EAAQ0hB,EAAO7F,GACV4d,GAASrgC,KAAM4G,GAAU,CAG7B,SAFO0hB,GAAO7F,GACd0R,EAASA,GAAoB,WAAVvtB,EACdA,KAAYmtB,EAAS,OAAS,QAClC,QAEDxJ,GAAM9H,GAASggB,GAAYA,EAAUhgB,IAAUlmB,EAAO+L,MAAO1I,EAAM6iB,GAIrE,IAAMlmB,EAAOqI,cAAe2lB,GAAS,CAC/BkY,EACC,UAAYA,KAChB1O,EAAS0O,EAAS1O,QAGnB0O,EAAWlmC,EAAOqkB,MAAOhhB,EAAM,aAI3Bu0B,IACJsO,EAAS1O,QAAUA,GAEfA,EACJx3B,EAAQqD,GAAOk0B,OAEfuO,EAAK3gC,KAAK,WACTnF,EAAQqD,GAAOs0B,SAGjBmO,EAAK3gC,KAAK,WACT,GAAI+gB,EACJlmB,GAAOskB,YAAajhB,EAAM,SAC1B,KAAM6iB,IAAQ8H,GACbhuB,EAAO+L,MAAO1I,EAAM6iB,EAAM8H,EAAM9H,KAGlC,KAAMA,IAAQ8H,GACboW,EAAQC,GAAa7M,EAAS0O,EAAUhgB,GAAS,EAAGA,EAAM4f,GAElD5f,IAAQggB,KACfA,EAAUhgB,GAASke,EAAMhtB,MACpBogB,IACJ4M,EAAMv+B,IAAMu+B,EAAMhtB,MAClBgtB,EAAMhtB,MAAiB,UAAT8O,GAA6B,WAATA,EAAoB,EAAI,KAO/D,QAASuf,IAAOpiC,EAAMgD,EAAS6f,EAAMrgB,EAAK6/B,GACzC,MAAO,IAAID,IAAMxiC,UAAU1B,KAAM8B,EAAMgD,EAAS6f,EAAMrgB,EAAK6/B,GAE5D1lC,EAAOylC,MAAQA,GAEfA,GAAMxiC,WACLE,YAAasiC,GACblkC,KAAM,SAAU8B,EAAMgD,EAAS6f,EAAMrgB,EAAK6/B,EAAQpB,GACjDhhC,KAAKD,KAAOA,EACZC,KAAK4iB,KAAOA,EACZ5iB,KAAKoiC,OAASA,GAAU,QACxBpiC,KAAK+C,QAAUA,EACf/C,KAAK8T,MAAQ9T,KAAKoI,IAAMpI,KAAKwP,MAC7BxP,KAAKuC,IAAMA,EACXvC,KAAKghC,KAAOA,IAAUtkC,EAAO+3B,UAAW7R,GAAS,GAAK,OAEvDpT,IAAK,WACJ,GAAI6R,GAAQ8gB,GAAM9d,UAAWrkB,KAAK4iB,KAElC,OAAOvB,IAASA,EAAMlgB,IACrBkgB,EAAMlgB,IAAKnB,MACXmiC,GAAM9d,UAAUqD,SAASvmB,IAAKnB,OAEhC+hC,IAAK,SAAUF,GACd,GAAIoB,GACH5hB,EAAQ8gB,GAAM9d,UAAWrkB,KAAK4iB,KAoB/B,OAjBC5iB,MAAKksB,IAAM+W,EADPjjC,KAAK+C,QAAQ6+B,SACEllC,EAAO0lC,OAAQpiC,KAAKoiC,QACtCP,EAAS7hC,KAAK+C,QAAQ6+B,SAAWC,EAAS,EAAG,EAAG7hC,KAAK+C,QAAQ6+B,UAG3CC,EAEpB7hC,KAAKoI,KAAQpI,KAAKuC,IAAMvC,KAAK8T,OAAUmvB,EAAQjjC,KAAK8T,MAE/C9T,KAAK+C,QAAQmgC,MACjBljC,KAAK+C,QAAQmgC,KAAKhiC,KAAMlB,KAAKD,KAAMC,KAAKoI,IAAKpI,MAGzCqhB,GAASA,EAAMqC,IACnBrC,EAAMqC,IAAK1jB,MAEXmiC,GAAM9d,UAAUqD,SAAShE,IAAK1jB,MAExBA,OAITmiC,GAAMxiC,UAAU1B,KAAK0B,UAAYwiC,GAAMxiC,UAEvCwiC,GAAM9d,WACLqD,UACCvmB,IAAK,SAAU2/B,GACd,GAAIvtB,EAEJ,OAAiC,OAA5ButB,EAAM/gC,KAAM+gC,EAAMle,OACpBke,EAAM/gC,KAAK0I,OAA2C,MAAlCq4B,EAAM/gC,KAAK0I,MAAOq4B,EAAMle,OAQ/CrP,EAAS7W,EAAOq3B,IAAK+M,EAAM/gC,KAAM+gC,EAAMle,KAAM,IAErCrP,GAAqB,SAAXA,EAAwBA,EAAJ,GAT9ButB,EAAM/gC,KAAM+gC,EAAMle,OAW3Bc,IAAK,SAAUod,GAGTpkC,EAAOklB,GAAGshB,KAAMpC,EAAMle,MAC1BlmB,EAAOklB,GAAGshB,KAAMpC,EAAMle,MAAQke,GACnBA,EAAM/gC,KAAK0I,QAAgE,MAArDq4B,EAAM/gC,KAAK0I,MAAO/L,EAAOs4B,SAAU8L,EAAMle,QAAoBlmB,EAAO63B,SAAUuM,EAAMle,OACrHlmB,EAAO+L,MAAOq4B,EAAM/gC,KAAM+gC,EAAMle,KAAMke,EAAM14B,IAAM04B,EAAME,MAExDF,EAAM/gC,KAAM+gC,EAAMle,MAASke,EAAM14B,OASrC+5B,GAAM9d,UAAUmF,UAAY2Y,GAAM9d,UAAU+E,YAC3C1F,IAAK,SAAUod,GACTA,EAAM/gC,KAAKQ,UAAYugC,EAAM/gC,KAAKe,aACtCggC,EAAM/gC,KAAM+gC,EAAMle,MAASke,EAAM14B,OAKpC1L,EAAO+E,MAAO,SAAU,OAAQ,QAAU,SAAUU,EAAGW,GACtD,GAAIqgC,GAAQzmC,EAAOsB,GAAI8E,EACvBpG,GAAOsB,GAAI8E,GAAS,SAAUsgC,EAAOhB,EAAQ1gC,GAC5C,MAAgB,OAAT0hC,GAAkC,iBAAVA,GAC9BD,EAAMrhC,MAAO9B,KAAM+B,WACnB/B,KAAKqjC,QAASC,GAAOxgC,GAAM,GAAQsgC,EAAOhB,EAAQ1gC,MAIrDhF,EAAOsB,GAAG0E,QACT6gC,OAAQ,SAAUH,EAAOI,EAAIpB,EAAQ1gC,GAGpC,MAAO1B,MAAK6Q,OAAQgjB,IAAWE,IAAK,UAAW,GAAIE,OAGjD1xB,MAAM8gC,SAAU9lB,QAASimB,GAAMJ,EAAOhB,EAAQ1gC,IAEjD2hC,QAAS,SAAUzgB,EAAMwgB,EAAOhB,EAAQ1gC,GACvC,GAAI8T,GAAQ9Y,EAAOqI,cAAe6d,GACjC6gB,EAAS/mC,EAAO0mC,MAAOA,EAAOhB,EAAQ1gC,GACtCgiC,EAAc,WAEb,GAAIlB,GAAOlB,GAAWthC,KAAMtD,EAAOgG,UAAYkgB,GAAQ6gB,IAGlDjuB,GAAS9Y,EAAOqkB,MAAO/gB,KAAM,YACjCwiC,EAAKhhB,MAAM,GAKd,OAFCkiB,GAAYC,OAASD,EAEfluB,GAASiuB,EAAOviB,SAAU,EAChClhB,KAAKyB,KAAMiiC,GACX1jC,KAAKkhB,MAAOuiB,EAAOviB,MAAOwiB,IAE5BliB,KAAM,SAAUniB,EAAM2iB,EAAYqgB,GACjC,GAAIuB,GAAY,SAAUviB,GACzB,GAAIG,GAAOH,EAAMG,WACVH,GAAMG,KACbA,EAAM6gB,GAYP,OATqB,gBAAThjC,KACXgjC,EAAUrgB,EACVA,EAAa3iB,EACbA,EAAOpD,GAEH+lB,GAAc3iB,KAAS,GAC3BW,KAAKkhB,MAAO7hB,GAAQ,SAGdW,KAAKyB,KAAK,WAChB,GAAI0f,IAAU,EACbtG,EAAgB,MAARxb,GAAgBA,EAAO,aAC/BwkC,EAASnnC,EAAOmnC,OAChB1+B,EAAOzI,EAAOqkB,MAAO/gB,KAEtB,IAAK6a,EACC1V,EAAM0V,IAAW1V,EAAM0V,GAAQ2G,MACnCoiB,EAAWz+B,EAAM0V,QAGlB,KAAMA,IAAS1V,GACTA,EAAM0V,IAAW1V,EAAM0V,GAAQ2G,MAAQkf,GAAKjgC,KAAMoa,IACtD+oB,EAAWz+B,EAAM0V,GAKpB,KAAMA,EAAQgpB,EAAO3jC,OAAQ2a,KACvBgpB,EAAQhpB,GAAQ9a,OAASC,MAAiB,MAARX,GAAgBwkC,EAAQhpB,GAAQqG,QAAU7hB,IAChFwkC,EAAQhpB,GAAQ2nB,KAAKhhB,KAAM6gB,GAC3BlhB,GAAU,EACV0iB,EAAOphC,OAAQoY,EAAO,KAOnBsG,IAAYkhB,IAChB3lC,EAAOykB,QAASnhB,KAAMX,MAIzBskC,OAAQ,SAAUtkC,GAIjB,MAHKA,MAAS,IACbA,EAAOA,GAAQ,MAETW,KAAKyB,KAAK,WAChB,GAAIoZ,GACH1V,EAAOzI,EAAOqkB,MAAO/gB,MACrBkhB,EAAQ/b,EAAM9F,EAAO,SACrBgiB,EAAQlc,EAAM9F,EAAO,cACrBwkC,EAASnnC,EAAOmnC,OAChB3jC,EAASghB,EAAQA,EAAMhhB,OAAS,CAajC,KAVAiF,EAAKw+B,QAAS,EAGdjnC,EAAOwkB,MAAOlhB,KAAMX,MAEfgiB,GAASA,EAAMG,MACnBH,EAAMG,KAAKtgB,KAAMlB,MAAM,GAIlB6a,EAAQgpB,EAAO3jC,OAAQ2a,KACvBgpB,EAAQhpB,GAAQ9a,OAASC,MAAQ6jC,EAAQhpB,GAAQqG,QAAU7hB,IAC/DwkC,EAAQhpB,GAAQ2nB,KAAKhhB,MAAM,GAC3BqiB,EAAOphC,OAAQoY,EAAO,GAKxB,KAAMA,EAAQ,EAAW3a,EAAR2a,EAAgBA,IAC3BqG,EAAOrG,IAAWqG,EAAOrG,GAAQ8oB,QACrCziB,EAAOrG,GAAQ8oB,OAAOziC,KAAMlB,YAKvBmF,GAAKw+B,WAMf,SAASL,IAAOjkC,EAAMykC,GACrB,GAAIjb,GACHpa,GAAUs1B,OAAQ1kC,GAClB8C,EAAI,CAKL,KADA2hC,EAAeA,EAAc,EAAI,EACtB,EAAJ3hC,EAAQA,GAAK,EAAI2hC,EACvBjb,EAAQ2K,GAAWrxB,GACnBsM,EAAO,SAAWoa,GAAUpa,EAAO,UAAYoa,GAAUxpB,CAO1D,OAJKykC,KACJr1B,EAAM8O,QAAU9O,EAAMmR,MAAQvgB,GAGxBoP,EAIR/R,EAAO+E,MACNuiC,UAAWV,GAAM,QACjBW,QAASX,GAAM,QACfY,YAAaZ,GAAM,UACnBa,QAAU5mB,QAAS,QACnB6mB,SAAW7mB,QAAS,QACpB8mB,YAAc9mB,QAAS,WACrB,SAAUza,EAAM2lB,GAClB/rB,EAAOsB,GAAI8E,GAAS,SAAUsgC,EAAOhB,EAAQ1gC,GAC5C,MAAO1B,MAAKqjC,QAAS5a,EAAO2a,EAAOhB,EAAQ1gC,MAI7ChF,EAAO0mC,MAAQ,SAAUA,EAAOhB,EAAQpkC,GACvC,GAAI8e,GAAMsmB,GAA0B,gBAAVA,GAAqB1mC,EAAOgG,UAAY0gC,IACjEhJ,SAAUp8B,IAAOA,GAAMokC,GACtB1lC,EAAOiE,WAAYyiC,IAAWA,EAC/BxB,SAAUwB,EACVhB,OAAQpkC,GAAMokC,GAAUA,IAAW1lC,EAAOiE,WAAYyhC,IAAYA,EAwBnE,OArBAtlB,GAAI8kB,SAAWllC,EAAOklB,GAAG1d,IAAM,EAA4B,gBAAjB4Y,GAAI8kB,SAAwB9kB,EAAI8kB,SACzE9kB,EAAI8kB,WAAYllC,GAAOklB,GAAGC,OAASnlB,EAAOklB,GAAGC,OAAQ/E,EAAI8kB,UAAallC,EAAOklB,GAAGC,OAAO6F,UAGtE,MAAb5K,EAAIoE,OAAiBpE,EAAIoE,SAAU,KACvCpE,EAAIoE,MAAQ,MAIbpE,EAAItU,IAAMsU,EAAIsd,SAEdtd,EAAIsd,SAAW,WACT19B,EAAOiE,WAAYmc,EAAItU,MAC3BsU,EAAItU,IAAItH,KAAMlB,MAGV8c,EAAIoE,OACRxkB,EAAOykB,QAASnhB,KAAM8c,EAAIoE,QAIrBpE,GAGRpgB,EAAO0lC,QACNkC,OAAQ,SAAUC,GACjB,MAAOA,IAERC,MAAO,SAAUD,GAChB,MAAO,GAAMlhC,KAAKohC,IAAKF,EAAElhC,KAAKqhC,IAAO,IAIvChoC,EAAOmnC,UACPnnC,EAAOklB,GAAKugB,GAAMxiC,UAAU1B,KAC5BvB,EAAOklB,GAAG6f,KAAO,WAChB,GAAIc,GACHsB,EAASnnC,EAAOmnC,OAChB1hC,EAAI,CAIL,KAFAm+B,GAAQ5jC,EAAO0L,MAEHy7B,EAAO3jC,OAAXiC,EAAmBA,IAC1BogC,EAAQsB,EAAQ1hC,GAEVogC,KAAWsB,EAAQ1hC,KAAQogC,GAChCsB,EAAOphC,OAAQN,IAAK,EAIhB0hC,GAAO3jC,QACZxD,EAAOklB,GAAGJ,OAEX8e,GAAQrkC,GAGTS,EAAOklB,GAAG2gB,MAAQ,SAAUA,GACtBA,KAAW7lC,EAAOmnC,OAAO1mC,KAAMolC,IACnC7lC,EAAOklB,GAAG9N,SAIZpX,EAAOklB,GAAG+iB,SAAW,GAErBjoC,EAAOklB,GAAG9N,MAAQ,WACXysB,KACLA,GAAUqE,YAAaloC,EAAOklB,GAAG6f,KAAM/kC,EAAOklB,GAAG+iB,YAInDjoC,EAAOklB,GAAGJ,KAAO,WAChBqjB,cAAetE,IACfA,GAAU,MAGX7jC,EAAOklB,GAAGC,QACTijB,KAAM,IACNC,KAAM,IAENrd,SAAU,KAIXhrB,EAAOklB,GAAGshB,QAELxmC,EAAOsV,MAAQtV,EAAOsV,KAAKuH,UAC/B7c,EAAOsV,KAAKuH,QAAQyrB,SAAW,SAAUjlC,GACxC,MAAOrD,GAAO+K,KAAK/K,EAAOmnC,OAAQ,SAAU7lC,GAC3C,MAAO+B,KAAS/B,EAAG+B,OACjBG,SAGLxD,EAAOsB,GAAGinC,OAAS,SAAUliC,GAC5B,GAAKhB,UAAU7B,OACd,MAAO6C,KAAY9G,EAClB+D,KACAA,KAAKyB,KAAK,SAAUU,GACnBzF,EAAOuoC,OAAOC,UAAWllC,KAAM+C,EAASZ,IAI3C,IAAI5F,GAAS4oC,EACZC,GAAQx8B,IAAK,EAAG4sB,KAAM,GACtBz1B,EAAOC,KAAM,GACbkQ,EAAMnQ,GAAQA,EAAKS,aAEpB,IAAM0P,EAON,MAHA3T,GAAU2T,EAAI1T,gBAGRE,EAAOmN,SAAUtN,EAASwD,UAMpBA,GAAKslC,wBAA0BjpC,IAC1CgpC,EAAMrlC,EAAKslC,yBAEZF,EAAMG,GAAWp1B,IAEhBtH,IAAKw8B,EAAIx8B,KAASu8B,EAAII,aAAehpC,EAAQitB,YAAiBjtB,EAAQktB,WAAc,GACpF+L,KAAM4P,EAAI5P,MAAS2P,EAAIK,aAAejpC,EAAQ6sB,aAAiB7sB,EAAQ8sB,YAAc,KAX9E+b,GAeT1oC,EAAOuoC,QAENC,UAAW,SAAUnlC,EAAMgD,EAASZ,GACnC,GAAIgxB,GAAWz2B,EAAOq3B,IAAKh0B,EAAM,WAGf,YAAbozB,IACJpzB,EAAK0I,MAAM0qB,SAAW,WAGvB,IAAIsS,GAAU/oC,EAAQqD,GACrB2lC,EAAYD,EAAQR,SACpBU,EAAYjpC,EAAOq3B,IAAKh0B,EAAM,OAC9B6lC,EAAalpC,EAAOq3B,IAAKh0B,EAAM,QAC/B8lC,GAAmC,aAAb1S,GAAwC,UAAbA,IAA0Bz2B,EAAO2K,QAAQ,QAASs+B,EAAWC,IAAe,GAC7Hnd,KAAYqd,KAAkBC,EAAQC,CAGlCH,IACJC,EAAcL,EAAQtS,WACtB4S,EAASD,EAAYl9B,IACrBo9B,EAAUF,EAAYtQ,OAEtBuQ,EAASvhC,WAAYmhC,IAAe,EACpCK,EAAUxhC,WAAYohC,IAAgB,GAGlClpC,EAAOiE,WAAYoC,KACvBA,EAAUA,EAAQ7B,KAAMnB,EAAMoC,EAAGujC,IAGd,MAAf3iC,EAAQ6F,MACZ6f,EAAM7f,IAAQ7F,EAAQ6F,IAAM88B,EAAU98B,IAAQm9B,GAE1B,MAAhBhjC,EAAQyyB,OACZ/M,EAAM+M,KAASzyB,EAAQyyB,KAAOkQ,EAAUlQ,KAASwQ,GAG7C,SAAWjjC,GACfA,EAAQkjC,MAAM/kC,KAAMnB,EAAM0oB,GAE1Bgd,EAAQ1R,IAAKtL,KAMhB/rB,EAAOsB,GAAG0E,QAETywB,SAAU,WACT,GAAMnzB,KAAM,GAAZ,CAIA,GAAIkmC,GAAcjB,EACjBkB,GAAiBv9B,IAAK,EAAG4sB,KAAM,GAC/Bz1B,EAAOC,KAAM,EAwBd,OArBwC,UAAnCtD,EAAOq3B,IAAKh0B,EAAM,YAEtBklC,EAASllC,EAAKslC,yBAGda,EAAelmC,KAAKkmC,eAGpBjB,EAASjlC,KAAKilC,SACRvoC,EAAOmK,SAAUq/B,EAAc,GAAK,UACzCC,EAAeD,EAAajB,UAI7BkB,EAAav9B,KAAQlM,EAAOq3B,IAAKmS,EAAc,GAAK,kBAAkB,GACtEC,EAAa3Q,MAAQ94B,EAAOq3B,IAAKmS,EAAc,GAAK,mBAAmB,KAOvEt9B,IAAMq8B,EAAOr8B,IAAOu9B,EAAav9B,IAAMlM,EAAOq3B,IAAKh0B,EAAM,aAAa,GACtEy1B,KAAMyP,EAAOzP,KAAO2Q,EAAa3Q,KAAO94B,EAAOq3B,IAAKh0B,EAAM,cAAc,MAI1EmmC,aAAc,WACb,MAAOlmC,MAAKsC,IAAI,WACf,GAAI4jC,GAAelmC,KAAKkmC,cAAgB3pC,CACxC,OAAQ2pC,IAAmBxpC,EAAOmK,SAAUq/B,EAAc,SAAsD,WAA1CxpC,EAAOq3B,IAAKmS,EAAc,YAC/FA,EAAeA,EAAaA,YAE7B,OAAOA,IAAgB3pC,OAO1BG,EAAO+E,MAAO2nB,WAAY,cAAeI,UAAW,eAAgB,SAAUyT,EAAQra,GACrF,GAAIha,GAAM,IAAInI,KAAMmiB,EAEpBlmB,GAAOsB,GAAIi/B,GAAW,SAAUluB,GAC/B,MAAOrS,GAAOqL,OAAQ/H,KAAM,SAAUD,EAAMk9B,EAAQluB,GACnD,GAAIo2B,GAAMG,GAAWvlC,EAErB,OAAKgP,KAAQ9S,EACLkpC,EAAOviB,IAAQuiB,GAAOA,EAAKviB,GACjCuiB,EAAI7oC,SAASE,gBAAiBygC,GAC9Bl9B,EAAMk9B,IAGHkI,EACJA,EAAIiB,SACFx9B,EAAYlM,EAAQyoC,GAAM/b,aAApBra,EACPnG,EAAMmG,EAAMrS,EAAQyoC,GAAM3b,aAI3BzpB,EAAMk9B,GAAWluB,EAPlB,IASEkuB,EAAQluB,EAAKhN,UAAU7B,OAAQ,QAIpC,SAASolC,IAAWvlC,GACnB,MAAOrD,GAAO2H,SAAUtE,GACvBA,EACkB,IAAlBA,EAAKQ,SACJR,EAAKunB,aAAevnB,EAAKqQ,cACzB,EAGH1T,EAAO+E,MAAQ4kC,OAAQ,SAAUC,MAAO,SAAW,SAAUxjC,EAAMzD,GAClE3C,EAAO+E,MAAQg1B,QAAS,QAAU3zB,EAAMytB,QAASlxB,EAAM,GAAI,QAAUyD,GAAQ,SAAUyjC,EAAcC,GAEpG9pC,EAAOsB,GAAIwoC,GAAa,SAAUhQ,EAAQzvB,GACzC,GAAIiB,GAAYjG,UAAU7B,SAAYqmC,GAAkC,iBAAX/P,IAC5DtB,EAAQqR,IAAkB/P,KAAW,GAAQzvB,KAAU,EAAO,SAAW,SAE1E,OAAOrK,GAAOqL,OAAQ/H,KAAM,SAAUD,EAAMV,EAAM0H,GACjD,GAAImJ,EAEJ,OAAKxT,GAAO2H,SAAUtE,GAIdA,EAAKzD,SAASE,gBAAiB,SAAWsG,GAI3B,IAAlB/C,EAAKQ,UACT2P,EAAMnQ,EAAKvD,gBAIJ6G,KAAKiE,IACXvH,EAAK+D,KAAM,SAAWhB,GAAQoN,EAAK,SAAWpN,GAC9C/C,EAAK+D,KAAM,SAAWhB,GAAQoN,EAAK,SAAWpN,GAC9CoN,EAAK,SAAWpN,KAIXiE,IAAU9K,EAEhBS,EAAOq3B,IAAKh0B,EAAMV,EAAM61B,GAGxBx4B,EAAO+L,MAAO1I,EAAMV,EAAM0H,EAAOmuB,IAChC71B,EAAM2I,EAAYwuB,EAASv6B,EAAW+L,EAAW,WAQvDtL,EAAOsB,GAAGyoC,KAAO,WAChB,MAAOzmC,MAAKE,QAGbxD,EAAOsB,GAAG0oC,QAAUhqC,EAAOsB,GAAGouB,QAGP,gBAAXua,SAAuBA,QAAoC,gBAAnBA,QAAOC,QAK1DD,OAAOC,QAAUlqC,GAGjBV,EAAOU,OAASV,EAAOY,EAAIF,EASJ,kBAAXmqC,SAAyBA,OAAOC,KAC3CD,OAAQ,YAAc,WAAc,MAAOnqC,QAIzCV"}
\ No newline at end of file diff --git a/frontend/im/colors/js/jquery.fancybox.js b/frontend/im/colors/js/jquery.fancybox.js new file mode 100644 index 0000000..e8e1987 --- /dev/null +++ b/frontend/im/colors/js/jquery.fancybox.js @@ -0,0 +1,2020 @@ +/*! + * fancyBox - jQuery Plugin + * version: 2.1.5 (Fri, 14 Jun 2013) + * @requires jQuery v1.6 or later + * + * Examples at http://fancyapps.com/fancybox/ + * License: www.fancyapps.com/fancybox/#license + * + * Copyright 2012 Janis Skarnelis - janis@fancyapps.com + * + */ + +(function (window, document, $, undefined) { + "use strict"; + + var H = $("html"), + W = $(window), + D = $(document), + F = $.fancybox = function () { + F.open.apply( this, arguments ); + }, + IE = navigator.userAgent.match(/msie/i), + didUpdate = null, + isTouch = document.createTouch !== undefined, + + isQuery = function(obj) { + return obj && obj.hasOwnProperty && obj instanceof $; + }, + isString = function(str) { + return str && $.type(str) === "string"; + }, + isPercentage = function(str) { + return isString(str) && str.indexOf('%') > 0; + }, + isScrollable = function(el) { + return (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight))); + }, + getScalar = function(orig, dim) { + var value = parseInt(orig, 10) || 0; + + if (dim && isPercentage(orig)) { + value = F.getViewport()[ dim ] / 100 * value; + } + + return Math.ceil(value); + }, + getValue = function(value, dim) { + return getScalar(value, dim) + 'px'; + }; + + $.extend(F, { + // The current version of fancyBox + version: '2.1.5', + + defaults: { + padding : 15, + margin : 20, + + width : 800, + height : 600, + minWidth : 100, + minHeight : 100, + maxWidth : 9999, + maxHeight : 9999, + pixelRatio: 1, // Set to 2 for retina display support + + autoSize : true, + autoHeight : false, + autoWidth : false, + + autoResize : true, + autoCenter : !isTouch, + fitToView : true, + aspectRatio : false, + topRatio : 0.5, + leftRatio : 0.5, + + scrolling : 'auto', // 'auto', 'yes' or 'no' + wrapCSS : '', + + arrows : true, + closeBtn : true, + closeClick : false, + nextClick : false, + mouseWheel : true, + autoPlay : false, + playSpeed : 3000, + preload : 3, + modal : false, + loop : true, + + ajax : { + dataType : 'html', + headers : { 'X-fancyBox': true } + }, + iframe : { + scrolling : 'auto', + preload : true + }, + swf : { + wmode: 'transparent', + allowfullscreen : 'true', + allowscriptaccess : 'always' + }, + + keys : { + next : { + 13 : 'left', // enter + 34 : 'up', // page down + 39 : 'left', // right arrow + 40 : 'up' // down arrow + }, + prev : { + 8 : 'right', // backspace + 33 : 'down', // page up + 37 : 'right', // left arrow + 38 : 'down' // up arrow + }, + close : [27], // escape key + play : [32], // space - start/stop slideshow + toggle : [70] // letter "f" - toggle fullscreen + }, + + direction : { + next : 'left', + prev : 'right' + }, + + scrollOutside : true, + + // Override some properties + index : 0, + type : null, + href : null, + content : null, + title : null, + + // HTML templates + tpl: { + wrap : '<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>', + image : '<img class="fancybox-image" src="{href}" alt="" />', + iframe : '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen' + (IE ? ' allowtransparency="true"' : '') + '></iframe>', + error : '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>', + closeBtn : '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>', + next : '<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>', + prev : '<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>' + }, + + // Properties for each animation type + // Opening fancyBox + openEffect : 'fade', // 'elastic', 'fade' or 'none' + openSpeed : 250, + openEasing : 'swing', + openOpacity : true, + openMethod : 'zoomIn', + + // Closing fancyBox + closeEffect : 'fade', // 'elastic', 'fade' or 'none' + closeSpeed : 250, + closeEasing : 'swing', + closeOpacity : true, + closeMethod : 'zoomOut', + + // Changing next gallery item + nextEffect : 'elastic', // 'elastic', 'fade' or 'none' + nextSpeed : 250, + nextEasing : 'swing', + nextMethod : 'changeIn', + + // Changing previous gallery item + prevEffect : 'elastic', // 'elastic', 'fade' or 'none' + prevSpeed : 250, + prevEasing : 'swing', + prevMethod : 'changeOut', + + // Enable default helpers + helpers : { + overlay : true, + title : true + }, + + // Callbacks + onCancel : $.noop, // If canceling + beforeLoad : $.noop, // Before loading + afterLoad : $.noop, // After loading + beforeShow : $.noop, // Before changing in current item + afterShow : $.noop, // After opening + beforeChange : $.noop, // Before changing gallery item + beforeClose : $.noop, // Before closing + afterClose : $.noop // After closing + }, + + //Current state + group : {}, // Selected group + opts : {}, // Group options + previous : null, // Previous element + coming : null, // Element being loaded + current : null, // Currently loaded element + isActive : false, // Is activated + isOpen : false, // Is currently open + isOpened : false, // Have been fully opened at least once + + wrap : null, + skin : null, + outer : null, + inner : null, + + player : { + timer : null, + isActive : false + }, + + // Loaders + ajaxLoad : null, + imgPreload : null, + + // Some collections + transitions : {}, + helpers : {}, + + /* + * Static methods + */ + + open: function (group, opts) { + if (!group) { + return; + } + + if (!$.isPlainObject(opts)) { + opts = {}; + } + + // Close if already active + if (false === F.close(true)) { + return; + } + + // Normalize group + if (!$.isArray(group)) { + group = isQuery(group) ? $(group).get() : [group]; + } + + // Recheck if the type of each element is `object` and set content type (image, ajax, etc) + $.each(group, function(i, element) { + var obj = {}, + href, + title, + content, + type, + rez, + hrefParts, + selector; + + if ($.type(element) === "object") { + // Check if is DOM element + if (element.nodeType) { + element = $(element); + } + + if (isQuery(element)) { + obj = { + href : element.data('fancybox-href') || element.attr('href'), + title : element.data('fancybox-title') || element.attr('title'), + isDom : true, + element : element + }; + + if ($.metadata) { + $.extend(true, obj, element.metadata()); + } + + } else { + obj = element; + } + } + + href = opts.href || obj.href || (isString(element) ? element : null); + title = opts.title !== undefined ? opts.title : obj.title || ''; + + content = opts.content || obj.content; + type = content ? 'html' : (opts.type || obj.type); + + if (!type && obj.isDom) { + type = element.data('fancybox-type'); + + if (!type) { + rez = element.prop('class').match(/fancybox\.(\w+)/); + type = rez ? rez[1] : null; + } + } + + if (isString(href)) { + // Try to guess the content type + if (!type) { + if (F.isImage(href)) { + type = 'image'; + + } else if (F.isSWF(href)) { + type = 'swf'; + + } else if (href.charAt(0) === '#') { + type = 'inline'; + + } else if (isString(element)) { + type = 'html'; + content = element; + } + } + + // Split url into two pieces with source url and content selector, e.g, + // "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id" + if (type === 'ajax') { + hrefParts = href.split(/\s+/, 2); + href = hrefParts.shift(); + selector = hrefParts.shift(); + } + } + + if (!content) { + if (type === 'inline') { + if (href) { + content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7 + + } else if (obj.isDom) { + content = element; + } + + } else if (type === 'html') { + content = href; + + } else if (!type && !href && obj.isDom) { + type = 'inline'; + content = element; + } + } + + $.extend(obj, { + href : href, + type : type, + content : content, + title : title, + selector : selector + }); + + group[ i ] = obj; + }); + + // Extend the defaults + F.opts = $.extend(true, {}, F.defaults, opts); + + // All options are merged recursive except keys + if (opts.keys !== undefined) { + F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false; + } + + F.group = group; + + return F._start(F.opts.index); + }, + + // Cancel image loading or abort ajax request + cancel: function () { + var coming = F.coming; + + if (!coming || false === F.trigger('onCancel')) { + return; + } + + F.hideLoading(); + + if (F.ajaxLoad) { + F.ajaxLoad.abort(); + } + + F.ajaxLoad = null; + + if (F.imgPreload) { + F.imgPreload.onload = F.imgPreload.onerror = null; + } + + if (coming.wrap) { + coming.wrap.stop(true, true).trigger('onReset').remove(); + } + + F.coming = null; + + // If the first item has been canceled, then clear everything + if (!F.current) { + F._afterZoomOut( coming ); + } + }, + + // Start closing animation if is open; remove immediately if opening/closing + close: function (event) { + F.cancel(); + + if (false === F.trigger('beforeClose')) { + return; + } + + F.unbindEvents(); + + if (!F.isActive) { + return; + } + + if (!F.isOpen || event === true) { + $('.fancybox-wrap').stop(true).trigger('onReset').remove(); + + F._afterZoomOut(); + + } else { + F.isOpen = F.isOpened = false; + F.isClosing = true; + + $('.fancybox-item, .fancybox-nav').remove(); + + F.wrap.stop(true, true).removeClass('fancybox-opened'); + + F.transitions[ F.current.closeMethod ](); + } + }, + + // Manage slideshow: + // $.fancybox.play(); - toggle slideshow + // $.fancybox.play( true ); - start + // $.fancybox.play( false ); - stop + play: function ( action ) { + var clear = function () { + clearTimeout(F.player.timer); + }, + set = function () { + clear(); + + if (F.current && F.player.isActive) { + F.player.timer = setTimeout(F.next, F.current.playSpeed); + } + }, + stop = function () { + clear(); + + D.unbind('.player'); + + F.player.isActive = false; + + F.trigger('onPlayEnd'); + }, + start = function () { + if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) { + F.player.isActive = true; + + D.bind({ + 'onCancel.player beforeClose.player' : stop, + 'onUpdate.player' : set, + 'beforeLoad.player' : clear + }); + + set(); + + F.trigger('onPlayStart'); + } + }; + + if (action === true || (!F.player.isActive && action !== false)) { + start(); + } else { + stop(); + } + }, + + // Navigate to next gallery item + next: function ( direction ) { + var current = F.current; + + if (current) { + if (!isString(direction)) { + direction = current.direction.next; + } + + F.jumpto(current.index + 1, direction, 'next'); + } + }, + + // Navigate to previous gallery item + prev: function ( direction ) { + var current = F.current; + + if (current) { + if (!isString(direction)) { + direction = current.direction.prev; + } + + F.jumpto(current.index - 1, direction, 'prev'); + } + }, + + // Navigate to gallery item by index + jumpto: function ( index, direction, router ) { + var current = F.current; + + if (!current) { + return; + } + + index = getScalar(index); + + F.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ]; + F.router = router || 'jumpto'; + + if (current.loop) { + if (index < 0) { + index = current.group.length + (index % current.group.length); + } + + index = index % current.group.length; + } + + if (current.group[ index ] !== undefined) { + F.cancel(); + + F._start(index); + } + }, + + // Center inside viewport and toggle position type to fixed or absolute if needed + reposition: function (e, onlyAbsolute) { + var current = F.current, + wrap = current ? current.wrap : null, + pos; + + if (wrap) { + pos = F._getPosition(onlyAbsolute); + + if (e && e.type === 'scroll') { + delete pos.position; + + wrap.stop(true, true).animate(pos, 200); + + } else { + wrap.css(pos); + + current.pos = $.extend({}, current.dim, pos); + } + } + }, + + update: function (e) { + var type = (e && e.type), + anyway = !type || type === 'orientationchange'; + + if (anyway) { + clearTimeout(didUpdate); + + didUpdate = null; + } + + if (!F.isOpen || didUpdate) { + return; + } + + didUpdate = setTimeout(function() { + var current = F.current; + + if (!current || F.isClosing) { + return; + } + + F.wrap.removeClass('fancybox-tmp'); + + if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) { + F._setDimension(); + } + + if (!(type === 'scroll' && current.canShrink)) { + F.reposition(e); + } + + F.trigger('onUpdate'); + + didUpdate = null; + + }, (anyway && !isTouch ? 0 : 300)); + }, + + // Shrink content to fit inside viewport or restore if resized + toggle: function ( action ) { + if (F.isOpen) { + F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView; + + // Help browser to restore document dimensions + if (isTouch) { + F.wrap.removeAttr('style').addClass('fancybox-tmp'); + + F.trigger('onUpdate'); + } + + F.update(); + } + }, + + hideLoading: function () { + D.unbind('.loading'); + + $('#fancybox-loading').remove(); + }, + + showLoading: function () { + var el, viewport; + + F.hideLoading(); + + el = $('<div id="fancybox-loading"><div></div></div>').click(F.cancel).appendTo('body'); + + // If user will press the escape-button, the request will be canceled + D.bind('keydown.loading', function(e) { + if ((e.which || e.keyCode) === 27) { + e.preventDefault(); + + F.cancel(); + } + }); + + if (!F.defaults.fixed) { + viewport = F.getViewport(); + + el.css({ + position : 'absolute', + top : (viewport.h * 0.5) + viewport.y, + left : (viewport.w * 0.5) + viewport.x + }); + } + }, + + getViewport: function () { + var locked = (F.current && F.current.locked) || false, + rez = { + x: W.scrollLeft(), + y: W.scrollTop() + }; + + if (locked) { + rez.w = locked[0].clientWidth; + rez.h = locked[0].clientHeight; + + } else { + // See http://bugs.jquery.com/ticket/6724 + rez.w = isTouch && window.innerWidth ? window.innerWidth : W.width(); + rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height(); + } + + return rez; + }, + + // Unbind the keyboard / clicking actions + unbindEvents: function () { + if (F.wrap && isQuery(F.wrap)) { + F.wrap.unbind('.fb'); + } + + D.unbind('.fb'); + W.unbind('.fb'); + }, + + bindEvents: function () { + var current = F.current, + keys; + + if (!current) { + return; + } + + // Changing document height on iOS devices triggers a 'resize' event, + // that can change document height... repeating infinitely + W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update); + + keys = current.keys; + + if (keys) { + D.bind('keydown.fb', function (e) { + var code = e.which || e.keyCode, + target = e.target || e.srcElement; + + // Skip esc key if loading, because showLoading will cancel preloading + if (code === 27 && F.coming) { + return false; + } + + // Ignore key combinations and key events within form elements + if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) { + $.each(keys, function(i, val) { + if (current.group.length > 1 && val[ code ] !== undefined) { + F[ i ]( val[ code ] ); + + e.preventDefault(); + return false; + } + + if ($.inArray(code, val) > -1) { + F[ i ] (); + + e.preventDefault(); + return false; + } + }); + } + }); + } + + if ($.fn.mousewheel && current.mouseWheel) { + F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) { + var target = e.target || null, + parent = $(target), + canScroll = false; + + while (parent.length) { + if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) { + break; + } + + canScroll = isScrollable( parent[0] ); + parent = $(parent).parent(); + } + + if (delta !== 0 && !canScroll) { + if (F.group.length > 1 && !current.canShrink) { + if (deltaY > 0 || deltaX > 0) { + F.prev( deltaY > 0 ? 'down' : 'left' ); + + } else if (deltaY < 0 || deltaX < 0) { + F.next( deltaY < 0 ? 'up' : 'right' ); + } + + e.preventDefault(); + } + } + }); + } + }, + + trigger: function (event, o) { + var ret, obj = o || F.coming || F.current; + + if (!obj) { + return; + } + + if ($.isFunction( obj[event] )) { + ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1)); + } + + if (ret === false) { + return false; + } + + if (obj.helpers) { + $.each(obj.helpers, function (helper, opts) { + if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) { + F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj); + } + }); + } + + D.trigger(event); + }, + + isImage: function (str) { + return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i); + }, + + isSWF: function (str) { + return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i); + }, + + _start: function (index) { + var coming = {}, + obj, + href, + type, + margin, + padding; + + index = getScalar( index ); + obj = F.group[ index ] || null; + + if (!obj) { + return false; + } + + coming = $.extend(true, {}, F.opts, obj); + + // Convert margin and padding properties to array - top, right, bottom, left + margin = coming.margin; + padding = coming.padding; + + if ($.type(margin) === 'number') { + coming.margin = [margin, margin, margin, margin]; + } + + if ($.type(padding) === 'number') { + coming.padding = [padding, padding, padding, padding]; + } + + // 'modal' propery is just a shortcut + if (coming.modal) { + $.extend(true, coming, { + closeBtn : false, + closeClick : false, + nextClick : false, + arrows : false, + mouseWheel : false, + keys : null, + helpers: { + overlay : { + closeClick : false + } + } + }); + } + + // 'autoSize' property is a shortcut, too + if (coming.autoSize) { + coming.autoWidth = coming.autoHeight = true; + } + + if (coming.width === 'auto') { + coming.autoWidth = true; + } + + if (coming.height === 'auto') { + coming.autoHeight = true; + } + + /* + * Add reference to the group, so it`s possible to access from callbacks, example: + * afterLoad : function() { + * this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : ''); + * } + */ + + coming.group = F.group; + coming.index = index; + + // Give a chance for callback or helpers to update coming item (type, title, etc) + F.coming = coming; + + if (false === F.trigger('beforeLoad')) { + F.coming = null; + + return; + } + + type = coming.type; + href = coming.href; + + if (!type) { + F.coming = null; + + //If we can not determine content type then drop silently or display next/prev item if looping through gallery + if (F.current && F.router && F.router !== 'jumpto') { + F.current.index = index; + + return F[ F.router ]( F.direction ); + } + + return false; + } + + F.isActive = true; + + if (type === 'image' || type === 'swf') { + coming.autoHeight = coming.autoWidth = false; + coming.scrolling = 'visible'; + } + + if (type === 'image') { + coming.aspectRatio = true; + } + + if (type === 'iframe' && isTouch) { + coming.scrolling = 'scroll'; + } + + // Build the neccessary markup + coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' ); + + $.extend(coming, { + skin : $('.fancybox-skin', coming.wrap), + outer : $('.fancybox-outer', coming.wrap), + inner : $('.fancybox-inner', coming.wrap) + }); + + $.each(["Top", "Right", "Bottom", "Left"], function(i, v) { + coming.skin.css('padding' + v, getValue(coming.padding[ i ])); + }); + + F.trigger('onReady'); + + // Check before try to load; 'inline' and 'html' types need content, others - href + if (type === 'inline' || type === 'html') { + if (!coming.content || !coming.content.length) { + return F._error( 'content' ); + } + + } else if (!href) { + return F._error( 'href' ); + } + + if (type === 'image') { + F._loadImage(); + + } else if (type === 'ajax') { + F._loadAjax(); + + } else if (type === 'iframe') { + F._loadIframe(); + + } else { + F._afterLoad(); + } + }, + + _error: function ( type ) { + $.extend(F.coming, { + type : 'html', + autoWidth : true, + autoHeight : true, + minWidth : 0, + minHeight : 0, + scrolling : 'no', + hasError : type, + content : F.coming.tpl.error + }); + + F._afterLoad(); + }, + + _loadImage: function () { + // Reset preload image so it is later possible to check "complete" property + var img = F.imgPreload = new Image(); + + img.onload = function () { + this.onload = this.onerror = null; + + F.coming.width = this.width / F.opts.pixelRatio; + F.coming.height = this.height / F.opts.pixelRatio; + + F._afterLoad(); + }; + + img.onerror = function () { + this.onload = this.onerror = null; + + F._error( 'image' ); + }; + + img.src = F.coming.href; + + if (img.complete !== true) { + F.showLoading(); + } + }, + + _loadAjax: function () { + var coming = F.coming; + + F.showLoading(); + + F.ajaxLoad = $.ajax($.extend({}, coming.ajax, { + url: coming.href, + error: function (jqXHR, textStatus) { + if (F.coming && textStatus !== 'abort') { + F._error( 'ajax', jqXHR ); + + } else { + F.hideLoading(); + } + }, + success: function (data, textStatus) { + if (textStatus === 'success') { + coming.content = data; + + F._afterLoad(); + } + } + })); + }, + + _loadIframe: function() { + var coming = F.coming, + iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime())) + .attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling) + .attr('src', coming.href); + + // This helps IE + $(coming.wrap).bind('onReset', function () { + try { + $(this).find('iframe').hide().attr('src', '//about:blank').end().empty(); + } catch (e) {} + }); + + if (coming.iframe.preload) { + F.showLoading(); + + iframe.one('load', function() { + $(this).data('ready', 1); + + // iOS will lose scrolling if we resize + if (!isTouch) { + $(this).bind('load.fb', F.update); + } + + // Without this trick: + // - iframe won't scroll on iOS devices + // - IE7 sometimes displays empty iframe + $(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show(); + + F._afterLoad(); + }); + } + + coming.content = iframe.appendTo( coming.inner ); + + if (!coming.iframe.preload) { + F._afterLoad(); + } + }, + + _preloadImages: function() { + var group = F.group, + current = F.current, + len = group.length, + cnt = current.preload ? Math.min(current.preload, len - 1) : 0, + item, + i; + + for (i = 1; i <= cnt; i += 1) { + item = group[ (current.index + i ) % len ]; + + if (item.type === 'image' && item.href) { + new Image().src = item.href; + } + } + }, + + _afterLoad: function () { + var coming = F.coming, + previous = F.current, + placeholder = 'fancybox-placeholder', + current, + content, + type, + scrolling, + href, + embed; + + F.hideLoading(); + + if (!coming || F.isActive === false) { + return; + } + + if (false === F.trigger('afterLoad', coming, previous)) { + coming.wrap.stop(true).trigger('onReset').remove(); + + F.coming = null; + + return; + } + + if (previous) { + F.trigger('beforeChange', previous); + + previous.wrap.stop(true).removeClass('fancybox-opened') + .find('.fancybox-item, .fancybox-nav') + .remove(); + } + + F.unbindEvents(); + + current = coming; + content = coming.content; + type = coming.type; + scrolling = coming.scrolling; + + $.extend(F, { + wrap : current.wrap, + skin : current.skin, + outer : current.outer, + inner : current.inner, + current : current, + previous : previous + }); + + href = current.href; + + switch (type) { + case 'inline': + case 'ajax': + case 'html': + if (current.selector) { + content = $('<div>').html(content).find(current.selector); + + } else if (isQuery(content)) { + if (!content.data(placeholder)) { + content.data(placeholder, $('<div class="' + placeholder + '"></div>').insertAfter( content ).hide() ); + } + + content = content.show().detach(); + + current.wrap.bind('onReset', function () { + if ($(this).find(content).length) { + content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false); + } + }); + } + break; + + case 'image': + content = current.tpl.image.replace('{href}', href); + break; + + case 'swf': + content = '<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="' + href + '"></param>'; + embed = ''; + + $.each(current.swf, function(name, val) { + content += '<param name="' + name + '" value="' + val + '"></param>'; + embed += ' ' + name + '="' + val + '"'; + }); + + content += '<embed src="' + href + '" type="application/x-shockwave-flash" width="100%" height="100%"' + embed + '></embed></object>'; + break; + } + + if (!(isQuery(content) && content.parent().is(current.inner))) { + current.inner.append( content ); + } + + // Give a chance for helpers or callbacks to update elements + F.trigger('beforeShow'); + + // Set scrolling before calculating dimensions + current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling)); + + // Set initial dimensions and start position + F._setDimension(); + + F.reposition(); + + F.isOpen = false; + F.coming = null; + + F.bindEvents(); + + if (!F.isOpened) { + $('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove(); + + } else if (previous.prevMethod) { + F.transitions[ previous.prevMethod ](); + } + + F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ](); + + F._preloadImages(); + }, + + _setDimension: function () { + var viewport = F.getViewport(), + steps = 0, + canShrink = false, + canExpand = false, + wrap = F.wrap, + skin = F.skin, + inner = F.inner, + current = F.current, + width = current.width, + height = current.height, + minWidth = current.minWidth, + minHeight = current.minHeight, + maxWidth = current.maxWidth, + maxHeight = current.maxHeight, + scrolling = current.scrolling, + scrollOut = current.scrollOutside ? current.scrollbarWidth : 0, + margin = current.margin, + wMargin = getScalar(margin[1] + margin[3]), + hMargin = getScalar(margin[0] + margin[2]), + wPadding, + hPadding, + wSpace, + hSpace, + origWidth, + origHeight, + origMaxWidth, + origMaxHeight, + ratio, + width_, + height_, + maxWidth_, + maxHeight_, + iframe, + body; + + // Reset dimensions so we could re-check actual size + wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp'); + + wPadding = getScalar(skin.outerWidth(true) - skin.width()); + hPadding = getScalar(skin.outerHeight(true) - skin.height()); + + // Any space between content and viewport (margin, padding, border, title) + wSpace = wMargin + wPadding; + hSpace = hMargin + hPadding; + + origWidth = isPercentage(width) ? (viewport.w - wSpace) * getScalar(width) / 100 : width; + origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height; + + if (current.type === 'iframe') { + iframe = current.content; + + if (current.autoHeight && iframe.data('ready') === 1) { + try { + if (iframe[0].contentWindow.document.location) { + inner.width( origWidth ).height(9999); + + body = iframe.contents().find('body'); + + if (scrollOut) { + body.css('overflow-x', 'hidden'); + } + + origHeight = body.outerHeight(true); + } + + } catch (e) {} + } + + } else if (current.autoWidth || current.autoHeight) { + inner.addClass( 'fancybox-tmp' ); + + // Set width or height in case we need to calculate only one dimension + if (!current.autoWidth) { + inner.width( origWidth ); + } + + if (!current.autoHeight) { + inner.height( origHeight ); + } + + if (current.autoWidth) { + origWidth = inner.width(); + } + + if (current.autoHeight) { + origHeight = inner.height(); + } + + inner.removeClass( 'fancybox-tmp' ); + } + + width = getScalar( origWidth ); + height = getScalar( origHeight ); + + ratio = origWidth / origHeight; + + // Calculations for the content + minWidth = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth); + maxWidth = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth); + + minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight); + maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight); + + // These will be used to determine if wrap can fit in the viewport + origMaxWidth = maxWidth; + origMaxHeight = maxHeight; + + if (current.fitToView) { + maxWidth = Math.min(viewport.w - wSpace, maxWidth); + maxHeight = Math.min(viewport.h - hSpace, maxHeight); + } + + maxWidth_ = viewport.w - wMargin; + maxHeight_ = viewport.h - hMargin; + + if (current.aspectRatio) { + if (width > maxWidth) { + width = maxWidth; + height = getScalar(width / ratio); + } + + if (height > maxHeight) { + height = maxHeight; + width = getScalar(height * ratio); + } + + if (width < minWidth) { + width = minWidth; + height = getScalar(width / ratio); + } + + if (height < minHeight) { + height = minHeight; + width = getScalar(height * ratio); + } + + } else { + width = Math.max(minWidth, Math.min(width, maxWidth)); + + if (current.autoHeight && current.type !== 'iframe') { + inner.width( width ); + + height = inner.height(); + } + + height = Math.max(minHeight, Math.min(height, maxHeight)); + } + + // Try to fit inside viewport (including the title) + if (current.fitToView) { + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + // Real wrap dimensions + width_ = wrap.width(); + height_ = wrap.height(); + + if (current.aspectRatio) { + while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) { + if (steps++ > 19) { + break; + } + + height = Math.max(minHeight, Math.min(maxHeight, height - 10)); + width = getScalar(height * ratio); + + if (width < minWidth) { + width = minWidth; + height = getScalar(width / ratio); + } + + if (width > maxWidth) { + width = maxWidth; + height = getScalar(width / ratio); + } + + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + width_ = wrap.width(); + height_ = wrap.height(); + } + + } else { + width = Math.max(minWidth, Math.min(width, width - (width_ - maxWidth_))); + height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_))); + } + } + + if (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) { + width += scrollOut; + } + + inner.width( width ).height( height ); + + wrap.width( width + wPadding ); + + width_ = wrap.width(); + height_ = wrap.height(); + + canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight; + canExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight)); + + $.extend(current, { + dim : { + width : getValue( width_ ), + height : getValue( height_ ) + }, + origWidth : origWidth, + origHeight : origHeight, + canShrink : canShrink, + canExpand : canExpand, + wPadding : wPadding, + hPadding : hPadding, + wrapSpace : height_ - skin.outerHeight(true), + skinSpace : skin.height() - height + }); + + if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) { + inner.height('auto'); + } + }, + + _getPosition: function (onlyAbsolute) { + var current = F.current, + viewport = F.getViewport(), + margin = current.margin, + width = F.wrap.width() + margin[1] + margin[3], + height = F.wrap.height() + margin[0] + margin[2], + rez = { + position: 'absolute', + top : margin[0], + left : margin[3] + }; + + if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) { + rez.position = 'fixed'; + + } else if (!current.locked) { + rez.top += viewport.y; + rez.left += viewport.x; + } + + rez.top = getValue(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio))); + rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width) * current.leftRatio))); + + return rez; + }, + + _afterZoomIn: function () { + var current = F.current; + + if (!current) { + return; + } + + F.isOpen = F.isOpened = true; + + F.wrap.css('overflow', 'visible').addClass('fancybox-opened'); + + F.update(); + + // Assign a click event + if ( current.closeClick || (current.nextClick && F.group.length > 1) ) { + F.inner.css('cursor', 'pointer').bind('click.fb', function(e) { + if (!$(e.target).is('a') && !$(e.target).parent().is('a')) { + e.preventDefault(); + + F[ current.closeClick ? 'close' : 'next' ](); + } + }); + } + + // Create a close button + if (current.closeBtn) { + $(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) { + e.preventDefault(); + + F.close(); + }); + } + + // Create navigation arrows + if (current.arrows && F.group.length > 1) { + if (current.loop || current.index > 0) { + $(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev); + } + + if (current.loop || current.index < F.group.length - 1) { + $(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next); + } + } + + F.trigger('afterShow'); + + // Stop the slideshow if this is the last item + if (!current.loop && current.index === current.group.length - 1) { + F.play( false ); + + } else if (F.opts.autoPlay && !F.player.isActive) { + F.opts.autoPlay = false; + + F.play(); + } + }, + + _afterZoomOut: function ( obj ) { + obj = obj || F.current; + + $('.fancybox-wrap').trigger('onReset').remove(); + + $.extend(F, { + group : {}, + opts : {}, + router : false, + current : null, + isActive : false, + isOpened : false, + isOpen : false, + isClosing : false, + wrap : null, + skin : null, + outer : null, + inner : null + }); + + F.trigger('afterClose', obj); + } + }); + + /* + * Default transitions + */ + + F.transitions = { + getOrigPosition: function () { + var current = F.current, + element = current.element, + orig = current.orig, + pos = {}, + width = 50, + height = 50, + hPadding = current.hPadding, + wPadding = current.wPadding, + viewport = F.getViewport(); + + if (!orig && current.isDom && element.is(':visible')) { + orig = element.find('img:first'); + + if (!orig.length) { + orig = element; + } + } + + if (isQuery(orig)) { + pos = orig.offset(); + + if (orig.is('img')) { + width = orig.outerWidth(); + height = orig.outerHeight(); + } + + } else { + pos.top = viewport.y + (viewport.h - height) * current.topRatio; + pos.left = viewport.x + (viewport.w - width) * current.leftRatio; + } + + if (F.wrap.css('position') === 'fixed' || current.locked) { + pos.top -= viewport.y; + pos.left -= viewport.x; + } + + pos = { + top : getValue(pos.top - hPadding * current.topRatio), + left : getValue(pos.left - wPadding * current.leftRatio), + width : getValue(width + wPadding), + height : getValue(height + hPadding) + }; + + return pos; + }, + + step: function (now, fx) { + var ratio, + padding, + value, + prop = fx.prop, + current = F.current, + wrapSpace = current.wrapSpace, + skinSpace = current.skinSpace; + + if (prop === 'width' || prop === 'height') { + ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start); + + if (F.isClosing) { + ratio = 1 - ratio; + } + + padding = prop === 'width' ? current.wPadding : current.hPadding; + value = now - padding; + + F.skin[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) ) ); + F.inner[ prop ]( getScalar( prop === 'width' ? value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) ); + } + }, + + zoomIn: function () { + var current = F.current, + startPos = current.pos, + effect = current.openEffect, + elastic = effect === 'elastic', + endPos = $.extend({opacity : 1}, startPos); + + // Remove "position" property that breaks older IE + delete endPos.position; + + if (elastic) { + startPos = this.getOrigPosition(); + + if (current.openOpacity) { + startPos.opacity = 0.1; + } + + } else if (effect === 'fade') { + startPos.opacity = 0.1; + } + + F.wrap.css(startPos).animate(endPos, { + duration : effect === 'none' ? 0 : current.openSpeed, + easing : current.openEasing, + step : elastic ? this.step : null, + complete : F._afterZoomIn + }); + }, + + zoomOut: function () { + var current = F.current, + effect = current.closeEffect, + elastic = effect === 'elastic', + endPos = {opacity : 0.1}; + + if (elastic) { + endPos = this.getOrigPosition(); + + if (current.closeOpacity) { + endPos.opacity = 0.1; + } + } + + F.wrap.animate(endPos, { + duration : effect === 'none' ? 0 : current.closeSpeed, + easing : current.closeEasing, + step : elastic ? this.step : null, + complete : F._afterZoomOut + }); + }, + + changeIn: function () { + var current = F.current, + effect = current.nextEffect, + startPos = current.pos, + endPos = { opacity : 1 }, + direction = F.direction, + distance = 200, + field; + + startPos.opacity = 0.1; + + if (effect === 'elastic') { + field = direction === 'down' || direction === 'up' ? 'top' : 'left'; + + if (direction === 'down' || direction === 'right') { + startPos[ field ] = getValue(getScalar(startPos[ field ]) - distance); + endPos[ field ] = '+=' + distance + 'px'; + + } else { + startPos[ field ] = getValue(getScalar(startPos[ field ]) + distance); + endPos[ field ] = '-=' + distance + 'px'; + } + } + + // Workaround for http://bugs.jquery.com/ticket/12273 + if (effect === 'none') { + F._afterZoomIn(); + + } else { + F.wrap.css(startPos).animate(endPos, { + duration : current.nextSpeed, + easing : current.nextEasing, + complete : F._afterZoomIn + }); + } + }, + + changeOut: function () { + var previous = F.previous, + effect = previous.prevEffect, + endPos = { opacity : 0.1 }, + direction = F.direction, + distance = 200; + + if (effect === 'elastic') { + endPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px'; + } + + previous.wrap.animate(endPos, { + duration : effect === 'none' ? 0 : previous.prevSpeed, + easing : previous.prevEasing, + complete : function () { + $(this).trigger('onReset').remove(); + } + }); + } + }; + + /* + * Overlay helper + */ + + F.helpers.overlay = { + defaults : { + closeClick : true, // if true, fancyBox will be closed when user clicks on the overlay + speedOut : 200, // duration of fadeOut animation + showEarly : true, // indicates if should be opened immediately or wait until the content is ready + css : {}, // custom CSS properties + locked : !isTouch, // if true, the content will be locked into overlay + fixed : true // if false, the overlay CSS position property will not be set to "fixed" + }, + + overlay : null, // current handle + fixed : false, // indicates if the overlay has position "fixed" + el : $('html'), // element that contains "the lock" + + // Public methods + create : function(opts) { + opts = $.extend({}, this.defaults, opts); + + if (this.overlay) { + this.close(); + } + + this.overlay = $('<div class="fancybox-overlay"></div>').appendTo( F.coming ? F.coming.parent : opts.parent ); + this.fixed = false; + + if (opts.fixed && F.defaults.fixed) { + this.overlay.addClass('fancybox-overlay-fixed'); + + this.fixed = true; + } + }, + + open : function(opts) { + var that = this; + + opts = $.extend({}, this.defaults, opts); + + if (this.overlay) { + this.overlay.unbind('.overlay').width('auto').height('auto'); + + } else { + this.create(opts); + } + + if (!this.fixed) { + W.bind('resize.overlay', $.proxy( this.update, this) ); + + this.update(); + } + + if (opts.closeClick) { + this.overlay.bind('click.overlay', function(e) { + if ($(e.target).hasClass('fancybox-overlay')) { + if (F.isActive) { + F.close(); + } else { + that.close(); + } + + return false; + } + }); + } + + this.overlay.css( opts.css ).show(); + }, + + close : function() { + var scrollV, scrollH; + + W.unbind('resize.overlay'); + + if (this.el.hasClass('fancybox-lock')) { + $('.fancybox-margin').removeClass('fancybox-margin'); + + scrollV = W.scrollTop(); + scrollH = W.scrollLeft(); + + this.el.removeClass('fancybox-lock'); + + W.scrollTop( scrollV ).scrollLeft( scrollH ); + } + + $('.fancybox-overlay').remove().hide(); + + $.extend(this, { + overlay : null, + fixed : false + }); + }, + + // Private, callbacks + + update : function () { + var width = '100%', offsetWidth; + + // Reset width/height so it will not mess + this.overlay.width(width).height('100%'); + + // jQuery does not return reliable result for IE + if (IE) { + offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); + + if (D.width() > offsetWidth) { + width = D.width(); + } + + } else if (D.width() > W.width()) { + width = D.width(); + } + + this.overlay.width(width).height(D.height()); + }, + + // This is where we can manipulate DOM, because later it would cause iframes to reload + onReady : function (opts, obj) { + var overlay = this.overlay; + + $('.fancybox-overlay').stop(true, true); + + if (!overlay) { + this.create(opts); + } + + if (opts.locked && this.fixed && obj.fixed) { + if (!overlay) { + this.margin = D.height() > W.height() ? $('html').css('margin-right').replace("px", "") : false; + } + + obj.locked = this.overlay.append( obj.wrap ); + obj.fixed = false; + } + + if (opts.showEarly === true) { + this.beforeShow.apply(this, arguments); + } + }, + + beforeShow : function(opts, obj) { + var scrollV, scrollH; + + if (obj.locked) { + if (this.margin !== false) { + $('*').filter(function(){ + return ($(this).css('position') === 'fixed' && !$(this).hasClass("fancybox-overlay") && !$(this).hasClass("fancybox-wrap") ); + }).addClass('fancybox-margin'); + + this.el.addClass('fancybox-margin'); + } + + scrollV = W.scrollTop(); + scrollH = W.scrollLeft(); + + this.el.addClass('fancybox-lock'); + + W.scrollTop( scrollV ).scrollLeft( scrollH ); + } + + this.open(opts); + }, + + onUpdate : function() { + if (!this.fixed) { + this.update(); + } + }, + + afterClose: function (opts) { + // Remove overlay if exists and fancyBox is not opening + // (e.g., it is not being open using afterClose callback) + //if (this.overlay && !F.isActive) { + if (this.overlay && !F.coming) { + this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this )); + } + } + }; + + /* + * Title helper + */ + + F.helpers.title = { + defaults : { + type : 'float', // 'float', 'inside', 'outside' or 'over', + position : 'bottom' // 'top' or 'bottom' + }, + + beforeShow: function (opts) { + var current = F.current, + text = current.title, + type = opts.type, + title, + target; + + if ($.isFunction(text)) { + text = text.call(current.element, current); + } + + if (!isString(text) || $.trim(text) === '') { + return; + } + + title = $('<div class="fancybox-title fancybox-title-' + type + '-wrap">' + text + '</div>'); + + switch (type) { + case 'inside': + target = F.skin; + break; + + case 'outside': + target = F.wrap; + break; + + case 'over': + target = F.inner; + break; + + default: // 'float' + target = F.skin; + + title.appendTo('body'); + + if (IE) { + title.width( title.width() ); + } + + title.wrapInner('<span class="child"></span>'); + + //Increase bottom margin so this title will also fit into viewport + F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) ); + break; + } + + title[ (opts.position === 'top' ? 'prependTo' : 'appendTo') ](target); + } + }; + + // jQuery plugin initialization + $.fn.fancybox = function (options) { + var index, + that = $(this), + selector = this.selector || '', + run = function(e) { + var what = $(this).blur(), idx = index, relType, relVal; + + if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) { + relType = options.groupAttr || 'data-fancybox-group'; + relVal = what.attr(relType); + + if (!relVal) { + relType = 'rel'; + relVal = what.get(0)[ relType ]; + } + + if (relVal && relVal !== '' && relVal !== 'nofollow') { + what = selector.length ? $(selector) : that; + what = what.filter('[' + relType + '="' + relVal + '"]'); + idx = what.index(this); + } + + options.index = idx; + + // Stop an event from bubbling if everything is fine + if (F.open(what, options) !== false) { + e.preventDefault(); + } + } + }; + + options = options || {}; + index = options.index || 0; + + if (!selector || options.live === false) { + that.unbind('click.fb-start').bind('click.fb-start', run); + + } else { + D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run); + } + + this.filter('[data-fancybox-start=1]').trigger('click'); + + return this; + }; + + // Tests that need a body at doc ready + D.ready(function() { + var w1, w2; + + if ( $.scrollbarWidth === undefined ) { + // http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth + $.scrollbarWidth = function() { + var parent = $('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo('body'), + child = parent.children(), + width = child.innerWidth() - child.height( 99 ).innerWidth(); + + parent.remove(); + + return width; + }; + } + + if ( $.support.fixedPosition === undefined ) { + $.support.fixedPosition = (function() { + var elem = $('<div style="position:fixed;top:20px;"></div>').appendTo('body'), + fixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 ); + + elem.remove(); + + return fixed; + }()); + } + + $.extend(F.defaults, { + scrollbarWidth : $.scrollbarWidth(), + fixed : $.support.fixedPosition, + parent : $('body') + }); + + //Get real width of page scroll-bar + w1 = $(window).width(); + + H.addClass('fancybox-lock-test'); + + w2 = $(window).width(); + + H.removeClass('fancybox-lock-test'); + + $("<style type='text/css'>.fancybox-margin{margin-right:" + (w2 - w1) + "px;}</style>").appendTo("head"); + }); + +}(window, document, jQuery));
\ No newline at end of file diff --git a/frontend/im/colors/js/jquery.mousewheel-3.0.6.pack.js b/frontend/im/colors/js/jquery.mousewheel-3.0.6.pack.js new file mode 100644 index 0000000..e39a83a --- /dev/null +++ b/frontend/im/colors/js/jquery.mousewheel-3.0.6.pack.js @@ -0,0 +1,13 @@ +/*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net) + * Licensed under the MIT License (LICENSE.txt). + * + * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. + * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. + * Thanks to: Seamus Leahy for adding deltaX and deltaY + * + * Version: 3.0.6 + * + * Requires: 1.2.2+ + */ +(function(d){function e(a){var b=a||window.event,c=[].slice.call(arguments,1),f=0,e=0,g=0,a=d.event.fix(b);a.type="mousewheel";b.wheelDelta&&(f=b.wheelDelta/120);b.detail&&(f=-b.detail/3);g=f;b.axis!==void 0&&b.axis===b.HORIZONTAL_AXIS&&(g=0,e=-1*f);b.wheelDeltaY!==void 0&&(g=b.wheelDeltaY/120);b.wheelDeltaX!==void 0&&(e=-1*b.wheelDeltaX/120);c.unshift(a,f,e,g);return(d.event.dispatch||d.event.handle).apply(this,c)}var c=["DOMMouseScroll","mousewheel"];if(d.event.fixHooks)for(var h=c.length;h;)d.event.fixHooks[c[--h]]= +d.event.mouseHooks;d.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],e,false);else this.onmousewheel=e},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],e,false);else this.onmousewheel=null}};d.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);
\ No newline at end of file diff --git a/frontend/im/colors/js/jquery.remember-state.js b/frontend/im/colors/js/jquery.remember-state.js new file mode 100644 index 0000000..d695fbd --- /dev/null +++ b/frontend/im/colors/js/jquery.remember-state.js @@ -0,0 +1,193 @@ +(function($) { + /* jQuery form remember state plugin + Name: rememberState + Version: 1.3.2 + Description: When called on a form element, localStorage is used to + remember the values that have been input up to the point of either + saving or unloading. (closing window, navigating away, etc.) If + localStorage isn't available, nothing is bound or stored. + The plugin looks for an element with a class of remember_state to show + a note indicating there is stored data that can be repopulated by clicking + on the anchor within the remember_state container. If the element doesn't + exist, it is created and prepended to the form. + Usage: $("form").rememberState("my_object_name"); + Notes: To trigger the deletion of a form's localStorage object from + outside the plugin, trigger the reset_state event on the form element + by using $("form").trigger("reset_state"); + */ + if (!window.localStorage || !window.JSON) { + if (console && console.log) { + !window.localStorage && console.log("ERROR: you browser does not support" + + " localStorage (use this polyfill https://gist.github.com/350433)"); + !window.JSON&& console.log("ERROR: you browser does not support" + + " JSON (use this polyfill http://bestiejs.github.com/json3/)"); + } + return $.fn.rememberState = function() { return this; }; + } + + var remember_state = { + name: "rememberState", + clearOnSubmit: true, + noticeDialog: (function() { + return $("<p />", {"class": "remember_state"}) + .html('Do you want to <a href="#">restore your previously entered info</a>?'); + })(), + ignore: null, + noticeSelector: ".remember_state", + use_ids: false, + objName: false, + clickNotice: function(e) { + var data = JSON.parse(localStorage.getItem(e.data.instance.objName)), + $f = $(this).closest("form"), + $e; + for (var i in data) { + $e = $f.find("[name=\"" + data[i].name + "\"]"); + if ($e.is(":radio, :checkbox")) { + $e.filter("[value=" + data[i].value + "]").prop("checked", true); + } + else if ($e.is("select")) { + $e.find("[value=" + data[i].value + "]").prop("selected", true); + } + else { + $e.val(data[i].value); + } + $e.change(); + } + e.data.instance.noticeDialog.remove(); + e.preventDefault(); + }, + chooseStorageProp: function() { + if (this.$el.length > 1) { + if (console && console.warn) { + console.warn("WARNING: Cannot process more than one form with the same" + + " object. Attempting to use form IDs instead."); + } + this.objName = this.$el.attr("id"); + } + }, + errorNoID: function() { + if (console && console.log) { + console.log("ERROR: No form ID or object name. Add an ID or pass" + + " in an object name"); + } + }, + saveState: function(e) { + var instance = e.data.instance; + var values = instance.$el.serializeArray(); + // jQuery doesn't currently support datetime-local inputs despite a + // comment by dmethvin stating the contrary: + // http://bugs.jquery.com/ticket/5667 + // Manually storing input type until jQuery is patched + instance.$el.find("input[type='datetime-local']").each(function() { + var $i = $(this); + values.push({ name: $i.attr("name"), value: $i.val() }); + }); + values = instance.removeIgnored(values); + values.length && internals.setObject(instance.objName, values); + }, + save: function() { + var instance = this; + if (!this.saveState) { + instance = this.data(remember_state.name); + } + instance.saveState({ data: { instance: instance } }); + }, + removeIgnored: function(values) { + var ignore = this.ignore; + if (!ignore) { return values; } + $.each(values, function(i, input) { + if ($.inArray(input.name, ignore) !== -1) { + values[i] = false; + } + }); + values = $.grep(values, function(val) { return val; }); + return values; + }, + bindNoticeDialog: function() { + if (!this.noticeDialog.length || !this.noticeDialog.jquery) { + return; + } + this.noticeDialog.find("a").bind("click." + this.name, { + instance: this + }, this.clickNotice); + }, + setName: function() { + this.objName = this.objName || this.$el.attr("id"); + if (!this.objName) { this.errorNoID(); } + }, + bindResetEvents: function() { + if (this.clearOnSubmit) { + this.$el.bind("submit." + this.name, function() { + this.$el.trigger("reset_state"); + $(window).unbind("unload." + this.name); + }); + } + + this.$el.bind("reset_state." + this.name, function() { + localStorage.removeItem(this.objName); + }); + this.$el.find(":reset").bind("click." + this.name, function() { + $(this).closest("form").trigger("reset_state"); + }); + }, + createNoticeDialog: function() { + if (localStorage[this.objName]) { + if (this.noticeDialog.length && this.noticeDialog.jquery) { + this.noticeDialog.prependTo(this.$el); + } + else { + this.$el.find(this.noticeSelector).show(); + } + } + }, + destroy: function(destroy_local_storage) { + var namespace = "." + this.name; + this.$el.unbind(namespace).find(":reset").unbind(namespace); + $(window).unbind(namespace); + destroy_local_storage && localStorage.removeItem(this.objName); + }, + init: function() { + this.bindNoticeDialog(); + this.setName(); + + if (!this.objName) { return; } + + this.bindResetEvents(); + this.createNoticeDialog(); + + $(window).bind("unload." + this.name, { instance: this }, this.saveState); + } + }; + + var internals = { + setObject: function(key, value) { localStorage[key] = JSON.stringify(value); }, + getObject: function(key) { return JSON.parse(localStorage[key]); }, + createPlugin: function(plugin) { + $.fn[plugin.name] = function(opts) { + var $els = this, + method = $.isPlainObject(opts) || !opts ? "" : opts, + args = arguments; + if (method && plugin[method]) { + $els.each(function(i) { + plugin[method].apply($els.eq(i).data(plugin.name), Array.prototype.slice.call(args, 1)); + }); + } + else if (!method) { + $els.each(function(i) { + var plugin_instance = $.extend(true, { + $el: $els.eq(i) + }, plugin, opts); + $els.eq(i).data(plugin.name, plugin_instance); + plugin_instance.init(); + }); + } + else { + $.error('Method ' + method + ' does not exist on jQuery.' + plugin.name); + } + return $els; + }; + } + }; + + internals.createPlugin(remember_state); +})(jQuery); diff --git a/frontend/im/colors/js/jquery.remember-state.pack.js b/frontend/im/colors/js/jquery.remember-state.pack.js new file mode 100644 index 0000000..3aec315 --- /dev/null +++ b/frontend/im/colors/js/jquery.remember-state.pack.js @@ -0,0 +1 @@ +eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(2($){4(!k.h||!k.n){4(8&&8.s){!k.h&&8.s("B: C L D E M"+" h (F 0 N 1q://1r.O.P/1s)");!k.n&&8.s("B: C L D E M"+" n (F 0 N 1t://1u.O.P/1v/)")}9 $.Q.R=2(){9 0}}6 f={3:"R",S:w,j:(2(){9 $("<p />",{"1w":"T"}).1x(\'1y C 1z U <a 1A="#">1B 1C 1D 1E 1F</a>?\')})(),V:1G,W:".T",1H:G,7:G,X:2(e){6 a=n.Y(h.1I(e.l.o.7)),$f=$(0).Z("t"),$e;1J(6 i 10 a){$e=$f.m("[3=\\""+a[i].3+"\\"]");4($e.11(":1K, :1L")){$e.1M("[q="+a[i].q+"]").12("1N",w)}u 4($e.11("1O")){$e.m("[q="+a[i].q+"]").12("1P",w)}u{$e.13(a[i].q)}$e.1Q()}e.l.o.j.1R();e.1S()},1T:2(){4(0.$5.x>1){4(8&&8.14){8.14("1U: 1V 1W 1X 1Y 1Z t 20 21 22"+" H. 23 U F t 24 25.")}0.7=0.$5.I("15")}},16:2(){4(8&&8.s){8.s("B: 26 t 17 18 H 3. 27 19 17 18 28"+" 10 19 H 3")}},y:2(e){6 b=e.l.o;6 c=b.$5.29();b.$5.m("2a[2b=\'2c-2d\']").z(2(){6 a=$(0);c.2e({3:a.I("3"),q:a.13()})});c=b.1a(c);c.x&&g.1b(b.7,c)},2f:2(){6 a=0;4(!0.y){a=0.l(f.3)}a.y({l:{o:a}})},1a:2(b){6 c=0.V;4(!c){9 b}$.z(b,2(i,a){4($.2g(a.3,c)!==-1){b[i]=G}});b=$.2h(b,2(a){9 a});9 b},1c:2(){4(!0.j.x||!0.j.1d){9}0.j.m("a").v("1e."+0.3,{o:0},0.X)},1f:2(){0.7=0.7||0.$5.I("15");4(!0.7){0.16()}},1g:2(){4(0.S){0.$5.v("2i."+0.3,2(){0.$5.1h("J");$(k).A("1i."+0.3)})}0.$5.v("J."+0.3,2(){h.1j(0.7)});0.$5.m(":1k").v("1e."+0.3,2(){$(0).Z("t").1h("J")})},1l:2(){4(h[0.7]){4(0.j.x&&0.j.1d){0.j.2j(0.$5)}u{0.$5.m(0.W).2k()}}},2l:2(a){6 b="."+0.3;0.$5.A(b).m(":1k").A(b);$(k).A(b);a&&h.1j(0.7)},1m:2(){0.1c();0.1f();4(!0.7){9}0.1g();0.1l();$(k).v("1i."+0.3,{o:0},0.y)}};6 g={1b:2(a,b){h[a]=n.2m(b)},2n:2(a){9 n.Y(h[a])},1n:2(d){$.Q[d.3]=2(b){6 c=0,r=$.2o(b)||!b?"":b,1o=2p;4(r&&d[r]){c.z(2(i){d[r].2q(c.K(i).l(d.3),2r.2s.2t.2u(1o,1))})}u 4(!r){c.z(2(i){6 a=$.2v(w,{$5:c.K(i)},d,b);c.K(i).l(d.3,a);a.1m()})}u{$.2w(\'2x \'+r+\' D E 2y 2z 1p.\'+d.3)}9 c}}};g.1n(f)})(1p);',62,160,'this||function|name|if|el|var|objName|console|return||||||||localStorage||noticeDialog|window|data|find|JSON|instance||value|method|log|form|else|bind|true|length|saveState|each|unbind|ERROR|you|does|not|use|false|object|attr|reset_state|eq|browser|support|polyfill|github|com|fn|rememberState|clearOnSubmit|remember_state|to|ignore|noticeSelector|clickNotice|parse|closest|in|is|prop|val|warn|id|errorNoID|ID|or|an|removeIgnored|setObject|bindNoticeDialog|jquery|click|setName|bindResetEvents|trigger|unload|removeItem|reset|createNoticeDialog|init|createPlugin|args|jQuery|https|gist|350433|http|bestiejs|json3|class|html|Do|want|href|restore|your|previously|entered|info|null|use_ids|getItem|for|radio|checkbox|filter|checked|select|selected|change|remove|preventDefault|chooseStorageProp|WARNING|Cannot|process|more|than|one|with|the|same|Attempting|IDs|instead|No|Add|pass|serializeArray|input|type|datetime|local|push|save|inArray|grep|submit|prependTo|show|destroy|stringify|getObject|isPlainObject|arguments|apply|Array|prototype|slice|call|extend|error|Method|exist|on'.split('|'),0,{})) diff --git a/frontend/im/colors_iframe.js b/frontend/im/colors_iframe.js new file mode 100644 index 0000000..43fd5f2 --- /dev/null +++ b/frontend/im/colors_iframe.js @@ -0,0 +1,45 @@ + + + + +function launch_iframe(input_target){ + $.fancybox.open({ + href : '/im/colors/index.html', + width : 1100, // set the width + height : 710, + fitToView : true, + autoDimensions:false, + autoSize:false, + type : 'iframe', + closeBtn : false, + padding : 5, + beforeShow : function(){ + $('.fancybox-iframe').contents().find('#submitvalue').click(function(){ + $('.fancybox-iframe').contents().find('form').submit(); + $.fancybox.close(); + }); + }, + beforeClose : function(){ + x = $('.fancybox-iframe').contents().find('#namespace').val(); + }, + afterClose: function(){ + $(input_target).val(x); + } + }); +} +$(document).ready(function(){ + if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) { + return; + } + var element_list = [".img-white", ".img-black", ".img-subtract"] + element_list.forEach( + function(l){ + console.log("a"+l) + $("a"+l).click(function(event){ + event.preventDefault(); + launch_iframe("input"+l) + }); + } + ) + +}) diff --git a/frontend/im/df.html b/frontend/im/df.html new file mode 100755 index 0000000..9dcb486 --- /dev/null +++ b/frontend/im/df.html @@ -0,0 +1,10 @@ +<img src="df.png" width="388" height="171"> +<h1>We are totally running low on disk space!!!!!!!!!1</h1> +<h2 style="font-weight: normal;white-space:pre">I have a plan to host everything on S3 but I have to find a block of time to move it over. +There is a lot competing for my attention right now so this isn't gonna happen right away. +If U use Photoblaster a lot please restrain yourself like ration your use. +Not saying don't use it but like just be mindful k? +I love what U make bb U blow my mind every day like whoa. +</h2> +<div style="font-size: 150px; width: 100%; text-align: right">love jules</div> + diff --git a/frontend/im/df.png b/frontend/im/df.png Binary files differnew file mode 100755 index 0000000..c0fda7f --- /dev/null +++ b/frontend/im/df.png diff --git a/frontend/im/gallery/.htaccess b/frontend/im/gallery/.htaccess new file mode 100755 index 0000000..2617f79 --- /dev/null +++ b/frontend/im/gallery/.htaccess @@ -0,0 +1,2 @@ +DirectoryIndex /cgi-bin/im/gallery + diff --git a/frontend/im/gallery/pep/.htaccess b/frontend/im/gallery/pep/.htaccess new file mode 100755 index 0000000..74017fd --- /dev/null +++ b/frontend/im/gallery/pep/.htaccess @@ -0,0 +1,2 @@ +DirectoryIndex /cgi-bin/im/peppergallery + diff --git a/frontend/im/gallery_style.css b/frontend/im/gallery_style.css new file mode 100755 index 0000000..2d78a0e --- /dev/null +++ b/frontend/im/gallery_style.css @@ -0,0 +1,51 @@ +/**** Isotope Filtering ****/ + +.isotope-item { + z-index: 2; +} + +.isotope-hidden.isotope-item { + pointer-events: none; + z-index: 1; +} + +/**** Isotope CSS3 transitions ****/ + +.isotope, +.isotope .isotope-item { + -webkit-transition-duration: 0.3s; + -moz-transition-duration: 0.3s; + -ms-transition-duration: 0.3s; + -o-transition-duration: 0.3s; + transition-duration: 0.3s; +} + + +.isotope { + -webkit-transition-property: height, width; + -moz-transition-property: height, width; + -ms-transition-property: height, width; + -o-transition-property: height, width; + transition-property: height, width; +} + +.isotope .isotope-item { + -webkit-transition-property: -webkit-transform, opacity; + -moz-transition-property: -moz-transform, opacity; + -ms-transition-property: -ms-transform, opacity; + -o-transition-property: -o-transform, opacity; + transition-property: transform, opacity; +} + +/**** disabling Isotope CSS3 transitions ****/ + +.isotope.no-transition, +.isotope.no-transition .isotope-item, +.isotope .isotope-item.no-transition { + -webkit-transition-duration: 0s; + -moz-transition-duration: 0s; + -ms-transition-duration: 0s; + -o-transition-duration: 0s; + transition-duration: 0s; +} + diff --git a/frontend/im/gradient.html b/frontend/im/gradient.html new file mode 100755 index 0000000..6b451bb --- /dev/null +++ b/frontend/im/gradient.html @@ -0,0 +1,402 @@ +<!doctype html> +<html> +<head> +<title>PHOTOBLASTER</title> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta property="og:title" content="PHOTOBLASTER"/> +<meta property="og:type" content="website"/> +<meta property="og:url" content="http://asdf.us/im/"/> +<meta property="og:image" content="http://asdf.us/im/6e/sparklebling1_1310021111_1310071704.gif" /> +<meta property="og:site_name" content="asdf.us"/> +<meta property="og:description" content=""/> +<meta property="fb:admins" content="100001923956223,1709246"/> +<style type="text/css"> +* + { + padding: 0; + margin: 0; + font-family: serif; + font-size: 16px; +background-image: -webkit-gradient( + linear, + left bottom, + left top, + color-stop(0.01, #480925), + color-stop(0.51, #7E8585) +); +background-image: -moz-linear-gradient( + center bottom, + #480925 1%, + #7E8585 51% +); + + + } +body + { +// overflow: hidden; +background-image: -webkit-gradient( + linear, + left bottom, + left top, + color-stop(0.01, #480925), + color-stop(0.51, #7E8585) +); +background-image: -moz-linear-gradient( + center bottom, + #480925 1%, + #7E8585 51% +); + + +// background-color: red; + } +#controls,#result + { + display: inline-block; + padding: 10px; + width: 430px; + position: absolute; + } +#controls + { + font-size: 14px; + top: 0; left: 0; + max-height: 450px; + z-index: 5; + } +#result + { + background-color: #d6d0d0; + top: 10px; left: 480px; + display: none; + z-index: 5; + } +#instructions + { + position: absolute; + bottom: 10px; + left: 10px; + line-height: 18px; + z-index: 1; + } +p + { +// background-color: #fff; + padding: 10px; + font-size: 14px; + width: 430px; + display: block; + } +#gallery-link + { + background-color: #fff; + position: absolute; + top: 10px; + right: 10px; + padding: 10px; + z-index: 10; + } +.error + { + color: red; + font-size: 20px; + } +a + { + color: #b4d; + font-weight: bold; + } +label + { + display: inline-block; + width: 190px; + padding-right: 10px; + text-align: right; + } +input[type=text] + { + width: 100px; + } +#img-url,#output-url,#img-background + { + width: 200px; + } +#img-fuzz,#img-width,#img-height,#img-brightness,#img-saturation,#img-contrast,#img-hue,#img-rotate + { + width: 50px; + text-align: right; + } +button + { + padding: 2px 5px; + font-size: 16px; + } +#result img + { + max-width: 400px; + max-height: 400px; + } +#output-cmd + { + font-size: 12px; + white-space: pre; + } +.shim + { + height: 10px; + clear: both; + display: block; + } +#output-url + { + width: 320px; + } +#likebutton + { + position: absolute; + bottom: 10px; + right: 10px; + width: 350px; + background-color: #fff; + padding: 10px; + color: #ddd; + font-family: trebuchet ms, sans-serif; + } +</style> +<body> +<div id="controls"> +<p> + <label>IMAGE URL</label> + <input type="text" id="img-url" /> + <br/> + + + <label>define a width</label> + <input type="text" id="img-width" /><small>px</small> + <br/> + + <label>define a height</label> + <input type="text" id="img-height" /><small>px</small> + <br/> + + <span class="shim"></span> + + <label>first color</label> + <input type="text" id="first-color" value="" /> + <br/> + + <label>second color</label> + <input type="text" id="second-color" value="" /> + <br/> + + <span class="shim"></span> + + + <label>brightness <small>(0-200)</small></label> + <input type="text" id="img-brightness" value="" /> + <br/> + +<!-- + <label>contrast <small>(0-200)</small></label> + <input type="text" id="img-contrast" value="" /> + <br/> +--> + + <span class="shim"></span> + + <label>flip horizontally?</label> + <input type="checkbox" id="img-flop" value="1" /> + <br/> + + <label>flip vertically?</label> + <input type="checkbox" id="img-flip" value="1" /> + <br/> + + <label>rotate <small>(0-360)</small></label> + <input type="text" id="img-rotate" value="" />° + <br/> + + <label>gradient type</label> + <select id="gradient-type"> + <option selected="selected">Over</option> + <option>ATop</option> + <option>Dst_Over</option> + <option>Dst_In</option> + <option>Dst_Out</option> + <option>Multiply</option> + <option>Screen</option> + <option>Divide</option> + <option>Plus</option> + <option>Difference</option> + <option>Exclusion</option> + <option>Lighten</option> + <option>Darken</option> + <option>Overlay</option> + <option>Hard_Light</option> + <option>Soft_Light</option> + <option>Pegtop_Light</option> + <option>Linear_Light</option> + <option>Vivid_Light</option> + <option>Pin_Light</option> + <option>Linear_Dodge</option> + <option>Linear_Burn</option> + <option>Color_Dodge</option> + <option>Color_Burn</option> + </select> + + <label>output format</label> + <select id="img-format"> + <option selected="selected">gif</option> + <option>jpg</option> + <option>png</option> + </select> +--> + + <span class="shim"></span> + + <label>your name</label> + <input type="text" id="img-name" /> + <br/> + + <span class="shim"></span> + + <label> </label> + <button id="img-generate">GENERATE</button> +</p> + + <span class="shim"></span> + <p> + See what people are making → <a href="/im/gallery/">Image Gallery</a><br/> + <span class="shim"></span> + Some really cool photoblasts → <a href="http://photoblaster.tumblr.com/">Photoblaster Tumblr</a> + </p> +<br> + <p> + <span class="shim"></span> + Go back to the editor → <a href"/im/">Photoblaster Editor</a></br> +</div> + + +<div id="result"> + → <input type="text" id="output-url"/><br/> + <span id="output-cmd"></span><br/> + + <img id="output-img" /> +</div> + +<div id="instructions"> + <p> + Define a width and height, and choose colors for the gradient. You can also choose the gradient style. + <span class="shim"></span> + Specify colors using hex codes, or consult the list of <a href="colors.html" target="_blank">Color Names</a>. + </p> +</div> + +<div id="likebutton"> +<div id="fb-root" style="background-color: transparent;"></div><script src="http://connect.facebook.net/en_US/all.js#appId=236917449658413&xfbml=1"></script><fb:like href="http://asdf.us/im/" send="false" width="347" show_faces="true" colorscheme="light" font="" style="background-color: transparent;"></fb:like> +</div> + +</body> +<script type="text/javascript" src="/js/jquery.js"></script> +<script type="text/javascript"> +var Main = + { + API_HEADER: "#@im", + enter: function (e) + { + if (e.keyCode === 13) + Main.go() + }, + go: function () + { + $("#output-cmd").html('generating...').show() + $("#result").show() + var data = + { + url: $("#img-url").val(), + transparent: $('#img-transparent:checked').val() !== undefined ? "true" : "false", + flip: $('#img-flip:checked').val() !== undefined ? "true" : "false", + flop: $('#img-flop:checked').val() !== undefined ? "true" : "false", + rotate: $("#img-rotate").val(), + subtract: $("#img-subtract").val(), + fuzz: $("#img-fuzz").val(), + width: $("#img-width").val(), + height: $("#img-height").val(), + black: $("#img-black").val(), + white: $("#img-white").val(), + brightness: $("#img-brightness").val(), + saturation: $("#img-saturation").val(), + hue: $("#img-hue").val(), + contrast: $("#img-contrast").val(), + background: $("#img-background").val(), + // merge_early: $('#img-merge_early:checked').val() !== undefined ? "true" : "false", + compose: $('#img-compose :selected').text(), + // tile: $('#img-tile:checked').val() !== undefined ? "true" : "false", + format: $('#img-format :selected').text(), + name: $("#img-name").val(), + } + if (data.name.length > 0) + document.cookie = "imname="+data.name+";path=/;domain=.asdf.us;max-age=1086400" + $.post("/cgi-bin/im/generate", data, Main.callback) + }, + error: function (s) + { + $("#output-cmd").html("<span class='error'>ERROR: " + s + "</span>").show() + $("#output-url").hide() + $("#output-img").hide() + }, + callback: function (raw) + { + lines = raw.split("\n") + if (lines[0] !== Main.API_HEADER) + return Main.error("problem loading API") + if (lines[1].indexOf("ERROR\t") === 0) + return Main.error(lines[1].split("\t")[1]) + + // $("#output-cmd").html(lines[1]+"<br/>"+lines[2]) + // $("#output-cmd").hide() + $("#output-cmd").html("size: "+Main.filesize(lines[4])+"<br/>"+(lines[5].replace(" ", " x ").replace(/'/g,"").replace(',',""))) + $("#output-url").val(lines[3]) + $("#output-img").hide().attr("src", lines[3]).fadeIn(700) + }, + filesize: function (size) + { + if (size < 1024) + return size + " bytes" + if (size < 1024 * 1024) + return Math.floor (size/1024) + " KB" + else + return Math.floor (size/(1024*1024)) + " MB" + }, + cookie: function () + { + if (document.cookie) + { + var cookies = document.cookie.split(";") + for (i in cookies) + { + var cookie = cookies[i].split("=") + if (cookie[0].indexOf("imname") !== -1) + { + if (cookie[1] !== 'false' && cookie[1] !== 'undefined' && cookie[1].length) + { + return cookie[1] + } + } + } + } + return "" + }, + init: function () + { + var name = Main.cookie () + $("#img-name").val(name) + $("#img-generate").bind("click", Main.go) + $("div input[type=text]").bind("keydown", Main.enter) + }, + } +Main.init () +</script> +</html> + diff --git a/frontend/im/imcupbg.jpg b/frontend/im/imcupbg.jpg Binary files differnew file mode 100755 index 0000000..b3cf3f5 --- /dev/null +++ b/frontend/im/imcupbg.jpg diff --git a/frontend/im/index.html b/frontend/im/index.html new file mode 100755 index 0000000..9a14e27 --- /dev/null +++ b/frontend/im/index.html @@ -0,0 +1,569 @@ +<!doctype html> +<html> +<head> +<title>PHOTOBLASTER</title> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta property="og:title" content="PHOTOBLASTER"/> +<meta property="og:type" content="website"/> +<meta property="og:url" content="http://asdf.us/im/"/> +<meta property="og:image" content="http://asdf.us/im/6e/sparklebling1_1310021111_1310071704.gif" /> +<meta property="og:site_name" content="asdf.us"/> +<meta property="og:description" content="Paste a link into the first box, then use the other settings to colorize, distort, add transparency and a background."/> +<meta property="fb:admins" content="100001923956223,1709246"/> +<!--FOR THE COLORS IFRAME--> +<link rel="stylesheet" type="text/css" href="/im/colors/css/jquery.fancybox.css?v=2.1.5" media="screen" /> + +<style type="text/css"> +* + { + padding: 0; + margin: 0; + font-family: sans-serif; + } +body + { + background-color: #efedee; + // background-color: #838388; + color: #555; + } +#down_for_maintenance{ + position: absolute; + background: url("http://asdf.us/impattern/patterns/38.png"); + z-index:2000; + height: 100%; + width: 100%; + top: 0; + left:0; + display: none; +} +#down_for_maintenance > span{ + background: white; +} +#controls,#result + { + display: inline-block; + margin: 10px; + width: 430px; + float: left; + } +#controls + { + font-size: 14px; + top: 0; left: 0; + z-index: 5; + } +#result + { + background-color: #d6d0d0; +// background-color: #131412; + margin-left: 20px; + padding: 10px; + display: none; + z-index: 5; + } +#sendtoinput + { + font-size: 10px; + } +#instructions + { + position: absolute; + bottom: 10px; + left: 10px; + line-height: 18px; + z-index: 1; + } +p,form + { +// background-color: #010101; + background-color: #fff; +// background-image: url(imcupbg.jpg); + background-position: center center; + padding: 10px; + font-size: 14px; + width: 430px; + display: block; + } +#gallery-link + { + background-color: #fff; +// background-image: url(imcupbg.jpg); + background-position: center center; + position: absolute; + top: 10px; + right: 10px; + padding: 10px; + z-index: 10; + } +.error + { + color: red; + font-size: 20px; + } +a + { +// color: #b4d; + color: #a39; + font-weight: bold; + } +label + { + display: inline-block; + width: 190px; + padding-right: 10px; + text-align: right; + } +small + { + color: #777; + } +input[type=text] + { + width: 100px; + } +#img-url,#output-url,#img-background + { + width: 200px; + } +#bgswitcheroo, #colorswitcheroo + { + width: 19px; + height:38px; + display: inline-block; + position: absolute; + background-image: url(http://i.asdf.us/im/7e/user_convo_1353562627_1355449919.png); + //background-image: url( http://i.asdf.us/im/7b/user_convo_1353562627.png); + background-repeat:no-repeat; + background-position: 3px 10px; + cursor: pointer; + } +#img-fuzz,#img-width,#img-height,#img-brightness,#img-saturation,#img-contrast,#img-hue,#img-rotate + { + width: 50px; + text-align: right; + } +button + { + padding: 2px 5px; + font-size: 16px; + } +#result img + { + max-width: 400px; + max-height: 400px; + } +#output-cmd + { + font-size: 12px; + white-space: pre; + } +.shim + { + height: 10px; + clear: both; + display: block; + } +#output-url + { + width: 320px; + } +#likebutton + { + display: none; + position: absolute; + bottom: 10px; + right: 10px; + width: 350px; + background-color: #fff; +// background-image: url(imcupbg.jpg); + padding: 10px; + color: #ddd; + font-family: trebuchet ms, sans-serif; + } +div#controls, span#userlink { + display: none; +} span#userlink a { + text-transform: capitalize; +} +</style> + +</head> +<body> +<div id="down_for_maintenance"> + <span>SORRY, this photoblaster page is down for maintenance. Will be back in an hour or so...</span> +</div> +<div id="controls"> +<form id="imform" action="javascript:return false"> + <label id="img-url-label">IMAGE URL</label> + <input type="text" id="img-url" /><div id="bgswitcheroo"></div> + <!--<br/>--> + <label id="background-url-label">background URL</label> + <input type="text" id="img-background" value="" /> + <br/> + + <label>compose operator</label> + <select id="img-compose"> + <option selected="selected">Over</option> + <option>ATop</option> + <option>Dst_Over</option> + <option>Dst_In</option> + <option>Dst_Out</option> + <option>Multiply</option> + <option>Screen</option> + <option>Divide</option> + <option>Plus</option> + <option>Difference</option> + <option>Exclusion</option> + <option>Lighten</option> + <option>Darken</option> + <option>Overlay</option> + <option>Hard_Light</option> + <option>Soft_Light</option> + <option>Pegtop_Light</option> + <option>Linear_Light</option> + <option>Vivid_Light</option> + <option>Pin_Light</option> + <option>Linear_Dodge</option> + <option>Linear_Burn</option> + <option>Color_Dodge</option> + <option>Color_Burn</option> + </select> + <br/> + + <label>gravity</label> + <select id="img-gravity"> + <option selected="selected">Center</option> + <option>East</option> + <option>NorthEast</option> + <option>North</option> + <option>NorthWest</option> + <option>West</option> + <option>SouthWest</option> + <option>South</option> + <option>SouthEast</option> + </select> +<!-- <br> + <label>tile foreground?</label> + + <input type="checkbox" id="img-tile" value="1" /> + <br/> --> + +<!-- + <label>merge before recolor?</label> + <input type="checkbox" id="img-merge_early" value="1" /> + <br/> + +--> + <span class="shim"></span> + + + <span class="shim"></span> + + <label>make semi-transparent?</label> + <input type="checkbox" id="img-transparent" value="1" checked="true" /> + <br/> + + <label>remove color</label> + <input type="text" id="img-subtract" value="white" class="img-subtract"/> +<a href="colors/" class="img-subtract pick-color">pick color</a> + <br/> + + <label>transparency fuzz</label> + <input type="text" id="img-fuzz" value="5" />% + <br/> + + <span class="shim"></span> + + <label>resize width</label> + <input type="text" id="img-width" /><small>px</small> + <br/> + + <label>resize height</label> + <input type="text" id="img-height" /><small>px</small> + <br/> + + <label>nearest neighbor?</label> + <input type="checkbox" id="img-nearest" value="1" /> + <br/> + + <span class="shim"></span> + + <label>recolor white</label> + <input type="text" id="img-white" class="img-white" value="white" /> +<a href="colors/" class="img-white pick-color">pick color</a> + <div id="colorswitcheroo"></div> + <br/> + + <label>recolor black</label> + <input type="text" id="img-black" class="img-black" value="black" /> +<a href="colors/" class="img-black pick-color">pick color</a> + <br /> +<!-- <label><a href="colors/index.html" target="_blank" style="font-size: 10px">--> +<!-- List of Color Names</a></label>--> + + <span class="shim"></span> + + <label>hue <small>(0-200)</small></label> + <input type="text" id="img-hue" value="" /> + <br/> +<!-- + <label>saturation <small>(0-200)</small></label> + <input type="text" id="img-saturation" value="" /> + <br/> +--> +<!-- + <label>brightness <small>(0-200)</small></label> + <input type="text" id="img-brightness" value="" /> + <br/> +--> +<!-- + <label>contrast <small>(0-200)</small></label> + <input type="text" id="img-contrast" value="" /> + <br/> +--> + + <span class="shim"></span> + + <label>flip horizontally?</label> + <input type="checkbox" id="img-flop" value="1" /> + <br/> + + <label>flip vertically?</label> + <input type="checkbox" id="img-flip" value="1" /> + <br/> + + <label>rotate <small>(0-360)</small></label> + <input type="text" id="img-rotate" value="" />° + <br/> + + <span class="shim"></span> + + <label>output format</label> + <select id="img-format"> + <option selected="selected">gif</option> + <option>jpg</option> + <option>png</option> + </select> +<!-- + <span id="gif-options"> + <label>dispose</label> + <select id="dispose"> + <option value="none" selected>None</option> + <option value="previous">Previous</option> + <option value="background">Background</option> + </select> + </span> +--> + + <!-- <input type="reset" id="reset-button" value="reset-button"></input>--> + + <span class="shim"></span> + + <label>put your name here >>></label> + <input type="text" id="img-name" value="" /> + <br/> + + <span class="shim"></span> + + <label> </label> + <button id="img-generate">GENERATE</button> + + </form> + + <span class="shim"></span> + <p> + <img src="new.gif" width="32" height="16" /> + Mess around with heightmaps and textures <a href="/imlandscape">Landscape</a> + <span class="shim"></span> + <img src="new.gif" width="32" height="16" /> + Overlay patterns onto your gifs <a href="/impattern">pattern</a> + <span class="shim"></span> + Write your own effects → <a href="/shader/">Shaderblaster</a> & <a href="/dither/">Dither</a> + <span class="shim"></span> + Oh now it's on....payback time → <a href="/imbreak/">FOTO FUCKER</a> + <span class="shim"></span> + <!--<img src="new.gif" width="32" height="16" />--> + Transform images in 3D → <a href="/imgrid/">Grid Generator</a> + <span class="shim"></span> + Gradients make everything better → <a href="/imgradient/">Gradient Generator</a> + </p> + <span class="shim"></span> + <p> + See what people are making → <a href="/im/gallery/">Image Gallery</a><br/> + <span class="shim"></span> + The best ones go here → <a href="http://photoblaster.tumblr.com/">Photoblaster Tumblr</a> + <span class="shim"></span> + View a random selection → <a href="/im/gallery/?random=1">Random Gallery</a><br/> + <span id="userlink"> + <span class="shim"></span> + Things you've made → <a href="/im/gallery/?random=1">Your Gallery</a><br/> + </span> + </p> +</div> + +<div id="result"> + → <input type="text" id="output-url"/><br/> + <span id="output-cmd"></span><br/> + + <img id="output-img" /> + <br/><span id="sendtoinput"></span> +</div> + +<!-- +<div id="likebutton"> +<div id="fb-root" style="background-color: transparent;"></div><script src="http://connect.facebook.net/en_US/all.js#appId=236917449658413&xfbml=1"></script><fb:like href="http://asdf.us/im/" send="false" width="347" show_faces="true" colorscheme="light" font="" style="background-color: transparent;"></fb:like> +</div> +--> + +<script type="text/javascript" src="/js/jquery.js"></script> +<script type="text/javascript"> +var Main = + { + API_HEADER: "#@im", + generating: false, + enter: function (e) + { + if (Main.generating) + return + if (e.keyCode === 13) + Main.go() + }, + go: function () + { + if (Main.generating) + return + Main.generating = true + $("#output-cmd").html('generating...').show() + $("#result").show() + var data = + { + url: $("#img-url").val(), + transparent: $('#img-transparent:checked').val() !== undefined ? "true" : "false", + flip: $('#img-flip:checked').val() !== undefined ? "true" : "false", + flop: $('#img-flop:checked').val() !== undefined ? "true" : "false", + nearest: $('#img-nearest:checked').val() !== undefined ? "true" : "false", + rotate: $("#img-rotate").val(), + subtract: $("#img-subtract").val(), + fuzz: $("#img-fuzz").val(), + width: $("#img-width").val(), + height: $("#img-height").val(), + black: $("#img-black").val(), + white: $("#img-white").val(), + //brightness: $("#img-brightness").val(), + //saturation: $("#img-saturation").val(), + hue: $("#img-hue").val(), + contrast: $("#img-contrast").val(), + background: $("#img-background").val(), + // merge_early: $('#img-merge_early:checked').val() !== undefined ? "true" : "false", + compose: $('#img-compose :selected').text(), + gravity: $('#img-gravity :selected').text(), + // tile: $('#img-tile:checked').val() !== undefined ? "true" : "false", + format: $('#img-format :selected').text(), + dispose: $('#dispose').val(), + username: $("#img-name").val(), + } + if (data.rotate.match(/-/)){ data.rotate=360-parseInt(data.rotate.replace("-","")); }; + $("#img-rotate").val(""); + if (data.username.length > 0) + document.cookie = "imname="+data.username+";path=/;domain=.asdf.us;max-age=1086400" + $.post("/im/api/generate", data, Main.callback) + }, + error: function (s) + { + $("#output-cmd").html("<span class='error'>ERROR: " + s + "</span>").show() + $("#output-url").hide() + $("#output-img").hide() + }, + callback: function (raw) + { + data = JSON.parse(raw) + console.log(data) + Main.generating = false + $("#output-cmd").html("size: "+Main.filesize(data.size)+"<br/>" + + data.width + " x " + data.height); + + $("#output-url").val(data.url); + $("#output-img").hide().attr("src", data.url).fadeIn(700) + $("#sendtoinput").html(" send to input <img src=\"arrow_pointing_left.png\"/> ").css({"border": "1px solid gray", "cursor" : "pointer"}).click(function(){ + $("#img-url").val(data.url); + }); + + }, + filesize: function (size) + { + if (size < 1024) + return size + " bytes" + if (size < 1024 * 1024) + return Math.floor (size/1024) + " KB" + else + return Math.floor (size/(1024*1024)) + " MB" + }, + cookie: function () + { + if (document.cookie) + { + var cookies = document.cookie.split(";") + for (i in cookies) + { + var cookie = cookies[i].split("=") + if (cookie[0].indexOf("imname") !== -1) + { + if (cookie[1] !== 'false' && cookie[1] !== 'undefined' && cookie[1].length) + { + return cookie[1] + } + } + } + } + return "" + }, + preloadSize: function(url,label,tag){ + console.log(url) + var img = new Image() + img.onload = function(){ $(label).html( tag + ": " + img.naturalWidth + " x " + img.naturalHeight ) } + img.src = url + }, + init: function () + { + var name = Main.cookie () + $("#img-name").val(name) + if (name) + { + $("#userlink").show() + $("#userlink a").attr("href", "/im/gallery/?name="+name).html(name+"'s photoblasts") + } + $("#likebutton,#controls").fadeIn(0) + $("#img-generate").bind("click", Main.go) + $("div input[type=text]").bind("keydown", Main.enter) + $("#img-url").change(function(){Main.preloadSize(this.value,"#img-url-label","image")}) + $("#img-background").change(function(){Main.preloadSize(this.value,"#background-url-label","bg")}) + $("#bgswitcheroo").click(function() { + a = $("#img-url").val(); + b = $("#img-background").val(); + $("#img-url").val(b); + $("#img-background").val(a); + }); + $("#colorswitcheroo").click(function() { + a = $("#img-white").val(); + b = $("#img-black").val(); + $("#img-white").val(b); + $("#img-black").val(a); + }); + $("#img-format").change(function(){ + $("#gif-options").css( "visibility", $("#img-format").val() === "gif" ? "visible" : "hidden") + }) + + }, + } +document.getElementById('imform').reset(); +Main.init () +</script> +<script type="text/javascript" src="http://asdf.us/js/pbembed.js"></script> +<!--for the colors iframe--> +<script type="text/javascript" src="jquery-ui-1.8.16.custom.min.js"></script> +<script type="text/javascript" src="/im/colors/js/jquery.remember-state.js"></script> +<script type="text/javascript" src="/im/colors/js/jquery.fancybox.js?v=2.1.5"></script> +<script type="text/javascript" src="colors_iframe.js"></script> +</body> +</html> + diff --git a/frontend/im/new.gif b/frontend/im/new.gif Binary files differnew file mode 100755 index 0000000..37c39d2 --- /dev/null +++ b/frontend/im/new.gif diff --git a/frontend/im/newimagemaker.html b/frontend/im/newimagemaker.html new file mode 100755 index 0000000..50db4df --- /dev/null +++ b/frontend/im/newimagemaker.html @@ -0,0 +1,289 @@ +<!doctype html> +<html> +<head> +<title>IM PORTAL</title> +<style type="text/css"> +* + { + padding: 0; + margin: 0; + font-family: sans-serif; + } +body + { + background-color: #e6e0e0; + } +#controls,#result + { + display: inline-block; + padding: 10px; + width: 430px; + position: absolute; + } +#controls + { + font-size: 14px; + top: 10px; left: 10px; + max-height: 450px; + background-color: #fff; + z-index: 5; + } +#result + { + background-color: #d6d0d0; + top: 10px; left: 480px; + display: none; + z-index: 5; + } +#instructions + { + position: absolute; + bottom: 10px; + left: 10px; + line-height: 18px; + z-index: 1; + } +#instructions p + { + background-color: #fff; + padding: 10px; + font-size: 14px; + width: 430px; + } +#gallery-link + { + background-color: #fff; + position: absolute; + top: 10px; + right: 10px; + padding: 10px; + z-index: 10; + } +.error + { + color: red; + font-size: 20px; + } +a + { + color: #b4d; + font-weight: bold; + } +label + { + display: inline-block; + width: 190px; + padding-right: 10px; + text-align: right; + } +input[type=text] + { + width: 100px; + } +#img-url,#output-url + { + width: 200px; + } +#img-fuzz,#img-width,#img-height,#img-brightness,#img-saturation,#img-contrast,#img-hue,#img-rotate + { + width: 50px; + text-align: right; + } +button + { + padding: 2px 5px; + font-size: 16px; + } +#result img + { + max-width: 400px; + max-height: 400px; + } +#output-cmd + { + font-size: 12px; + white-space: pre; + } +.shim + { + height: 10px; + clear: both; + } +#output-url + { + width: 320px; + } +</style> +<body> +<section id="controls"> + <label>IMAGE URL</label> + <input type="text" id="img-url" /> + <br/> + + <div class="shim"></div> + + <label>make transparent?</label> + <input type="checkbox" id="img-transparent" value="1" checked="true" /> + <br/> + + <label>remove color</label> + <input type="text" id="img-subtract" value="white" /> + <br/> + + <label>transparency fuzz</label> + <input type="text" id="img-fuzz" value="5" />% + <br/> + + <div class="shim"></div> + + <label>resize width</label> + <input type="text" id="img-width" /><small>px</small> + <br/> + + <label>resize height</label> + <input type="text" id="img-height" /><small>px</small> + <br/> + + <div class="shim"></div> + + <label>recolor white</label> + <input type="text" id="img-white" value="white" /> + <br/> + + <label>recolor black</label> + <input type="text" id="img-black" value="black" /> + <br/> + + <div class="shim"></div> + + <label>hue <small>(0-200)</small></label> + <input type="text" id="img-hue" value="" /> + <br/> + + <label>saturation <small>(0-200)</small></label> + <input type="text" id="img-saturation" value="" /> + <br/> + + <label>brightness <small>(0-200)</small></label> + <input type="text" id="img-brightness" value="" /> + <br/> + +<!-- + <label>contrast <small>(0-200)</small></label> + <input type="text" id="img-contrast" value="" /> + <br/> +--> + + <div class="shim"></div> + + <label>flip horizontally?</label> + <input type="checkbox" id="img-flop" value="1" /> + <br/> + + <label>flip vertically?</label> + <input type="checkbox" id="img-flip" value="1" /> + <br/> + + <label>rotate <small>(0-360)</small></label> + <input type="text" id="img-rotate" value="" />° + <br/> + + <div class="shim"></div> + +<!-- + <label>output format</label> + <select id="img-format"> + <option selected="selected">gif</option> + <option>jpg</option> + <option>png</option> + </select> + <div class="shim"></div> +--> + + <label> </label> + <button id="img-generate">GENERATE</button> + +</section> + +<section id="result"> + → <input type="text" id="output-url"/><br/> + <span id="output-cmd"></span><br/> + + <img id="output-img" /> +</section> + +<section id="instructions"> + <p> + This page provides a basic interface to the command-line image utility <a href="http://www.imagemagick.org/Usage/">IMAGEMAGICK.</a> + Paste a link into the first box, then use the other settings to colorize, distort, and add transparency. + </p> + <div class="shim"></div> + <p> + See what people have made → <a href="/im/gallery/">Image Gallery</a> + </p> +</section> + +</body> +<script type="text/javascript" src="/js/jquery.js"></script> +<script type="text/javascript"> +var Main = + { + API_HEADER: "#@im", + enter: function (e) + { + if (e.keyCode === 13) + Main.go() + }, + go: function () + { + $("#output-cmd").html('generating...').show() + $("#result").show() + var data = + { + url: $("#img-url").val(), + transparent: $('#img-transparent:checked').val() !== undefined ? "true" : "false", + flip: $('#img-flip:checked').val() !== undefined ? "true" : "false", + flop: $('#img-flop:checked').val() !== undefined ? "true" : "false", + rotate: $("#img-rotate").val(), + subtract: $("#img-subtract").val(), + fuzz: $("#img-fuzz").val(), + width: $("#img-width").val(), + height: $("#img-height").val(), + black: $("#img-black").val(), + white: $("#img-white").val(), + brightness: $("#img-brightness").val(), + saturation: $("#img-saturation").val(), + hue: $("#img-hue").val(), + contrast: $("#img-contrast").val(), + } + $.post("/cgi-bin/im/pepperimagemaker", data, Main.callback) + }, + error: function (s) + { + $("#output-cmd").html("<span class='error'>ERROR: " + s + "</span>").show() + $("#output-url").hide() + $("#output-img").hide() + }, + callback: function (raw) + { + lines = raw.split("\n") + if (lines[0] !== Main.API_HEADER) + return Main.error("problem loading API") + if (lines[1].indexOf("ERROR\t") === 0) + return Main.error(lines[1].split("\t")[1]) + + // $("#output-cmd").html(lines[1]+"<br/>"+lines[2]) + $("#output-cmd").hide() + $("#output-url").val(lines[3]) + $("#output-img").hide().attr("src", lines[3]).fadeIn(700) + }, + init: function () + { + $("#img-generate").bind("click", Main.go) + $("section input[type=text]").bind("keydown", Main.enter) + }, + } +Main.init() +</script> +</html> + diff --git a/frontend/im/shader/index.html b/frontend/im/shader/index.html new file mode 100644 index 0000000..2c7370f --- /dev/null +++ b/frontend/im/shader/index.html @@ -0,0 +1,2 @@ +<meta http-equiv="refresh" content="0; url=/shader/"> + diff --git a/frontend/im/thing1.gif b/frontend/im/thing1.gif Binary files differnew file mode 100644 index 0000000..5acdf58 --- /dev/null +++ b/frontend/im/thing1.gif diff --git a/frontend/im/thing2.png b/frontend/im/thing2.png Binary files differnew file mode 100644 index 0000000..6104d00 --- /dev/null +++ b/frontend/im/thing2.png diff --git a/frontend/imbreak/_broken_by_janie_30e_semitrans1.png b/frontend/imbreak/_broken_by_janie_30e_semitrans1.png Binary files differnew file mode 100755 index 0000000..9884388 --- /dev/null +++ b/frontend/imbreak/_broken_by_janie_30e_semitrans1.png diff --git a/frontend/imbreak/cssreset.css b/frontend/imbreak/cssreset.css new file mode 100755 index 0000000..9329580 --- /dev/null +++ b/frontend/imbreak/cssreset.css @@ -0,0 +1,7 @@ +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { + border: 0pt none; + font: inherit; + margin: 0pt; + padding: 0pt; + vertical-align: baseline; +}
\ No newline at end of file diff --git a/frontend/imbreak/imbreakfavico.ico b/frontend/imbreak/imbreakfavico.ico Binary files differnew file mode 100755 index 0000000..9573cd4 --- /dev/null +++ b/frontend/imbreak/imbreakfavico.ico diff --git a/frontend/imbreak/img/ALPHA20IVY20201_1323328300.gif b/frontend/imbreak/img/ALPHA20IVY20201_1323328300.gif Binary files differnew file mode 100644 index 0000000..710ef2e --- /dev/null +++ b/frontend/imbreak/img/ALPHA20IVY20201_1323328300.gif diff --git a/frontend/imbreak/img/_broken_by_janie_147_greeks.gif b/frontend/imbreak/img/_broken_by_janie_147_greeks.gif Binary files differnew file mode 100755 index 0000000..e5c4ddb --- /dev/null +++ b/frontend/imbreak/img/_broken_by_janie_147_greeks.gif diff --git a/frontend/imbreak/img/_broken_by_janie_16b_justhost_155x75.gif b/frontend/imbreak/img/_broken_by_janie_16b_justhost_155x75.gif Binary files differnew file mode 100755 index 0000000..5b7144d --- /dev/null +++ b/frontend/imbreak/img/_broken_by_janie_16b_justhost_155x75.gif diff --git a/frontend/imbreak/img/_broken_by_janie_399_a_pair_of_siena_and_carved_white_marble_columns_20th_century_d5409361h.jpg b/frontend/imbreak/img/_broken_by_janie_399_a_pair_of_siena_and_carved_white_marble_columns_20th_century_d5409361h.jpg Binary files differnew file mode 100755 index 0000000..d6dd790 --- /dev/null +++ b/frontend/imbreak/img/_broken_by_janie_399_a_pair_of_siena_and_carved_white_marble_columns_20th_century_d5409361h.jpg diff --git a/frontend/imbreak/img/columns.jpg b/frontend/imbreak/img/columns.jpg Binary files differnew file mode 100755 index 0000000..d6dd790 --- /dev/null +++ b/frontend/imbreak/img/columns.jpg diff --git a/frontend/imbreak/img/firstlogo.gif b/frontend/imbreak/img/firstlogo.gif Binary files differnew file mode 100755 index 0000000..5762688 --- /dev/null +++ b/frontend/imbreak/img/firstlogo.gif diff --git a/frontend/imbreak/img/generating.gif b/frontend/imbreak/img/generating.gif Binary files differnew file mode 100755 index 0000000..441abe7 --- /dev/null +++ b/frontend/imbreak/img/generating.gif diff --git a/frontend/imbreak/img/greeks.gif b/frontend/imbreak/img/greeks.gif Binary files differnew file mode 100755 index 0000000..f676210 --- /dev/null +++ b/frontend/imbreak/img/greeks.gif diff --git a/frontend/imbreak/img/imgrid_1328137237_ivy_pepper.gif b/frontend/imbreak/img/imgrid_1328137237_ivy_pepper.gif Binary files differnew file mode 100644 index 0000000..8cd7316 --- /dev/null +++ b/frontend/imbreak/img/imgrid_1328137237_ivy_pepper.gif diff --git a/frontend/imbreak/img/ivy.gif b/frontend/imbreak/img/ivy.gif Binary files differnew file mode 100755 index 0000000..b51faca --- /dev/null +++ b/frontend/imbreak/img/ivy.gif diff --git a/frontend/imbreak/img/ivy2.gif b/frontend/imbreak/img/ivy2.gif Binary files differnew file mode 100755 index 0000000..710ef2e --- /dev/null +++ b/frontend/imbreak/img/ivy2.gif diff --git a/frontend/imbreak/img/newmain.gif b/frontend/imbreak/img/newmain.gif Binary files differnew file mode 100755 index 0000000..8eb7e73 --- /dev/null +++ b/frontend/imbreak/img/newmain.gif diff --git a/frontend/imbreak/img/og.jpg b/frontend/imbreak/img/og.jpg Binary files differnew file mode 100755 index 0000000..d6dd790 --- /dev/null +++ b/frontend/imbreak/img/og.jpg diff --git a/frontend/imbreak/img/on9TF_1322970909_1322970984_1323325278.gif b/frontend/imbreak/img/on9TF_1322970909_1322970984_1323325278.gif Binary files differnew file mode 100755 index 0000000..8e19e59 --- /dev/null +++ b/frontend/imbreak/img/on9TF_1322970909_1322970984_1323325278.gif diff --git a/frontend/imbreak/img/title1.gif b/frontend/imbreak/img/title1.gif Binary files differnew file mode 100755 index 0000000..206723a --- /dev/null +++ b/frontend/imbreak/img/title1.gif diff --git a/frontend/imbreak/index.html b/frontend/imbreak/index.html new file mode 100755 index 0000000..b84a5f3 --- /dev/null +++ b/frontend/imbreak/index.html @@ -0,0 +1,274 @@ +<html> +<!-- + * * + *** *** + **** **** + * ****** ****** * + * *************************************** * + ** * ______*______ * ** + ***** * ______*______ * ***** + ******* ______*______ ******* + *** **** * **** *** + ****** *oo******* *** *******oo* ****** + * *o********* *********o* * + * * * * + * * _ _ * * + * * -_ _- * * + * * -_ _- * * + * * -___- * * + * * + ********************* + * ** ** * + * ** ** * + * _-----_ * + ********* +by pepper +--> +<head> + <link href='jquery-ui-1.8.16.custom.css' rel='stylesheet' type='text/css' /> + <link href='cssreset.css' rel='stylesheet' type='text/css'/> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta property="og:title" content="FOTO FUCKER"/> +<link rel="shortcut icon" href="imbreakfavico.ico"> +<meta property="og:type" content="website"/> +<meta name=Author content="Pepper"/> +<meta property="og:url" content="http://asdf.us/imbreak/"/> +<meta property="og:image" content="http://asdf.us/imbreak/og.jpg" /> +<meta property="og:site_name" content="asdf.us"/> +<meta property="og:description" content="now it's time to get back at those photos and fuck them up"/> +<meta property="fb:admins" content="100001923956223,1709246"/> +<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> +<style type='text/css'> +body + { + font-size:11px; + background-image:url(img/_broken_by_janie_30e_semitrans1.png); + overflow:hidden; + } +#header + { + -moz-border-radius:14px; + -webkit-border-radius:14px; + border-radius:14px 14px 14px 14px; + padding:10px; + width: 100%; + background-image:url(columns.jpg); + background-color:white; + } +#controls + { + width:47%; + padding:24px; + background-color:rgba(240, 240, 240,0.9); + -moz-box-shadow: 0px 0px 9px 1px whitesmoke; + -webkit-box-shadow: 0px 0px 9px 1px whitesmoke; + box-shadow: 0px 0px 9px 1px whitesmoke; + position:fixed; + z-index:100; + top:48%; + } +#breakmode + { + background-color:#FAFAFA; + } +#copyright + { + position:absolute; + bottom:10px; + left:720px; + color:red; + } +#likebutton + { + background-color:#F7f7f7; + right:20px; + position:absolute; + bottom:10px; + } +#links + { + background-color:#FFFFFF; + } +#url + { + width:70%; + font-size:11; + } +#result + { + display:none; + position:fixed; + top:20px; + right:10px; + background-color:rgba(250, 250, 250,0.8); + width:50%; + -moz-box-shadow: 0px 0px 9px 1px whitesmoke; + -webkit-box-shadow: 0px 0px 9px 1px whitesmoke; + box-shadow: 0px 0px 9px 1px whitesmoke; + } +.results + { + display:none; + z-index:100; + } +#output-url + { + width:500px; + padding:0; + margin:5%; + } +#output-image + { + max-height:500px; + max-width:500px; + padding-top:40px; + padding-left:40px; + } +#output-info + { + margin-left:5% + } +#therest + { + padding:20px; + } +#links + { + padding:5px; + } +.ui-slider-horizontal + { + background-color:whitesmoke; + } +#breakangle + { + width:40px; + } +#firstlogo, #secondlogo, #mainlogo, #header + { + display:inline-block; + pointer-events: none; + cursor: default; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; + } +#ivy + { + height:500px; + } +#ivy img + { + height:60%; + } +</style> +</head> +<body> +<div id='copyright'>SITE BY PEPPER - COPYRIGHT 2011</div> +<div id="header"> + <br> + <span style="background-color:rgba(245,245,245,0.7)">An image breaking utility from PHOTOBLASTER, this program breaks images + <br>and then restores them to an unbroken state so that they can be used for further editing.<br></span> +<p> + <li id="ivy" style="background-image:url(img/ivy.gif);"> + <img id="firstlogo" src="img/firstlogo.gif"></img> + <img id="mainlogo" src="img/newmain.gif"></img> + <img id="secondlogo" src="img/on9TF_1322970909_1322970984_1323325278.gif"></img> +</li> +<li style="display:inline; background-image:url(img/imgrid_1328137237_ivy_pepper.gif)"></li> +</p> +<p style="background-image:url(img/ALPHA20IVY20201_1323328300.gif)"> + +</p> +</div> +<br> +<div id="controls"> + WHY NOT PASTE A URL HERE? (an image or gif animation)!! + <input id='url' placeholder="http://..." type="text"> + </input> + <br> + <span id='example'>e.g. http://imageman.com/coolguy.jpg... or hotimagedudes/cooltimes.gif</span> + <button id='breakbutton'>BREAK IT!</button>←←CLICK HERE!! KEEP CLICKING TO KEEP FUCKING IT UP!!! + <br> + +BREAK TYPE: <select id="breaktype"> + <option selected="selected" value='CLASSIC'>CLASSIC</option> + <option value="REDUX">REDUX</option> + <option value="BLURRY_BREAK">BLURRY BREAK</option> + <option value="BLURRY_BREAK_2">MIAMY</option> + <option value="SWIPE">SWIPE</option> + <option value="RGB_WASH">RGB WASH</option> + <option value="RGB_WASH_2">CHOP AND BLUR</option> + <option value="NOISY_BREAK">NOISY BREAK</option> + <option value="BROKEN_VIGNETTE">BROKEN VIGNETTE</option> + <option value="FAX_MACHINE">FAX MACHINE</option> + <option value="STRIPES">STRIPES</option> + + <option value="PHOTOCOPY">PHOTOCOPY</option> +</select> + + +<br> + <div id='breakmode'>BREAK MODES: + <input type='radio' name='modeswitch' id='subtle' value='subtle' checked='checked'></input>subtle + <input type='radio' name='modeswitch' id='gradual' value='gradual' ></input>gradual + <input type='radio' name='modeswitch' id='extreme' value='extreme'></input>extreme + </div> + <br> +BREAK ANGLE: <input id='breakangle' type='text' value='0'></input> +<div id="breakangleslider" style="display:inline-block; width: 70%; height:10px;" class="slider"></div><br> +<div id="expanded_check"></div><!--add click event in javascript--> +</div> +<div id='therest'> + + <div id='links'> + <span id='imagegallery'><a href='http://asdf.us/im/gallery'>PHOTOBLASTER IMAGE GALLERY</a></span> +<span style="margin-left:120px; background-color:rgba(240, 240, 240,0.8)">enter your username: <input type='text' id='username'></input></span> + <br> + <span id='backtotheeditor'><a href="http://asdf.us/im">←BACK TO THE EDITOR</a></span> + </div> + + <div id="likebutton"> + <div id="fb-root" style="background-color: transparent;"></div><script src="http://connect.facebook.net/en_US/all.js#appId=236917449658413&xfbml=1"></script><fb:like href="http://asdf.us/im/" send="false" width="347" show_faces="true" colorscheme="light" font="" style="background-color: transparent;"></fb:like> + </div> +</div> +</div> +<div id='result'> + <span id="output-cmd" class='results'> +</span> + <span id="output-img" class='results'></span> + <input id="output-url" class='results'></input> + <div id="output-info" class='results'></div> +</div> +<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> +<script type="text/javascript" src="js/jquery-ui.min.js"></script> +<script type="text/javascript"> +function clearcopyright(){ +$('#copyright').html(""); +} +$("div").bind("click",clearcopyright) + + +$(function(){ +$( "#breakangleslider" ).slider({ + value:0, + min: -180, + max: 180, + step: 1, + slide: function( event, ui ) { + $( "#breakangle" ).val(ui.value); + } + }); + $( "#breakangle" ).val($( "#breakangleslider" ).slider( "value" ) ); +}); +</script> +<script type="text/javascript" src="js/imbreak-main.js"></script> + +<script type="text/javascript" src="http://asdf.us/js/pbembed.js"></script> +</body> + + + +</html> diff --git a/frontend/imbreak/jquery-ui-1.8.16.custom.css b/frontend/imbreak/jquery-ui-1.8.16.custom.css new file mode 100755 index 0000000..058f1b3 --- /dev/null +++ b/frontend/imbreak/jquery-ui-1.8.16.custom.css @@ -0,0 +1,313 @@ +/* + * jQuery UI CSS Framework 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* + * jQuery UI CSS Framework 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=1px&bgColorHeader=cccccc&bgTextureHeader=07_diagonals_medium.png&bgImgOpacityHeader=75&borderColorHeader=ffffff&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=16_diagonal_maze.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=00FA9A&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=06_inset_hard.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=05_inset_soft.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=12_gloss_wave.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=12_gloss_wave.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=20px&offsetTopShadow=-90px&offsetLeftShadow=-30px&cornerRadiusShadow=8px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #aaaaaa; color: #00FA9A; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border: 1px solid #ffffff; background: #cccccc url(images/ui-bg_diagonals-medium_75_cccccc_40x40.png) 50% 50% repeat; color: #00FA9A; font-weight: bold; } +.ui-widget-header a { color: #00FA9A; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #00FA9A; background: #e6e6e6; font-weight: normal; color: #555555; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_inset-hard_55_fbf9ee_1x100.png) 50% bottom repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_inset-soft_95_fef1ec_1x100.png) 50% bottom repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 1px; -webkit-border-top-left-radius: 1px; -khtml-border-top-left-radius: 1px; border-top-left-radius: 1px; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 1px; -webkit-border-top-right-radius: 1px; -khtml-border-top-right-radius: 1px; border-top-right-radius: 1px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 1px; -webkit-border-bottom-left-radius: 1px; -khtml-border-bottom-left-radius: 1px; border-bottom-left-radius: 1px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 1px; -webkit-border-bottom-right-radius: 1px; -khtml-border-bottom-right-radius: 1px; border-bottom-right-radius: 1px; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_gloss-wave_0_aaaaaa_500x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -90px 0 0 -30px; padding: 20px; background: #aaaaaa url(images/ui-bg_gloss-wave_0_aaaaaa_500x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* + * jQuery UI Slider 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; } diff --git a/frontend/imbreak/js/imbreak-main.js b/frontend/imbreak/js/imbreak-main.js new file mode 100755 index 0000000..c56c9a2 --- /dev/null +++ b/frontend/imbreak/js/imbreak-main.js @@ -0,0 +1,113 @@ +var Main = + { + firsttime: true, + generating: false, + thelast: "", + enter: function (e) + { + if (Main.generating) + return + if (e.keyCode === 13) + Main.go() + }, + go: function () + { + if (Main.generating) + return + Main.generating = true + var theloader = '<span style="width:100%;margin-right:40%"><img style="width:140px;height:120px;display:inline;" src="generating.gif"></img></span>' + $("#output-cmd").html(theloader).show() + $('.result').show() + $('.results').show() + $("#output-img").show() + $("#output-url").show() + $("#result").show() + var data = + { + breakmode:$('input:radio[name=modeswitch]:checked').val(), + breaktype: $('#breaktype :selected').val(), + breakangle: $("#breakangle").val(), + url: $('#url').val(), + username: $('#username').val(), + firsttime: Main.firsttime.toString() + } + if (data["breakmode"] == "gradual") + { + data["breakmode"] = "subtle" + if (Main.lines && Main.thelast == $('#url').val()) + { + Main.firsttime = false + data["url"] = Main.lines[1] + } + } + else + { + Main.firsttime = true + } + Main.thelast = $('#url').val(); + thestring = JSON.stringify(data); + $('#error').append(thestring); + if (data.username.length > 0) + document.cookie = "imname="+data.username+";path=/;domain=.asdf.us;max-age=1086400" + $.post("/im/api/imbreak", data, Main.callback) + }, + error: function (s) + { + $("#output-cmd").html("<span class='error'>ERROR: " + s + "</span>").show() + $("#output-url").hide() + $("#output-img").hide() + }, + filesize: function (size) + { + if (size < 1024) + return size.toString() + " bytes" + if (size < 1024 * 1024) + return Math.floor (size/1024).toString() + " KB" + else + return Math.floor (size/(1024*1024)).toString() + " MB" + }, + callback: function (data) + { + data = JSON.parse(data) + $('#error').append('called'); + $("#output-cmd").html('') + $('#output-url').val(data.url) + $("#output-img").html("click image to enlarge<br><a target=_blank href='"+data.url+"'>"+"<img src='"+data.url+"' id='output-image'></img><br>"+"</a>" +); + $("#output-info").html('-ACTUAL SIZE-<br>'+Main.filesize(data.size)+'<br>'+data.width+'<br>'+data.height+'<br><br>'+'<span>see more at →<a href="http://asdf.us/im/gallery">photoblaster gallery</a></span>'+'<br>') + Main.generating = false + }, + cookie: function () + { + if (document.cookie) + { + var cookies = document.cookie.split(";") + for (i in cookies) + { + var cookie = cookies[i].split("=") + if (cookie[0].indexOf("imname") !== -1) + { + if (cookie[1] !== 'false' && cookie[1] !== 'undefined' && cookie[1].length) + { + return cookie[1] + } + } + } + } + return "" + }, + init: function () + { + var name = Main.cookie () + $("#username").val(name) + $("#breakbutton").bind("click", Main.go) + $(document).bind("keydown", Main.enter) + } + } +//$('#theform').each(function(){ +// this.reset(); +// }); + + + +Main.init () diff --git a/frontend/imbreak/js/jcookie.js b/frontend/imbreak/js/jcookie.js new file mode 100755 index 0000000..ee84737 --- /dev/null +++ b/frontend/imbreak/js/jcookie.js @@ -0,0 +1,95 @@ +cookie plugin + * + * Copyright (c) 2006 Klaus Hartl (stilbuero.de) + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + */ + +/** + * Create a cookie with the given name and value and other optional parameters. + * + * @example $.cookie('the_cookie', 'the_value'); + * @desc Set the value of a cookie. + * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true }); + * @desc Create a cookie with all available options. + * @example $.cookie('the_cookie', 'the_value'); + * @desc Create a session cookie. + * @example $.cookie('the_cookie', null); + * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain + * used when the cookie was set. + * + * @param String name The name of the cookie. + * @param String value The value of the cookie. + * @param Object options An object literal containing key/value pairs to provide optional cookie attributes. + * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object. + * If a negative value is specified (e.g. a date in the past), the cookie will be deleted. + * If set to null or omitted, the cookie will be a session cookie and will not be retained + * when the the browser exits. + * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie). + * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie). + * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will + * require a secure protocol (like HTTPS). + * @type undefined + * + * @name $.cookie + * @cat Plugins/Cookie + * @author Klaus Hartl/klaus.hartl@stilbuero.de + */ + +/** + * Get the value of a cookie with the given name. + * + * @example $.cookie('the_cookie'); + * @desc Get the value of a cookie. + * + * @param String name The name of the cookie. + * @return The value of the cookie. + * @type String + * + * @name $.cookie + * @cat Plugins/Cookie + * @author Klaus Hartl/klaus.hartl@stilbuero.de + */ +jQuery.cookie = function(name, value, options) { + if (typeof value != 'undefined') { // name and value given, set cookie + options = options || {}; + if (value === null) { + value = ''; + options.expires = -1; + } + var expires = ''; + if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { + var date; + if (typeof options.expires == 'number') { + date = new Date(); + date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); + } else { + date = options.expires; + } + expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE + } + // CAUTION: Needed to parenthesize options.path and options.domain + // in the following expressions, otherwise they evaluate to undefined + // in the packed version for some reason... + var path = options.path ? '; path=' + (options.path) : ''; + var domain = options.domain ? '; domain=' + (options.domain) : ''; + var secure = options.secure ? '; secure' : ''; + document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); + } else { // only name given, get cookie + var cookieValue = null; + if (document.cookie && document.cookie != '') { + var cookies = document.cookie.split(';'); + for (var i = 0; i < cookies.length; i++) { + var cookie = jQuery.trim(cookies[i]); + // Does this cookie string begin with the name we want? + if (cookie.substring(0, name.length + 1) == (name + '=')) { + cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); + break; + } + } + } + return cookieValue; + } +}; diff --git a/frontend/imbreak/js/jquery-ui.min.js b/frontend/imbreak/js/jquery-ui.min.js new file mode 100755 index 0000000..0202506 --- /dev/null +++ b/frontend/imbreak/js/jquery-ui.min.js @@ -0,0 +1,414 @@ +/*! + * jQuery UI 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(a,d){function c(h,g){var i=h.nodeName.toLowerCase();if("area"===i){g=h.parentNode;i=g.name;if(!h.href||!i||g.nodeName.toLowerCase()!=="map")return false;h=a("img[usemap=#"+i+"]")[0];return!!h&&e(h)}return(/input|select|textarea|button|object/.test(i)?!h.disabled:"a"==i?h.href||g:g)&&e(h)}function e(h){return!a(h).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(!a.ui.version){a.extend(a.ui,{version:"1.8.16", +keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(h,g){return typeof h==="number"?this.each(function(){var i= +this;setTimeout(function(){a(i).focus();g&&g.call(i)},h)}):this._focus.apply(this,arguments)},scrollParent:function(){var h;h=a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this, +"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!h.length?a(document):h},zIndex:function(h){if(h!==d)return this.css("zIndex",h);if(this.length){h=a(this[0]);for(var g;h.length&&h[0]!==document;){g=h.css("position");if(g==="absolute"||g==="relative"||g==="fixed"){g=parseInt(h.css("zIndex"),10);if(!isNaN(g)&&g!==0)return g}h=h.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart": +"mousedown")+".ui-disableSelection",function(h){h.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(h,g){function i(l,o,n,k){a.each(b,function(){o-=parseFloat(a.curCSS(l,"padding"+this,true))||0;if(n)o-=parseFloat(a.curCSS(l,"border"+this+"Width",true))||0;if(k)o-=parseFloat(a.curCSS(l,"margin"+this,true))||0});return o}var b=g==="Width"?["Left","Right"]:["Top","Bottom"],f=g.toLowerCase(),j={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight, +outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+g]=function(l){if(l===d)return j["inner"+g].call(this);return this.each(function(){a(this).css(f,i(this,l)+"px")})};a.fn["outer"+g]=function(l,o){if(typeof l!=="number")return j["outer"+g].call(this,l);return this.each(function(){a(this).css(f,i(this,l,true,o)+"px")})}});a.extend(a.expr[":"],{data:function(h,g,i){return!!a.data(h,i[3])},focusable:function(h){return c(h,!isNaN(a.attr(h,"tabindex")))},tabbable:function(h){var g=a.attr(h, +"tabindex"),i=isNaN(g);return(i||g>=0)&&c(h,!i)}});a(function(){var h=document.body,g=h.appendChild(g=document.createElement("div"));a.extend(g.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=g.offsetHeight===100;a.support.selectstart="onselectstart"in g;h.removeChild(g).style.display="none"});a.extend(a.ui,{plugin:{add:function(h,g,i){h=a.ui[h].prototype;for(var b in i){h.plugins[b]=h.plugins[b]||[];h.plugins[b].push([g,i[b]])}},call:function(h,g,i){if((g=h.plugins[g])&& +h.element[0].parentNode)for(var b=0;b<g.length;b++)h.options[g[b][0]]&&g[b][1].apply(h.element,i)}},contains:function(h,g){return document.compareDocumentPosition?h.compareDocumentPosition(g)&16:h!==g&&h.contains(g)},hasScroll:function(h,g){if(a(h).css("overflow")==="hidden")return false;g=g&&g==="left"?"scrollLeft":"scrollTop";var i=false;if(h[g]>0)return true;h[g]=1;i=h[g]>0;h[g]=0;return i},isOverAxis:function(h,g,i){return h>g&&h<g+i},isOver:function(h,g,i,b,f,j){return a.ui.isOverAxis(h,i,f)&& +a.ui.isOverAxis(g,b,j)}})}})(jQuery); +(function(a,d){if(a.cleanData){var c=a.cleanData;a.cleanData=function(h){for(var g=0,i;(i=h[g])!=null;g++)try{a(i).triggerHandler("remove")}catch(b){}c(h)}}else{var e=a.fn.remove;a.fn.remove=function(h,g){return this.each(function(){if(!g)if(!h||a.filter(h,[this]).length)a("*",this).add([this]).each(function(){try{a(this).triggerHandler("remove")}catch(i){}});return e.call(a(this),h,g)})}}a.widget=function(h,g,i){var b=h.split(".")[0],f;h=h.split(".")[1];f=b+"-"+h;if(!i){i=g;g=a.Widget}a.expr[":"][f]= +function(j){return!!a.data(j,h)};a[b]=a[b]||{};a[b][h]=function(j,l){arguments.length&&this._createWidget(j,l)};g=new g;g.options=a.extend(true,{},g.options);a[b][h].prototype=a.extend(true,g,{namespace:b,widgetName:h,widgetEventPrefix:a[b][h].prototype.widgetEventPrefix||h,widgetBaseClass:f},i);a.widget.bridge(h,a[b][h])};a.widget.bridge=function(h,g){a.fn[h]=function(i){var b=typeof i==="string",f=Array.prototype.slice.call(arguments,1),j=this;i=!b&&f.length?a.extend.apply(null,[true,i].concat(f)): +i;if(b&&i.charAt(0)==="_")return j;b?this.each(function(){var l=a.data(this,h),o=l&&a.isFunction(l[i])?l[i].apply(l,f):l;if(o!==l&&o!==d){j=o;return false}}):this.each(function(){var l=a.data(this,h);l?l.option(i||{})._init():a.data(this,h,new g(i,this))});return j}};a.Widget=function(h,g){arguments.length&&this._createWidget(h,g)};a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(h,g){a.data(g,this.widgetName,this);this.element=a(g);this.options= +a.extend(true,{},this.options,this._getCreateOptions(),h);var i=this;this.element.bind("remove."+this.widgetName,function(){i.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+ +"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(h,g){var i=h;if(arguments.length===0)return a.extend({},this.options);if(typeof h==="string"){if(g===d)return this.options[h];i={};i[h]=g}this._setOptions(i);return this},_setOptions:function(h){var g=this;a.each(h,function(i,b){g._setOption(i,b)});return this},_setOption:function(h,g){this.options[h]=g;if(h==="disabled")this.widget()[g?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled", +g);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(h,g,i){var b=this.options[h];g=a.Event(g);g.type=(h===this.widgetEventPrefix?h:this.widgetEventPrefix+h).toLowerCase();i=i||{};if(g.originalEvent){h=a.event.props.length;for(var f;h;){f=a.event.props[--h];g[f]=g.originalEvent[f]}}this.element.trigger(g,i);return!(a.isFunction(b)&&b.call(this.element[0],g,i)===false||g.isDefaultPrevented())}}})(jQuery); +(function(a){var d=false;a(document).mouseup(function(){d=false});a.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var c=this;this.element.bind("mousedown."+this.widgetName,function(e){return c._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===a.data(e.target,c.widgetName+".preventClickEvent")){a.removeData(e.target,c.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+ +this.widgetName)},_mouseDown:function(c){if(!d){this._mouseStarted&&this._mouseUp(c);this._mouseDownEvent=c;var e=this,h=c.which==1,g=typeof this.options.cancel=="string"&&c.target.nodeName?a(c.target).closest(this.options.cancel).length:false;if(!h||g||!this._mouseCapture(c))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(c)&&this._mouseDelayMet(c)){this._mouseStarted= +this._mouseStart(c)!==false;if(!this._mouseStarted){c.preventDefault();return true}}true===a.data(c.target,this.widgetName+".preventClickEvent")&&a.removeData(c.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(i){return e._mouseMove(i)};this._mouseUpDelegate=function(i){return e._mouseUp(i)};a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);c.preventDefault();return d=true}},_mouseMove:function(c){if(a.browser.msie&& +!(document.documentMode>=9)&&!c.button)return this._mouseUp(c);if(this._mouseStarted){this._mouseDrag(c);return c.preventDefault()}if(this._mouseDistanceMet(c)&&this._mouseDelayMet(c))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,c)!==false)?this._mouseDrag(c):this._mouseUp(c);return!this._mouseStarted},_mouseUp:function(c){a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted= +false;c.target==this._mouseDownEvent.target&&a.data(c.target,this.widgetName+".preventClickEvent",true);this._mouseStop(c)}return false},_mouseDistanceMet:function(c){return Math.max(Math.abs(this._mouseDownEvent.pageX-c.pageX),Math.abs(this._mouseDownEvent.pageY-c.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +(function(a){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== +"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(d){var c= +this.options;if(this.helper||c.disabled||a(d.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(d);if(!this.handle)return false;if(c.iframeFix)a(c.iframeFix===true?"iframe":c.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(a(this).offset()).appendTo("body")});return true},_mouseStart:function(d){var c=this.options; +this.helper=this._createHelper(d);this._cacheHelperProportions();if(a.ui.ddmanager)a.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:d.pageX-this.offset.left,top:d.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}); +this.originalPosition=this.position=this._generatePosition(d);this.originalPageX=d.pageX;this.originalPageY=d.pageY;c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt);c.containment&&this._setContainment();if(this._trigger("start",d)===false){this._clear();return false}this._cacheHelperProportions();a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,d);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(d,true);a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,d);return true}, +_mouseDrag:function(d,c){this.position=this._generatePosition(d);this.positionAbs=this._convertPositionTo("absolute");if(!c){c=this._uiHash();if(this._trigger("drag",d,c)===false){this._mouseUp({});return false}this.position=c.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";a.ui.ddmanager&&a.ui.ddmanager.drag(this,d);return false},_mouseStop:function(d){var c= +false;if(a.ui.ddmanager&&!this.options.dropBehaviour)c=a.ui.ddmanager.drop(this,d);if(this.dropped){c=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===true||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var e=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration, +10),function(){e._trigger("stop",d)!==false&&e._clear()})}else this._trigger("stop",d)!==false&&this._clear();return false},_mouseUp:function(d){this.options.iframeFix===true&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)});a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,d);return a.ui.mouse.prototype._mouseUp.call(this,d)},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(d){var c=!this.options.handle|| +!a(this.options.handle,this.element).length?true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==d.target)c=true});return c},_createHelper:function(d){var c=this.options;d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[d])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo);d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&& +d.css("position","absolute");return d},_adjustOffsetFromHelper:function(d){if(typeof d=="string")d=d.split(" ");if(a.isArray(d))d={left:+d[0],top:+d[1]||0};if("left"in d)this.offset.click.left=d.left+this.margins.left;if("right"in d)this.offset.click.left=this.helperProportions.width-d.right+this.margins.left;if("top"in d)this.offset.click.top=d.top+this.margins.top;if("bottom"in d)this.offset.click.top=this.helperProportions.height-d.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent= +this.helper.offsetParent();var d=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){d.left+=this.scrollParent.scrollLeft();d.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)d={top:0,left:0};return{top:d.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:d.left+(parseInt(this.offsetParent.css("borderLeftWidth"), +10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var d=this.element.position();return{top:d.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:d.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"), +10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var d=this.options;if(d.containment=="parent")d.containment=this.helper[0].parentNode;if(d.containment=="document"||d.containment=="window")this.containment=[d.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,d.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top, +(d.containment=="document"?0:a(window).scrollLeft())+a(d.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d.containment=="document"?0:a(window).scrollTop())+(a(d.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(d.containment)&&d.containment.constructor!=Array){d=a(d.containment);var c=d[0];if(c){d.offset();var e=a(c).css("overflow")!= +"hidden";this.containment=[(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0),(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0),(e?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"), +10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relative_container=d}}else if(d.containment.constructor==Array)this.containment=d.containment},_convertPositionTo:function(d,c){if(!c)c=this.position;d=d=="absolute"?1:-1;var e=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,h=/(html|body)/i.test(e[0].tagName);return{top:c.top+ +this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():h?0:e.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():h?0:e.scrollLeft())*d)}},_generatePosition:function(d){var c=this.options,e=this.cssPosition=="absolute"&& +!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,h=/(html|body)/i.test(e[0].tagName),g=d.pageX,i=d.pageY;if(this.originalPosition){var b;if(this.containment){if(this.relative_container){b=this.relative_container.offset();b=[this.containment[0]+b.left,this.containment[1]+b.top,this.containment[2]+b.left,this.containment[3]+b.top]}else b=this.containment;if(d.pageX-this.offset.click.left<b[0])g=b[0]+this.offset.click.left; +if(d.pageY-this.offset.click.top<b[1])i=b[1]+this.offset.click.top;if(d.pageX-this.offset.click.left>b[2])g=b[2]+this.offset.click.left;if(d.pageY-this.offset.click.top>b[3])i=b[3]+this.offset.click.top}if(c.grid){i=c.grid[1]?this.originalPageY+Math.round((i-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;i=b?!(i-this.offset.click.top<b[1]||i-this.offset.click.top>b[3])?i:!(i-this.offset.click.top<b[1])?i-c.grid[1]:i+c.grid[1]:i;g=c.grid[0]?this.originalPageX+Math.round((g-this.originalPageX)/ +c.grid[0])*c.grid[0]:this.originalPageX;g=b?!(g-this.offset.click.left<b[0]||g-this.offset.click.left>b[2])?g:!(g-this.offset.click.left<b[0])?g-c.grid[0]:g+c.grid[0]:g}}return{top:i-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():h?0:e.scrollTop()),left:g-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&a.browser.version< +526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():h?0:e.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove();this.helper=null;this.cancelHelperRemoval=false},_trigger:function(d,c,e){e=e||this._uiHash();a.ui.plugin.call(this,d,[c,e]);if(d=="drag")this.positionAbs=this._convertPositionTo("absolute");return a.Widget.prototype._trigger.call(this,d,c, +e)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});a.extend(a.ui.draggable,{version:"1.8.16"});a.ui.plugin.add("draggable","connectToSortable",{start:function(d,c){var e=a(this).data("draggable"),h=e.options,g=a.extend({},c,{item:e.element});e.sortables=[];a(h.connectToSortable).each(function(){var i=a.data(this,"sortable");if(i&&!i.options.disabled){e.sortables.push({instance:i,shouldRevert:i.options.revert}); +i.refreshPositions();i._trigger("activate",d,g)}})},stop:function(d,c){var e=a(this).data("draggable"),h=a.extend({},c,{item:e.element});a.each(e.sortables,function(){if(this.instance.isOver){this.instance.isOver=0;e.cancelHelperRemoval=true;this.instance.cancelHelperRemoval=false;if(this.shouldRevert)this.instance.options.revert=true;this.instance._mouseStop(d);this.instance.options.helper=this.instance.options._helper;e.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})}else{this.instance.cancelHelperRemoval= +false;this.instance._trigger("deactivate",d,h)}})},drag:function(d,c){var e=a(this).data("draggable"),h=this;a.each(e.sortables,function(){this.instance.positionAbs=e.positionAbs;this.instance.helperProportions=e.helperProportions;this.instance.offset.click=e.offset.click;if(this.instance._intersectsWith(this.instance.containerCache)){if(!this.instance.isOver){this.instance.isOver=1;this.instance.currentItem=a(h).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",true); +this.instance.options._helper=this.instance.options.helper;this.instance.options.helper=function(){return c.helper[0]};d.target=this.instance.currentItem[0];this.instance._mouseCapture(d,true);this.instance._mouseStart(d,true,true);this.instance.offset.click.top=e.offset.click.top;this.instance.offset.click.left=e.offset.click.left;this.instance.offset.parent.left-=e.offset.parent.left-this.instance.offset.parent.left;this.instance.offset.parent.top-=e.offset.parent.top-this.instance.offset.parent.top; +e._trigger("toSortable",d);e.dropped=this.instance.element;e.currentItem=e.element;this.instance.fromOutside=e}this.instance.currentItem&&this.instance._mouseDrag(d)}else if(this.instance.isOver){this.instance.isOver=0;this.instance.cancelHelperRemoval=true;this.instance.options.revert=false;this.instance._trigger("out",d,this.instance._uiHash(this.instance));this.instance._mouseStop(d,true);this.instance.options.helper=this.instance.options._helper;this.instance.currentItem.remove();this.instance.placeholder&& +this.instance.placeholder.remove();e._trigger("fromSortable",d);e.dropped=false}})}});a.ui.plugin.add("draggable","cursor",{start:function(){var d=a("body"),c=a(this).data("draggable").options;if(d.css("cursor"))c._cursor=d.css("cursor");d.css("cursor",c.cursor)},stop:function(){var d=a(this).data("draggable").options;d._cursor&&a("body").css("cursor",d._cursor)}});a.ui.plugin.add("draggable","opacity",{start:function(d,c){d=a(c.helper);c=a(this).data("draggable").options;if(d.css("opacity"))c._opacity= +d.css("opacity");d.css("opacity",c.opacity)},stop:function(d,c){d=a(this).data("draggable").options;d._opacity&&a(c.helper).css("opacity",d._opacity)}});a.ui.plugin.add("draggable","scroll",{start:function(){var d=a(this).data("draggable");if(d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML")d.overflowOffset=d.scrollParent.offset()},drag:function(d){var c=a(this).data("draggable"),e=c.options,h=false;if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML"){if(!e.axis||e.axis!= +"x")if(c.overflowOffset.top+c.scrollParent[0].offsetHeight-d.pageY<e.scrollSensitivity)c.scrollParent[0].scrollTop=h=c.scrollParent[0].scrollTop+e.scrollSpeed;else if(d.pageY-c.overflowOffset.top<e.scrollSensitivity)c.scrollParent[0].scrollTop=h=c.scrollParent[0].scrollTop-e.scrollSpeed;if(!e.axis||e.axis!="y")if(c.overflowOffset.left+c.scrollParent[0].offsetWidth-d.pageX<e.scrollSensitivity)c.scrollParent[0].scrollLeft=h=c.scrollParent[0].scrollLeft+e.scrollSpeed;else if(d.pageX-c.overflowOffset.left< +e.scrollSensitivity)c.scrollParent[0].scrollLeft=h=c.scrollParent[0].scrollLeft-e.scrollSpeed}else{if(!e.axis||e.axis!="x")if(d.pageY-a(document).scrollTop()<e.scrollSensitivity)h=a(document).scrollTop(a(document).scrollTop()-e.scrollSpeed);else if(a(window).height()-(d.pageY-a(document).scrollTop())<e.scrollSensitivity)h=a(document).scrollTop(a(document).scrollTop()+e.scrollSpeed);if(!e.axis||e.axis!="y")if(d.pageX-a(document).scrollLeft()<e.scrollSensitivity)h=a(document).scrollLeft(a(document).scrollLeft()- +e.scrollSpeed);else if(a(window).width()-(d.pageX-a(document).scrollLeft())<e.scrollSensitivity)h=a(document).scrollLeft(a(document).scrollLeft()+e.scrollSpeed)}h!==false&&a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(c,d)}});a.ui.plugin.add("draggable","snap",{start:function(){var d=a(this).data("draggable"),c=d.options;d.snapElements=[];a(c.snap.constructor!=String?c.snap.items||":data(draggable)":c.snap).each(function(){var e=a(this),h=e.offset();this!=d.element[0]&&d.snapElements.push({item:this, +width:e.outerWidth(),height:e.outerHeight(),top:h.top,left:h.left})})},drag:function(d,c){for(var e=a(this).data("draggable"),h=e.options,g=h.snapTolerance,i=c.offset.left,b=i+e.helperProportions.width,f=c.offset.top,j=f+e.helperProportions.height,l=e.snapElements.length-1;l>=0;l--){var o=e.snapElements[l].left,n=o+e.snapElements[l].width,k=e.snapElements[l].top,m=k+e.snapElements[l].height;if(o-g<i&&i<n+g&&k-g<f&&f<m+g||o-g<i&&i<n+g&&k-g<j&&j<m+g||o-g<b&&b<n+g&&k-g<f&&f<m+g||o-g<b&&b<n+g&&k-g<j&& +j<m+g){if(h.snapMode!="inner"){var p=Math.abs(k-j)<=g,q=Math.abs(m-f)<=g,s=Math.abs(o-b)<=g,r=Math.abs(n-i)<=g;if(p)c.position.top=e._convertPositionTo("relative",{top:k-e.helperProportions.height,left:0}).top-e.margins.top;if(q)c.position.top=e._convertPositionTo("relative",{top:m,left:0}).top-e.margins.top;if(s)c.position.left=e._convertPositionTo("relative",{top:0,left:o-e.helperProportions.width}).left-e.margins.left;if(r)c.position.left=e._convertPositionTo("relative",{top:0,left:n}).left-e.margins.left}var u= +p||q||s||r;if(h.snapMode!="outer"){p=Math.abs(k-f)<=g;q=Math.abs(m-j)<=g;s=Math.abs(o-i)<=g;r=Math.abs(n-b)<=g;if(p)c.position.top=e._convertPositionTo("relative",{top:k,left:0}).top-e.margins.top;if(q)c.position.top=e._convertPositionTo("relative",{top:m-e.helperProportions.height,left:0}).top-e.margins.top;if(s)c.position.left=e._convertPositionTo("relative",{top:0,left:o}).left-e.margins.left;if(r)c.position.left=e._convertPositionTo("relative",{top:0,left:n-e.helperProportions.width}).left-e.margins.left}if(!e.snapElements[l].snapping&& +(p||q||s||r||u))e.options.snap.snap&&e.options.snap.snap.call(e.element,d,a.extend(e._uiHash(),{snapItem:e.snapElements[l].item}));e.snapElements[l].snapping=p||q||s||r||u}else{e.snapElements[l].snapping&&e.options.snap.release&&e.options.snap.release.call(e.element,d,a.extend(e._uiHash(),{snapItem:e.snapElements[l].item}));e.snapElements[l].snapping=false}}}});a.ui.plugin.add("draggable","stack",{start:function(){var d=a(this).data("draggable").options;d=a.makeArray(a(d.stack)).sort(function(e,h){return(parseInt(a(e).css("zIndex"), +10)||0)-(parseInt(a(h).css("zIndex"),10)||0)});if(d.length){var c=parseInt(d[0].style.zIndex)||0;a(d).each(function(e){this.style.zIndex=c+e});this[0].style.zIndex=c+d.length}}});a.ui.plugin.add("draggable","zIndex",{start:function(d,c){d=a(c.helper);c=a(this).data("draggable").options;if(d.css("zIndex"))c._zIndex=d.css("zIndex");d.css("zIndex",c.zIndex)},stop:function(d,c){d=a(this).data("draggable").options;d._zIndex&&a(c.helper).css("zIndex",d._zIndex)}})})(jQuery); +(function(a){a.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect"},_create:function(){var d=this.options,c=d.accept;this.isover=0;this.isout=1;this.accept=a.isFunction(c)?c:function(e){return e.is(c)};this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight};a.ui.ddmanager.droppables[d.scope]=a.ui.ddmanager.droppables[d.scope]||[];a.ui.ddmanager.droppables[d.scope].push(this); +d.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){for(var d=a.ui.ddmanager.droppables[this.options.scope],c=0;c<d.length;c++)d[c]==this&&d.splice(c,1);this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable");return this},_setOption:function(d,c){if(d=="accept")this.accept=a.isFunction(c)?c:function(e){return e.is(c)};a.Widget.prototype._setOption.apply(this,arguments)},_activate:function(d){var c=a.ui.ddmanager.current;this.options.activeClass&& +this.element.addClass(this.options.activeClass);c&&this._trigger("activate",d,this.ui(c))},_deactivate:function(d){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass);c&&this._trigger("deactivate",d,this.ui(c))},_over:function(d){var c=a.ui.ddmanager.current;if(!(!c||(c.currentItem||c.element)[0]==this.element[0]))if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.hoverClass&&this.element.addClass(this.options.hoverClass); +this._trigger("over",d,this.ui(c))}},_out:function(d){var c=a.ui.ddmanager.current;if(!(!c||(c.currentItem||c.element)[0]==this.element[0]))if(this.accept.call(this.element[0],c.currentItem||c.element)){this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("out",d,this.ui(c))}},_drop:function(d,c){var e=c||a.ui.ddmanager.current;if(!e||(e.currentItem||e.element)[0]==this.element[0])return false;var h=false;this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var g= +a.data(this,"droppable");if(g.options.greedy&&!g.options.disabled&&g.options.scope==e.options.scope&&g.accept.call(g.element[0],e.currentItem||e.element)&&a.ui.intersect(e,a.extend(g,{offset:g.element.offset()}),g.options.tolerance)){h=true;return false}});if(h)return false;if(this.accept.call(this.element[0],e.currentItem||e.element)){this.options.activeClass&&this.element.removeClass(this.options.activeClass);this.options.hoverClass&&this.element.removeClass(this.options.hoverClass);this._trigger("drop", +d,this.ui(e));return this.element}return false},ui:function(d){return{draggable:d.currentItem||d.element,helper:d.helper,position:d.position,offset:d.positionAbs}}});a.extend(a.ui.droppable,{version:"1.8.16"});a.ui.intersect=function(d,c,e){if(!c.offset)return false;var h=(d.positionAbs||d.position.absolute).left,g=h+d.helperProportions.width,i=(d.positionAbs||d.position.absolute).top,b=i+d.helperProportions.height,f=c.offset.left,j=f+c.proportions.width,l=c.offset.top,o=l+c.proportions.height; +switch(e){case "fit":return f<=h&&g<=j&&l<=i&&b<=o;case "intersect":return f<h+d.helperProportions.width/2&&g-d.helperProportions.width/2<j&&l<i+d.helperProportions.height/2&&b-d.helperProportions.height/2<o;case "pointer":return a.ui.isOver((d.positionAbs||d.position.absolute).top+(d.clickOffset||d.offset.click).top,(d.positionAbs||d.position.absolute).left+(d.clickOffset||d.offset.click).left,l,f,c.proportions.height,c.proportions.width);case "touch":return(i>=l&&i<=o||b>=l&&b<=o||i<l&&b>o)&&(h>= +f&&h<=j||g>=f&&g<=j||h<f&&g>j);default:return false}};a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(d,c){var e=a.ui.ddmanager.droppables[d.options.scope]||[],h=c?c.type:null,g=(d.currentItem||d.element).find(":data(droppable)").andSelf(),i=0;a:for(;i<e.length;i++)if(!(e[i].options.disabled||d&&!e[i].accept.call(e[i].element[0],d.currentItem||d.element))){for(var b=0;b<g.length;b++)if(g[b]==e[i].element[0]){e[i].proportions.height=0;continue a}e[i].visible=e[i].element.css("display")!= +"none";if(e[i].visible){h=="mousedown"&&e[i]._activate.call(e[i],c);e[i].offset=e[i].element.offset();e[i].proportions={width:e[i].element[0].offsetWidth,height:e[i].element[0].offsetHeight}}}},drop:function(d,c){var e=false;a.each(a.ui.ddmanager.droppables[d.options.scope]||[],function(){if(this.options){if(!this.options.disabled&&this.visible&&a.ui.intersect(d,this,this.options.tolerance))e=e||this._drop.call(this,c);if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],d.currentItem|| +d.element)){this.isout=1;this.isover=0;this._deactivate.call(this,c)}}});return e},dragStart:function(d,c){d.element.parents(":not(body,html)").bind("scroll.droppable",function(){d.options.refreshPositions||a.ui.ddmanager.prepareOffsets(d,c)})},drag:function(d,c){d.options.refreshPositions&&a.ui.ddmanager.prepareOffsets(d,c);a.each(a.ui.ddmanager.droppables[d.options.scope]||[],function(){if(!(this.options.disabled||this.greedyChild||!this.visible)){var e=a.ui.intersect(d,this,this.options.tolerance); +if(e=!e&&this.isover==1?"isout":e&&this.isover==0?"isover":null){var h;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");if(g.length){h=a.data(g[0],"droppable");h.greedyChild=e=="isover"?1:0}}if(h&&e=="isover"){h.isover=0;h.isout=1;h._out.call(h,c)}this[e]=1;this[e=="isout"?"isover":"isout"]=0;this[e=="isover"?"_over":"_out"].call(this,c);if(h&&e=="isout"){h.isout=0;h.isover=1;h._over.call(h,c)}}}})},dragStop:function(d,c){d.element.parents(":not(body,html)").unbind("scroll.droppable"); +d.options.refreshPositions||a.ui.ddmanager.prepareOffsets(d,c)}}})(jQuery); +(function(a){a.widget("ui.resizable",a.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1E3},_create:function(){var e=this,h=this.options;this.element.addClass("ui-resizable");a.extend(this,{_aspectRatio:!!h.aspectRatio,aspectRatio:h.aspectRatio,originalElement:this.element, +_proportionallyResizeElements:[],_helper:h.helper||h.ghost||h.animate?h.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){/relative/.test(this.element.css("position"))&&a.browser.opera&&this.element.css({position:"relative",top:"auto",left:"auto"});this.element.wrap(a('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), +top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= +this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=h.handles||(!a(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", +nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var g=this.handles.split(",");this.handles={};for(var i=0;i<g.length;i++){var b=a.trim(g[i]),f=a('<div class="ui-resizable-handle '+("ui-resizable-"+b)+'"></div>');/sw|se|ne|nw/.test(b)&&f.css({zIndex:++h.zIndex});"se"==b&&f.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[b]=".ui-resizable-"+b;this.element.append(f)}}this._renderAxis=function(j){j=j||this.element;for(var l in this.handles){if(this.handles[l].constructor== +String)this.handles[l]=a(this.handles[l],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=a(this.handles[l],this.element),n=0;n=/sw|ne|nw|se|n|s/.test(l)?o.outerHeight():o.outerWidth();o=["padding",/ne|nw|n/.test(l)?"Top":/se|sw|s/.test(l)?"Bottom":/^e$/.test(l)?"Right":"Left"].join("");j.css(o,n);this._proportionallyResize()}a(this.handles[l])}};this._renderAxis(this.element);this._handles=a(".ui-resizable-handle",this.element).disableSelection(); +this._handles.mouseover(function(){if(!e.resizing){if(this.className)var j=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);e.axis=j&&j[1]?j[1]:"se"}});if(h.autoHide){this._handles.hide();a(this.element).addClass("ui-resizable-autohide").hover(function(){if(!h.disabled){a(this).removeClass("ui-resizable-autohide");e._handles.show()}},function(){if(!h.disabled)if(!e.resizing){a(this).addClass("ui-resizable-autohide");e._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy(); +var e=function(g){a(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var h=this.element;h.after(this.originalElement.css({position:h.css("position"),width:h.outerWidth(),height:h.outerHeight(),top:h.css("top"),left:h.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(e){var h= +false;for(var g in this.handles)if(a(this.handles[g])[0]==e.target)h=true;return!this.options.disabled&&h},_mouseStart:function(e){var h=this.options,g=this.element.position(),i=this.element;this.resizing=true;this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()};if(i.is(".ui-draggable")||/absolute/.test(i.css("position")))i.css({position:"absolute",top:g.top,left:g.left});a.browser.opera&&/relative/.test(i.css("position"))&&i.css({position:"relative",top:"auto",left:"auto"}); +this._renderProxy();g=d(this.helper.css("left"));var b=d(this.helper.css("top"));if(h.containment){g+=a(h.containment).scrollLeft()||0;b+=a(h.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:g,top:b};this.size=this._helper?{width:i.outerWidth(),height:i.outerHeight()}:{width:i.width(),height:i.height()};this.originalSize=this._helper?{width:i.outerWidth(),height:i.outerHeight()}:{width:i.width(),height:i.height()};this.originalPosition={left:g,top:b};this.sizeDiff= +{width:i.outerWidth()-i.width(),height:i.outerHeight()-i.height()};this.originalMousePosition={left:e.pageX,top:e.pageY};this.aspectRatio=typeof h.aspectRatio=="number"?h.aspectRatio:this.originalSize.width/this.originalSize.height||1;h=a(".ui-resizable-"+this.axis).css("cursor");a("body").css("cursor",h=="auto"?this.axis+"-resize":h);i.addClass("ui-resizable-resizing");this._propagate("start",e);return true},_mouseDrag:function(e){var h=this.helper,g=this.originalMousePosition,i=this._change[this.axis]; +if(!i)return false;g=i.apply(this,[e,e.pageX-g.left||0,e.pageY-g.top||0]);this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey)g=this._updateRatio(g,e);g=this._respectSize(g,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(g);this._trigger("resize",e,this.ui());return false}, +_mouseStop:function(e){this.resizing=false;var h=this.options,g=this;if(this._helper){var i=this._proportionallyResizeElements,b=i.length&&/textarea/i.test(i[0].nodeName);i=b&&a.ui.hasScroll(i[0],"left")?0:g.sizeDiff.height;b=b?0:g.sizeDiff.width;b={width:g.helper.width()-b,height:g.helper.height()-i};i=parseInt(g.element.css("left"),10)+(g.position.left-g.originalPosition.left)||null;var f=parseInt(g.element.css("top"),10)+(g.position.top-g.originalPosition.top)||null;h.animate||this.element.css(a.extend(b, +{top:f,left:i}));g.helper.height(g.size.height);g.helper.width(g.size.width);this._helper&&!h.animate&&this._proportionallyResize()}a("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",e);this._helper&&this.helper.remove();return false},_updateVirtualBoundaries:function(e){var h=this.options,g,i,b;h={minWidth:c(h.minWidth)?h.minWidth:0,maxWidth:c(h.maxWidth)?h.maxWidth:Infinity,minHeight:c(h.minHeight)?h.minHeight:0,maxHeight:c(h.maxHeight)?h.maxHeight: +Infinity};if(this._aspectRatio||e){e=h.minHeight*this.aspectRatio;i=h.minWidth/this.aspectRatio;g=h.maxHeight*this.aspectRatio;b=h.maxWidth/this.aspectRatio;if(e>h.minWidth)h.minWidth=e;if(i>h.minHeight)h.minHeight=i;if(g<h.maxWidth)h.maxWidth=g;if(b<h.maxHeight)h.maxHeight=b}this._vBoundaries=h},_updateCache:function(e){this.offset=this.helper.offset();if(c(e.left))this.position.left=e.left;if(c(e.top))this.position.top=e.top;if(c(e.height))this.size.height=e.height;if(c(e.width))this.size.width= +e.width},_updateRatio:function(e){var h=this.position,g=this.size,i=this.axis;if(c(e.height))e.width=e.height*this.aspectRatio;else if(c(e.width))e.height=e.width/this.aspectRatio;if(i=="sw"){e.left=h.left+(g.width-e.width);e.top=null}if(i=="nw"){e.top=h.top+(g.height-e.height);e.left=h.left+(g.width-e.width)}return e},_respectSize:function(e){var h=this._vBoundaries,g=this.axis,i=c(e.width)&&h.maxWidth&&h.maxWidth<e.width,b=c(e.height)&&h.maxHeight&&h.maxHeight<e.height,f=c(e.width)&&h.minWidth&& +h.minWidth>e.width,j=c(e.height)&&h.minHeight&&h.minHeight>e.height;if(f)e.width=h.minWidth;if(j)e.height=h.minHeight;if(i)e.width=h.maxWidth;if(b)e.height=h.maxHeight;var l=this.originalPosition.left+this.originalSize.width,o=this.position.top+this.size.height,n=/sw|nw|w/.test(g);g=/nw|ne|n/.test(g);if(f&&n)e.left=l-h.minWidth;if(i&&n)e.left=l-h.maxWidth;if(j&&g)e.top=o-h.minHeight;if(b&&g)e.top=o-h.maxHeight;if((h=!e.width&&!e.height)&&!e.left&&e.top)e.top=null;else if(h&&!e.top&&e.left)e.left= +null;return e},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var e=this.helper||this.element,h=0;h<this._proportionallyResizeElements.length;h++){var g=this._proportionallyResizeElements[h];if(!this.borderDif){var i=[g.css("borderTopWidth"),g.css("borderRightWidth"),g.css("borderBottomWidth"),g.css("borderLeftWidth")],b=[g.css("paddingTop"),g.css("paddingRight"),g.css("paddingBottom"),g.css("paddingLeft")];this.borderDif=a.map(i,function(f,j){f=parseInt(f,10)|| +0;j=parseInt(b[j],10)||0;return f+j})}a.browser.msie&&(a(e).is(":hidden")||a(e).parents(":hidden").length)||g.css({height:e.height()-this.borderDif[0]-this.borderDif[2]||0,width:e.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var e=this.options;this.elementOffset=this.element.offset();if(this._helper){this.helper=this.helper||a('<div style="overflow:hidden;"></div>');var h=a.browser.msie&&a.browser.version<7,g=h?1:0;h=h?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+ +h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++e.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(e,h){return{width:this.originalSize.width+h}},w:function(e,h){return{left:this.originalPosition.left+h,width:this.originalSize.width-h}},n:function(e,h,g){return{top:this.originalPosition.top+g,height:this.originalSize.height-g}},s:function(e,h,g){return{height:this.originalSize.height+ +g}},se:function(e,h,g){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,h,g]))},sw:function(e,h,g){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,h,g]))},ne:function(e,h,g){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,h,g]))},nw:function(e,h,g){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,h,g]))}},_propagate:function(e,h){a.ui.plugin.call(this,e,[h,this.ui()]); +e!="resize"&&this._trigger(e,h,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});a.extend(a.ui.resizable,{version:"1.8.16"});a.ui.plugin.add("resizable","alsoResize",{start:function(){var e=a(this).data("resizable").options,h=function(g){a(g).each(function(){var i=a(this);i.data("resizable-alsoresize",{width:parseInt(i.width(), +10),height:parseInt(i.height(),10),left:parseInt(i.css("left"),10),top:parseInt(i.css("top"),10),position:i.css("position")})})};if(typeof e.alsoResize=="object"&&!e.alsoResize.parentNode)if(e.alsoResize.length){e.alsoResize=e.alsoResize[0];h(e.alsoResize)}else a.each(e.alsoResize,function(g){h(g)});else h(e.alsoResize)},resize:function(e,h){var g=a(this).data("resizable");e=g.options;var i=g.originalSize,b=g.originalPosition,f={height:g.size.height-i.height||0,width:g.size.width-i.width||0,top:g.position.top- +b.top||0,left:g.position.left-b.left||0},j=function(l,o){a(l).each(function(){var n=a(this),k=a(this).data("resizable-alsoresize"),m={},p=o&&o.length?o:n.parents(h.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(p,function(q,s){if((q=(k[s]||0)+(f[s]||0))&&q>=0)m[s]=q||null});if(a.browser.opera&&/relative/.test(n.css("position"))){g._revertToRelativePosition=true;n.css({position:"absolute",top:"auto",left:"auto"})}n.css(m)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType? +a.each(e.alsoResize,function(l,o){j(l,o)}):j(e.alsoResize)},stop:function(){var e=a(this).data("resizable"),h=e.options,g=function(i){a(i).each(function(){var b=a(this);b.css({position:b.data("resizable-alsoresize").position})})};if(e._revertToRelativePosition){e._revertToRelativePosition=false;typeof h.alsoResize=="object"&&!h.alsoResize.nodeType?a.each(h.alsoResize,function(i){g(i)}):g(h.alsoResize)}a(this).removeData("resizable-alsoresize")}});a.ui.plugin.add("resizable","animate",{stop:function(e){var h= +a(this).data("resizable"),g=h.options,i=h._proportionallyResizeElements,b=i.length&&/textarea/i.test(i[0].nodeName),f=b&&a.ui.hasScroll(i[0],"left")?0:h.sizeDiff.height;b={width:h.size.width-(b?0:h.sizeDiff.width),height:h.size.height-f};f=parseInt(h.element.css("left"),10)+(h.position.left-h.originalPosition.left)||null;var j=parseInt(h.element.css("top"),10)+(h.position.top-h.originalPosition.top)||null;h.element.animate(a.extend(b,j&&f?{top:j,left:f}:{}),{duration:g.animateDuration,easing:g.animateEasing, +step:function(){var l={width:parseInt(h.element.css("width"),10),height:parseInt(h.element.css("height"),10),top:parseInt(h.element.css("top"),10),left:parseInt(h.element.css("left"),10)};i&&i.length&&a(i[0]).css({width:l.width,height:l.height});h._updateCache(l);h._propagate("resize",e)}})}});a.ui.plugin.add("resizable","containment",{start:function(){var e=a(this).data("resizable"),h=e.element,g=e.options.containment;if(h=g instanceof a?g.get(0):/parent/.test(g)?h.parent().get(0):g){e.containerElement= +a(h);if(/document/.test(g)||g==document){e.containerOffset={left:0,top:0};e.containerPosition={left:0,top:0};e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight}}else{var i=a(h),b=[];a(["Top","Right","Left","Bottom"]).each(function(l,o){b[l]=d(i.css("padding"+o))});e.containerOffset=i.offset();e.containerPosition=i.position();e.containerSize={height:i.innerHeight()-b[3],width:i.innerWidth()-b[1]};g=e.containerOffset; +var f=e.containerSize.height,j=e.containerSize.width;j=a.ui.hasScroll(h,"left")?h.scrollWidth:j;f=a.ui.hasScroll(h)?h.scrollHeight:f;e.parentData={element:h,left:g.left,top:g.top,width:j,height:f}}}},resize:function(e){var h=a(this).data("resizable"),g=h.options,i=h.containerOffset,b=h.position;e=h._aspectRatio||e.shiftKey;var f={top:0,left:0},j=h.containerElement;if(j[0]!=document&&/static/.test(j.css("position")))f=i;if(b.left<(h._helper?i.left:0)){h.size.width+=h._helper?h.position.left-i.left: +h.position.left-f.left;if(e)h.size.height=h.size.width/g.aspectRatio;h.position.left=g.helper?i.left:0}if(b.top<(h._helper?i.top:0)){h.size.height+=h._helper?h.position.top-i.top:h.position.top;if(e)h.size.width=h.size.height*g.aspectRatio;h.position.top=h._helper?i.top:0}h.offset.left=h.parentData.left+h.position.left;h.offset.top=h.parentData.top+h.position.top;g=Math.abs((h._helper?h.offset.left-f.left:h.offset.left-f.left)+h.sizeDiff.width);i=Math.abs((h._helper?h.offset.top-f.top:h.offset.top- +i.top)+h.sizeDiff.height);b=h.containerElement.get(0)==h.element.parent().get(0);f=/relative|absolute/.test(h.containerElement.css("position"));if(b&&f)g-=h.parentData.left;if(g+h.size.width>=h.parentData.width){h.size.width=h.parentData.width-g;if(e)h.size.height=h.size.width/h.aspectRatio}if(i+h.size.height>=h.parentData.height){h.size.height=h.parentData.height-i;if(e)h.size.width=h.size.height*h.aspectRatio}},stop:function(){var e=a(this).data("resizable"),h=e.options,g=e.containerOffset,i=e.containerPosition, +b=e.containerElement,f=a(e.helper),j=f.offset(),l=f.outerWidth()-e.sizeDiff.width;f=f.outerHeight()-e.sizeDiff.height;e._helper&&!h.animate&&/relative/.test(b.css("position"))&&a(this).css({left:j.left-i.left-g.left,width:l,height:f});e._helper&&!h.animate&&/static/.test(b.css("position"))&&a(this).css({left:j.left-i.left-g.left,width:l,height:f})}});a.ui.plugin.add("resizable","ghost",{start:function(){var e=a(this).data("resizable"),h=e.options,g=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25, +display:"block",position:"relative",height:g.height,width:g.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof h.ghost=="string"?h.ghost:"");e.ghost.appendTo(e.helper)},resize:function(){var e=a(this).data("resizable");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=a(this).data("resizable");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}});a.ui.plugin.add("resizable","grid",{resize:function(){var e= +a(this).data("resizable"),h=e.options,g=e.size,i=e.originalSize,b=e.originalPosition,f=e.axis;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var j=Math.round((g.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1);h=Math.round((g.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(f)){e.size.width=i.width+j;e.size.height=i.height+h}else if(/^(ne)$/.test(f)){e.size.width=i.width+j;e.size.height=i.height+h;e.position.top=b.top-h}else{if(/^(sw)$/.test(f)){e.size.width=i.width+j;e.size.height= +i.height+h}else{e.size.width=i.width+j;e.size.height=i.height+h;e.position.top=b.top-h}e.position.left=b.left-j}}});var d=function(e){return parseInt(e,10)||0},c=function(e){return!isNaN(parseInt(e,10))}})(jQuery); +(function(a){a.widget("ui.selectable",a.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var d=this;this.element.addClass("ui-selectable");this.dragged=false;var c;this.refresh=function(){c=a(d.options.filter,d.element[0]);c.each(function(){var e=a(this),h=e.offset();a.data(this,"selectable-item",{element:this,$element:e,left:h.left,top:h.top,right:h.left+e.outerWidth(),bottom:h.top+e.outerHeight(),startselected:false,selected:e.hasClass("ui-selected"), +selecting:e.hasClass("ui-selecting"),unselecting:e.hasClass("ui-unselecting")})})};this.refresh();this.selectees=c.addClass("ui-selectee");this._mouseInit();this.helper=a("<div class='ui-selectable-helper'></div>")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(d){var c=this;this.opos=[d.pageX, +d.pageY];if(!this.options.disabled){var e=this.options;this.selectees=a(e.filter,this.element[0]);this._trigger("start",d);a(e.appendTo).append(this.helper);this.helper.css({left:d.clientX,top:d.clientY,width:0,height:0});e.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var h=a.data(this,"selectable-item");h.startselected=true;if(!d.metaKey){h.$element.removeClass("ui-selected");h.selected=false;h.$element.addClass("ui-unselecting");h.unselecting=true;c._trigger("unselecting", +d,{unselecting:h.element})}});a(d.target).parents().andSelf().each(function(){var h=a.data(this,"selectable-item");if(h){var g=!d.metaKey||!h.$element.hasClass("ui-selected");h.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");h.unselecting=!g;h.selecting=g;(h.selected=g)?c._trigger("selecting",d,{selecting:h.element}):c._trigger("unselecting",d,{unselecting:h.element});return false}})}},_mouseDrag:function(d){var c=this;this.dragged=true;if(!this.options.disabled){var e= +this.options,h=this.opos[0],g=this.opos[1],i=d.pageX,b=d.pageY;if(h>i){var f=i;i=h;h=f}if(g>b){f=b;b=g;g=f}this.helper.css({left:h,top:g,width:i-h,height:b-g});this.selectees.each(function(){var j=a.data(this,"selectable-item");if(!(!j||j.element==c.element[0])){var l=false;if(e.tolerance=="touch")l=!(j.left>i||j.right<h||j.top>b||j.bottom<g);else if(e.tolerance=="fit")l=j.left>h&&j.right<i&&j.top>g&&j.bottom<b;if(l){if(j.selected){j.$element.removeClass("ui-selected");j.selected=false}if(j.unselecting){j.$element.removeClass("ui-unselecting"); +j.unselecting=false}if(!j.selecting){j.$element.addClass("ui-selecting");j.selecting=true;c._trigger("selecting",d,{selecting:j.element})}}else{if(j.selecting)if(d.metaKey&&j.startselected){j.$element.removeClass("ui-selecting");j.selecting=false;j.$element.addClass("ui-selected");j.selected=true}else{j.$element.removeClass("ui-selecting");j.selecting=false;if(j.startselected){j.$element.addClass("ui-unselecting");j.unselecting=true}c._trigger("unselecting",d,{unselecting:j.element})}if(j.selected)if(!d.metaKey&& +!j.startselected){j.$element.removeClass("ui-selected");j.selected=false;j.$element.addClass("ui-unselecting");j.unselecting=true;c._trigger("unselecting",d,{unselecting:j.element})}}}});return false}},_mouseStop:function(d){var c=this;this.dragged=false;a(".ui-unselecting",this.element[0]).each(function(){var e=a.data(this,"selectable-item");e.$element.removeClass("ui-unselecting");e.unselecting=false;e.startselected=false;c._trigger("unselected",d,{unselected:e.element})});a(".ui-selecting",this.element[0]).each(function(){var e= +a.data(this,"selectable-item");e.$element.removeClass("ui-selecting").addClass("ui-selected");e.selecting=false;e.selected=true;e.startselected=true;c._trigger("selected",d,{selected:e.element})});this._trigger("stop",d);this.helper.remove();return false}});a.extend(a.ui.selectable,{version:"1.8.16"})})(jQuery); +(function(a){a.widget("ui.sortable",a.ui.mouse,{widgetEventPrefix:"sort",options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){var d=this.options;this.containerCache={};this.element.addClass("ui-sortable"); +this.refresh();this.floating=this.items.length?d.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var d=this.items.length-1;d>=0;d--)this.items[d].item.removeData("sortable-item");return this},_setOption:function(d,c){if(d=== +"disabled"){this.options[d]=c;this.widget()[c?"addClass":"removeClass"]("ui-sortable-disabled")}else a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(d,c){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(d);var e=null,h=this;a(d.target).parents().each(function(){if(a.data(this,"sortable-item")==h){e=a(this);return false}});if(a.data(d.target,"sortable-item")==h)e=a(d.target);if(!e)return false;if(this.options.handle&& +!c){var g=false;a(this.options.handle,e).find("*").andSelf().each(function(){if(this==d.target)g=true});if(!g)return false}this.currentItem=e;this._removeCurrentsFromItems();return true},_mouseStart:function(d,c,e){c=this.options;var h=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(d);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top, +left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");a.extend(this.offset,{click:{left:d.pageX-this.offset.left,top:d.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(d);this.originalPageX=d.pageX;this.originalPageY=d.pageY;c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]}; +this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();c.containment&&this._setContainment();if(c.cursor){if(a("body").css("cursor"))this._storedCursor=a("body").css("cursor");a("body").css("cursor",c.cursor)}if(c.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",c.opacity)}if(c.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",c.zIndex)}if(this.scrollParent[0]!= +document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start",d,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!e)for(e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("activate",d,h._uiHash(this));if(a.ui.ddmanager)a.ui.ddmanager.current=this;a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,d);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(d); +return true},_mouseDrag:function(d){this.position=this._generatePosition(d);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var c=this.options,e=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-d.pageY<c.scrollSensitivity)this.scrollParent[0].scrollTop=e=this.scrollParent[0].scrollTop+c.scrollSpeed;else if(d.pageY-this.overflowOffset.top< +c.scrollSensitivity)this.scrollParent[0].scrollTop=e=this.scrollParent[0].scrollTop-c.scrollSpeed;if(this.overflowOffset.left+this.scrollParent[0].offsetWidth-d.pageX<c.scrollSensitivity)this.scrollParent[0].scrollLeft=e=this.scrollParent[0].scrollLeft+c.scrollSpeed;else if(d.pageX-this.overflowOffset.left<c.scrollSensitivity)this.scrollParent[0].scrollLeft=e=this.scrollParent[0].scrollLeft-c.scrollSpeed}else{if(d.pageY-a(document).scrollTop()<c.scrollSensitivity)e=a(document).scrollTop(a(document).scrollTop()- +c.scrollSpeed);else if(a(window).height()-(d.pageY-a(document).scrollTop())<c.scrollSensitivity)e=a(document).scrollTop(a(document).scrollTop()+c.scrollSpeed);if(d.pageX-a(document).scrollLeft()<c.scrollSensitivity)e=a(document).scrollLeft(a(document).scrollLeft()-c.scrollSpeed);else if(a(window).width()-(d.pageX-a(document).scrollLeft())<c.scrollSensitivity)e=a(document).scrollLeft(a(document).scrollLeft()+c.scrollSpeed)}e!==false&&a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this, +d)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(c=this.items.length-1;c>=0;c--){e=this.items[c];var h=e.item[0],g=this._intersectsWithPointer(e);if(g)if(h!=this.currentItem[0]&&this.placeholder[g==1?"next":"prev"]()[0]!=h&&!a.ui.contains(this.placeholder[0],h)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0], +h):true)){this.direction=g==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(e))this._rearrange(d,e);else break;this._trigger("change",d,this._uiHash());break}}this._contactContainers(d);a.ui.ddmanager&&a.ui.ddmanager.drag(this,d);this._trigger("sort",d,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(d,c){if(d){a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,d);if(this.options.revert){var e=this;c=e.placeholder.offset(); +e.reverting=true;a(this.helper).animate({left:c.left-this.offset.parent.left-e.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:c.top-this.offset.parent.top-e.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){e._clear(d)})}else this._clear(d,c);return false}},cancel:function(){var d=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"): +this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--){this.containers[c]._trigger("deactivate",null,d._uiHash(this));if(this.containers[c].containerCache.over){this.containers[c]._trigger("out",null,d._uiHash(this));this.containers[c].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();a.extend(this,{helper:null, +dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(d){var c=this._getItemsAsjQuery(d&&d.connected),e=[];d=d||{};a(c).each(function(){var h=(a(d.item||this).attr(d.attribute||"id")||"").match(d.expression||/(.+)[-=_](.+)/);if(h)e.push((d.key||h[1]+"[]")+"="+(d.key&&d.expression?h[1]:h[2]))});!e.length&&d.key&&e.push(d.key+"=");return e.join("&")}, +toArray:function(d){var c=this._getItemsAsjQuery(d&&d.connected),e=[];d=d||{};c.each(function(){e.push(a(d.item||this).attr(d.attribute||"id")||"")});return e},_intersectsWith:function(d){var c=this.positionAbs.left,e=c+this.helperProportions.width,h=this.positionAbs.top,g=h+this.helperProportions.height,i=d.left,b=i+d.width,f=d.top,j=f+d.height,l=this.offset.click.top,o=this.offset.click.left;l=h+l>f&&h+l<j&&c+o>i&&c+o<b;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers|| +this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>d[this.floating?"width":"height"]?l:i<c+this.helperProportions.width/2&&e-this.helperProportions.width/2<b&&f<h+this.helperProportions.height/2&&g-this.helperProportions.height/2<j},_intersectsWithPointer:function(d){var c=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,d.top,d.height);d=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,d.left,d.width);c=c&&d;d=this._getDragVerticalDirection(); +var e=this._getDragHorizontalDirection();if(!c)return false;return this.floating?e&&e=="right"||d=="down"?2:1:d&&(d=="down"?2:1)},_intersectsWithSides:function(d){var c=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,d.top+d.height/2,d.height);d=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,d.left+d.width/2,d.width);var e=this._getDragVerticalDirection(),h=this._getDragHorizontalDirection();return this.floating&&h?h=="right"&&d||h=="left"&&!d:e&&(e=="down"&&c||e=="up"&&!c)}, +_getDragVerticalDirection:function(){var d=this.positionAbs.top-this.lastPositionAbs.top;return d!=0&&(d>0?"down":"up")},_getDragHorizontalDirection:function(){var d=this.positionAbs.left-this.lastPositionAbs.left;return d!=0&&(d>0?"right":"left")},refresh:function(d){this._refreshItems(d);this.refreshPositions();return this},_connectWith:function(){var d=this.options;return d.connectWith.constructor==String?[d.connectWith]:d.connectWith},_getItemsAsjQuery:function(d){var c=[],e=[],h=this._connectWith(); +if(h&&d)for(d=h.length-1;d>=0;d--)for(var g=a(h[d]),i=g.length-1;i>=0;i--){var b=a.data(g[i],"sortable");if(b&&b!=this&&!b.options.disabled)e.push([a.isFunction(b.options.items)?b.options.items.call(b.element):a(b.options.items,b.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),b])}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), +this]);for(d=e.length-1;d>=0;d--)e[d][0].each(function(){c.push(this)});return a(c)},_removeCurrentsFromItems:function(){for(var d=this.currentItem.find(":data(sortable-item)"),c=0;c<this.items.length;c++)for(var e=0;e<d.length;e++)d[e]==this.items[c].item[0]&&this.items.splice(c,1)},_refreshItems:function(d){this.items=[];this.containers=[this];var c=this.items,e=[[a.isFunction(this.options.items)?this.options.items.call(this.element[0],d,{item:this.currentItem}):a(this.options.items,this.element), +this]],h=this._connectWith();if(h)for(var g=h.length-1;g>=0;g--)for(var i=a(h[g]),b=i.length-1;b>=0;b--){var f=a.data(i[b],"sortable");if(f&&f!=this&&!f.options.disabled){e.push([a.isFunction(f.options.items)?f.options.items.call(f.element[0],d,{item:this.currentItem}):a(f.options.items,f.element),f]);this.containers.push(f)}}for(g=e.length-1;g>=0;g--){d=e[g][1];h=e[g][0];b=0;for(i=h.length;b<i;b++){f=a(h[b]);f.data("sortable-item",d);c.push({item:f,instance:d,width:0,height:0,left:0,top:0})}}},refreshPositions:function(d){if(this.offsetParent&& +this.helper)this.offset.parent=this._getParentOffset();for(var c=this.items.length-1;c>=0;c--){var e=this.items[c];if(!(e.instance!=this.currentContainer&&this.currentContainer&&e.item[0]!=this.currentItem[0])){var h=this.options.toleranceElement?a(this.options.toleranceElement,e.item):e.item;if(!d){e.width=h.outerWidth();e.height=h.outerHeight()}h=h.offset();e.left=h.left;e.top=h.top}}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(c= +this.containers.length-1;c>=0;c--){h=this.containers[c].element.offset();this.containers[c].containerCache.left=h.left;this.containers[c].containerCache.top=h.top;this.containers[c].containerCache.width=this.containers[c].element.outerWidth();this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(d){var c=d||this,e=c.options;if(!e.placeholder||e.placeholder.constructor==String){var h=e.placeholder;e.placeholder={element:function(){var g= +a(document.createElement(c.currentItem[0].nodeName)).addClass(h||c.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!h)g.style.visibility="hidden";return g},update:function(g,i){if(!(h&&!e.forcePlaceholderSize)){i.height()||i.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10));i.width()||i.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")|| +0,10))}}}}c.placeholder=a(e.placeholder.element.call(c.element,c.currentItem));c.currentItem.after(c.placeholder);e.placeholder.update(c,c.placeholder)},_contactContainers:function(d){for(var c=null,e=null,h=this.containers.length-1;h>=0;h--)if(!a.ui.contains(this.currentItem[0],this.containers[h].element[0]))if(this._intersectsWith(this.containers[h].containerCache)){if(!(c&&a.ui.contains(this.containers[h].element[0],c.element[0]))){c=this.containers[h];e=h}}else if(this.containers[h].containerCache.over){this.containers[h]._trigger("out", +d,this._uiHash(this));this.containers[h].containerCache.over=0}if(c)if(this.containers.length===1){this.containers[e]._trigger("over",d,this._uiHash(this));this.containers[e].containerCache.over=1}else if(this.currentContainer!=this.containers[e]){c=1E4;h=null;for(var g=this.positionAbs[this.containers[e].floating?"left":"top"],i=this.items.length-1;i>=0;i--)if(a.ui.contains(this.containers[e].element[0],this.items[i].item[0])){var b=this.items[i][this.containers[e].floating?"left":"top"];if(Math.abs(b- +g)<c){c=Math.abs(b-g);h=this.items[i]}}if(h||this.options.dropOnEmpty){this.currentContainer=this.containers[e];h?this._rearrange(d,h,null,true):this._rearrange(d,null,this.containers[e].element,true);this._trigger("change",d,this._uiHash());this.containers[e]._trigger("change",d,this._uiHash(this));this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[e]._trigger("over",d,this._uiHash(this));this.containers[e].containerCache.over=1}}},_createHelper:function(d){var c= +this.options;d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[d,this.currentItem])):c.helper=="clone"?this.currentItem.clone():this.currentItem;d.parents("body").length||a(c.appendTo!="parent"?c.appendTo:this.currentItem[0].parentNode)[0].appendChild(d[0]);if(d[0]==this.currentItem[0])this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")};if(d[0].style.width== +""||c.forceHelperSize)d.width(this.currentItem.width());if(d[0].style.height==""||c.forceHelperSize)d.height(this.currentItem.height());return d},_adjustOffsetFromHelper:function(d){if(typeof d=="string")d=d.split(" ");if(a.isArray(d))d={left:+d[0],top:+d[1]||0};if("left"in d)this.offset.click.left=d.left+this.margins.left;if("right"in d)this.offset.click.left=this.helperProportions.width-d.right+this.margins.left;if("top"in d)this.offset.click.top=d.top+this.margins.top;if("bottom"in d)this.offset.click.top= +this.helperProportions.height-d.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var d=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){d.left+=this.scrollParent.scrollLeft();d.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)d= +{top:0,left:0};return{top:d.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:d.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var d=this.currentItem.position();return{top:d.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:d.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"), +10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var d=this.options;if(d.containment=="parent")d.containment=this.helper[0].parentNode;if(d.containment=="document"||d.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(d.containment=="document"? +document:window).width()-this.helperProportions.width-this.margins.left,(a(d.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(d.containment)){var c=a(d.containment)[0];d=a(d.containment).offset();var e=a(c).css("overflow")!="hidden";this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"), +10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(e?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(e?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(d,c){if(!c)c= +this.position;d=d=="absolute"?1:-1;var e=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,h=/(html|body)/i.test(e[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():h?0:e.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&& +this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():h?0:e.scrollLeft())*d)}},_generatePosition:function(d){var c=this.options,e=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,h=/(html|body)/i.test(e[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0]))this.offset.relative=this._getRelativeOffset(); +var g=d.pageX,i=d.pageY;if(this.originalPosition){if(this.containment){if(d.pageX-this.offset.click.left<this.containment[0])g=this.containment[0]+this.offset.click.left;if(d.pageY-this.offset.click.top<this.containment[1])i=this.containment[1]+this.offset.click.top;if(d.pageX-this.offset.click.left>this.containment[2])g=this.containment[2]+this.offset.click.left;if(d.pageY-this.offset.click.top>this.containment[3])i=this.containment[3]+this.offset.click.top}if(c.grid){i=this.originalPageY+Math.round((i- +this.originalPageY)/c.grid[1])*c.grid[1];i=this.containment?!(i-this.offset.click.top<this.containment[1]||i-this.offset.click.top>this.containment[3])?i:!(i-this.offset.click.top<this.containment[1])?i-c.grid[1]:i+c.grid[1]:i;g=this.originalPageX+Math.round((g-this.originalPageX)/c.grid[0])*c.grid[0];g=this.containment?!(g-this.offset.click.left<this.containment[0]||g-this.offset.click.left>this.containment[2])?g:!(g-this.offset.click.left<this.containment[0])?g-c.grid[0]:g+c.grid[0]:g}}return{top:i- +this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():h?0:e.scrollTop()),left:g-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():h?0:e.scrollLeft())}},_rearrange:function(d,c,e,h){e?e[0].appendChild(this.placeholder[0]):c.item[0].parentNode.insertBefore(this.placeholder[0], +this.direction=="down"?c.item[0]:c.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var g=this,i=this.counter;window.setTimeout(function(){i==g.counter&&g.refreshPositions(!h)},0)},_clear:function(d,c){this.reverting=false;var e=[];!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem);this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var h in this._storedCSS)if(this._storedCSS[h]=="auto"||this._storedCSS[h]=="static")this._storedCSS[h]= +"";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!c&&e.push(function(g){this._trigger("receive",g,this._uiHash(this.fromOutside))});if((this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!c)e.push(function(g){this._trigger("update",g,this._uiHash())});if(!a.ui.contains(this.element[0],this.currentItem[0])){c||e.push(function(g){this._trigger("remove", +g,this._uiHash())});for(h=this.containers.length-1;h>=0;h--)if(a.ui.contains(this.containers[h].element[0],this.currentItem[0])&&!c){e.push(function(g){return function(i){g._trigger("receive",i,this._uiHash(this))}}.call(this,this.containers[h]));e.push(function(g){return function(i){g._trigger("update",i,this._uiHash(this))}}.call(this,this.containers[h]))}}for(h=this.containers.length-1;h>=0;h--){c||e.push(function(g){return function(i){g._trigger("deactivate",i,this._uiHash(this))}}.call(this, +this.containers[h]));if(this.containers[h].containerCache.over){e.push(function(g){return function(i){g._trigger("out",i,this._uiHash(this))}}.call(this,this.containers[h]));this.containers[h].containerCache.over=0}}this._storedCursor&&a("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!c){this._trigger("beforeStop", +d,this._uiHash());for(h=0;h<e.length;h++)e[h].call(this,d);this._trigger("stop",d,this._uiHash())}return false}c||this._trigger("beforeStop",d,this._uiHash());this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.helper[0]!=this.currentItem[0]&&this.helper.remove();this.helper=null;if(!c){for(h=0;h<e.length;h++)e[h].call(this,d);this._trigger("stop",d,this._uiHash())}this.fromOutside=false;return true},_trigger:function(){a.Widget.prototype._trigger.apply(this,arguments)===false&&this.cancel()}, +_uiHash:function(d){var c=d||this;return{helper:c.helper,placeholder:c.placeholder||a([]),position:c.position,originalPosition:c.originalPosition,offset:c.positionAbs,item:c.currentItem,sender:d?d.element:null}}});a.extend(a.ui.sortable,{version:"1.8.16"})})(jQuery); +jQuery.effects||function(a,d){function c(n){var k;if(n&&n.constructor==Array&&n.length==3)return n;if(k=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(n))return[parseInt(k[1],10),parseInt(k[2],10),parseInt(k[3],10)];if(k=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(n))return[parseFloat(k[1])*2.55,parseFloat(k[2])*2.55,parseFloat(k[3])*2.55];if(k=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(n))return[parseInt(k[1], +16),parseInt(k[2],16),parseInt(k[3],16)];if(k=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(n))return[parseInt(k[1]+k[1],16),parseInt(k[2]+k[2],16),parseInt(k[3]+k[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(n))return j.transparent;return j[a.trim(n).toLowerCase()]}function e(n,k){var m;do{m=a.curCSS(n,k);if(m!=""&&m!="transparent"||a.nodeName(n,"body"))break;k="backgroundColor"}while(n=n.parentNode);return c(m)}function h(){var n=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle, +k={},m,p;if(n&&n.length&&n[0]&&n[n[0]])for(var q=n.length;q--;){m=n[q];if(typeof n[m]=="string"){p=m.replace(/\-(\w)/g,function(s,r){return r.toUpperCase()});k[p]=n[m]}}else for(m in n)if(typeof n[m]==="string")k[m]=n[m];return k}function g(n){var k,m;for(k in n){m=n[k];if(m==null||a.isFunction(m)||k in o||/scrollbar/.test(k)||!/color/i.test(k)&&isNaN(parseFloat(m)))delete n[k]}return n}function i(n,k){var m={_:0},p;for(p in k)if(n[p]!=k[p])m[p]=k[p];return m}function b(n,k,m,p){if(typeof n=="object"){p= +k;m=null;k=n;n=k.effect}if(a.isFunction(k)){p=k;m=null;k={}}if(typeof k=="number"||a.fx.speeds[k]){p=m;m=k;k={}}if(a.isFunction(m)){p=m;m=null}k=k||{};m=m||k.duration;m=a.fx.off?0:typeof m=="number"?m:m in a.fx.speeds?a.fx.speeds[m]:a.fx.speeds._default;p=p||k.complete;return[n,k,m,p]}function f(n){if(!n||typeof n==="number"||a.fx.speeds[n])return true;if(typeof n==="string"&&!a.effects[n])return true;return false}a.effects={};a.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor", +"borderTopColor","borderColor","color","outlineColor"],function(n,k){a.fx.step[k]=function(m){if(!m.colorInit){m.start=e(m.elem,k);m.end=c(m.end);m.colorInit=true}m.elem.style[k]="rgb("+Math.max(Math.min(parseInt(m.pos*(m.end[0]-m.start[0])+m.start[0],10),255),0)+","+Math.max(Math.min(parseInt(m.pos*(m.end[1]-m.start[1])+m.start[1],10),255),0)+","+Math.max(Math.min(parseInt(m.pos*(m.end[2]-m.start[2])+m.start[2],10),255),0)+")"}});var j={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0, +0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211, +211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},l=["add","remove","toggle"],o={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.effects.animateClass=function(n,k,m, +p){if(a.isFunction(m)){p=m;m=null}return this.queue(function(){var q=a(this),s=q.attr("style")||" ",r=g(h.call(this)),u,v=q.attr("class");a.each(l,function(w,x){n[x]&&q[x+"Class"](n[x])});u=g(h.call(this));q.attr("class",v);q.animate(i(r,u),{queue:false,duration:k,easing:m,complete:function(){a.each(l,function(w,x){n[x]&&q[x+"Class"](n[x])});if(typeof q.attr("style")=="object"){q.attr("style").cssText="";q.attr("style").cssText=s}else q.attr("style",s);p&&p.apply(this,arguments);a.dequeue(this)}})})}; +a.fn.extend({_addClass:a.fn.addClass,addClass:function(n,k,m,p){return k?a.effects.animateClass.apply(this,[{add:n},k,m,p]):this._addClass(n)},_removeClass:a.fn.removeClass,removeClass:function(n,k,m,p){return k?a.effects.animateClass.apply(this,[{remove:n},k,m,p]):this._removeClass(n)},_toggleClass:a.fn.toggleClass,toggleClass:function(n,k,m,p,q){return typeof k=="boolean"||k===d?m?a.effects.animateClass.apply(this,[k?{add:n}:{remove:n},m,p,q]):this._toggleClass(n,k):a.effects.animateClass.apply(this, +[{toggle:n},k,m,p])},switchClass:function(n,k,m,p,q){return a.effects.animateClass.apply(this,[{add:k,remove:n},m,p,q])}});a.extend(a.effects,{version:"1.8.16",save:function(n,k){for(var m=0;m<k.length;m++)k[m]!==null&&n.data("ec.storage."+k[m],n[0].style[k[m]])},restore:function(n,k){for(var m=0;m<k.length;m++)k[m]!==null&&n.css(k[m],n.data("ec.storage."+k[m]))},setMode:function(n,k){if(k=="toggle")k=n.is(":hidden")?"show":"hide";return k},getBaseline:function(n,k){var m;switch(n[0]){case "top":m= +0;break;case "middle":m=0.5;break;case "bottom":m=1;break;default:m=n[0]/k.height}switch(n[1]){case "left":n=0;break;case "center":n=0.5;break;case "right":n=1;break;default:n=n[1]/k.width}return{x:n,y:m}},createWrapper:function(n){if(n.parent().is(".ui-effects-wrapper"))return n.parent();var k={width:n.outerWidth(true),height:n.outerHeight(true),"float":n.css("float")},m=a("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}), +p=document.activeElement;n.wrap(m);if(n[0]===p||a.contains(n[0],p))a(p).focus();m=n.parent();if(n.css("position")=="static"){m.css({position:"relative"});n.css({position:"relative"})}else{a.extend(k,{position:n.css("position"),zIndex:n.css("z-index")});a.each(["top","left","bottom","right"],function(q,s){k[s]=n.css(s);if(isNaN(parseInt(k[s],10)))k[s]="auto"});n.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return m.css(k).show()},removeWrapper:function(n){var k,m=document.activeElement; +if(n.parent().is(".ui-effects-wrapper")){k=n.parent().replaceWith(n);if(n[0]===m||a.contains(n[0],m))a(m).focus();return k}return n},setTransition:function(n,k,m,p){p=p||{};a.each(k,function(q,s){unit=n.cssUnit(s);if(unit[0]>0)p[s]=unit[0]*m+unit[1]});return p}});a.fn.extend({effect:function(n){var k=b.apply(this,arguments),m={options:k[1],duration:k[2],callback:k[3]};k=m.options.mode;var p=a.effects[n];if(a.fx.off||!p)return k?this[k](m.duration,m.callback):this.each(function(){m.callback&&m.callback.call(this)}); +return p.call(this,m)},_show:a.fn.show,show:function(n){if(f(n))return this._show.apply(this,arguments);else{var k=b.apply(this,arguments);k[1].mode="show";return this.effect.apply(this,k)}},_hide:a.fn.hide,hide:function(n){if(f(n))return this._hide.apply(this,arguments);else{var k=b.apply(this,arguments);k[1].mode="hide";return this.effect.apply(this,k)}},__toggle:a.fn.toggle,toggle:function(n){if(f(n)||typeof n==="boolean"||a.isFunction(n))return this.__toggle.apply(this,arguments);else{var k=b.apply(this, +arguments);k[1].mode="toggle";return this.effect.apply(this,k)}},cssUnit:function(n){var k=this.css(n),m=[];a.each(["em","px","%","pt"],function(p,q){if(k.indexOf(q)>0)m=[parseFloat(k),q]});return m}});a.easing.jswing=a.easing.swing;a.extend(a.easing,{def:"easeOutQuad",swing:function(n,k,m,p,q){return a.easing[a.easing.def](n,k,m,p,q)},easeInQuad:function(n,k,m,p,q){return p*(k/=q)*k+m},easeOutQuad:function(n,k,m,p,q){return-p*(k/=q)*(k-2)+m},easeInOutQuad:function(n,k,m,p,q){if((k/=q/2)<1)return p/ +2*k*k+m;return-p/2*(--k*(k-2)-1)+m},easeInCubic:function(n,k,m,p,q){return p*(k/=q)*k*k+m},easeOutCubic:function(n,k,m,p,q){return p*((k=k/q-1)*k*k+1)+m},easeInOutCubic:function(n,k,m,p,q){if((k/=q/2)<1)return p/2*k*k*k+m;return p/2*((k-=2)*k*k+2)+m},easeInQuart:function(n,k,m,p,q){return p*(k/=q)*k*k*k+m},easeOutQuart:function(n,k,m,p,q){return-p*((k=k/q-1)*k*k*k-1)+m},easeInOutQuart:function(n,k,m,p,q){if((k/=q/2)<1)return p/2*k*k*k*k+m;return-p/2*((k-=2)*k*k*k-2)+m},easeInQuint:function(n,k,m, +p,q){return p*(k/=q)*k*k*k*k+m},easeOutQuint:function(n,k,m,p,q){return p*((k=k/q-1)*k*k*k*k+1)+m},easeInOutQuint:function(n,k,m,p,q){if((k/=q/2)<1)return p/2*k*k*k*k*k+m;return p/2*((k-=2)*k*k*k*k+2)+m},easeInSine:function(n,k,m,p,q){return-p*Math.cos(k/q*(Math.PI/2))+p+m},easeOutSine:function(n,k,m,p,q){return p*Math.sin(k/q*(Math.PI/2))+m},easeInOutSine:function(n,k,m,p,q){return-p/2*(Math.cos(Math.PI*k/q)-1)+m},easeInExpo:function(n,k,m,p,q){return k==0?m:p*Math.pow(2,10*(k/q-1))+m},easeOutExpo:function(n, +k,m,p,q){return k==q?m+p:p*(-Math.pow(2,-10*k/q)+1)+m},easeInOutExpo:function(n,k,m,p,q){if(k==0)return m;if(k==q)return m+p;if((k/=q/2)<1)return p/2*Math.pow(2,10*(k-1))+m;return p/2*(-Math.pow(2,-10*--k)+2)+m},easeInCirc:function(n,k,m,p,q){return-p*(Math.sqrt(1-(k/=q)*k)-1)+m},easeOutCirc:function(n,k,m,p,q){return p*Math.sqrt(1-(k=k/q-1)*k)+m},easeInOutCirc:function(n,k,m,p,q){if((k/=q/2)<1)return-p/2*(Math.sqrt(1-k*k)-1)+m;return p/2*(Math.sqrt(1-(k-=2)*k)+1)+m},easeInElastic:function(n,k,m, +p,q){n=1.70158;var s=0,r=p;if(k==0)return m;if((k/=q)==1)return m+p;s||(s=q*0.3);if(r<Math.abs(p)){r=p;n=s/4}else n=s/(2*Math.PI)*Math.asin(p/r);return-(r*Math.pow(2,10*(k-=1))*Math.sin((k*q-n)*2*Math.PI/s))+m},easeOutElastic:function(n,k,m,p,q){n=1.70158;var s=0,r=p;if(k==0)return m;if((k/=q)==1)return m+p;s||(s=q*0.3);if(r<Math.abs(p)){r=p;n=s/4}else n=s/(2*Math.PI)*Math.asin(p/r);return r*Math.pow(2,-10*k)*Math.sin((k*q-n)*2*Math.PI/s)+p+m},easeInOutElastic:function(n,k,m,p,q){n=1.70158;var s= +0,r=p;if(k==0)return m;if((k/=q/2)==2)return m+p;s||(s=q*0.3*1.5);if(r<Math.abs(p)){r=p;n=s/4}else n=s/(2*Math.PI)*Math.asin(p/r);if(k<1)return-0.5*r*Math.pow(2,10*(k-=1))*Math.sin((k*q-n)*2*Math.PI/s)+m;return r*Math.pow(2,-10*(k-=1))*Math.sin((k*q-n)*2*Math.PI/s)*0.5+p+m},easeInBack:function(n,k,m,p,q,s){if(s==d)s=1.70158;return p*(k/=q)*k*((s+1)*k-s)+m},easeOutBack:function(n,k,m,p,q,s){if(s==d)s=1.70158;return p*((k=k/q-1)*k*((s+1)*k+s)+1)+m},easeInOutBack:function(n,k,m,p,q,s){if(s==d)s=1.70158; +if((k/=q/2)<1)return p/2*k*k*(((s*=1.525)+1)*k-s)+m;return p/2*((k-=2)*k*(((s*=1.525)+1)*k+s)+2)+m},easeInBounce:function(n,k,m,p,q){return p-a.easing.easeOutBounce(n,q-k,0,p,q)+m},easeOutBounce:function(n,k,m,p,q){return(k/=q)<1/2.75?p*7.5625*k*k+m:k<2/2.75?p*(7.5625*(k-=1.5/2.75)*k+0.75)+m:k<2.5/2.75?p*(7.5625*(k-=2.25/2.75)*k+0.9375)+m:p*(7.5625*(k-=2.625/2.75)*k+0.984375)+m},easeInOutBounce:function(n,k,m,p,q){if(k<q/2)return a.easing.easeInBounce(n,k*2,0,p,q)*0.5+m;return a.easing.easeOutBounce(n, +k*2-q,0,p,q)*0.5+p*0.5+m}})}(jQuery); +(function(a){a.effects.blind=function(d){return this.queue(function(){var c=a(this),e=["position","top","bottom","left","right"],h=a.effects.setMode(c,d.options.mode||"hide"),g=d.options.direction||"vertical";a.effects.save(c,e);c.show();var i=a.effects.createWrapper(c).css({overflow:"hidden"}),b=g=="vertical"?"height":"width";g=g=="vertical"?i.height():i.width();h=="show"&&i.css(b,0);var f={};f[b]=h=="show"?g:0;i.animate(f,d.duration,d.options.easing,function(){h=="hide"&&c.hide();a.effects.restore(c, +e);a.effects.removeWrapper(c);d.callback&&d.callback.apply(c[0],arguments);c.dequeue()})})}})(jQuery); +(function(a){a.effects.bounce=function(d){return this.queue(function(){var c=a(this),e=["position","top","bottom","left","right"],h=a.effects.setMode(c,d.options.mode||"effect"),g=d.options.direction||"up",i=d.options.distance||20,b=d.options.times||5,f=d.duration||250;/show|hide/.test(h)&&e.push("opacity");a.effects.save(c,e);c.show();a.effects.createWrapper(c);var j=g=="up"||g=="down"?"top":"left";g=g=="up"||g=="left"?"pos":"neg";i=d.options.distance||(j=="top"?c.outerHeight({margin:true})/3:c.outerWidth({margin:true})/ +3);if(h=="show")c.css("opacity",0).css(j,g=="pos"?-i:i);if(h=="hide")i/=b*2;h!="hide"&&b--;if(h=="show"){var l={opacity:1};l[j]=(g=="pos"?"+=":"-=")+i;c.animate(l,f/2,d.options.easing);i/=2;b--}for(l=0;l<b;l++){var o={},n={};o[j]=(g=="pos"?"-=":"+=")+i;n[j]=(g=="pos"?"+=":"-=")+i;c.animate(o,f/2,d.options.easing).animate(n,f/2,d.options.easing);i=h=="hide"?i*2:i/2}if(h=="hide"){l={opacity:0};l[j]=(g=="pos"?"-=":"+=")+i;c.animate(l,f/2,d.options.easing,function(){c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c); +d.callback&&d.callback.apply(this,arguments)})}else{o={};n={};o[j]=(g=="pos"?"-=":"+=")+i;n[j]=(g=="pos"?"+=":"-=")+i;c.animate(o,f/2,d.options.easing).animate(n,f/2,d.options.easing,function(){a.effects.restore(c,e);a.effects.removeWrapper(c);d.callback&&d.callback.apply(this,arguments)})}c.queue("fx",function(){c.dequeue()});c.dequeue()})}})(jQuery); +(function(a){a.effects.clip=function(d){return this.queue(function(){var c=a(this),e=["position","top","bottom","left","right","height","width"],h=a.effects.setMode(c,d.options.mode||"hide"),g=d.options.direction||"vertical";a.effects.save(c,e);c.show();var i=a.effects.createWrapper(c).css({overflow:"hidden"});i=c[0].tagName=="IMG"?i:c;var b={size:g=="vertical"?"height":"width",position:g=="vertical"?"top":"left"};g=g=="vertical"?i.height():i.width();if(h=="show"){i.css(b.size,0);i.css(b.position, +g/2)}var f={};f[b.size]=h=="show"?g:0;f[b.position]=h=="show"?0:g/2;i.animate(f,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){h=="hide"&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d.callback&&d.callback.apply(c[0],arguments);c.dequeue()}})})}})(jQuery); +(function(a){a.effects.drop=function(d){return this.queue(function(){var c=a(this),e=["position","top","bottom","left","right","opacity"],h=a.effects.setMode(c,d.options.mode||"hide"),g=d.options.direction||"left";a.effects.save(c,e);c.show();a.effects.createWrapper(c);var i=g=="up"||g=="down"?"top":"left";g=g=="up"||g=="left"?"pos":"neg";var b=d.options.distance||(i=="top"?c.outerHeight({margin:true})/2:c.outerWidth({margin:true})/2);if(h=="show")c.css("opacity",0).css(i,g=="pos"?-b:b);var f={opacity:h== +"show"?1:0};f[i]=(h=="show"?g=="pos"?"+=":"-=":g=="pos"?"-=":"+=")+b;c.animate(f,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){h=="hide"&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d.callback&&d.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); +(function(a){a.effects.explode=function(d){return this.queue(function(){var c=d.options.pieces?Math.round(Math.sqrt(d.options.pieces)):3,e=d.options.pieces?Math.round(Math.sqrt(d.options.pieces)):3;d.options.mode=d.options.mode=="toggle"?a(this).is(":visible")?"hide":"show":d.options.mode;var h=a(this).show().css("visibility","hidden"),g=h.offset();g.top-=parseInt(h.css("marginTop"),10)||0;g.left-=parseInt(h.css("marginLeft"),10)||0;for(var i=h.outerWidth(true),b=h.outerHeight(true),f=0;f<c;f++)for(var j= +0;j<e;j++)h.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-j*(i/e),top:-f*(b/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:i/e,height:b/c,left:g.left+j*(i/e)+(d.options.mode=="show"?(j-Math.floor(e/2))*(i/e):0),top:g.top+f*(b/c)+(d.options.mode=="show"?(f-Math.floor(c/2))*(b/c):0),opacity:d.options.mode=="show"?0:1}).animate({left:g.left+j*(i/e)+(d.options.mode=="show"?0:(j-Math.floor(e/2))*(i/e)),top:g.top+ +f*(b/c)+(d.options.mode=="show"?0:(f-Math.floor(c/2))*(b/c)),opacity:d.options.mode=="show"?1:0},d.duration||500);setTimeout(function(){d.options.mode=="show"?h.css({visibility:"visible"}):h.css({visibility:"visible"}).hide();d.callback&&d.callback.apply(h[0]);h.dequeue();a("div.ui-effects-explode").remove()},d.duration||500)})}})(jQuery); +(function(a){a.effects.fade=function(d){return this.queue(function(){var c=a(this),e=a.effects.setMode(c,d.options.mode||"hide");c.animate({opacity:e},{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){d.callback&&d.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); +(function(a){a.effects.fold=function(d){return this.queue(function(){var c=a(this),e=["position","top","bottom","left","right"],h=a.effects.setMode(c,d.options.mode||"hide"),g=d.options.size||15,i=!!d.options.horizFirst,b=d.duration?d.duration/2:a.fx.speeds._default/2;a.effects.save(c,e);c.show();var f=a.effects.createWrapper(c).css({overflow:"hidden"}),j=h=="show"!=i,l=j?["width","height"]:["height","width"];j=j?[f.width(),f.height()]:[f.height(),f.width()];var o=/([0-9]+)%/.exec(g);if(o)g=parseInt(o[1], +10)/100*j[h=="hide"?0:1];if(h=="show")f.css(i?{height:0,width:g}:{height:g,width:0});i={};o={};i[l[0]]=h=="show"?j[0]:g;o[l[1]]=h=="show"?j[1]:0;f.animate(i,b,d.options.easing).animate(o,b,d.options.easing,function(){h=="hide"&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d.callback&&d.callback.apply(c[0],arguments);c.dequeue()})})}})(jQuery); +(function(a){a.effects.highlight=function(d){return this.queue(function(){var c=a(this),e=["backgroundImage","backgroundColor","opacity"],h=a.effects.setMode(c,d.options.mode||"show"),g={backgroundColor:c.css("backgroundColor")};if(h=="hide")g.opacity=0;a.effects.save(c,e);c.show().css({backgroundImage:"none",backgroundColor:d.options.color||"#ffff99"}).animate(g,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){h=="hide"&&c.hide();a.effects.restore(c,e);h=="show"&&!a.support.opacity&& +this.style.removeAttribute("filter");d.callback&&d.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); +(function(a){a.effects.pulsate=function(d){return this.queue(function(){var c=a(this),e=a.effects.setMode(c,d.options.mode||"show");times=(d.options.times||5)*2-1;duration=d.duration?d.duration/2:a.fx.speeds._default/2;isVisible=c.is(":visible");animateTo=0;if(!isVisible){c.css("opacity",0).show();animateTo=1}if(e=="hide"&&isVisible||e=="show"&&!isVisible)times--;for(e=0;e<times;e++){c.animate({opacity:animateTo},duration,d.options.easing);animateTo=(animateTo+1)%2}c.animate({opacity:animateTo},duration, +d.options.easing,function(){animateTo==0&&c.hide();d.callback&&d.callback.apply(this,arguments)});c.queue("fx",function(){c.dequeue()}).dequeue()})}})(jQuery); +(function(a){a.effects.puff=function(d){return this.queue(function(){var c=a(this),e=a.effects.setMode(c,d.options.mode||"hide"),h=parseInt(d.options.percent,10)||150,g=h/100,i={height:c.height(),width:c.width()};a.extend(d.options,{fade:true,mode:e,percent:e=="hide"?h:100,from:e=="hide"?i:{height:i.height*g,width:i.width*g}});c.effect("scale",d.options,d.duration,d.callback);c.dequeue()})};a.effects.scale=function(d){return this.queue(function(){var c=a(this),e=a.extend(true,{},d.options),h=a.effects.setMode(c, +d.options.mode||"effect"),g=parseInt(d.options.percent,10)||(parseInt(d.options.percent,10)==0?0:h=="hide"?0:100),i=d.options.direction||"both",b=d.options.origin;if(h!="effect"){e.origin=b||["middle","center"];e.restore=true}b={height:c.height(),width:c.width()};c.from=d.options.from||(h=="show"?{height:0,width:0}:b);g={y:i!="horizontal"?g/100:1,x:i!="vertical"?g/100:1};c.to={height:b.height*g.y,width:b.width*g.x};if(d.options.fade){if(h=="show"){c.from.opacity=0;c.to.opacity=1}if(h=="hide"){c.from.opacity= +1;c.to.opacity=0}}e.from=c.from;e.to=c.to;e.mode=h;c.effect("size",e,d.duration,d.callback);c.dequeue()})};a.effects.size=function(d){return this.queue(function(){var c=a(this),e=["position","top","bottom","left","right","width","height","overflow","opacity"],h=["position","top","bottom","left","right","overflow","opacity"],g=["width","height","overflow"],i=["fontSize"],b=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],f=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"], +j=a.effects.setMode(c,d.options.mode||"effect"),l=d.options.restore||false,o=d.options.scale||"both",n=d.options.origin,k={height:c.height(),width:c.width()};c.from=d.options.from||k;c.to=d.options.to||k;if(n){n=a.effects.getBaseline(n,k);c.from.top=(k.height-c.from.height)*n.y;c.from.left=(k.width-c.from.width)*n.x;c.to.top=(k.height-c.to.height)*n.y;c.to.left=(k.width-c.to.width)*n.x}var m={from:{y:c.from.height/k.height,x:c.from.width/k.width},to:{y:c.to.height/k.height,x:c.to.width/k.width}}; +if(o=="box"||o=="both"){if(m.from.y!=m.to.y){e=e.concat(b);c.from=a.effects.setTransition(c,b,m.from.y,c.from);c.to=a.effects.setTransition(c,b,m.to.y,c.to)}if(m.from.x!=m.to.x){e=e.concat(f);c.from=a.effects.setTransition(c,f,m.from.x,c.from);c.to=a.effects.setTransition(c,f,m.to.x,c.to)}}if(o=="content"||o=="both")if(m.from.y!=m.to.y){e=e.concat(i);c.from=a.effects.setTransition(c,i,m.from.y,c.from);c.to=a.effects.setTransition(c,i,m.to.y,c.to)}a.effects.save(c,l?e:h);c.show();a.effects.createWrapper(c); +c.css("overflow","hidden").css(c.from);if(o=="content"||o=="both"){b=b.concat(["marginTop","marginBottom"]).concat(i);f=f.concat(["marginLeft","marginRight"]);g=e.concat(b).concat(f);c.find("*[width]").each(function(){child=a(this);l&&a.effects.save(child,g);var p={height:child.height(),width:child.width()};child.from={height:p.height*m.from.y,width:p.width*m.from.x};child.to={height:p.height*m.to.y,width:p.width*m.to.x};if(m.from.y!=m.to.y){child.from=a.effects.setTransition(child,b,m.from.y,child.from); +child.to=a.effects.setTransition(child,b,m.to.y,child.to)}if(m.from.x!=m.to.x){child.from=a.effects.setTransition(child,f,m.from.x,child.from);child.to=a.effects.setTransition(child,f,m.to.x,child.to)}child.css(child.from);child.animate(child.to,d.duration,d.options.easing,function(){l&&a.effects.restore(child,g)})})}c.animate(c.to,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){c.to.opacity===0&&c.css("opacity",c.from.opacity);j=="hide"&&c.hide();a.effects.restore(c, +l?e:h);a.effects.removeWrapper(c);d.callback&&d.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); +(function(a){a.effects.shake=function(d){return this.queue(function(){var c=a(this),e=["position","top","bottom","left","right"];a.effects.setMode(c,d.options.mode||"effect");var h=d.options.direction||"left",g=d.options.distance||20,i=d.options.times||3,b=d.duration||d.options.duration||140;a.effects.save(c,e);c.show();a.effects.createWrapper(c);var f=h=="up"||h=="down"?"top":"left",j=h=="up"||h=="left"?"pos":"neg";h={};var l={},o={};h[f]=(j=="pos"?"-=":"+=")+g;l[f]=(j=="pos"?"+=":"-=")+g*2;o[f]= +(j=="pos"?"-=":"+=")+g*2;c.animate(h,b,d.options.easing);for(g=1;g<i;g++)c.animate(l,b,d.options.easing).animate(o,b,d.options.easing);c.animate(l,b,d.options.easing).animate(h,b/2,d.options.easing,function(){a.effects.restore(c,e);a.effects.removeWrapper(c);d.callback&&d.callback.apply(this,arguments)});c.queue("fx",function(){c.dequeue()});c.dequeue()})}})(jQuery); +(function(a){a.effects.slide=function(d){return this.queue(function(){var c=a(this),e=["position","top","bottom","left","right"],h=a.effects.setMode(c,d.options.mode||"show"),g=d.options.direction||"left";a.effects.save(c,e);c.show();a.effects.createWrapper(c).css({overflow:"hidden"});var i=g=="up"||g=="down"?"top":"left";g=g=="up"||g=="left"?"pos":"neg";var b=d.options.distance||(i=="top"?c.outerHeight({margin:true}):c.outerWidth({margin:true}));if(h=="show")c.css(i,g=="pos"?isNaN(b)?"-"+b:-b:b); +var f={};f[i]=(h=="show"?g=="pos"?"+=":"-=":g=="pos"?"-=":"+=")+b;c.animate(f,{queue:false,duration:d.duration,easing:d.options.easing,complete:function(){h=="hide"&&c.hide();a.effects.restore(c,e);a.effects.removeWrapper(c);d.callback&&d.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); +(function(a){a.effects.transfer=function(d){return this.queue(function(){var c=a(this),e=a(d.options.to),h=e.offset();e={top:h.top,left:h.left,height:e.innerHeight(),width:e.innerWidth()};h=c.offset();var g=a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(d.options.className).css({top:h.top,left:h.left,height:c.innerHeight(),width:c.innerWidth(),position:"absolute"}).animate(e,d.duration,d.options.easing,function(){g.remove();d.callback&&d.callback.apply(c[0],arguments); +c.dequeue()})})}})(jQuery); +(function(a){a.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:true,clearStyle:false,collapsible:false,event:"click",fillSpace:false,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var d=this,c=d.options;d.running=0;d.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");d.headers= +d.element.find(c.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){c.disabled||a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){c.disabled||a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){c.disabled||a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){c.disabled||a(this).removeClass("ui-state-focus")});d.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); +if(c.navigation){var e=d.element.find("a").filter(c.navigationFilter).eq(0);if(e.length){var h=e.closest(".ui-accordion-header");d.active=h.length?h:e.closest(".ui-accordion-content").prev()}}d.active=d._findActive(d.active||c.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");d.active.next().addClass("ui-accordion-content-active");d._createIcons();d.resize();d.element.attr("role","tablist");d.headers.attr("role","tab").bind("keydown.accordion", +function(g){return d._keydown(g)}).next().attr("role","tabpanel");d.headers.not(d.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide();d.active.length?d.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):d.headers.eq(0).attr("tabIndex",0);a.browser.safari||d.headers.find("a").attr("tabIndex",-1);c.event&&d.headers.bind(c.event.split(" ").join(".accordion ")+".accordion",function(g){d._clickHandler.call(d,g,this);g.preventDefault()})},_createIcons:function(){var d= +this.options;if(d.icons){a("<span></span>").addClass("ui-icon "+d.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(d.icons.header).toggleClass(d.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var d=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"); +this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var c=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(d.autoHeight||d.fillHeight)c.css("height","");return a.Widget.prototype.destroy.call(this)},_setOption:function(d,c){a.Widget.prototype._setOption.apply(this,arguments);d=="active"&&this.activate(c);if(d=="icons"){this._destroyIcons(); +c&&this._createIcons()}if(d=="disabled")this.headers.add(this.headers.next())[c?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(d){if(!(this.options.disabled||d.altKey||d.ctrlKey)){var c=a.ui.keyCode,e=this.headers.length,h=this.headers.index(d.target),g=false;switch(d.keyCode){case c.RIGHT:case c.DOWN:g=this.headers[(h+1)%e];break;case c.LEFT:case c.UP:g=this.headers[(h-1+e)%e];break;case c.SPACE:case c.ENTER:this._clickHandler({target:d.target},d.target); +d.preventDefault()}if(g){a(d.target).attr("tabIndex",-1);a(g).attr("tabIndex",0);g.focus();return false}return true}},resize:function(){var d=this.options,c;if(d.fillSpace){if(a.browser.msie){var e=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}c=this.element.parent().height();a.browser.msie&&this.element.parent().css("overflow",e);this.headers.each(function(){c-=a(this).outerHeight(true)});this.headers.next().each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+ +a(this).height()))}).css("overflow","auto")}else if(d.autoHeight){c=0;this.headers.next().each(function(){c=Math.max(c,a(this).height("").height())}).height(c)}return this},activate:function(d){this.options.active=d;d=this._findActive(d)[0];this._clickHandler({target:d},d);return this},_findActive:function(d){return d?typeof d==="number"?this.headers.filter(":eq("+d+")"):this.headers.not(this.headers.not(d)):d===false?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(d,c){var e=this.options; +if(!e.disabled)if(d.target){d=a(d.currentTarget||c);c=d[0]===this.active[0];e.active=e.collapsible&&c?false:this.headers.index(d);if(!(this.running||!e.collapsible&&c)){var h=this.active;f=d.next();i=this.active.next();b={options:e,newHeader:c&&e.collapsible?a([]):d,oldHeader:this.active,newContent:c&&e.collapsible?a([]):f,oldContent:i};var g=this.headers.index(this.active[0])>this.headers.index(d[0]);this.active=c?a([]):d;this._toggle(f,i,b,c,g);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(e.icons.headerSelected).addClass(e.icons.header); +if(!c){d.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(e.icons.header).addClass(e.icons.headerSelected);d.next().addClass("ui-accordion-content-active")}}}else if(e.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(e.icons.headerSelected).addClass(e.icons.header);this.active.next().addClass("ui-accordion-content-active");var i=this.active.next(), +b={options:e,newHeader:a([]),oldHeader:e.active,newContent:a([]),oldContent:i},f=this.active=a([]);this._toggle(f,i,b)}},_toggle:function(d,c,e,h,g){var i=this,b=i.options;i.toShow=d;i.toHide=c;i.data=e;var f=function(){if(i)return i._completed.apply(i,arguments)};i._trigger("changestart",null,i.data);i.running=c.size()===0?d.size():c.size();if(b.animated){e={};e=b.collapsible&&h?{toShow:a([]),toHide:c,complete:f,down:g,autoHeight:b.autoHeight||b.fillSpace}:{toShow:d,toHide:c,complete:f,down:g,autoHeight:b.autoHeight|| +b.fillSpace};if(!b.proxied)b.proxied=b.animated;if(!b.proxiedDuration)b.proxiedDuration=b.duration;b.animated=a.isFunction(b.proxied)?b.proxied(e):b.proxied;b.duration=a.isFunction(b.proxiedDuration)?b.proxiedDuration(e):b.proxiedDuration;h=a.ui.accordion.animations;var j=b.duration,l=b.animated;if(l&&!h[l]&&!a.easing[l])l="slide";h[l]||(h[l]=function(o){this.slide(o,{easing:l,duration:j||700})});h[l](e)}else{if(b.collapsible&&h)d.toggle();else{c.hide();d.show()}f(true)}c.prev().attr({"aria-expanded":"false", +"aria-selected":"false",tabIndex:-1}).blur();d.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(d){this.running=d?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});a.extend(a.ui.accordion,{version:"1.8.16", +animations:{slide:function(d,c){d=a.extend({easing:"swing",duration:300},d,c);if(d.toHide.size())if(d.toShow.size()){var e=d.toShow.css("overflow"),h=0,g={},i={},b;c=d.toShow;b=c[0].style.width;c.width(parseInt(c.parent().width(),10)-parseInt(c.css("paddingLeft"),10)-parseInt(c.css("paddingRight"),10)-(parseInt(c.css("borderLeftWidth"),10)||0)-(parseInt(c.css("borderRightWidth"),10)||0));a.each(["height","paddingTop","paddingBottom"],function(f,j){i[j]="hide";f=(""+a.css(d.toShow[0],j)).match(/^([\d+-.]+)(.*)$/); +g[j]={value:f[1],unit:f[2]||"px"}});d.toShow.css({height:0,overflow:"hidden"}).show();d.toHide.filter(":hidden").each(d.complete).end().filter(":visible").animate(i,{step:function(f,j){if(j.prop=="height")h=j.end-j.start===0?0:(j.now-j.start)/(j.end-j.start);d.toShow[0].style[j.prop]=h*g[j.prop].value+g[j.prop].unit},duration:d.duration,easing:d.easing,complete:function(){d.autoHeight||d.toShow.css("height","");d.toShow.css({width:b,overflow:e});d.complete()}})}else d.toHide.animate({height:"hide", +paddingTop:"hide",paddingBottom:"hide"},d);else d.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},d)},bounceslide:function(d){this.slide(d,{easing:d.down?"easeOutBounce":"swing",duration:d.down?1E3:200})}}})})(jQuery); +(function(a){var d=0;a.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var c=this,e=this.element[0].ownerDocument,h;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(g){if(!(c.options.disabled||c.element.propAttr("readOnly"))){h= +false;var i=a.ui.keyCode;switch(g.keyCode){case i.PAGE_UP:c._move("previousPage",g);break;case i.PAGE_DOWN:c._move("nextPage",g);break;case i.UP:c._move("previous",g);g.preventDefault();break;case i.DOWN:c._move("next",g);g.preventDefault();break;case i.ENTER:case i.NUMPAD_ENTER:if(c.menu.active){h=true;g.preventDefault()}case i.TAB:if(!c.menu.active)return;c.menu.select(g);break;case i.ESCAPE:c.element.val(c.term);c.close(g);break;default:clearTimeout(c.searching);c.searching=setTimeout(function(){if(c.term!= +c.element.val()){c.selectedItem=null;c.search(null,g)}},c.options.delay);break}}}).bind("keypress.autocomplete",function(g){if(h){h=false;g.preventDefault()}}).bind("focus.autocomplete",function(){if(!c.options.disabled){c.selectedItem=null;c.previous=c.element.val()}}).bind("blur.autocomplete",function(g){if(!c.options.disabled){clearTimeout(c.searching);c.closing=setTimeout(function(){c.close(g);c._change(g)},150)}});this._initSource();this.response=function(){return c._response.apply(c,arguments)}; +this.menu=a("<ul></ul>").addClass("ui-autocomplete").appendTo(a(this.options.appendTo||"body",e)[0]).mousedown(function(g){var i=c.menu.element[0];a(g.target).closest(".ui-menu-item").length||setTimeout(function(){a(document).one("mousedown",function(b){b.target!==c.element[0]&&b.target!==i&&!a.ui.contains(i,b.target)&&c.close()})},1);setTimeout(function(){clearTimeout(c.closing)},13)}).menu({focus:function(g,i){i=i.item.data("item.autocomplete");false!==c._trigger("focus",g,{item:i})&&/^key/.test(g.originalEvent.type)&& +c.element.val(i.value)},selected:function(g,i){var b=i.item.data("item.autocomplete"),f=c.previous;if(c.element[0]!==e.activeElement){c.element.focus();c.previous=f;setTimeout(function(){c.previous=f;c.selectedItem=b},1)}false!==c._trigger("select",g,{item:b})&&c.element.val(b.value);c.term=c.element.val();c.close(g);c.selectedItem=b},blur:function(){c.menu.element.is(":visible")&&c.element.val()!==c.term&&c.element.val(c.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"); +a.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup");this.menu.element.remove();a.Widget.prototype.destroy.call(this)},_setOption:function(c,e){a.Widget.prototype._setOption.apply(this,arguments);c==="source"&&this._initSource();if(c==="appendTo")this.menu.element.appendTo(a(e||"body",this.element[0].ownerDocument)[0]);c==="disabled"&& +e&&this.xhr&&this.xhr.abort()},_initSource:function(){var c=this,e,h;if(a.isArray(this.options.source)){e=this.options.source;this.source=function(g,i){i(a.ui.autocomplete.filter(e,g.term))}}else if(typeof this.options.source==="string"){h=this.options.source;this.source=function(g,i){c.xhr&&c.xhr.abort();c.xhr=a.ajax({url:h,data:g,dataType:"json",autocompleteRequest:++d,success:function(b){this.autocompleteRequest===d&&i(b)},error:function(){this.autocompleteRequest===d&&i([])}})}}else this.source= +this.options.source},search:function(c,e){c=c!=null?c:this.element.val();this.term=this.element.val();if(c.length<this.options.minLength)return this.close(e);clearTimeout(this.closing);if(this._trigger("search",e)!==false)return this._search(c)},_search:function(c){this.pending++;this.element.addClass("ui-autocomplete-loading");this.source({term:c},this.response)},_response:function(c){if(!this.options.disabled&&c&&c.length){c=this._normalize(c);this._suggest(c);this._trigger("open")}else this.close(); +this.pending--;this.pending||this.element.removeClass("ui-autocomplete-loading")},close:function(c){clearTimeout(this.closing);if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.deactivate();this._trigger("close",c)}},_change:function(c){this.previous!==this.element.val()&&this._trigger("change",c,{item:this.selectedItem})},_normalize:function(c){if(c.length&&c[0].label&&c[0].value)return c;return a.map(c,function(e){if(typeof e==="string")return{label:e,value:e};return a.extend({label:e.label|| +e.value,value:e.value||e.label},e)})},_suggest:function(c){var e=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(e,c);this.menu.deactivate();this.menu.refresh();e.show();this._resizeMenu();e.position(a.extend({of:this.element},this.options.position));this.options.autoFocus&&this.menu.next(new a.Event("mouseover"))},_resizeMenu:function(){var c=this.menu.element;c.outerWidth(Math.max(c.width("").outerWidth(),this.element.outerWidth()))},_renderMenu:function(c,e){var h=this; +a.each(e,function(g,i){h._renderItem(c,i)})},_renderItem:function(c,e){return a("<li></li>").data("item.autocomplete",e).append(a("<a></a>").text(e.label)).appendTo(c)},_move:function(c,e){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(c)||this.menu.last()&&/^next/.test(c)){this.element.val(this.term);this.menu.deactivate()}else this.menu[c](e);else this.search(null,e)},widget:function(){return this.menu.element}});a.extend(a.ui.autocomplete,{escapeRegex:function(c){return c.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, +"\\$&")},filter:function(c,e){var h=new RegExp(a.ui.autocomplete.escapeRegex(e),"i");return a.grep(c,function(g){return h.test(g.label||g.value||g)})}})})(jQuery); +(function(a){a.widget("ui.menu",{_create:function(){var d=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){if(a(c.target).closest(".ui-menu-item a").length){c.preventDefault();d.select(c)}});this.refresh()},refresh:function(){var d=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", +-1).mouseenter(function(c){d.activate(c,a(this).parent())}).mouseleave(function(){d.deactivate()})},activate:function(d,c){this.deactivate();if(this.hasScroll()){var e=c.offset().top-this.element.offset().top,h=this.element.scrollTop(),g=this.element.height();if(e<0)this.element.scrollTop(h+e);else e>=g&&this.element.scrollTop(h+e-g+c.height())}this.active=c.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",d,{item:c})},deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id"); +this._trigger("blur");this.active=null}},next:function(d){this.move("next",".ui-menu-item:first",d)},previous:function(d){this.move("prev",".ui-menu-item:last",d)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(d,c,e){if(this.active){d=this.active[d+"All"](".ui-menu-item").eq(0);d.length?this.activate(e,d):this.activate(e,this.element.children(c))}else this.activate(e, +this.element.children(c))},nextPage:function(d){if(this.hasScroll())if(!this.active||this.last())this.activate(d,this.element.children(".ui-menu-item:first"));else{var c=this.active.offset().top,e=this.element.height(),h=this.element.children(".ui-menu-item").filter(function(){var g=a(this).offset().top-c-e+a(this).height();return g<10&&g>-10});h.length||(h=this.element.children(".ui-menu-item:last"));this.activate(d,h)}else this.activate(d,this.element.children(".ui-menu-item").filter(!this.active|| +this.last()?":first":":last"))},previousPage:function(d){if(this.hasScroll())if(!this.active||this.first())this.activate(d,this.element.children(".ui-menu-item:last"));else{var c=this.active.offset().top,e=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var h=a(this).offset().top-c+e-a(this).height();return h<10&&h>-10});result.length||(result=this.element.children(".ui-menu-item:first"));this.activate(d,result)}else this.activate(d,this.element.children(".ui-menu-item").filter(!this.active|| +this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element[a.fn.prop?"prop":"attr"]("scrollHeight")},select:function(d){this._trigger("selected",d,{item:this.active})}})})(jQuery); +(function(a){var d,c,e,h,g=function(){var b=a(this).find(":ui-button");setTimeout(function(){b.button("refresh")},1)},i=function(b){var f=b.name,j=b.form,l=a([]);if(f)l=j?a(j).find("[name='"+f+"']"):a("[name='"+f+"']",b.ownerDocument).filter(function(){return!this.form});return l};a.widget("ui.button",{options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",g);if(typeof this.options.disabled!== +"boolean")this.options.disabled=this.element.propAttr("disabled");this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var b=this,f=this.options,j=this.type==="checkbox"||this.type==="radio",l="ui-state-hover"+(!j?" ui-state-active":"");if(f.label===null)f.label=this.buttonElement.html();if(this.element.is(":disabled"))f.disabled=true;this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role","button").bind("mouseenter.button",function(){if(!f.disabled){a(this).addClass("ui-state-hover"); +this===d&&a(this).addClass("ui-state-active")}}).bind("mouseleave.button",function(){f.disabled||a(this).removeClass(l)}).bind("click.button",function(o){if(f.disabled){o.preventDefault();o.stopImmediatePropagation()}});this.element.bind("focus.button",function(){b.buttonElement.addClass("ui-state-focus")}).bind("blur.button",function(){b.buttonElement.removeClass("ui-state-focus")});if(j){this.element.bind("change.button",function(){h||b.refresh()});this.buttonElement.bind("mousedown.button",function(o){if(!f.disabled){h= +false;c=o.pageX;e=o.pageY}}).bind("mouseup.button",function(o){if(!f.disabled)if(c!==o.pageX||e!==o.pageY)h=true})}if(this.type==="checkbox")this.buttonElement.bind("click.button",function(){if(f.disabled||h)return false;a(this).toggleClass("ui-state-active");b.buttonElement.attr("aria-pressed",b.element[0].checked)});else if(this.type==="radio")this.buttonElement.bind("click.button",function(){if(f.disabled||h)return false;a(this).addClass("ui-state-active");b.buttonElement.attr("aria-pressed","true"); +var o=b.element[0];i(o).not(o).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")});else{this.buttonElement.bind("mousedown.button",function(){if(f.disabled)return false;a(this).addClass("ui-state-active");d=this;a(document).one("mouseup",function(){d=null})}).bind("mouseup.button",function(){if(f.disabled)return false;a(this).removeClass("ui-state-active")}).bind("keydown.button",function(o){if(f.disabled)return false;if(o.keyCode==a.ui.keyCode.SPACE|| +o.keyCode==a.ui.keyCode.ENTER)a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")});this.buttonElement.is("a")&&this.buttonElement.keyup(function(o){o.keyCode===a.ui.keyCode.SPACE&&a(this).click()})}this._setOption("disabled",f.disabled);this._resetButton()},_determineButtonType:function(){this.type=this.element.is(":checkbox")?"checkbox":this.element.is(":radio")?"radio":this.element.is("input")?"input":"button";if(this.type==="checkbox"||this.type=== +"radio"){var b=this.element.parents().filter(":last"),f="label[for='"+this.element.attr("id")+"']";this.buttonElement=b.find(f);if(!this.buttonElement.length){b=b.length?b.siblings():this.element.siblings();this.buttonElement=b.filter(f);if(!this.buttonElement.length)this.buttonElement=b.find(f)}this.element.addClass("ui-helper-hidden-accessible");(b=this.element.is(":checked"))&&this.buttonElement.addClass("ui-state-active");this.buttonElement.attr("aria-pressed",b)}else this.buttonElement=this.element}, +widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());this.hasTitle||this.buttonElement.removeAttr("title"); +a.Widget.prototype.destroy.call(this)},_setOption:function(b,f){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled")f?this.element.propAttr("disabled",true):this.element.propAttr("disabled",false);else this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b);if(this.type==="radio")i(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed", +"true"):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")});else if(this.type==="checkbox")this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false")},_resetButton:function(){if(this.type==="input")this.options.label&&this.element.val(this.options.label);else{var b=this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"), +f=a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),j=this.options.icons,l=j.primary&&j.secondary,o=[];if(j.primary||j.secondary){if(this.options.text)o.push("ui-button-text-icon"+(l?"s":j.primary?"-primary":"-secondary"));j.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+j.primary+"'></span>");j.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+j.secondary+"'></span>");if(!this.options.text){o.push(l?"ui-button-icons-only": +"ui-button-icon-only");this.hasTitle||b.attr("title",f)}}else o.push("ui-button-text-only");b.addClass(o.join(" "))}}});a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,f){b==="disabled"&&this.buttons.button("option",b,f);a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var b=this.element.css("direction")=== +"ltr";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-left":"ui-corner-right").end().filter(":last").addClass(b?"ui-corner-right":"ui-corner-left").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); +a.Widget.prototype.destroy.call(this)}})})(jQuery); +(function(a,d){function c(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._inDialog=this._datepickerShowing=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass= +"ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su", +"Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10", +minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false,disabled:false};a.extend(this._defaults,this.regional[""]);this.dpDiv=e(a('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}function e(b){return b.bind("mouseout", +function(f){f=a(f.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");f.length&&f.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(f){f=a(f.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a");if(!(a.datepicker._isDisabledDatepicker(i.inline?b.parent()[0]:i.input[0])||!f.length)){f.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); +f.addClass("ui-state-hover");f.hasClass("ui-datepicker-prev")&&f.addClass("ui-datepicker-prev-hover");f.hasClass("ui-datepicker-next")&&f.addClass("ui-datepicker-next-hover")}})}function h(b,f){a.extend(b,f);for(var j in f)if(f[j]==null||f[j]==d)b[j]=f[j];return b}a.extend(a.ui,{datepicker:{version:"1.8.16"}});var g=(new Date).getTime(),i;a.extend(c.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv}, +setDefaults:function(b){h(this._defaults,b||{});return this},_attachDatepicker:function(b,f){var j=null;for(var l in this._defaults){var o=b.getAttribute("date:"+l);if(o){j=j||{};try{j[l]=eval(o)}catch(n){j[l]=o}}}l=b.nodeName.toLowerCase();o=l=="div"||l=="span";if(!b.id){this.uuid+=1;b.id="dp"+this.uuid}var k=this._newInst(a(b),o);k.settings=a.extend({},f||{},j||{});if(l=="input")this._connectDatepicker(b,k);else o&&this._inlineDatepicker(b,k)},_newInst:function(b,f){return{id:b[0].id.replace(/([^A-Za-z0-9_-])/g, +"\\\\$1"),input:b,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:f,dpDiv:!f?this.dpDiv:e(a('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(b,f){var j=a(b);f.append=a([]);f.trigger=a([]);if(!j.hasClass(this.markerClassName)){this._attachments(j,f);j.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", +function(l,o,n){f.settings[o]=n}).bind("getData.datepicker",function(l,o){return this._get(f,o)});this._autoSize(f);a.data(b,"datepicker",f);f.settings.disabled&&this._disableDatepicker(b)}},_attachments:function(b,f){var j=this._get(f,"appendText"),l=this._get(f,"isRTL");f.append&&f.append.remove();if(j){f.append=a('<span class="'+this._appendClass+'">'+j+"</span>");b[l?"before":"after"](f.append)}b.unbind("focus",this._showDatepicker);f.trigger&&f.trigger.remove();j=this._get(f,"showOn");if(j== +"focus"||j=="both")b.focus(this._showDatepicker);if(j=="button"||j=="both"){j=this._get(f,"buttonText");var o=this._get(f,"buttonImage");f.trigger=a(this._get(f,"buttonImageOnly")?a("<img/>").addClass(this._triggerClass).attr({src:o,alt:j,title:j}):a('<button type="button"></button>').addClass(this._triggerClass).html(o==""?j:a("<img/>").attr({src:o,alt:j,title:j})));b[l?"before":"after"](f.trigger);f.trigger.click(function(){a.datepicker._datepickerShowing&&a.datepicker._lastInput==b[0]?a.datepicker._hideDatepicker(): +a.datepicker._showDatepicker(b[0]);return false})}},_autoSize:function(b){if(this._get(b,"autoSize")&&!b.inline){var f=new Date(2009,11,20),j=this._get(b,"dateFormat");if(j.match(/[DM]/)){var l=function(o){for(var n=0,k=0,m=0;m<o.length;m++)if(o[m].length>n){n=o[m].length;k=m}return k};f.setMonth(l(this._get(b,j.match(/MM/)?"monthNames":"monthNamesShort")));f.setDate(l(this._get(b,j.match(/DD/)?"dayNames":"dayNamesShort"))+20-f.getDay())}b.input.attr("size",this._formatDate(b,f).length)}},_inlineDatepicker:function(b, +f){var j=a(b);if(!j.hasClass(this.markerClassName)){j.addClass(this.markerClassName).append(f.dpDiv).bind("setData.datepicker",function(l,o,n){f.settings[o]=n}).bind("getData.datepicker",function(l,o){return this._get(f,o)});a.data(b,"datepicker",f);this._setDate(f,this._getDefaultDate(f),true);this._updateDatepicker(f);this._updateAlternate(f);f.settings.disabled&&this._disableDatepicker(b);f.dpDiv.css("display","block")}},_dialogDatepicker:function(b,f,j,l,o){b=this._dialogInst;if(!b){this.uuid+= +1;this._dialogInput=a('<input type="text" id="'+("dp"+this.uuid)+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>');this._dialogInput.keydown(this._doKeyDown);a("body").append(this._dialogInput);b=this._dialogInst=this._newInst(this._dialogInput,false);b.settings={};a.data(this._dialogInput[0],"datepicker",b)}h(b.settings,l||{});f=f&&f.constructor==Date?this._formatDate(b,f):f;this._dialogInput.val(f);this._pos=o?o.length?o:[o.pageX,o.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/ +2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");b.settings.onSelect=j;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);a.blockUI&&a.blockUI(this.dpDiv);a.data(this._dialogInput[0],"datepicker",b);return this},_destroyDatepicker:function(b){var f= +a(b),j=a.data(b,"datepicker");if(f.hasClass(this.markerClassName)){var l=b.nodeName.toLowerCase();a.removeData(b,"datepicker");if(l=="input"){j.append.remove();j.trigger.remove();f.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(l=="div"||l=="span")f.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(b){var f=a(b),j=a.data(b,"datepicker");if(f.hasClass(this.markerClassName)){var l= +b.nodeName.toLowerCase();if(l=="input"){b.disabled=false;j.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(l=="div"||l=="span"){f=f.children("."+this._inlineClass);f.children().removeClass("ui-state-disabled");f.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=a.map(this._disabledInputs,function(o){return o==b?null:o})}},_disableDatepicker:function(b){var f=a(b),j=a.data(b, +"datepicker");if(f.hasClass(this.markerClassName)){var l=b.nodeName.toLowerCase();if(l=="input"){b.disabled=true;j.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(l=="div"||l=="span"){f=f.children("."+this._inlineClass);f.children().addClass("ui-state-disabled");f.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=a.map(this._disabledInputs,function(o){return o== +b?null:o});this._disabledInputs[this._disabledInputs.length]=b}},_isDisabledDatepicker:function(b){if(!b)return false;for(var f=0;f<this._disabledInputs.length;f++)if(this._disabledInputs[f]==b)return true;return false},_getInst:function(b){try{return a.data(b,"datepicker")}catch(f){throw"Missing instance data for this datepicker";}},_optionDatepicker:function(b,f,j){var l=this._getInst(b);if(arguments.length==2&&typeof f=="string")return f=="defaults"?a.extend({},a.datepicker._defaults):l?f=="all"? +a.extend({},l.settings):this._get(l,f):null;var o=f||{};if(typeof f=="string"){o={};o[f]=j}if(l){this._curInst==l&&this._hideDatepicker();var n=this._getDateDatepicker(b,true),k=this._getMinMaxDate(l,"min"),m=this._getMinMaxDate(l,"max");h(l.settings,o);if(k!==null&&o.dateFormat!==d&&o.minDate===d)l.settings.minDate=this._formatDate(l,k);if(m!==null&&o.dateFormat!==d&&o.maxDate===d)l.settings.maxDate=this._formatDate(l,m);this._attachments(a(b),l);this._autoSize(l);this._setDate(l,n);this._updateAlternate(l); +this._updateDatepicker(l)}},_changeDatepicker:function(b,f,j){this._optionDatepicker(b,f,j)},_refreshDatepicker:function(b){(b=this._getInst(b))&&this._updateDatepicker(b)},_setDateDatepicker:function(b,f){if(b=this._getInst(b)){this._setDate(b,f);this._updateDatepicker(b);this._updateAlternate(b)}},_getDateDatepicker:function(b,f){(b=this._getInst(b))&&!b.inline&&this._setDateFromField(b,f);return b?this._getDate(b):null},_doKeyDown:function(b){var f=a.datepicker._getInst(b.target),j=true,l=f.dpDiv.is(".ui-datepicker-rtl"); +f._keyEvent=true;if(a.datepicker._datepickerShowing)switch(b.keyCode){case 9:a.datepicker._hideDatepicker();j=false;break;case 13:j=a("td."+a.datepicker._dayOverClass+":not(."+a.datepicker._currentClass+")",f.dpDiv);j[0]&&a.datepicker._selectDay(b.target,f.selectedMonth,f.selectedYear,j[0]);if(b=a.datepicker._get(f,"onSelect")){j=a.datepicker._formatDate(f);b.apply(f.input?f.input[0]:null,[j,f])}else a.datepicker._hideDatepicker();return false;case 27:a.datepicker._hideDatepicker();break;case 33:a.datepicker._adjustDate(b.target, +b.ctrlKey?-a.datepicker._get(f,"stepBigMonths"):-a.datepicker._get(f,"stepMonths"),"M");break;case 34:a.datepicker._adjustDate(b.target,b.ctrlKey?+a.datepicker._get(f,"stepBigMonths"):+a.datepicker._get(f,"stepMonths"),"M");break;case 35:if(b.ctrlKey||b.metaKey)a.datepicker._clearDate(b.target);j=b.ctrlKey||b.metaKey;break;case 36:if(b.ctrlKey||b.metaKey)a.datepicker._gotoToday(b.target);j=b.ctrlKey||b.metaKey;break;case 37:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target,l?+1:-1,"D");j= +b.ctrlKey||b.metaKey;if(b.originalEvent.altKey)a.datepicker._adjustDate(b.target,b.ctrlKey?-a.datepicker._get(f,"stepBigMonths"):-a.datepicker._get(f,"stepMonths"),"M");break;case 38:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target,-7,"D");j=b.ctrlKey||b.metaKey;break;case 39:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target,l?-1:+1,"D");j=b.ctrlKey||b.metaKey;if(b.originalEvent.altKey)a.datepicker._adjustDate(b.target,b.ctrlKey?+a.datepicker._get(f,"stepBigMonths"):+a.datepicker._get(f, +"stepMonths"),"M");break;case 40:if(b.ctrlKey||b.metaKey)a.datepicker._adjustDate(b.target,+7,"D");j=b.ctrlKey||b.metaKey;break;default:j=false}else if(b.keyCode==36&&b.ctrlKey)a.datepicker._showDatepicker(this);else j=false;if(j){b.preventDefault();b.stopPropagation()}},_doKeyPress:function(b){var f=a.datepicker._getInst(b.target);if(a.datepicker._get(f,"constrainInput")){f=a.datepicker._possibleChars(a.datepicker._get(f,"dateFormat"));var j=String.fromCharCode(b.charCode==d?b.keyCode:b.charCode); +return b.ctrlKey||b.metaKey||j<" "||!f||f.indexOf(j)>-1}},_doKeyUp:function(b){b=a.datepicker._getInst(b.target);if(b.input.val()!=b.lastVal)try{if(a.datepicker.parseDate(a.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,a.datepicker._getFormatConfig(b))){a.datepicker._setDateFromField(b);a.datepicker._updateAlternate(b);a.datepicker._updateDatepicker(b)}}catch(f){a.datepicker.log(f)}return true},_showDatepicker:function(b){b=b.target||b;if(b.nodeName.toLowerCase()!="input")b=a("input", +b.parentNode)[0];if(!(a.datepicker._isDisabledDatepicker(b)||a.datepicker._lastInput==b)){var f=a.datepicker._getInst(b);if(a.datepicker._curInst&&a.datepicker._curInst!=f){a.datepicker._datepickerShowing&&a.datepicker._triggerOnClose(a.datepicker._curInst);a.datepicker._curInst.dpDiv.stop(true,true)}var j=a.datepicker._get(f,"beforeShow");j=j?j.apply(b,[b,f]):{};if(j!==false){h(f.settings,j);f.lastVal=null;a.datepicker._lastInput=b;a.datepicker._setDateFromField(f);if(a.datepicker._inDialog)b.value= +"";if(!a.datepicker._pos){a.datepicker._pos=a.datepicker._findPos(b);a.datepicker._pos[1]+=b.offsetHeight}var l=false;a(b).parents().each(function(){l|=a(this).css("position")=="fixed";return!l});if(l&&a.browser.opera){a.datepicker._pos[0]-=document.documentElement.scrollLeft;a.datepicker._pos[1]-=document.documentElement.scrollTop}j={left:a.datepicker._pos[0],top:a.datepicker._pos[1]};a.datepicker._pos=null;f.dpDiv.empty();f.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});a.datepicker._updateDatepicker(f); +j=a.datepicker._checkOffset(f,j,l);f.dpDiv.css({position:a.datepicker._inDialog&&a.blockUI?"static":l?"fixed":"absolute",display:"none",left:j.left+"px",top:j.top+"px"});if(!f.inline){j=a.datepicker._get(f,"showAnim");var o=a.datepicker._get(f,"duration"),n=function(){var k=f.dpDiv.find("iframe.ui-datepicker-cover");if(k.length){var m=a.datepicker._getBorders(f.dpDiv);k.css({left:-m[0],top:-m[1],width:f.dpDiv.outerWidth(),height:f.dpDiv.outerHeight()})}};f.dpDiv.zIndex(a(b).zIndex()+1);a.datepicker._datepickerShowing= +true;a.effects&&a.effects[j]?f.dpDiv.show(j,a.datepicker._get(f,"showOptions"),o,n):f.dpDiv[j||"show"](j?o:null,n);if(!j||!o)n();f.input.is(":visible")&&!f.input.is(":disabled")&&f.input.focus();a.datepicker._curInst=f}}}},_updateDatepicker:function(b){this.maxRows=4;var f=a.datepicker._getBorders(b.dpDiv);i=b;b.dpDiv.empty().append(this._generateHTML(b));var j=b.dpDiv.find("iframe.ui-datepicker-cover");j.length&&j.css({left:-f[0],top:-f[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()}); +b.dpDiv.find("."+this._dayOverClass+" a").mouseover();f=this._getNumberOfMonths(b);j=f[1];b.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");j>1&&b.dpDiv.addClass("ui-datepicker-multi-"+j).css("width",17*j+"em");b.dpDiv[(f[0]!=1||f[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");b.dpDiv[(this._get(b,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");b==a.datepicker._curInst&&a.datepicker._datepickerShowing&&b.input&&b.input.is(":visible")&& +!b.input.is(":disabled")&&b.input[0]!=document.activeElement&&b.input.focus();if(b.yearshtml){var l=b.yearshtml;setTimeout(function(){l===b.yearshtml&&b.yearshtml&&b.dpDiv.find("select.ui-datepicker-year:first").replaceWith(b.yearshtml);l=b.yearshtml=null},0)}},_getBorders:function(b){var f=function(j){return{thin:1,medium:2,thick:3}[j]||j};return[parseFloat(f(b.css("border-left-width"))),parseFloat(f(b.css("border-top-width")))]},_checkOffset:function(b,f,j){var l=b.dpDiv.outerWidth(),o=b.dpDiv.outerHeight(), +n=b.input?b.input.outerWidth():0,k=b.input?b.input.outerHeight():0,m=document.documentElement.clientWidth+a(document).scrollLeft(),p=document.documentElement.clientHeight+a(document).scrollTop();f.left-=this._get(b,"isRTL")?l-n:0;f.left-=j&&f.left==b.input.offset().left?a(document).scrollLeft():0;f.top-=j&&f.top==b.input.offset().top+k?a(document).scrollTop():0;f.left-=Math.min(f.left,f.left+l>m&&m>l?Math.abs(f.left+l-m):0);f.top-=Math.min(f.top,f.top+o>p&&p>o?Math.abs(o+k):0);return f},_findPos:function(b){for(var f= +this._get(this._getInst(b),"isRTL");b&&(b.type=="hidden"||b.nodeType!=1||a.expr.filters.hidden(b));)b=b[f?"previousSibling":"nextSibling"];b=a(b).offset();return[b.left,b.top]},_triggerOnClose:function(b){var f=this._get(b,"onClose");if(f)f.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b])},_hideDatepicker:function(b){var f=this._curInst;if(!(!f||b&&f!=a.data(b,"datepicker")))if(this._datepickerShowing){b=this._get(f,"showAnim");var j=this._get(f,"duration"),l=function(){a.datepicker._tidyDialog(f); +this._curInst=null};a.effects&&a.effects[b]?f.dpDiv.hide(b,a.datepicker._get(f,"showOptions"),j,l):f.dpDiv[b=="slideDown"?"slideUp":b=="fadeIn"?"fadeOut":"hide"](b?j:null,l);b||l();a.datepicker._triggerOnClose(f);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(a.blockUI){a.unblockUI();a("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(b){b.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")}, +_checkExternalClick:function(b){if(a.datepicker._curInst){b=a(b.target);b[0].id!=a.datepicker._mainDivId&&b.parents("#"+a.datepicker._mainDivId).length==0&&!b.hasClass(a.datepicker.markerClassName)&&!b.hasClass(a.datepicker._triggerClass)&&a.datepicker._datepickerShowing&&!(a.datepicker._inDialog&&a.blockUI)&&a.datepicker._hideDatepicker()}},_adjustDate:function(b,f,j){b=a(b);var l=this._getInst(b[0]);if(!this._isDisabledDatepicker(b[0])){this._adjustInstDate(l,f+(j=="M"?this._get(l,"showCurrentAtPos"): +0),j);this._updateDatepicker(l)}},_gotoToday:function(b){b=a(b);var f=this._getInst(b[0]);if(this._get(f,"gotoCurrent")&&f.currentDay){f.selectedDay=f.currentDay;f.drawMonth=f.selectedMonth=f.currentMonth;f.drawYear=f.selectedYear=f.currentYear}else{var j=new Date;f.selectedDay=j.getDate();f.drawMonth=f.selectedMonth=j.getMonth();f.drawYear=f.selectedYear=j.getFullYear()}this._notifyChange(f);this._adjustDate(b)},_selectMonthYear:function(b,f,j){b=a(b);var l=this._getInst(b[0]);l["selected"+(j=="M"? +"Month":"Year")]=l["draw"+(j=="M"?"Month":"Year")]=parseInt(f.options[f.selectedIndex].value,10);this._notifyChange(l);this._adjustDate(b)},_selectDay:function(b,f,j,l){var o=a(b);if(!(a(l).hasClass(this._unselectableClass)||this._isDisabledDatepicker(o[0]))){o=this._getInst(o[0]);o.selectedDay=o.currentDay=a("a",l).html();o.selectedMonth=o.currentMonth=f;o.selectedYear=o.currentYear=j;this._selectDate(b,this._formatDate(o,o.currentDay,o.currentMonth,o.currentYear))}},_clearDate:function(b){b=a(b); +this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(b,f){b=this._getInst(a(b)[0]);f=f!=null?f:this._formatDate(b);b.input&&b.input.val(f);this._updateAlternate(b);var j=this._get(b,"onSelect");if(j)j.apply(b.input?b.input[0]:null,[f,b]);else b.input&&b.input.trigger("change");if(b.inline)this._updateDatepicker(b);else{this._hideDatepicker();this._lastInput=b.input[0];typeof b.input[0]!="object"&&b.input.focus();this._lastInput=null}},_updateAlternate:function(b){var f=this._get(b,"altField"); +if(f){var j=this._get(b,"altFormat")||this._get(b,"dateFormat"),l=this._getDate(b),o=this.formatDate(j,l,this._getFormatConfig(b));a(f).each(function(){a(this).val(o)})}},noWeekends:function(b){b=b.getDay();return[b>0&&b<6,""]},iso8601Week:function(b){b=new Date(b.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var f=b.getTime();b.setMonth(0);b.setDate(1);return Math.floor(Math.round((f-b)/864E5)/7)+1},parseDate:function(b,f,j){if(b==null||f==null)throw"Invalid arguments";f=typeof f=="object"? +f.toString():f+"";if(f=="")return null;var l=(j?j.shortYearCutoff:null)||this._defaults.shortYearCutoff;l=typeof l!="string"?l:(new Date).getFullYear()%100+parseInt(l,10);for(var o=(j?j.dayNamesShort:null)||this._defaults.dayNamesShort,n=(j?j.dayNames:null)||this._defaults.dayNames,k=(j?j.monthNamesShort:null)||this._defaults.monthNamesShort,m=(j?j.monthNames:null)||this._defaults.monthNames,p=j=-1,q=-1,s=-1,r=false,u=function(z){(z=H+1<b.length&&b.charAt(H+1)==z)&&H++;return z},v=function(z){var I= +u(z);z=new RegExp("^\\d{1,"+(z=="@"?14:z=="!"?20:z=="y"&&I?4:z=="o"?3:2)+"}");z=f.substring(y).match(z);if(!z)throw"Missing number at position "+y;y+=z[0].length;return parseInt(z[0],10)},w=function(z,I,N){z=a.map(u(z)?N:I,function(D,E){return[[E,D]]}).sort(function(D,E){return-(D[1].length-E[1].length)});var J=-1;a.each(z,function(D,E){D=E[1];if(f.substr(y,D.length).toLowerCase()==D.toLowerCase()){J=E[0];y+=D.length;return false}});if(J!=-1)return J+1;else throw"Unknown name at position "+y;},x= +function(){if(f.charAt(y)!=b.charAt(H))throw"Unexpected literal at position "+y;y++},y=0,H=0;H<b.length;H++)if(r)if(b.charAt(H)=="'"&&!u("'"))r=false;else x();else switch(b.charAt(H)){case "d":q=v("d");break;case "D":w("D",o,n);break;case "o":s=v("o");break;case "m":p=v("m");break;case "M":p=w("M",k,m);break;case "y":j=v("y");break;case "@":var C=new Date(v("@"));j=C.getFullYear();p=C.getMonth()+1;q=C.getDate();break;case "!":C=new Date((v("!")-this._ticksTo1970)/1E4);j=C.getFullYear();p=C.getMonth()+ +1;q=C.getDate();break;case "'":if(u("'"))x();else r=true;break;default:x()}if(y<f.length)throw"Extra/unparsed characters found in date: "+f.substring(y);if(j==-1)j=(new Date).getFullYear();else if(j<100)j+=(new Date).getFullYear()-(new Date).getFullYear()%100+(j<=l?0:-100);if(s>-1){p=1;q=s;do{l=this._getDaysInMonth(j,p-1);if(q<=l)break;p++;q-=l}while(1)}C=this._daylightSavingAdjust(new Date(j,p-1,q));if(C.getFullYear()!=j||C.getMonth()+1!=p||C.getDate()!=q)throw"Invalid date";return C},ATOM:"yy-mm-dd", +COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(b,f,j){if(!f)return"";var l=(j?j.dayNamesShort:null)||this._defaults.dayNamesShort,o=(j?j.dayNames:null)||this._defaults.dayNames,n=(j?j.monthNamesShort:null)||this._defaults.monthNamesShort;j=(j?j.monthNames: +null)||this._defaults.monthNames;var k=function(u){(u=r+1<b.length&&b.charAt(r+1)==u)&&r++;return u},m=function(u,v,w){v=""+v;if(k(u))for(;v.length<w;)v="0"+v;return v},p=function(u,v,w,x){return k(u)?x[v]:w[v]},q="",s=false;if(f)for(var r=0;r<b.length;r++)if(s)if(b.charAt(r)=="'"&&!k("'"))s=false;else q+=b.charAt(r);else switch(b.charAt(r)){case "d":q+=m("d",f.getDate(),2);break;case "D":q+=p("D",f.getDay(),l,o);break;case "o":q+=m("o",Math.round(((new Date(f.getFullYear(),f.getMonth(),f.getDate())).getTime()- +(new Date(f.getFullYear(),0,0)).getTime())/864E5),3);break;case "m":q+=m("m",f.getMonth()+1,2);break;case "M":q+=p("M",f.getMonth(),n,j);break;case "y":q+=k("y")?f.getFullYear():(f.getYear()%100<10?"0":"")+f.getYear()%100;break;case "@":q+=f.getTime();break;case "!":q+=f.getTime()*1E4+this._ticksTo1970;break;case "'":if(k("'"))q+="'";else s=true;break;default:q+=b.charAt(r)}return q},_possibleChars:function(b){for(var f="",j=false,l=function(n){(n=o+1<b.length&&b.charAt(o+1)==n)&&o++;return n},o= +0;o<b.length;o++)if(j)if(b.charAt(o)=="'"&&!l("'"))j=false;else f+=b.charAt(o);else switch(b.charAt(o)){case "d":case "m":case "y":case "@":f+="0123456789";break;case "D":case "M":return null;case "'":if(l("'"))f+="'";else j=true;break;default:f+=b.charAt(o)}return f},_get:function(b,f){return b.settings[f]!==d?b.settings[f]:this._defaults[f]},_setDateFromField:function(b,f){if(b.input.val()!=b.lastVal){var j=this._get(b,"dateFormat"),l=b.lastVal=b.input?b.input.val():null,o,n;o=n=this._getDefaultDate(b); +var k=this._getFormatConfig(b);try{o=this.parseDate(j,l,k)||n}catch(m){this.log(m);l=f?"":l}b.selectedDay=o.getDate();b.drawMonth=b.selectedMonth=o.getMonth();b.drawYear=b.selectedYear=o.getFullYear();b.currentDay=l?o.getDate():0;b.currentMonth=l?o.getMonth():0;b.currentYear=l?o.getFullYear():0;this._adjustInstDate(b)}},_getDefaultDate:function(b){return this._restrictMinMax(b,this._determineDate(b,this._get(b,"defaultDate"),new Date))},_determineDate:function(b,f,j){var l=function(n){var k=new Date; +k.setDate(k.getDate()+n);return k},o=function(n){try{return a.datepicker.parseDate(a.datepicker._get(b,"dateFormat"),n,a.datepicker._getFormatConfig(b))}catch(k){}var m=(n.toLowerCase().match(/^c/)?a.datepicker._getDate(b):null)||new Date,p=m.getFullYear(),q=m.getMonth();m=m.getDate();for(var s=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,r=s.exec(n);r;){switch(r[2]||"d"){case "d":case "D":m+=parseInt(r[1],10);break;case "w":case "W":m+=parseInt(r[1],10)*7;break;case "m":case "M":q+=parseInt(r[1],10);m= +Math.min(m,a.datepicker._getDaysInMonth(p,q));break;case "y":case "Y":p+=parseInt(r[1],10);m=Math.min(m,a.datepicker._getDaysInMonth(p,q));break}r=s.exec(n)}return new Date(p,q,m)};if(f=(f=f==null||f===""?j:typeof f=="string"?o(f):typeof f=="number"?isNaN(f)?j:l(f):new Date(f.getTime()))&&f.toString()=="Invalid Date"?j:f){f.setHours(0);f.setMinutes(0);f.setSeconds(0);f.setMilliseconds(0)}return this._daylightSavingAdjust(f)},_daylightSavingAdjust:function(b){if(!b)return null;b.setHours(b.getHours()> +12?b.getHours()+2:0);return b},_setDate:function(b,f,j){var l=!f,o=b.selectedMonth,n=b.selectedYear;f=this._restrictMinMax(b,this._determineDate(b,f,new Date));b.selectedDay=b.currentDay=f.getDate();b.drawMonth=b.selectedMonth=b.currentMonth=f.getMonth();b.drawYear=b.selectedYear=b.currentYear=f.getFullYear();if((o!=b.selectedMonth||n!=b.selectedYear)&&!j)this._notifyChange(b);this._adjustInstDate(b);if(b.input)b.input.val(l?"":this._formatDate(b))},_getDate:function(b){return!b.currentYear||b.input&& +b.input.val()==""?null:this._daylightSavingAdjust(new Date(b.currentYear,b.currentMonth,b.currentDay))},_generateHTML:function(b){var f=new Date;f=this._daylightSavingAdjust(new Date(f.getFullYear(),f.getMonth(),f.getDate()));var j=this._get(b,"isRTL"),l=this._get(b,"showButtonPanel"),o=this._get(b,"hideIfNoPrevNext"),n=this._get(b,"navigationAsDateFormat"),k=this._getNumberOfMonths(b),m=this._get(b,"showCurrentAtPos"),p=this._get(b,"stepMonths"),q=k[0]!=1||k[1]!=1,s=this._daylightSavingAdjust(!b.currentDay? +new Date(9999,9,9):new Date(b.currentYear,b.currentMonth,b.currentDay)),r=this._getMinMaxDate(b,"min"),u=this._getMinMaxDate(b,"max");m=b.drawMonth-m;var v=b.drawYear;if(m<0){m+=12;v--}if(u){var w=this._daylightSavingAdjust(new Date(u.getFullYear(),u.getMonth()-k[0]*k[1]+1,u.getDate()));for(w=r&&w<r?r:w;this._daylightSavingAdjust(new Date(v,m,1))>w;){m--;if(m<0){m=11;v--}}}b.drawMonth=m;b.drawYear=v;w=this._get(b,"prevText");w=!n?w:this.formatDate(w,this._daylightSavingAdjust(new Date(v,m-p,1)),this._getFormatConfig(b)); +w=this._canAdjustMonth(b,-1,v,m)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+g+".datepicker._adjustDate('#"+b.id+"', -"+p+", 'M');\" title=\""+w+'"><span class="ui-icon ui-icon-circle-triangle-'+(j?"e":"w")+'">'+w+"</span></a>":o?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+w+'"><span class="ui-icon ui-icon-circle-triangle-'+(j?"e":"w")+'">'+w+"</span></a>";var x=this._get(b,"nextText");x=!n?x:this.formatDate(x,this._daylightSavingAdjust(new Date(v, +m+p,1)),this._getFormatConfig(b));o=this._canAdjustMonth(b,+1,v,m)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+g+".datepicker._adjustDate('#"+b.id+"', +"+p+", 'M');\" title=\""+x+'"><span class="ui-icon ui-icon-circle-triangle-'+(j?"w":"e")+'">'+x+"</span></a>":o?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+x+'"><span class="ui-icon ui-icon-circle-triangle-'+(j?"w":"e")+'">'+x+"</span></a>";p=this._get(b,"currentText");x=this._get(b,"gotoCurrent")&& +b.currentDay?s:f;p=!n?p:this.formatDate(p,x,this._getFormatConfig(b));n=!b.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+g+'.datepicker._hideDatepicker();">'+this._get(b,"closeText")+"</button>":"";l=l?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(j?n:"")+(this._isInRange(b,x)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+ +g+".datepicker._gotoToday('#"+b.id+"');\">"+p+"</button>":"")+(j?"":n)+"</div>":"";n=parseInt(this._get(b,"firstDay"),10);n=isNaN(n)?0:n;p=this._get(b,"showWeek");x=this._get(b,"dayNames");this._get(b,"dayNamesShort");var y=this._get(b,"dayNamesMin"),H=this._get(b,"monthNames"),C=this._get(b,"monthNamesShort"),z=this._get(b,"beforeShowDay"),I=this._get(b,"showOtherMonths"),N=this._get(b,"selectOtherMonths");this._get(b,"calculateWeek");for(var J=this._getDefaultDate(b),D="",E=0;E<k[0];E++){var P= +"";this.maxRows=4;for(var L=0;L<k[1];L++){var Q=this._daylightSavingAdjust(new Date(v,m,b.selectedDay)),B=" ui-corner-all",F="";if(q){F+='<div class="ui-datepicker-group';if(k[1]>1)switch(L){case 0:F+=" ui-datepicker-group-first";B=" ui-corner-"+(j?"right":"left");break;case k[1]-1:F+=" ui-datepicker-group-last";B=" ui-corner-"+(j?"left":"right");break;default:F+=" ui-datepicker-group-middle";B="";break}F+='">'}F+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+B+'">'+(/all|left/.test(B)&& +E==0?j?o:w:"")+(/all|right/.test(B)&&E==0?j?w:o:"")+this._generateMonthYearHeader(b,m,v,r,u,E>0||L>0,H,C)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var G=p?'<th class="ui-datepicker-week-col">'+this._get(b,"weekHeader")+"</th>":"";for(B=0;B<7;B++){var A=(B+n)%7;G+="<th"+((B+n+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+x[A]+'">'+y[A]+"</span></th>"}F+=G+"</tr></thead><tbody>";G=this._getDaysInMonth(v,m);if(v==b.selectedYear&&m==b.selectedMonth)b.selectedDay=Math.min(b.selectedDay, +G);B=(this._getFirstDayOfMonth(v,m)-n+7)%7;G=Math.ceil((B+G)/7);this.maxRows=G=q?this.maxRows>G?this.maxRows:G:G;A=this._daylightSavingAdjust(new Date(v,m,1-B));for(var R=0;R<G;R++){F+="<tr>";var S=!p?"":'<td class="ui-datepicker-week-col">'+this._get(b,"calculateWeek")(A)+"</td>";for(B=0;B<7;B++){var M=z?z.apply(b.input?b.input[0]:null,[A]):[true,""],K=A.getMonth()!=m,O=K&&!N||!M[0]||r&&A<r||u&&A>u;S+='<td class="'+((B+n+6)%7>=5?" ui-datepicker-week-end":"")+(K?" ui-datepicker-other-month":"")+(A.getTime()== +Q.getTime()&&m==b.selectedMonth&&b._keyEvent||J.getTime()==A.getTime()&&J.getTime()==Q.getTime()?" "+this._dayOverClass:"")+(O?" "+this._unselectableClass+" ui-state-disabled":"")+(K&&!I?"":" "+M[1]+(A.getTime()==s.getTime()?" "+this._currentClass:"")+(A.getTime()==f.getTime()?" ui-datepicker-today":""))+'"'+((!K||I)&&M[2]?' title="'+M[2]+'"':"")+(O?"":' onclick="DP_jQuery_'+g+".datepicker._selectDay('#"+b.id+"',"+A.getMonth()+","+A.getFullYear()+', this);return false;"')+">"+(K&&!I?" ":O?'<span class="ui-state-default">'+ +A.getDate()+"</span>":'<a class="ui-state-default'+(A.getTime()==f.getTime()?" ui-state-highlight":"")+(A.getTime()==s.getTime()?" ui-state-active":"")+(K?" ui-priority-secondary":"")+'" href="#">'+A.getDate()+"</a>")+"</td>";A.setDate(A.getDate()+1);A=this._daylightSavingAdjust(A)}F+=S+"</tr>"}m++;if(m>11){m=0;v++}F+="</tbody></table>"+(q?"</div>"+(k[0]>0&&L==k[1]-1?'<div class="ui-datepicker-row-break"></div>':""):"");P+=F}D+=P}D+=l+(a.browser.msie&&parseInt(a.browser.version,10)<7&&!b.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>': +"");b._keyEvent=false;return D},_generateMonthYearHeader:function(b,f,j,l,o,n,k,m){var p=this._get(b,"changeMonth"),q=this._get(b,"changeYear"),s=this._get(b,"showMonthAfterYear"),r='<div class="ui-datepicker-title">',u="";if(n||!p)u+='<span class="ui-datepicker-month">'+k[f]+"</span>";else{k=l&&l.getFullYear()==j;var v=o&&o.getFullYear()==j;u+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+g+".datepicker._selectMonthYear('#"+b.id+"', this, 'M');\" >";for(var w=0;w<12;w++)if((!k||w>=l.getMonth())&& +(!v||w<=o.getMonth()))u+='<option value="'+w+'"'+(w==f?' selected="selected"':"")+">"+m[w]+"</option>";u+="</select>"}s||(r+=u+(n||!(p&&q)?" ":""));if(!b.yearshtml){b.yearshtml="";if(n||!q)r+='<span class="ui-datepicker-year">'+j+"</span>";else{m=this._get(b,"yearRange").split(":");var x=(new Date).getFullYear();k=function(y){y=y.match(/c[+-].*/)?j+parseInt(y.substring(1),10):y.match(/[+-].*/)?x+parseInt(y,10):parseInt(y,10);return isNaN(y)?x:y};f=k(m[0]);m=Math.max(f,k(m[1]||""));f=l?Math.max(f, +l.getFullYear()):f;m=o?Math.min(m,o.getFullYear()):m;for(b.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+g+".datepicker._selectMonthYear('#"+b.id+"', this, 'Y');\" >";f<=m;f++)b.yearshtml+='<option value="'+f+'"'+(f==j?' selected="selected"':"")+">"+f+"</option>";b.yearshtml+="</select>";r+=b.yearshtml;b.yearshtml=null}}r+=this._get(b,"yearSuffix");if(s)r+=(n||!(p&&q)?" ":"")+u;r+="</div>";return r},_adjustInstDate:function(b,f,j){var l=b.drawYear+(j=="Y"?f:0),o=b.drawMonth+ +(j=="M"?f:0);f=Math.min(b.selectedDay,this._getDaysInMonth(l,o))+(j=="D"?f:0);l=this._restrictMinMax(b,this._daylightSavingAdjust(new Date(l,o,f)));b.selectedDay=l.getDate();b.drawMonth=b.selectedMonth=l.getMonth();b.drawYear=b.selectedYear=l.getFullYear();if(j=="M"||j=="Y")this._notifyChange(b)},_restrictMinMax:function(b,f){var j=this._getMinMaxDate(b,"min");b=this._getMinMaxDate(b,"max");f=j&&f<j?j:f;return f=b&&f>b?b:f},_notifyChange:function(b){var f=this._get(b,"onChangeMonthYear");if(f)f.apply(b.input? +b.input[0]:null,[b.selectedYear,b.selectedMonth+1,b])},_getNumberOfMonths:function(b){b=this._get(b,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_getMinMaxDate:function(b,f){return this._determineDate(b,this._get(b,f+"Date"),null)},_getDaysInMonth:function(b,f){return 32-this._daylightSavingAdjust(new Date(b,f,32)).getDate()},_getFirstDayOfMonth:function(b,f){return(new Date(b,f,1)).getDay()},_canAdjustMonth:function(b,f,j,l){var o=this._getNumberOfMonths(b);j=this._daylightSavingAdjust(new Date(j, +l+(f<0?f:o[0]*o[1]),1));f<0&&j.setDate(this._getDaysInMonth(j.getFullYear(),j.getMonth()));return this._isInRange(b,j)},_isInRange:function(b,f){var j=this._getMinMaxDate(b,"min");b=this._getMinMaxDate(b,"max");return(!j||f.getTime()>=j.getTime())&&(!b||f.getTime()<=b.getTime())},_getFormatConfig:function(b){var f=this._get(b,"shortYearCutoff");f=typeof f!="string"?f:(new Date).getFullYear()%100+parseInt(f,10);return{shortYearCutoff:f,dayNamesShort:this._get(b,"dayNamesShort"),dayNames:this._get(b, +"dayNames"),monthNamesShort:this._get(b,"monthNamesShort"),monthNames:this._get(b,"monthNames")}},_formatDate:function(b,f,j,l){if(!f){b.currentDay=b.selectedDay;b.currentMonth=b.selectedMonth;b.currentYear=b.selectedYear}f=f?typeof f=="object"?f:this._daylightSavingAdjust(new Date(l,j,f)):this._daylightSavingAdjust(new Date(b.currentYear,b.currentMonth,b.currentDay));return this.formatDate(this._get(b,"dateFormat"),f,this._getFormatConfig(b))}});a.fn.datepicker=function(b){if(!this.length)return this; +if(!a.datepicker.initialized){a(document).mousedown(a.datepicker._checkExternalClick).find("body").append(a.datepicker.dpDiv);a.datepicker.initialized=true}var f=Array.prototype.slice.call(arguments,1);if(typeof b=="string"&&(b=="isDisabled"||b=="getDate"||b=="widget"))return a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this[0]].concat(f));if(b=="option"&&arguments.length==2&&typeof arguments[1]=="string")return a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this[0]].concat(f));return this.each(function(){typeof b== +"string"?a.datepicker["_"+b+"Datepicker"].apply(a.datepicker,[this].concat(f)):a.datepicker._attachDatepicker(this,b)})};a.datepicker=new c;a.datepicker.initialized=false;a.datepicker.uuid=(new Date).getTime();a.datepicker.version="1.8.16";window["DP_jQuery_"+g]=a})(jQuery); +(function(a,d){var c={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},e={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},h=a.attrFn||{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true,click:true};a.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false, +position:{my:"center",at:"center",collision:"fit",using:function(g){var i=a(this).css(g).offset().top;i<0&&a(this).css("top",g.top-i)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var g=this,i=g.options,b=i.title||" ",f=a.ui.dialog.getTitleId(g.element),j=(g.uiDialog=a("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+ +i.dialogClass).css({zIndex:i.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(n){if(i.closeOnEscape&&!n.isDefaultPrevented()&&n.keyCode&&n.keyCode===a.ui.keyCode.ESCAPE){g.close(n);n.preventDefault()}}).attr({role:"dialog","aria-labelledby":f}).mousedown(function(n){g.moveToTop(false,n)});g.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(j);var l=(g.uiDialogTitlebar=a("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(j), +o=a('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){o.addClass("ui-state-hover")},function(){o.removeClass("ui-state-hover")}).focus(function(){o.addClass("ui-state-focus")}).blur(function(){o.removeClass("ui-state-focus")}).click(function(n){g.close(n);return false}).appendTo(l);(g.uiDialogTitlebarCloseText=a("<span></span>")).addClass("ui-icon ui-icon-closethick").text(i.closeText).appendTo(o);a("<span></span>").addClass("ui-dialog-title").attr("id", +f).html(b).prependTo(l);if(a.isFunction(i.beforeclose)&&!a.isFunction(i.beforeClose))i.beforeClose=i.beforeclose;l.find("*").add(l).disableSelection();i.draggable&&a.fn.draggable&&g._makeDraggable();i.resizable&&a.fn.resizable&&g._makeResizable();g._createButtons(i.buttons);g._isOpen=false;a.fn.bgiframe&&j.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var g=this;g.overlay&&g.overlay.destroy();g.uiDialog.hide();g.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); +g.uiDialog.remove();g.originalTitle&&g.element.attr("title",g.originalTitle);return g},widget:function(){return this.uiDialog},close:function(g){var i=this,b,f;if(false!==i._trigger("beforeClose",g)){i.overlay&&i.overlay.destroy();i.uiDialog.unbind("keypress.ui-dialog");i._isOpen=false;if(i.options.hide)i.uiDialog.hide(i.options.hide,function(){i._trigger("close",g)});else{i.uiDialog.hide();i._trigger("close",g)}a.ui.dialog.overlay.resize();if(i.options.modal){b=0;a(".ui-dialog").each(function(){if(this!== +i.uiDialog[0]){f=a(this).css("z-index");isNaN(f)||(b=Math.max(b,f))}});a.ui.dialog.maxZ=b}return i}},isOpen:function(){return this._isOpen},moveToTop:function(g,i){var b=this,f=b.options;if(f.modal&&!g||!f.stack&&!f.modal)return b._trigger("focus",i);if(f.zIndex>a.ui.dialog.maxZ)a.ui.dialog.maxZ=f.zIndex;if(b.overlay){a.ui.dialog.maxZ+=1;b.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ)}g={scrollTop:b.element.scrollTop(),scrollLeft:b.element.scrollLeft()};a.ui.dialog.maxZ+=1; +b.uiDialog.css("z-index",a.ui.dialog.maxZ);b.element.attr(g);b._trigger("focus",i);return b},open:function(){if(!this._isOpen){var g=this,i=g.options,b=g.uiDialog;g.overlay=i.modal?new a.ui.dialog.overlay(g):null;g._size();g._position(i.position);b.show(i.show);g.moveToTop(true);i.modal&&b.bind("keypress.ui-dialog",function(f){if(f.keyCode===a.ui.keyCode.TAB){var j=a(":tabbable",this),l=j.filter(":first");j=j.filter(":last");if(f.target===j[0]&&!f.shiftKey){l.focus(1);return false}else if(f.target=== +l[0]&&f.shiftKey){j.focus(1);return false}}});a(g.element.find(":tabbable").get().concat(b.find(".ui-dialog-buttonpane :tabbable").get().concat(b.get()))).eq(0).focus();g._isOpen=true;g._trigger("open");return g}},_createButtons:function(g){var i=this,b=false,f=a("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),j=a("<div></div>").addClass("ui-dialog-buttonset").appendTo(f);i.uiDialog.find(".ui-dialog-buttonpane").remove();typeof g==="object"&&g!==null&&a.each(g, +function(){return!(b=true)});if(b){a.each(g,function(l,o){o=a.isFunction(o)?{click:o,text:l}:o;var n=a('<button type="button"></button>').click(function(){o.click.apply(i.element[0],arguments)}).appendTo(j);a.each(o,function(k,m){if(k!=="click")k in h?n[k](m):n.attr(k,m)});a.fn.button&&n.button()});f.appendTo(i.uiDialog)}},_makeDraggable:function(){function g(l){return{position:l.position,offset:l.offset}}var i=this,b=i.options,f=a(document),j;i.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close", +handle:".ui-dialog-titlebar",containment:"document",start:function(l,o){j=b.height==="auto"?"auto":a(this).height();a(this).height(a(this).height()).addClass("ui-dialog-dragging");i._trigger("dragStart",l,g(o))},drag:function(l,o){i._trigger("drag",l,g(o))},stop:function(l,o){b.position=[o.position.left-f.scrollLeft(),o.position.top-f.scrollTop()];a(this).removeClass("ui-dialog-dragging").height(j);i._trigger("dragStop",l,g(o));a.ui.dialog.overlay.resize()}})},_makeResizable:function(g){function i(l){return{originalPosition:l.originalPosition, +originalSize:l.originalSize,position:l.position,size:l.size}}g=g===d?this.options.resizable:g;var b=this,f=b.options,j=b.uiDialog.css("position");g=typeof g==="string"?g:"n,e,s,w,se,sw,ne,nw";b.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:b.element,maxWidth:f.maxWidth,maxHeight:f.maxHeight,minWidth:f.minWidth,minHeight:b._minHeight(),handles:g,start:function(l,o){a(this).addClass("ui-dialog-resizing");b._trigger("resizeStart",l,i(o))},resize:function(l,o){b._trigger("resize", +l,i(o))},stop:function(l,o){a(this).removeClass("ui-dialog-resizing");f.height=a(this).height();f.width=a(this).width();b._trigger("resizeStop",l,i(o));a.ui.dialog.overlay.resize()}}).css("position",j).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var g=this.options;return g.height==="auto"?g.minHeight:Math.min(g.minHeight,g.height)},_position:function(g){var i=[],b=[0,0],f;if(g){if(typeof g==="string"||typeof g==="object"&&"0"in g){i=g.split?g.split(" "): +[g[0],g[1]];if(i.length===1)i[1]=i[0];a.each(["left","top"],function(j,l){if(+i[j]===i[j]){b[j]=i[j];i[j]=l}});g={my:i.join(" "),at:i.join(" "),offset:b.join(" ")}}g=a.extend({},a.ui.dialog.prototype.options.position,g)}else g=a.ui.dialog.prototype.options.position;(f=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(a.extend({of:window},g));f||this.uiDialog.hide()},_setOptions:function(g){var i=this,b={},f=false;a.each(g,function(j,l){i._setOption(j,l); +if(j in c)f=true;if(j in e)b[j]=l});f&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",b)},_setOption:function(g,i){var b=this,f=b.uiDialog;switch(g){case "beforeclose":g="beforeClose";break;case "buttons":b._createButtons(i);break;case "closeText":b.uiDialogTitlebarCloseText.text(""+i);break;case "dialogClass":f.removeClass(b.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+i);break;case "disabled":i?f.addClass("ui-dialog-disabled"): +f.removeClass("ui-dialog-disabled");break;case "draggable":var j=f.is(":data(draggable)");j&&!i&&f.draggable("destroy");!j&&i&&b._makeDraggable();break;case "position":b._position(i);break;case "resizable":(j=f.is(":data(resizable)"))&&!i&&f.resizable("destroy");j&&typeof i==="string"&&f.resizable("option","handles",i);!j&&i!==false&&b._makeResizable(i);break;case "title":a(".ui-dialog-title",b.uiDialogTitlebar).html(""+(i||" "));break}a.Widget.prototype._setOption.apply(b,arguments)},_size:function(){var g= +this.options,i,b,f=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(g.minWidth>g.width)g.width=g.minWidth;i=this.uiDialog.css({height:"auto",width:g.width}).height();b=Math.max(0,g.minHeight-i);if(g.height==="auto")if(a.support.minHeight)this.element.css({minHeight:b,height:"auto"});else{this.uiDialog.show();g=this.element.css("height","auto").height();f||this.uiDialog.hide();this.element.height(Math.max(g,b))}else this.element.height(Math.max(g.height- +i,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}});a.extend(a.ui.dialog,{version:"1.8.16",uuid:0,maxZ:0,getTitleId:function(g){g=g.attr("id");if(!g){this.uuid+=1;g=this.uuid}return"ui-dialog-title-"+g},overlay:function(g){this.$el=a.ui.dialog.overlay.create(g)}});a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(g){return g+".dialog-overlay"}).join(" "), +create:function(g){if(this.instances.length===0){setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(b){if(a(b.target).zIndex()<a.ui.dialog.overlay.maxZ)return false})},1);a(document).bind("keydown.dialog-overlay",function(b){if(g.options.closeOnEscape&&!b.isDefaultPrevented()&&b.keyCode&&b.keyCode===a.ui.keyCode.ESCAPE){g.close(b);b.preventDefault()}});a(window).bind("resize.dialog-overlay",a.ui.dialog.overlay.resize)}var i=(this.oldInstances.pop()|| +a("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});a.fn.bgiframe&&i.bgiframe();this.instances.push(i);return i},destroy:function(g){var i=a.inArray(g,this.instances);i!=-1&&this.oldInstances.push(this.instances.splice(i,1)[0]);this.instances.length===0&&a([document,window]).unbind(".dialog-overlay");g.remove();var b=0;a.each(this.instances,function(){b=Math.max(b,this.css("z-index"))});this.maxZ=b},height:function(){var g,i;if(a.browser.msie&& +a.browser.version<7){g=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);i=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return g<i?a(window).height()+"px":g+"px"}else return a(document).height()+"px"},width:function(){var g,i;if(a.browser.msie){g=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);i=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth);return g<i?a(window).width()+"px":g+"px"}else return a(document).width()+ +"px"},resize:function(){var g=a([]);a.each(a.ui.dialog.overlay.instances,function(){g=g.add(this)});g.css({width:0,height:0}).css({width:a.ui.dialog.overlay.width(),height:a.ui.dialog.overlay.height()})}});a.extend(a.ui.dialog.overlay.prototype,{destroy:function(){a.ui.dialog.overlay.destroy(this.$el)}})})(jQuery); +(function(a){a.ui=a.ui||{};var d=/left|center|right/,c=/top|center|bottom/,e=a.fn.position,h=a.fn.offset;a.fn.position=function(g){if(!g||!g.of)return e.apply(this,arguments);g=a.extend({},g);var i=a(g.of),b=i[0],f=(g.collision||"flip").split(" "),j=g.offset?g.offset.split(" "):[0,0],l,o,n;if(b.nodeType===9){l=i.width();o=i.height();n={top:0,left:0}}else if(b.setTimeout){l=i.width();o=i.height();n={top:i.scrollTop(),left:i.scrollLeft()}}else if(b.preventDefault){g.at="left top";l=o=0;n={top:g.of.pageY, +left:g.of.pageX}}else{l=i.outerWidth();o=i.outerHeight();n=i.offset()}a.each(["my","at"],function(){var k=(g[this]||"").split(" ");if(k.length===1)k=d.test(k[0])?k.concat(["center"]):c.test(k[0])?["center"].concat(k):["center","center"];k[0]=d.test(k[0])?k[0]:"center";k[1]=c.test(k[1])?k[1]:"center";g[this]=k});if(f.length===1)f[1]=f[0];j[0]=parseInt(j[0],10)||0;if(j.length===1)j[1]=j[0];j[1]=parseInt(j[1],10)||0;if(g.at[0]==="right")n.left+=l;else if(g.at[0]==="center")n.left+=l/2;if(g.at[1]==="bottom")n.top+= +o;else if(g.at[1]==="center")n.top+=o/2;n.left+=j[0];n.top+=j[1];return this.each(function(){var k=a(this),m=k.outerWidth(),p=k.outerHeight(),q=parseInt(a.curCSS(this,"marginLeft",true))||0,s=parseInt(a.curCSS(this,"marginTop",true))||0,r=m+q+(parseInt(a.curCSS(this,"marginRight",true))||0),u=p+s+(parseInt(a.curCSS(this,"marginBottom",true))||0),v=a.extend({},n),w;if(g.my[0]==="right")v.left-=m;else if(g.my[0]==="center")v.left-=m/2;if(g.my[1]==="bottom")v.top-=p;else if(g.my[1]==="center")v.top-= +p/2;v.left=Math.round(v.left);v.top=Math.round(v.top);w={left:v.left-q,top:v.top-s};a.each(["left","top"],function(x,y){a.ui.position[f[x]]&&a.ui.position[f[x]][y](v,{targetWidth:l,targetHeight:o,elemWidth:m,elemHeight:p,collisionPosition:w,collisionWidth:r,collisionHeight:u,offset:j,my:g.my,at:g.at})});a.fn.bgiframe&&k.bgiframe();k.offset(a.extend(v,{using:g.using}))})};a.ui.position={fit:{left:function(g,i){var b=a(window);b=i.collisionPosition.left+i.collisionWidth-b.width()-b.scrollLeft();g.left= +b>0?g.left-b:Math.max(g.left-i.collisionPosition.left,g.left)},top:function(g,i){var b=a(window);b=i.collisionPosition.top+i.collisionHeight-b.height()-b.scrollTop();g.top=b>0?g.top-b:Math.max(g.top-i.collisionPosition.top,g.top)}},flip:{left:function(g,i){if(i.at[0]!=="center"){var b=a(window);b=i.collisionPosition.left+i.collisionWidth-b.width()-b.scrollLeft();var f=i.my[0]==="left"?-i.elemWidth:i.my[0]==="right"?i.elemWidth:0,j=i.at[0]==="left"?i.targetWidth:-i.targetWidth,l=-2*i.offset[0];g.left+= +i.collisionPosition.left<0?f+j+l:b>0?f+j+l:0}},top:function(g,i){if(i.at[1]!=="center"){var b=a(window);b=i.collisionPosition.top+i.collisionHeight-b.height()-b.scrollTop();var f=i.my[1]==="top"?-i.elemHeight:i.my[1]==="bottom"?i.elemHeight:0,j=i.at[1]==="top"?i.targetHeight:-i.targetHeight,l=-2*i.offset[1];g.top+=i.collisionPosition.top<0?f+j+l:b>0?f+j+l:0}}}};if(!a.offset.setOffset){a.offset.setOffset=function(g,i){if(/static/.test(a.curCSS(g,"position")))g.style.position="relative";var b=a(g), +f=b.offset(),j=parseInt(a.curCSS(g,"top",true),10)||0,l=parseInt(a.curCSS(g,"left",true),10)||0;f={top:i.top-f.top+j,left:i.left-f.left+l};"using"in i?i.using.call(g,f):b.css(f)};a.fn.offset=function(g){var i=this[0];if(!i||!i.ownerDocument)return null;if(g)return this.each(function(){a.offset.setOffset(this,g)});return h.call(this)}}})(jQuery); +(function(a,d){a.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); +this.valueDiv.remove();a.Widget.prototype.destroy.apply(this,arguments)},value:function(c){if(c===d)return this._value();this._setOption("value",c);return this},_setOption:function(c,e){if(c==="value"){this.options.value=e;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}a.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var c=this.options.value;if(typeof c!=="number")c=0;return Math.min(this.options.max,Math.max(this.min,c))},_percentage:function(){return 100* +this._value()/this.options.max},_refreshValue:function(){var c=this.value(),e=this._percentage();if(this.oldValue!==c){this.oldValue=c;this._trigger("change")}this.valueDiv.toggle(c>this.min).toggleClass("ui-corner-right",c===this.options.max).width(e.toFixed(0)+"%");this.element.attr("aria-valuenow",c)}});a.extend(a.ui.progressbar,{version:"1.8.16"})})(jQuery); +(function(a){a.widget("ui.slider",a.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var d=this,c=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),h=c.values&&c.values.length||1,g=[];this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+ +this.orientation+" ui-widget ui-widget-content ui-corner-all"+(c.disabled?" ui-slider-disabled ui-disabled":""));this.range=a([]);if(c.range){if(c.range===true){if(!c.values)c.values=[this._valueMin(),this._valueMin()];if(c.values.length&&c.values.length!==2)c.values=[c.values[0],c.values[0]]}this.range=a("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(c.range==="min"||c.range==="max"?" ui-slider-range-"+c.range:""))}for(var i=e.length;i<h;i+=1)g.push("<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>"); +this.handles=e.add(a(g.join("")).appendTo(d.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(b){b.preventDefault()}).hover(function(){c.disabled||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}).focus(function(){if(c.disabled)a(this).blur();else{a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");a(this).addClass("ui-state-focus")}}).blur(function(){a(this).removeClass("ui-state-focus")});this.handles.each(function(b){a(this).data("index.ui-slider-handle", +b)});this.handles.keydown(function(b){var f=true,j=a(this).data("index.ui-slider-handle"),l,o,n;if(!d.options.disabled){switch(b.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:f=false;if(!d._keySliding){d._keySliding=true;a(this).addClass("ui-state-active");l=d._start(b,j);if(l===false)return}break}n=d.options.step;l=d.options.values&&d.options.values.length? +(o=d.values(j)):(o=d.value());switch(b.keyCode){case a.ui.keyCode.HOME:o=d._valueMin();break;case a.ui.keyCode.END:o=d._valueMax();break;case a.ui.keyCode.PAGE_UP:o=d._trimAlignValue(l+(d._valueMax()-d._valueMin())/5);break;case a.ui.keyCode.PAGE_DOWN:o=d._trimAlignValue(l-(d._valueMax()-d._valueMin())/5);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(l===d._valueMax())return;o=d._trimAlignValue(l+n);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(l===d._valueMin())return;o=d._trimAlignValue(l- +n);break}d._slide(b,j,o);return f}}).keyup(function(b){var f=a(this).data("index.ui-slider-handle");if(d._keySliding){d._keySliding=false;d._stop(b,f);d._change(b,f);a(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy(); +return this},_mouseCapture:function(d){var c=this.options,e,h,g,i,b;if(c.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();e=this._normValueFromMouse({x:d.pageX,y:d.pageY});h=this._valueMax()-this._valueMin()+1;i=this;this.handles.each(function(f){var j=Math.abs(e-i.values(f));if(h>j){h=j;g=a(this);b=f}});if(c.range===true&&this.values(1)===c.min){b+=1;g=a(this.handles[b])}if(this._start(d,b)===false)return false; +this._mouseSliding=true;i._handleIndex=b;g.addClass("ui-state-active").focus();c=g.offset();this._clickOffset=!a(d.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:d.pageX-c.left-g.width()/2,top:d.pageY-c.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(d,b,e);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(d){var c= +this._normValueFromMouse({x:d.pageX,y:d.pageY});this._slide(d,this._handleIndex,c);return false},_mouseStop:function(d){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(d,this._handleIndex);this._change(d,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(d){var c;if(this.orientation==="horizontal"){c= +this.elementSize.width;d=d.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{c=this.elementSize.height;d=d.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}c=d/c;if(c>1)c=1;if(c<0)c=0;if(this.orientation==="vertical")c=1-c;d=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+c*d)},_start:function(d,c){var e={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){e.value=this.values(c); +e.values=this.values()}return this._trigger("start",d,e)},_slide:function(d,c,e){var h;if(this.options.values&&this.options.values.length){h=this.values(c?0:1);if(this.options.values.length===2&&this.options.range===true&&(c===0&&e>h||c===1&&e<h))e=h;if(e!==this.values(c)){h=this.values();h[c]=e;d=this._trigger("slide",d,{handle:this.handles[c],value:e,values:h});this.values(c?0:1);d!==false&&this.values(c,e,true)}}else if(e!==this.value()){d=this._trigger("slide",d,{handle:this.handles[c],value:e}); +d!==false&&this.value(e)}},_stop:function(d,c){var e={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){e.value=this.values(c);e.values=this.values()}this._trigger("stop",d,e)},_change:function(d,c){if(!this._keySliding&&!this._mouseSliding){var e={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){e.value=this.values(c);e.values=this.values()}this._trigger("change",d,e)}},value:function(d){if(arguments.length){this.options.value= +this._trimAlignValue(d);this._refreshValue();this._change(null,0)}else return this._value()},values:function(d,c){var e,h,g;if(arguments.length>1){this.options.values[d]=this._trimAlignValue(c);this._refreshValue();this._change(null,d)}else if(arguments.length)if(a.isArray(arguments[0])){e=this.options.values;h=arguments[0];for(g=0;g<e.length;g+=1){e[g]=this._trimAlignValue(h[g]);this._change(null,g)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(d): +this.value();else return this._values()},_setOption:function(d,c){var e,h=0;if(a.isArray(this.options.values))h=this.options.values.length;a.Widget.prototype._setOption.apply(this,arguments);switch(d){case "disabled":if(c){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.propAttr("disabled",true);this.element.addClass("ui-disabled")}else{this.handles.propAttr("disabled",false);this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation(); +this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(e=0;e<h;e+=1)this._change(null,e);this._animateOff=false;break}},_value:function(){var d=this.options.value;return d=this._trimAlignValue(d)},_values:function(d){var c,e;if(arguments.length){c=this.options.values[d]; +return c=this._trimAlignValue(c)}else{c=this.options.values.slice();for(e=0;e<c.length;e+=1)c[e]=this._trimAlignValue(c[e]);return c}},_trimAlignValue:function(d){if(d<=this._valueMin())return this._valueMin();if(d>=this._valueMax())return this._valueMax();var c=this.options.step>0?this.options.step:1,e=(d-this._valueMin())%c;d=d-e;if(Math.abs(e)*2>=c)d+=e>0?c:-c;return parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var d= +this.options.range,c=this.options,e=this,h=!this._animateOff?c.animate:false,g,i={},b,f,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(o){g=(e.values(o)-e._valueMin())/(e._valueMax()-e._valueMin())*100;i[e.orientation==="horizontal"?"left":"bottom"]=g+"%";a(this).stop(1,1)[h?"animate":"css"](i,c.animate);if(e.options.range===true)if(e.orientation==="horizontal"){if(o===0)e.range.stop(1,1)[h?"animate":"css"]({left:g+"%"},c.animate);if(o===1)e.range[h?"animate":"css"]({width:g- +b+"%"},{queue:false,duration:c.animate})}else{if(o===0)e.range.stop(1,1)[h?"animate":"css"]({bottom:g+"%"},c.animate);if(o===1)e.range[h?"animate":"css"]({height:g-b+"%"},{queue:false,duration:c.animate})}b=g});else{f=this.value();j=this._valueMin();l=this._valueMax();g=l!==j?(f-j)/(l-j)*100:0;i[e.orientation==="horizontal"?"left":"bottom"]=g+"%";this.handle.stop(1,1)[h?"animate":"css"](i,c.animate);if(d==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[h?"animate":"css"]({width:g+"%"}, +c.animate);if(d==="max"&&this.orientation==="horizontal")this.range[h?"animate":"css"]({width:100-g+"%"},{queue:false,duration:c.animate});if(d==="min"&&this.orientation==="vertical")this.range.stop(1,1)[h?"animate":"css"]({height:g+"%"},c.animate);if(d==="max"&&this.orientation==="vertical")this.range[h?"animate":"css"]({height:100-g+"%"},{queue:false,duration:c.animate})}}});a.extend(a.ui.slider,{version:"1.8.16"})})(jQuery); +(function(a,d){function c(){return++h}function e(){return++g}var h=0,g=0;a.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading…</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(true)},_setOption:function(i,b){if(i=="selected")this.options.collapsible&& +b==this.options.selected||this.select(b);else{this.options[i]=b;this._tabify()}},_tabId:function(i){return i.title&&i.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+c()},_sanitizeSelector:function(i){return i.replace(/:/g,"\\:")},_cookie:function(){var i=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+e());return a.cookie.apply(null,[i].concat(a.makeArray(arguments)))},_ui:function(i,b){return{tab:i,panel:b,index:this.anchors.index(i)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var i= +a(this);i.html(i.data("label.tabs")).removeData("label.tabs")})},_tabify:function(i){function b(r,u){r.css("display","");!a.support.opacity&&u.opacity&&r[0].style.removeAttribute("filter")}var f=this,j=this.options,l=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=a(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return a("a",this)[0]});this.panels=a([]);this.anchors.each(function(r,u){var v=a(u).attr("href"),w=v.split("#")[0],x;if(w&&(w===location.toString().split("#")[0]|| +(x=a("base")[0])&&w===x.href)){v=u.hash;u.href=v}if(l.test(v))f.panels=f.panels.add(f.element.find(f._sanitizeSelector(v)));else if(v&&v!=="#"){a.data(u,"href.tabs",v);a.data(u,"load.tabs",v.replace(/#.*$/,""));v=f._tabId(u);u.href="#"+v;u=f.element.find("#"+v);if(!u.length){u=a(j.panelTemplate).attr("id",v).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(f.panels[r-1]||f.list);u.data("destroy.tabs",true)}f.panels=f.panels.add(u)}else j.disabled.push(r)});if(i){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); +this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(j.selected===d){location.hash&&this.anchors.each(function(r,u){if(u.hash==location.hash){j.selected=r;return false}});if(typeof j.selected!=="number"&&j.cookie)j.selected=parseInt(f._cookie(),10);if(typeof j.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)j.selected= +this.lis.index(this.lis.filter(".ui-tabs-selected"));j.selected=j.selected||(this.lis.length?0:-1)}else if(j.selected===null)j.selected=-1;j.selected=j.selected>=0&&this.anchors[j.selected]||j.selected<0?j.selected:0;j.disabled=a.unique(j.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(r){return f.lis.index(r)}))).sort();a.inArray(j.selected,j.disabled)!=-1&&j.disabled.splice(a.inArray(j.selected,j.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); +if(j.selected>=0&&this.anchors.length){f.element.find(f._sanitizeSelector(f.anchors[j.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(j.selected).addClass("ui-tabs-selected ui-state-active");f.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[j.selected],f.element.find(f._sanitizeSelector(f.anchors[j.selected].hash))[0]))});this.load(j.selected)}a(window).bind("unload",function(){f.lis.add(f.anchors).unbind(".tabs");f.lis=f.anchors=f.panels=null})}else j.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); +this.element[j.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");j.cookie&&this._cookie(j.selected,j.cookie);i=0;for(var o;o=this.lis[i];i++)a(o)[a.inArray(i,j.disabled)!=-1&&!a(o).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");j.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(j.event!=="mouseover"){var n=function(r,u){u.is(":not(.ui-state-disabled)")&&u.addClass("ui-state-"+r)},k=function(r,u){u.removeClass("ui-state-"+ +r)};this.lis.bind("mouseover.tabs",function(){n("hover",a(this))});this.lis.bind("mouseout.tabs",function(){k("hover",a(this))});this.anchors.bind("focus.tabs",function(){n("focus",a(this).closest("li"))});this.anchors.bind("blur.tabs",function(){k("focus",a(this).closest("li"))})}var m,p;if(j.fx)if(a.isArray(j.fx)){m=j.fx[0];p=j.fx[1]}else m=p=j.fx;var q=p?function(r,u){a(r).closest("li").addClass("ui-tabs-selected ui-state-active");u.hide().removeClass("ui-tabs-hide").animate(p,p.duration||"normal", +function(){b(u,p);f._trigger("show",null,f._ui(r,u[0]))})}:function(r,u){a(r).closest("li").addClass("ui-tabs-selected ui-state-active");u.removeClass("ui-tabs-hide");f._trigger("show",null,f._ui(r,u[0]))},s=m?function(r,u){u.animate(m,m.duration||"normal",function(){f.lis.removeClass("ui-tabs-selected ui-state-active");u.addClass("ui-tabs-hide");b(u,m);f.element.dequeue("tabs")})}:function(r,u){f.lis.removeClass("ui-tabs-selected ui-state-active");u.addClass("ui-tabs-hide");f.element.dequeue("tabs")}; +this.anchors.bind(j.event+".tabs",function(){var r=this,u=a(r).closest("li"),v=f.panels.filter(":not(.ui-tabs-hide)"),w=f.element.find(f._sanitizeSelector(r.hash));if(u.hasClass("ui-tabs-selected")&&!j.collapsible||u.hasClass("ui-state-disabled")||u.hasClass("ui-state-processing")||f.panels.filter(":animated").length||f._trigger("select",null,f._ui(this,w[0]))===false){this.blur();return false}j.selected=f.anchors.index(this);f.abort();if(j.collapsible)if(u.hasClass("ui-tabs-selected")){j.selected= +-1;j.cookie&&f._cookie(j.selected,j.cookie);f.element.queue("tabs",function(){s(r,v)}).dequeue("tabs");this.blur();return false}else if(!v.length){j.cookie&&f._cookie(j.selected,j.cookie);f.element.queue("tabs",function(){q(r,w)});f.load(f.anchors.index(this));this.blur();return false}j.cookie&&f._cookie(j.selected,j.cookie);if(w.length){v.length&&f.element.queue("tabs",function(){s(r,v)});f.element.queue("tabs",function(){q(r,w)});f.load(f.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; +a.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(i){if(typeof i=="string")i=this.anchors.index(this.anchors.filter("[href$="+i+"]"));return i},destroy:function(){var i=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var b= +a.data(this,"href.tabs");if(b)this.href=b;var f=a(this).unbind(".tabs");a.each(["href","load","cache"],function(j,l){f.removeData(l+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});i.cookie&&this._cookie(null,i.cookie);return this},add:function(i, +b,f){if(f===d)f=this.anchors.length;var j=this,l=this.options;b=a(l.tabTemplate.replace(/#\{href\}/g,i).replace(/#\{label\}/g,b));i=!i.indexOf("#")?i.replace("#",""):this._tabId(a("a",b)[0]);b.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var o=j.element.find("#"+i);o.length||(o=a(l.panelTemplate).attr("id",i).data("destroy.tabs",true));o.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(f>=this.lis.length){b.appendTo(this.list);o.appendTo(this.list[0].parentNode)}else{b.insertBefore(this.lis[f]); +o.insertBefore(this.panels[f])}l.disabled=a.map(l.disabled,function(n){return n>=f?++n:n});this._tabify();if(this.anchors.length==1){l.selected=0;b.addClass("ui-tabs-selected ui-state-active");o.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){j._trigger("show",null,j._ui(j.anchors[0],j.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[f],this.panels[f]));return this},remove:function(i){i=this._getIndex(i);var b=this.options,f=this.lis.eq(i).remove(),j=this.panels.eq(i).remove(); +if(f.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(i+(i+1<this.anchors.length?1:-1));b.disabled=a.map(a.grep(b.disabled,function(l){return l!=i}),function(l){return l>=i?--l:l});this._tabify();this._trigger("remove",null,this._ui(f.find("a")[0],j[0]));return this},enable:function(i){i=this._getIndex(i);var b=this.options;if(a.inArray(i,b.disabled)!=-1){this.lis.eq(i).removeClass("ui-state-disabled");b.disabled=a.grep(b.disabled,function(f){return f!=i});this._trigger("enable",null, +this._ui(this.anchors[i],this.panels[i]));return this}},disable:function(i){i=this._getIndex(i);var b=this.options;if(i!=b.selected){this.lis.eq(i).addClass("ui-state-disabled");b.disabled.push(i);b.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[i],this.panels[i]))}return this},select:function(i){i=this._getIndex(i);if(i==-1)if(this.options.collapsible&&this.options.selected!=-1)i=this.options.selected;else return this;this.anchors.eq(i).trigger(this.options.event+".tabs");return this}, +load:function(i){i=this._getIndex(i);var b=this,f=this.options,j=this.anchors.eq(i)[0],l=a.data(j,"load.tabs");this.abort();if(!l||this.element.queue("tabs").length!==0&&a.data(j,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(i).addClass("ui-state-processing");if(f.spinner){var o=a("span",j);o.data("label.tabs",o.html()).html(f.spinner)}this.xhr=a.ajax(a.extend({},f.ajaxOptions,{url:l,success:function(n,k){b.element.find(b._sanitizeSelector(j.hash)).html(n);b._cleanup();f.cache&&a.data(j, +"cache.tabs",true);b._trigger("load",null,b._ui(b.anchors[i],b.panels[i]));try{f.ajaxOptions.success(n,k)}catch(m){}},error:function(n,k){b._cleanup();b._trigger("load",null,b._ui(b.anchors[i],b.panels[i]));try{f.ajaxOptions.error(n,k,i,j)}catch(m){}}}));b.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, +url:function(i,b){this.anchors.eq(i).removeData("cache.tabs").data("load.tabs",b);return this},length:function(){return this.anchors.length}});a.extend(a.ui.tabs,{version:"1.8.16"});a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(i,b){var f=this,j=this.options,l=f._rotate||(f._rotate=function(o){clearTimeout(f.rotation);f.rotation=setTimeout(function(){var n=j.selected;f.select(++n<f.anchors.length?n:0)},i);o&&o.stopPropagation()});b=f._unrotate||(f._unrotate=!b?function(o){o.clientX&& +f.rotate(null)}:function(){t=j.selected;l()});if(i){this.element.bind("tabsshow",l);this.anchors.bind(j.event+".tabs",b);l()}else{clearTimeout(f.rotation);this.element.unbind("tabsshow",l);this.anchors.unbind(j.event+".tabs",b);delete this._rotate;delete this._unrotate}return this}})})(jQuery); diff --git a/frontend/imbreak/js/jquery.cookie.js b/frontend/imbreak/js/jquery.cookie.js new file mode 100755 index 0000000..6036754 --- /dev/null +++ b/frontend/imbreak/js/jquery.cookie.js @@ -0,0 +1,96 @@ +/**
+ * Cookie plugin
+ *
+ * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ */
+
+/**
+ * Create a cookie with the given name and value and other optional parameters.
+ *
+ * @example $.cookie('the_cookie', 'the_value');
+ * @desc Set the value of a cookie.
+ * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
+ * @desc Create a cookie with all available options.
+ * @example $.cookie('the_cookie', 'the_value');
+ * @desc Create a session cookie.
+ * @example $.cookie('the_cookie', null);
+ * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
+ * used when the cookie was set.
+ *
+ * @param String name The name of the cookie.
+ * @param String value The value of the cookie.
+ * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
+ * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
+ * If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
+ * If set to null or omitted, the cookie will be a session cookie and will not be retained
+ * when the the browser exits.
+ * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
+ * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
+ * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
+ * require a secure protocol (like HTTPS).
+ * @type undefined
+ *
+ * @name $.cookie
+ * @cat Plugins/Cookie
+ * @author Klaus Hartl/klaus.hartl@stilbuero.de
+ */
+
+/**
+ * Get the value of a cookie with the given name.
+ *
+ * @example $.cookie('the_cookie');
+ * @desc Get the value of a cookie.
+ *
+ * @param String name The name of the cookie.
+ * @return The value of the cookie.
+ * @type String
+ *
+ * @name $.cookie
+ * @cat Plugins/Cookie
+ * @author Klaus Hartl/klaus.hartl@stilbuero.de
+ */
+jQuery.cookie = function(name, value, options) {
+ if (typeof value != 'undefined') { // name and value given, set cookie
+ options = options || {};
+ if (value === null) {
+ value = '';
+ options.expires = -1;
+ }
+ var expires = '';
+ if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
+ var date;
+ if (typeof options.expires == 'number') {
+ date = new Date();
+ date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
+ } else {
+ date = options.expires;
+ }
+ expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
+ }
+ // CAUTION: Needed to parenthesize options.path and options.domain
+ // in the following expressions, otherwise they evaluate to undefined
+ // in the packed version for some reason...
+ var path = options.path ? '; path=' + (options.path) : '';
+ var domain = options.domain ? '; domain=' + (options.domain) : '';
+ var secure = options.secure ? '; secure' : '';
+ document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
+ } else { // only name given, get cookie
+ var cookieValue = null;
+ if (document.cookie && document.cookie != '') {
+ var cookies = document.cookie.split(';');
+ for (var i = 0; i < cookies.length; i++) {
+ var cookie = jQuery.trim(cookies[i]);
+ // Does this cookie string begin with the name we want?
+ if (cookie.substring(0, name.length + 1) == (name + '=')) {
+ cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
+ break;
+ }
+ }
+ }
+ return cookieValue;
+ }
+};
\ No newline at end of file diff --git a/frontend/imbreak/js/jquery.min.js b/frontend/imbreak/js/jquery.min.js new file mode 100755 index 0000000..198b3ff --- /dev/null +++ b/frontend/imbreak/js/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.1 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!ck[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cl||(cl=c.createElement("iframe"),cl.frameBorder=cl.width=cl.height=0),b.appendChild(cl);if(!cm||!cl.createElement)cm=(cl.contentWindow||cl.contentDocument).document,cm.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),cm.close();d=cm.createElement(a),cm.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cl)}ck[a]=e}return ck[a]}function cu(a,b){var c={};f.each(cq.concat.apply([],cq.slice(0,b)),function(){c[this]=a});return c}function ct(){cr=b}function cs(){setTimeout(ct,0);return cr=f.now()}function cj(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ci(){try{return new a.XMLHttpRequest}catch(b){}}function cc(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function cb(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function ca(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bE.test(a)?d(a,e):ca(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)ca(a+"["+e+"]",b[e],c,d);else d(a,b)}function b_(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bT,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bP),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bC(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bx:by,g=0,h=e.length;if(d>0){if(c!=="border")for(;g<h;g++)c||(d-=parseFloat(f.css(a,"padding"+e[g]))||0),c==="margin"?d+=parseFloat(f.css(a,c+e[g]))||0:d-=parseFloat(f.css(a,"border"+e[g]+"Width"))||0;return d+"px"}d=bz(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0;if(c)for(;g<h;g++)d+=parseFloat(f.css(a,"padding"+e[g]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+e[g]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+e[g]))||0);return d+"px"}function bp(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c+(i[c][d].namespace?".":"")+i[c][d].namespace,i[c][d],i[c][d].data)}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test("Â ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?m(g):h==="function"&&(!a.unique||!o.has(g))&&c.push(g)},n=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,l=j||0,j=0,k=c.length;for(;c&&l<k;l++)if(c[l].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}i=!1,c&&(a.once?e===!0?o.disable():c=[]:d&&d.length&&(e=d.shift(),o.fireWith(e[0],e[1])))},o={add:function(){if(c){var a=c.length;m(arguments),i?k=c.length:e&&e!==!0&&(j=a,n(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){i&&f<=k&&(k--,f<=l&&l--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&o.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(i?a.once||d.push([b,c]):(!a.once||!e)&&n(b,c));return this},fire:function(){o.fireWith(this,arguments);return this},fired:function(){return!!e}};return o};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p,q=c.createElement("div"),r=c.documentElement;q.setAttribute("className","t"),q.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=q.getElementsByTagName("*"),e=q.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=q.getElementsByTagName("input")[0],b={leadingWhitespace:q.firstChild.nodeType===3,tbody:!q.getElementsByTagName("tbody").length,htmlSerialize:!!q.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:q.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete q.test}catch(s){b.deleteExpando=!1}!q.addEventListener&&q.attachEvent&&q.fireEvent&&(q.attachEvent("onclick",function(){b.noCloneEvent=!1}),q.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),q.appendChild(i),k=c.createDocumentFragment(),k.appendChild(q.lastChild),b.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,k.removeChild(i),k.appendChild(q),q.innerHTML="",a.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",q.style.width="2px",q.appendChild(j),b.reliableMarginRight=(parseInt((a.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(q.attachEvent)for(o in{submit:1,change:1,focusin:1})n="on"+o,p=n in q,p||(q.setAttribute(n,"return;"),p=typeof q[n]=="function"),b[o+"Bubbles"]=p;k.removeChild(q),k=g=h=j=q=i=null,f(function(){var a,d,e,g,h,i,j,k,m,n,o,r=c.getElementsByTagName("body")[0];!r||(j=1,k="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",m="visibility:hidden;border:0;",n="style='"+k+"border:5px solid #000;padding:0;'",o="<div "+n+"><div></div></div>"+"<table "+n+" cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",a=c.createElement("div"),a.style.cssText=m+"width:0;height:0;position:static;top:0;margin-top:"+j+"px",r.insertBefore(a,r.firstChild),q=c.createElement("div"),a.appendChild(q),q.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",l=q.getElementsByTagName("td"),p=l[0].offsetHeight===0,l[0].style.display="",l[1].style.display="none",b.reliableHiddenOffsets=p&&l[0].offsetHeight===0,q.innerHTML="",q.style.width=q.style.paddingLeft="1px",f.boxModel=b.boxModel=q.offsetWidth===2,typeof q.style.zoom!="undefined"&&(q.style.display="inline",q.style.zoom=1,b.inlineBlockNeedsLayout=q.offsetWidth===2,q.style.display="",q.innerHTML="<div style='width:4px;'></div>",b.shrinkWrapBlocks=q.offsetWidth!==2),q.style.cssText=k+m,q.innerHTML=o,d=q.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,i={doesNotAddBorder:e.offsetTop!==5,doesAddBorderForTableAndCells:h.offsetTop===5},e.style.position="fixed",e.style.top="20px",i.fixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",i.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,i.doesNotIncludeMarginInBodyOffset=r.offsetTop!==j,r.removeChild(a),q=a=null,f.extend(b,i))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h=null;if(typeof a=="undefined"){if(this.length){h=f.data(this[0]);if(this[0].nodeType===1&&!f._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var i=0,j=e.length;i<j;i++)g=e[i].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),l(this[0],g,h[g]));f._data(this[0],"parsedAttrs",!0)}}return h}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split("."),d[1]=d[1]?"."+d[1]:"";if(c===b){h=this.triggerHandler("getData"+d[1]+"!",[d[0]]),h===b&&this.length&&(h=f.data(this[0],a),h=l(this[0],a,h));return h===b&&d[1]?this.data(d[0]):h}return this.each(function(){var b=f(this),e=[d[0],c];b.triggerHandler("setData"+d[1]+"!",e),f.data(this,a,c),b.triggerHandler("changeData"+d[1]+"!",e)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise()}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;h<g;h++)e=d[h],e&&(c=f.propFix[e]||e,f.attr(a,e,""),a.removeAttribute(v?e:c),u.test(e)&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/\bhover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")}; +f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=[],j,k,l,m,n,o,p,q,r,s,t;g[0]=c,c.delegateTarget=this;if(e&&!c.target.disabled&&(!c.button||c.type!=="click")){m=f(this),m.context=this.ownerDocument||this;for(l=c.target;l!=this;l=l.parentNode||this){o={},q=[],m[0]=l;for(j=0;j<e;j++)r=d[j],s=r.selector,o[s]===b&&(o[s]=r.quick?H(l,r.quick):m.is(s)),o[s]&&q.push(r);q.length&&i.push({elem:l,matches:q})}}d.length>e&&i.push({elem:this,matches:d.slice(e)});for(j=0;j<i.length&&!c.isPropagationStopped();j++){p=i[j],c.currentTarget=p.elem;for(k=0;k<p.matches.length&&!c.isImmediatePropagationStopped();k++){r=p.matches[k];if(h||!c.namespace&&!r.namespace||c.namespace_re&&c.namespace_re.test(r.namespace))c.data=r.data,c.handleObj=r,n=((f.event.special[r.origType]||{}).handle||r.handler).apply(p.elem,g),n!==b&&(c.result=n,n===!1&&(c.preventDefault(),c.stopPropagation()))}}return c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0)}),d._submit_attached=!0)})},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on.call(this,a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.type+"."+e.namespace:e.type,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.POS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function() +{for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bp)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||!bc.test("<"+a.nodeName)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");b===c?bh.appendChild(o):U(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bn(k[i]);else bn(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bq=/alpha\([^)]*\)/i,br=/opacity=([^)]*)/,bs=/([A-Z]|^ms)/g,bt=/^-?\d+(?:px)?$/i,bu=/^-?\d/,bv=/^([\-+])=([\-+.\de]+)/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bv.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bC(a,b,d);f.swap(a,bw,function(){e=bC(a,b,d)});return e}},set:function(a,b){if(!bt.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return br.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bq,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bq.test(g)?g.replace(bq,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,b){var c,d,e;b=b.replace(bs,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b)));return c}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bt.test(f)&&bu.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bD=/%20/g,bE=/\[\]$/,bF=/\r?\n/g,bG=/#.*$/,bH=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bI=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bJ=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bK=/^(?:GET|HEAD)$/,bL=/^\/\//,bM=/\?/,bN=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bO=/^(?:select|textarea)/i,bP=/\s+/,bQ=/([?&])_=[^&]*/,bR=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bS=f.fn.load,bT={},bU={},bV,bW,bX=["*/"]+["*"];try{bV=e.href}catch(bY){bV=c.createElement("a"),bV.href="",bV=bV.href}bW=bR.exec(bV.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bS)return bS.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bN,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bO.test(this.nodeName)||bI.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bF,"\r\n")}}):{name:b.name,value:c.replace(bF,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b_(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b_(a,b);return a},ajaxSettings:{url:bV,isLocal:bJ.test(bW[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bX},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bZ(bT),ajaxTransport:bZ(bU),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cb(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cc(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bH.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bG,"").replace(bL,bW[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bP),d.crossDomain==null&&(r=bR.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bW[1]&&r[2]==bW[2]&&(r[3]||(r[1]==="http:"?80:443))==(bW[3]||(bW[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bT,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bK.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bM.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bQ,"$1_="+x);d.url=y+(y===d.url?(bM.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bX+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bU,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)ca(g,a[g],c,e);return d.join("&").replace(bD,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cd=f.now(),ce=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cd++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ce.test(b.url)||e&&ce.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ce,l),b.url===j&&(e&&(k=k.replace(ce,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cf=a.ActiveXObject?function(){for(var a in ch)ch[a](0,1)}:!1,cg=0,ch;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ci()||cj()}:ci,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cf&&delete ch[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cg,cf&&(ch||(ch={},f(a).unload(cf)),ch[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var ck={},cl,cm,cn=/^(?:toggle|show|hide)$/,co=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cp,cq=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cr;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cv(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cn.test(h)?(o=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),o?(f._data(this,"toggle"+i,o==="show"?"hide":"show"),j[o]()):j[h]()):(k=co.exec(h),l=j.cur(),k?(m=parseFloat(k[2]),n=k[3]||(f.cssNumber[i]?"":"px"),n!=="px"&&(f.style(this,i,(m||1)+n),l=(m||1)/j.cur()*l,f.style(this,i,l+n)),k[1]&&(m=(k[1]==="-="?-1:1)*m+l),j.custom(l,m,n)):j.custom(l,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cr||cs(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){e.options.hide&&f._data(e.elem,"fxshow"+e.prop)===b&&f._data(e.elem,"fxshow"+e.prop,e.start)},h()&&f.timers.push(h)&&!cp&&(cp=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cr||cs(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cp),cp=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(["width","height"],function(a,b){f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.support.fixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.support.fixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
\ No newline at end of file diff --git a/frontend/imbreak/newindex.html b/frontend/imbreak/newindex.html new file mode 100755 index 0000000..64e0be2 --- /dev/null +++ b/frontend/imbreak/newindex.html @@ -0,0 +1,74 @@ +<html> +<head> + <link href='jquery-ui-1.8.16.custom.css' rel='stylesheet' type='text/css' /> + <link href='cssreset.css' rel='stylesheet' type='text/css'/> +</head> +<body> +<!--<form id="theform">--> +<br> +BREAK TYPE <select id="breaktype"> + <option selected="selected" value='CLASSIC'>CLASSIC</option> + <option value="REDUX">REDUX</option> + <option value="BLURRY_BREAK">BLURRY BREAK</option> + <option value="BLURRY_BREAK_2">BLURRY BREAK 2</option> + <option value="RGB_WASH">RGB WASH</option> + <option value="RGB_WASH_2">RGB WASH 2</option> + <option value="NOISY_BREAK">NOISY BREAK</option> + <option value="NOISY_BREAK_2">NOISY BREAK 2</option> + <option value="BROKEN_VIGNETTE">BROKEN VIGNETTE</option> + <option value="FAX_MACHINE">FAX MACHINE</option> + <option value="STRIPES">STRIPES</option> + + <option value="PHOTOCOPY">PHOTOCOPY</option> +</select> + + +<br> + <div id='breakmodes'>BREAK MODES: + <input type='radio' name='modeswitch' id='gradual' value='gradual' checked='checked'></input>gradual + <input type='radio' name='modeswitch' id='subtle' value='subtle'></input>subtle + <input type='radio' name='modeswitch' id='extreme' value='extreme'></input>extreme + </div> + <br> +BREAK ANGLE <input id='breakangle' type='text' value='0'></input> +<div id="breakangleslider" class="slider"></div><br> +<div id="expanded_check"></div><!--add click event in javascript--> +IMAGE URL <input type="text" id="url"></input><br> +<button id="breakbutton">BREAK IT!</button><br> +USERNAME <input type="text" id="username"></input> + +<!--</form>--> +<div id='result'> + <span id="output-cmd" class='results'> +</span> + <span id="output-img" class='results'></span> + <input id="output-url" class='results'></input> + <div id="output-info" class='results'></div> +</div> +<div id="error" style="background-color:red;height:40px;width:400px;"></div> +<span class='copyright' style="position:fixed; bottom:10px; left:10px;">COPYRIGHT 2011 PEPPER DREAMTEAMER</span> +<script type="text/javascript" src="jquery.min.js"></script> +<script type="text/javascript" src="jquery-ui.min.js"></script> +<script type="text/javascript" src="main.js"></script> +<script type="text/javascript"> +$('input').click(function(){$('#copyright').html("")}); +$(function(){ +$( "#breakangleslider" ).slider({ + value:0, + min: -180, + max: 180, + step: 1, + slide: function( event, ui ) { + $( "#breakangle" ).val(ui.value); + } + }); + $( "#breakangle" ).val($( "#breakangleslider" ).slider( "value" ) ); +}); +$('#copyright').click(function(){$('#copyright').html("")}); +</script> + +</body> + + + +</html> diff --git a/frontend/imbreak/semitrans1.png b/frontend/imbreak/semitrans1.png Binary files differnew file mode 100755 index 0000000..d6c9525 --- /dev/null +++ b/frontend/imbreak/semitrans1.png diff --git a/frontend/imbreak/thegif/1.gif b/frontend/imbreak/thegif/1.gif Binary files differnew file mode 100755 index 0000000..f4bd658 --- /dev/null +++ b/frontend/imbreak/thegif/1.gif diff --git a/frontend/imbreak/thegif/2.gif b/frontend/imbreak/thegif/2.gif Binary files differnew file mode 100755 index 0000000..bba2284 --- /dev/null +++ b/frontend/imbreak/thegif/2.gif diff --git a/frontend/imbreak/thegif/2.jpg b/frontend/imbreak/thegif/2.jpg Binary files differnew file mode 100755 index 0000000..e390e59 --- /dev/null +++ b/frontend/imbreak/thegif/2.jpg diff --git a/frontend/imbreak/thegif/3.gif b/frontend/imbreak/thegif/3.gif Binary files differnew file mode 100755 index 0000000..7ca1e90 --- /dev/null +++ b/frontend/imbreak/thegif/3.gif diff --git a/frontend/imbreak/thegif/4.gif b/frontend/imbreak/thegif/4.gif Binary files differnew file mode 100755 index 0000000..d5e6f2f --- /dev/null +++ b/frontend/imbreak/thegif/4.gif diff --git a/frontend/imbreak/thegif/5.gif b/frontend/imbreak/thegif/5.gif Binary files differnew file mode 100755 index 0000000..08c8d42 --- /dev/null +++ b/frontend/imbreak/thegif/5.gif diff --git a/frontend/imbreak/thegif/6.gif b/frontend/imbreak/thegif/6.gif Binary files differnew file mode 100755 index 0000000..0768847 --- /dev/null +++ b/frontend/imbreak/thegif/6.gif diff --git a/frontend/imbreak/thegif/6.jpg b/frontend/imbreak/thegif/6.jpg Binary files differnew file mode 100755 index 0000000..423cf71 --- /dev/null +++ b/frontend/imbreak/thegif/6.jpg diff --git a/frontend/imbreak/thegif/6.sun b/frontend/imbreak/thegif/6.sun Binary files differnew file mode 100755 index 0000000..7846a53 --- /dev/null +++ b/frontend/imbreak/thegif/6.sun diff --git a/frontend/imbreak/thegif/three.gif b/frontend/imbreak/thegif/three.gif Binary files differnew file mode 100755 index 0000000..99021d5 --- /dev/null +++ b/frontend/imbreak/thegif/three.gif diff --git a/frontend/imdither/.gitignore b/frontend/imdither/.gitignore new file mode 100755 index 0000000..85254be --- /dev/null +++ b/frontend/imdither/.gitignore @@ -0,0 +1,2 @@ +dithers/.* +dithers/* diff --git a/frontend/imdither/18.bmp b/frontend/imdither/18.bmp Binary files differnew file mode 100755 index 0000000..058594d --- /dev/null +++ b/frontend/imdither/18.bmp diff --git a/frontend/imdither/bottle.py b/frontend/imdither/bottle.py new file mode 100755 index 0000000..40a858d --- /dev/null +++ b/frontend/imdither/bottle.py @@ -0,0 +1,3605 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +Bottle is a fast and simple micro-framework for small web applications. It +offers request dispatching (Routes) with url parameter support, templates, +a built-in HTTP Server and adapters for many third party WSGI/HTTP-server and +template engines - all in a single file and with no dependencies other than the +Python Standard Library. + +Homepage and documentation: http://bottlepy.org/ + +Copyright (c) 2012, Marcel Hellkamp. +License: MIT (see LICENSE for details) +""" + +from __future__ import with_statement + +__author__ = 'Marcel Hellkamp' +__version__ = '0.12-dev' +__license__ = 'MIT' + +# The gevent server adapter needs to patch some modules before they are imported +# This is why we parse the commandline parameters here but handle them later +if __name__ == '__main__': + from optparse import OptionParser + _cmd_parser = OptionParser(usage="usage: %prog [options] package.module:app") + _opt = _cmd_parser.add_option + _opt("--version", action="store_true", help="show version number.") + _opt("-b", "--bind", metavar="ADDRESS", help="bind socket to ADDRESS.") + _opt("-s", "--server", default='wsgiref', help="use SERVER as backend.") + _opt("-p", "--plugin", action="append", help="install additional plugin/s.") + _opt("--debug", action="store_true", help="start server in debug mode.") + _opt("--reload", action="store_true", help="auto-reload on file changes.") + _cmd_options, _cmd_args = _cmd_parser.parse_args() + if _cmd_options.server and _cmd_options.server.startswith('gevent'): + import gevent.monkey; gevent.monkey.patch_all() + +import base64, cgi, email.utils, functools, hmac, imp, itertools, mimetypes,\ + os, re, subprocess, sys, tempfile, threading, time, warnings + +from datetime import date as datedate, datetime, timedelta +from tempfile import TemporaryFile +from traceback import format_exc, print_exc +from inspect import getargspec + +try: from simplejson import dumps as json_dumps, loads as json_lds +except ImportError: # pragma: no cover + try: from json import dumps as json_dumps, loads as json_lds + except ImportError: + try: from django.utils.simplejson import dumps as json_dumps, loads as json_lds + except ImportError: + def json_dumps(data): + raise ImportError("JSON support requires Python 2.6 or simplejson.") + json_lds = json_dumps + + + +# We now try to fix 2.5/2.6/3.1/3.2 incompatibilities. +# It ain't pretty but it works... Sorry for the mess. + +py = sys.version_info +py3k = py >= (3, 0, 0) +py25 = py < (2, 6, 0) +py31 = (3, 1, 0) <= py < (3, 2, 0) + +# Workaround for the missing "as" keyword in py3k. +def _e(): return sys.exc_info()[1] + +# Workaround for the "print is a keyword/function" Python 2/3 dilemma +# and a fallback for mod_wsgi (resticts stdout/err attribute access) +try: + _stdout, _stderr = sys.stdout.write, sys.stderr.write +except IOError: + _stdout = lambda x: sys.stdout.write(x) + _stderr = lambda x: sys.stderr.write(x) + +# Lots of stdlib and builtin differences. +if py3k: + import http.client as httplib + import _thread as thread + from urllib.parse import urljoin, SplitResult as UrlSplitResult + from urllib.parse import urlencode, quote as urlquote, unquote as urlunquote + urlunquote = functools.partial(urlunquote, encoding='latin1') + from http.cookies import SimpleCookie + from collections import MutableMapping as DictMixin + import pickle + from io import BytesIO + from configparser import ConfigParser + basestring = str + unicode = str + json_loads = lambda s: json_lds(touni(s)) + callable = lambda x: hasattr(x, '__call__') + imap = map + def _raise(*a): raise a[0](a[1]).with_traceback(a[2]) +else: # 2.x + import httplib + import thread + from urlparse import urljoin, SplitResult as UrlSplitResult + from urllib import urlencode, quote as urlquote, unquote as urlunquote + from Cookie import SimpleCookie + from itertools import imap + import cPickle as pickle + from StringIO import StringIO as BytesIO + from ConfigParser import SafeConfigParser as ConfigParser + if py25: + msg = "Python 2.5 support may be dropped in future versions of Bottle." + warnings.warn(msg, DeprecationWarning) + from UserDict import DictMixin + def next(it): return it.next() + bytes = str + else: # 2.6, 2.7 + from collections import MutableMapping as DictMixin + json_loads = json_lds + eval(compile('def _raise(*a): raise a[0], a[1], a[2]', '<py3fix>', 'exec')) + +# Some helpers for string/byte handling +def tob(s, enc='utf8'): + return s.encode(enc) if isinstance(s, unicode) else bytes(s) +def touni(s, enc='utf8', err='strict'): + return s.decode(enc, err) if isinstance(s, bytes) else unicode(s) +tonat = touni if py3k else tob + +# 3.2 fixes cgi.FieldStorage to accept bytes (which makes a lot of sense). +# 3.1 needs a workaround. +if py31: + from io import TextIOWrapper + class NCTextIOWrapper(TextIOWrapper): + def close(self): pass # Keep wrapped buffer open. + + +# A bug in functools causes it to break if the wrapper is an instance method +def update_wrapper(wrapper, wrapped, *a, **ka): + try: functools.update_wrapper(wrapper, wrapped, *a, **ka) + except AttributeError: pass + + + +# These helpers are used at module level and need to be defined first. +# And yes, I know PEP-8, but sometimes a lower-case classname makes more sense. + +def depr(message, hard=False): + warnings.warn(message, DeprecationWarning, stacklevel=3) + +def makelist(data): # This is just to handy + if isinstance(data, (tuple, list, set, dict)): return list(data) + elif data: return [data] + else: return [] + + +class DictProperty(object): + ''' Property that maps to a key in a local dict-like attribute. ''' + def __init__(self, attr, key=None, read_only=False): + self.attr, self.key, self.read_only = attr, key, read_only + + def __call__(self, func): + functools.update_wrapper(self, func, updated=[]) + self.getter, self.key = func, self.key or func.__name__ + return self + + def __get__(self, obj, cls): + if obj is None: return self + key, storage = self.key, getattr(obj, self.attr) + if key not in storage: storage[key] = self.getter(obj) + return storage[key] + + def __set__(self, obj, value): + if self.read_only: raise AttributeError("Read-Only property.") + getattr(obj, self.attr)[self.key] = value + + def __delete__(self, obj): + if self.read_only: raise AttributeError("Read-Only property.") + del getattr(obj, self.attr)[self.key] + + +class cached_property(object): + ''' A property that is only computed once per instance and then replaces + itself with an ordinary attribute. Deleting the attribute resets the + property. ''' + + def __init__(self, func): + self.__doc__ = getattr(func, '__doc__') + self.func = func + + def __get__(self, obj, cls): + if obj is None: return self + value = obj.__dict__[self.func.__name__] = self.func(obj) + return value + + +class lazy_attribute(object): + ''' A property that caches itself to the class object. ''' + def __init__(self, func): + functools.update_wrapper(self, func, updated=[]) + self.getter = func + + def __get__(self, obj, cls): + value = self.getter(cls) + setattr(cls, self.__name__, value) + return value + + + + + + +############################################################################### +# Exceptions and Events ######################################################## +############################################################################### + + +class BottleException(Exception): + """ A base class for exceptions used by bottle. """ + pass + + + + + + +############################################################################### +# Routing ###################################################################### +############################################################################### + + +class RouteError(BottleException): + """ This is a base class for all routing related exceptions """ + + +class RouteReset(BottleException): + """ If raised by a plugin or request handler, the route is reset and all + plugins are re-applied. """ + +class RouterUnknownModeError(RouteError): pass + + +class RouteSyntaxError(RouteError): + """ The route parser found something not supported by this router. """ + + +class RouteBuildError(RouteError): + """ The route could not be built. """ + + +def _re_flatten(p): + ''' Turn all capturing groups in a regular expression pattern into + non-capturing groups. ''' + if '(' not in p: return p + return re.sub(r'(\\*)(\(\?P<[^>]+>|\((?!\?))', + lambda m: m.group(0) if len(m.group(1)) % 2 else m.group(1) + '(?:', p) + + +class Router(object): + ''' A Router is an ordered collection of route->target pairs. It is used to + efficiently match WSGI requests against a number of routes and return + the first target that satisfies the request. The target may be anything, + usually a string, ID or callable object. A route consists of a path-rule + and a HTTP method. + + The path-rule is either a static path (e.g. `/contact`) or a dynamic + path that contains wildcards (e.g. `/wiki/<page>`). The wildcard syntax + and details on the matching order are described in docs:`routing`. + ''' + + default_pattern = '[^/]+' + default_filter = 're' + + #: The current CPython regexp implementation does not allow more + #: than 99 matching groups per regular expression. + _MAX_GROUPS_PER_PATTERN = 99 + + def __init__(self, strict=False): + self.rules = [] # All rules in order + self._groups = {} # index of regexes to find them in dyna_routes + self.builder = {} # Data structure for the url builder + self.static = {} # Search structure for static routes + self.dyna_routes = {} + self.dyna_regexes = {} # Search structure for dynamic routes + #: If true, static routes are no longer checked first. + self.strict_order = strict + self.filters = { + 're': lambda conf: + (_re_flatten(conf or self.default_pattern), None, None), + 'int': lambda conf: (r'-?\d+', int, lambda x: str(int(x))), + 'float': lambda conf: (r'-?[\d.]+', float, lambda x: str(float(x))), + 'path': lambda conf: (r'.+?', None, None)} + + def add_filter(self, name, func): + ''' Add a filter. The provided function is called with the configuration + string as parameter and must return a (regexp, to_python, to_url) tuple. + The first element is a string, the last two are callables or None. ''' + self.filters[name] = func + + rule_syntax = re.compile('(\\\\*)'\ + '(?:(?::([a-zA-Z_][a-zA-Z_0-9]*)?()(?:#(.*?)#)?)'\ + '|(?:<([a-zA-Z_][a-zA-Z_0-9]*)?(?::([a-zA-Z_]*)'\ + '(?::((?:\\\\.|[^\\\\>]+)+)?)?)?>))') + + def _itertokens(self, rule): + offset, prefix = 0, '' + for match in self.rule_syntax.finditer(rule): + prefix += rule[offset:match.start()] + g = match.groups() + if len(g[0])%2: # Escaped wildcard + prefix += match.group(0)[len(g[0]):] + offset = match.end() + continue + if prefix: + yield prefix, None, None + name, filtr, conf = g[4:7] if g[2] is None else g[1:4] + yield name, filtr or 'default', conf or None + offset, prefix = match.end(), '' + if offset <= len(rule) or prefix: + yield prefix+rule[offset:], None, None + + def add(self, rule, method, target, name=None): + ''' Add a new rule or replace the target for an existing rule. ''' + anons = 0 # Number of anonymous wildcards found + keys = [] # Names of keys + pattern = '' # Regular expression pattern with named groups + filters = [] # Lists of wildcard input filters + builder = [] # Data structure for the URL builder + is_static = True + + for key, mode, conf in self._itertokens(rule): + if mode: + is_static = False + if mode == 'default': mode = self.default_filter + mask, in_filter, out_filter = self.filters[mode](conf) + if not key: + pattern += '(?:%s)' % mask + key = 'anon%d' % anons + anons += 1 + else: + pattern += '(?P<%s>%s)' % (key, mask) + keys.append(key) + if in_filter: filters.append((key, in_filter)) + builder.append((key, out_filter or str)) + elif key: + pattern += re.escape(key) + builder.append((None, key)) + + self.builder[rule] = builder + if name: self.builder[name] = builder + + if is_static and not self.strict_order: + self.static.setdefault(method, {}) + self.static[method][self.build(rule)] = (target, None) + return + + try: + re_pattern = re.compile('^(%s)$' % pattern) + re_match = re_pattern.match + except re.error: + raise RouteSyntaxError("Could not add Route: %s (%s)" % (rule, _e())) + + if filters: + def getargs(path): + url_args = re_match(path).groupdict() + for name, wildcard_filter in filters: + try: + url_args[name] = wildcard_filter(url_args[name]) + except ValueError: + raise HTTPError(400, 'Path has wrong format.') + return url_args + elif re_pattern.groupindex: + def getargs(path): + return re_match(path).groupdict() + else: + getargs = None + + flatpat = _re_flatten(pattern) + whole_rule = (rule, flatpat, target, getargs) + + if (flatpat, method) in self._groups: + if DEBUG: + msg = 'Route <%s %s> overwrites a previously defined route' + warnings.warn(msg % (method, rule), RuntimeWarning) + self.dyna_routes[method][self._groups[flatpat, method]] = whole_rule + else: + self.dyna_routes.setdefault(method, []).append(whole_rule) + self._groups[flatpat, method] = len(self.dyna_routes[method]) - 1 + + self._compile(method) + + def _compile(self, method): + all_rules = self.dyna_routes[method] + comborules = self.dyna_regexes[method] = [] + maxgroups = self._MAX_GROUPS_PER_PATTERN + for x in range(0, len(all_rules), maxgroups): + some = all_rules[x:x+maxgroups] + combined = (flatpat for (_, flatpat, _, _) in some) + combined = '|'.join('(^%s$)' % flatpat for flatpat in combined) + combined = re.compile(combined).match + rules = [(target, getargs) for (_, _, target, getargs) in some] + comborules.append((combined, rules)) + + def build(self, _name, *anons, **query): + ''' Build an URL by filling the wildcards in a rule. ''' + builder = self.builder.get(_name) + if not builder: raise RouteBuildError("No route with that name.", _name) + try: + for i, value in enumerate(anons): query['anon%d'%i] = value + url = ''.join([f(query.pop(n)) if n else f for (n,f) in builder]) + return url if not query else url+'?'+urlencode(query) + except KeyError: + raise RouteBuildError('Missing URL argument: %r' % _e().args[0]) + + def match(self, environ): + ''' Return a (target, url_agrs) tuple or raise HTTPError(400/404/405). ''' + verb = environ['REQUEST_METHOD'].upper() + path = environ['PATH_INFO'] or '/' + target = None + methods = [verb, 'GET', 'ANY'] if verb == 'HEAD' else [verb, 'ANY'] + + for method in methods: + if method in self.static and path in self.static[method]: + target, getargs = self.static[method][path] + return target, getargs(path) if getargs else {} + elif method in self.dyna_regexes: + for combined, rules in self.dyna_regexes[method]: + match = combined(path) + if match: + target, getargs = rules[match.lastindex - 1] + return target, getargs(path) if getargs else {} + + # No matching route found. Collect alternative methods for 405 response + allowed = set([]) + nocheck = set(methods) + for method in set(self.static) - nocheck: + if path in self.static[method]: + allowed.add(verb) + for method in set(self.dyna_regexes) - allowed - nocheck: + for combined, rules in self.dyna_regexes[method]: + match = combined(path) + if match: + allowed.add(method) + if allowed: + allow_header = ",".join(sorted(allowed)) + raise HTTPError(405, "Method not allowed.", Allow=allow_header) + + # No matching route and no alternative method found. We give up + raise HTTPError(404, "Not found: " + repr(path)) + + + + + + +class Route(object): + ''' This class wraps a route callback along with route specific metadata and + configuration and applies Plugins on demand. It is also responsible for + turing an URL path rule into a regular expression usable by the Router. + ''' + + def __init__(self, app, rule, method, callback, name=None, + plugins=None, skiplist=None, **config): + #: The application this route is installed to. + self.app = app + #: The path-rule string (e.g. ``/wiki/:page``). + self.rule = rule + #: The HTTP method as a string (e.g. ``GET``). + self.method = method + #: The original callback with no plugins applied. Useful for introspection. + self.callback = callback + #: The name of the route (if specified) or ``None``. + self.name = name or None + #: A list of route-specific plugins (see :meth:`Bottle.route`). + self.plugins = plugins or [] + #: A list of plugins to not apply to this route (see :meth:`Bottle.route`). + self.skiplist = skiplist or [] + #: Additional keyword arguments passed to the :meth:`Bottle.route` + #: decorator are stored in this dictionary. Used for route-specific + #: plugin configuration and meta-data. + self.config = ConfigDict().load_dict(config) + + def __call__(self, *a, **ka): + depr("Some APIs changed to return Route() instances instead of"\ + " callables. Make sure to use the Route.call method and not to"\ + " call Route instances directly.") + return self.call(*a, **ka) + + @cached_property + def call(self): + ''' The route callback with all plugins applied. This property is + created on demand and then cached to speed up subsequent requests.''' + return self._make_callback() + + def reset(self): + ''' Forget any cached values. The next time :attr:`call` is accessed, + all plugins are re-applied. ''' + self.__dict__.pop('call', None) + + def prepare(self): + ''' Do all on-demand work immediately (useful for debugging).''' + self.call + + @property + def _context(self): + depr('Switch to Plugin API v2 and access the Route object directly.') + return dict(rule=self.rule, method=self.method, callback=self.callback, + name=self.name, app=self.app, config=self.config, + apply=self.plugins, skip=self.skiplist) + + def all_plugins(self): + ''' Yield all Plugins affecting this route. ''' + unique = set() + for p in reversed(self.app.plugins + self.plugins): + if True in self.skiplist: break + name = getattr(p, 'name', False) + if name and (name in self.skiplist or name in unique): continue + if p in self.skiplist or type(p) in self.skiplist: continue + if name: unique.add(name) + yield p + + def _make_callback(self): + callback = self.callback + for plugin in self.all_plugins(): + try: + if hasattr(plugin, 'apply'): + api = getattr(plugin, 'api', 1) + context = self if api > 1 else self._context + callback = plugin.apply(callback, context) + else: + callback = plugin(callback) + except RouteReset: # Try again with changed configuration. + return self._make_callback() + if not callback is self.callback: + update_wrapper(callback, self.callback) + return callback + + def get_undecorated_callback(self): + ''' Return the callback. If the callback is a decorated function, try to + recover the original function. ''' + func = self.callback + func = getattr(func, '__func__' if py3k else 'im_func', func) + closure_attr = '__closure__' if py3k else 'func_closure' + while hasattr(func, closure_attr) and getattr(func, closure_attr): + func = getattr(func, closure_attr)[0].cell_contents + return func + + def get_callback_args(self): + ''' Return a list of argument names the callback (most likely) accepts + as keyword arguments. If the callback is a decorated function, try + to recover the original function before inspection. ''' + return getargspec(self.get_undecorated_callback())[0] + + def get_config(key, default=None): + ''' Lookup a config field and return its value, first checking the + route.config, then route.app.config.''' + for conf in (self.config, self.app.conifg): + if key in conf: return conf[key] + return default + + def __repr__(self): + cb = self.get_undecorated_callback() + return '<%s %r %r>' % (self.method, self.rule, cb) + + + + + + +############################################################################### +# Application Object ########################################################### +############################################################################### + + +class Bottle(object): + """ Each Bottle object represents a single, distinct web application and + consists of routes, callbacks, plugins, resources and configuration. + Instances are callable WSGI applications. + + :param catchall: If true (default), handle all exceptions. Turn off to + let debugging middleware handle exceptions. + """ + + def __init__(self, catchall=True, autojson=True): + + #: A :class:`ConfigDict` for app specific configuration. + self.config = ConfigDict() + self.config._on_change = functools.partial(self.trigger_hook, 'config') + self.config.meta_set('autojson', 'validate', bool) + self.config.meta_set('catchall', 'validate', bool) + self.config['catchall'] = catchall + self.config['autojson'] = autojson + + #: A :class:`ResourceManager` for application files + self.resources = ResourceManager() + + self.routes = [] # List of installed :class:`Route` instances. + self.router = Router() # Maps requests to :class:`Route` instances. + self.error_handler = {} + + # Core plugins + self.plugins = [] # List of installed plugins. + if self.config['autojson']: + self.install(JSONPlugin()) + self.install(TemplatePlugin()) + + #: If true, most exceptions are caught and returned as :exc:`HTTPError` + catchall = DictProperty('config', 'catchall') + + __hook_names = 'before_request', 'after_request', 'app_reset', 'config' + __hook_reversed = 'after_request' + + @cached_property + def _hooks(self): + return dict((name, []) for name in self.__hook_names) + + def add_hook(self, name, func): + ''' Attach a callback to a hook. Three hooks are currently implemented: + + before_request + Executed once before each request. The request context is + available, but no routing has happened yet. + after_request + Executed once after each request regardless of its outcome. + app_reset + Called whenever :meth:`Bottle.reset` is called. + ''' + if name in self.__hook_reversed: + self._hooks[name].insert(0, func) + else: + self._hooks[name].append(func) + + def remove_hook(self, name, func): + ''' Remove a callback from a hook. ''' + if name in self._hooks and func in self._hooks[name]: + self._hooks[name].remove(func) + return True + + def trigger_hook(self, __name, *args, **kwargs): + ''' Trigger a hook and return a list of results. ''' + return [hook(*args, **kwargs) for hook in self._hooks[__name][:]] + + def hook(self, name): + """ Return a decorator that attaches a callback to a hook. See + :meth:`add_hook` for details.""" + def decorator(func): + self.add_hook(name, func) + return func + return decorator + + def mount(self, prefix, app, **options): + ''' Mount an application (:class:`Bottle` or plain WSGI) to a specific + URL prefix. Example:: + + root_app.mount('/admin/', admin_app) + + :param prefix: path prefix or `mount-point`. If it ends in a slash, + that slash is mandatory. + :param app: an instance of :class:`Bottle` or a WSGI application. + + All other parameters are passed to the underlying :meth:`route` call. + ''' + if isinstance(app, basestring): + depr('Parameter order of Bottle.mount() changed.', True) # 0.10 + + segments = [p for p in prefix.split('/') if p] + if not segments: raise ValueError('Empty path prefix.') + path_depth = len(segments) + + def mountpoint_wrapper(): + try: + request.path_shift(path_depth) + rs = HTTPResponse([]) + def start_response(status, headerlist, exc_info=None): + if exc_info: + try: + _raise(*exc_info) + finally: + exc_info = None + rs.status = status + for name, value in headerlist: rs.add_header(name, value) + return rs.body.append + body = app(request.environ, start_response) + if body and rs.body: body = itertools.chain(rs.body, body) + rs.body = body or rs.body + return rs + finally: + request.path_shift(-path_depth) + + options.setdefault('skip', True) + options.setdefault('method', 'ANY') + options.setdefault('mountpoint', {'prefix': prefix, 'target': app}) + options['callback'] = mountpoint_wrapper + + self.route('/%s/<:re:.*>' % '/'.join(segments), **options) + if not prefix.endswith('/'): + self.route('/' + '/'.join(segments), **options) + + def merge(self, routes): + ''' Merge the routes of another :class:`Bottle` application or a list of + :class:`Route` objects into this application. The routes keep their + 'owner', meaning that the :data:`Route.app` attribute is not + changed. ''' + if isinstance(routes, Bottle): + routes = routes.routes + for route in routes: + self.add_route(route) + + def install(self, plugin): + ''' Add a plugin to the list of plugins and prepare it for being + applied to all routes of this application. A plugin may be a simple + decorator or an object that implements the :class:`Plugin` API. + ''' + if hasattr(plugin, 'setup'): plugin.setup(self) + if not callable(plugin) and not hasattr(plugin, 'apply'): + raise TypeError("Plugins must be callable or implement .apply()") + self.plugins.append(plugin) + self.reset() + return plugin + + def uninstall(self, plugin): + ''' Uninstall plugins. Pass an instance to remove a specific plugin, a type + object to remove all plugins that match that type, a string to remove + all plugins with a matching ``name`` attribute or ``True`` to remove all + plugins. Return the list of removed plugins. ''' + removed, remove = [], plugin + for i, plugin in list(enumerate(self.plugins))[::-1]: + if remove is True or remove is plugin or remove is type(plugin) \ + or getattr(plugin, 'name', True) == remove: + removed.append(plugin) + del self.plugins[i] + if hasattr(plugin, 'close'): plugin.close() + if removed: self.reset() + return removed + + def reset(self, route=None): + ''' Reset all routes (force plugins to be re-applied) and clear all + caches. If an ID or route object is given, only that specific route + is affected. ''' + if route is None: routes = self.routes + elif isinstance(route, Route): routes = [route] + else: routes = [self.routes[route]] + for route in routes: route.reset() + if DEBUG: + for route in routes: route.prepare() + self.trigger_hook('app_reset') + + def close(self): + ''' Close the application and all installed plugins. ''' + for plugin in self.plugins: + if hasattr(plugin, 'close'): plugin.close() + self.stopped = True + + def run(self, **kwargs): + ''' Calls :func:`run` with the same parameters. ''' + run(self, **kwargs) + + def match(self, environ): + """ Search for a matching route and return a (:class:`Route` , urlargs) + tuple. The second value is a dictionary with parameters extracted + from the URL. Raise :exc:`HTTPError` (404/405) on a non-match.""" + return self.router.match(environ) + + def get_url(self, routename, **kargs): + """ Return a string that matches a named route """ + scriptname = request.environ.get('SCRIPT_NAME', '').strip('/') + '/' + location = self.router.build(routename, **kargs).lstrip('/') + return urljoin(urljoin('/', scriptname), location) + + def add_route(self, route): + ''' Add a route object, but do not change the :data:`Route.app` + attribute.''' + self.routes.append(route) + self.router.add(route.rule, route.method, route, name=route.name) + if DEBUG: route.prepare() + + def route(self, path=None, method='GET', callback=None, name=None, + apply=None, skip=None, **config): + """ A decorator to bind a function to a request URL. Example:: + + @app.route('/hello/:name') + def hello(name): + return 'Hello %s' % name + + The ``:name`` part is a wildcard. See :class:`Router` for syntax + details. + + :param path: Request path or a list of paths to listen to. If no + path is specified, it is automatically generated from the + signature of the function. + :param method: HTTP method (`GET`, `POST`, `PUT`, ...) or a list of + methods to listen to. (default: `GET`) + :param callback: An optional shortcut to avoid the decorator + syntax. ``route(..., callback=func)`` equals ``route(...)(func)`` + :param name: The name for this route. (default: None) + :param apply: A decorator or plugin or a list of plugins. These are + applied to the route callback in addition to installed plugins. + :param skip: A list of plugins, plugin classes or names. Matching + plugins are not installed to this route. ``True`` skips all. + + Any additional keyword arguments are stored as route-specific + configuration and passed to plugins (see :meth:`Plugin.apply`). + """ + if callable(path): path, callback = None, path + plugins = makelist(apply) + skiplist = makelist(skip) + def decorator(callback): + # TODO: Documentation and tests + if isinstance(callback, basestring): callback = load(callback) + for rule in makelist(path) or yieldroutes(callback): + for verb in makelist(method): + verb = verb.upper() + route = Route(self, rule, verb, callback, name=name, + plugins=plugins, skiplist=skiplist, **config) + self.add_route(route) + return callback + return decorator(callback) if callback else decorator + + def get(self, path=None, method='GET', **options): + """ Equals :meth:`route`. """ + return self.route(path, method, **options) + + def post(self, path=None, method='POST', **options): + """ Equals :meth:`route` with a ``POST`` method parameter. """ + return self.route(path, method, **options) + + def put(self, path=None, method='PUT', **options): + """ Equals :meth:`route` with a ``PUT`` method parameter. """ + return self.route(path, method, **options) + + def delete(self, path=None, method='DELETE', **options): + """ Equals :meth:`route` with a ``DELETE`` method parameter. """ + return self.route(path, method, **options) + + def error(self, code=500): + """ Decorator: Register an output handler for a HTTP error code""" + def wrapper(handler): + self.error_handler[int(code)] = handler + return handler + return wrapper + + def handle(self, path, method='GET'): + """ (deprecated) Execute the first matching route callback and return + the result. :exc:`HTTPResponse` exceptions are caught and returned. + If :attr:`Bottle.catchall` is true, other exceptions are caught as + well and returned as :exc:`HTTPError` instances (500). + """ + depr("This method will change semantics in 0.10. Try to avoid it.") + if isinstance(path, dict): + return self._handle(path) + return self._handle({'PATH_INFO': path, 'REQUEST_METHOD': method.upper()}) + + def default_error_handler(self, res): + return tob(template(ERROR_PAGE_TEMPLATE, e=res)) + + def _handle(self, environ): + try: + environ['bottle.app'] = self + request.bind(environ) + response.bind() + + try: + self.trigger_hook('before_request') + route, args = self.router.match(environ) + environ['route.handle'] = route + environ['bottle.route'] = route + environ['route.url_args'] = args + return route.call(**args) + finally: + self.trigger_hook('after_request') + + except HTTPResponse: + return _e() + except RouteReset: + route.reset() + return self._handle(environ) + except (KeyboardInterrupt, SystemExit, MemoryError): + raise + except Exception: + if not self.catchall: raise + stacktrace = format_exc() + environ['wsgi.errors'].write(stacktrace) + return HTTPError(500, "Internal Server Error", _e(), stacktrace) + + def _cast(self, out, peek=None): + """ Try to convert the parameter into something WSGI compatible and set + correct HTTP headers when possible. + Support: False, str, unicode, dict, HTTPResponse, HTTPError, file-like, + iterable of strings and iterable of unicodes + """ + + # Empty output is done here + if not out: + if 'Content-Length' not in response: + response['Content-Length'] = 0 + return [] + # Join lists of byte or unicode strings. Mixed lists are NOT supported + if isinstance(out, (tuple, list))\ + and isinstance(out[0], (bytes, unicode)): + out = out[0][0:0].join(out) # b'abc'[0:0] -> b'' + # Encode unicode strings + if isinstance(out, unicode): + out = out.encode(response.charset) + # Byte Strings are just returned + if isinstance(out, bytes): + if 'Content-Length' not in response: + response['Content-Length'] = len(out) + return [out] + # HTTPError or HTTPException (recursive, because they may wrap anything) + # TODO: Handle these explicitly in handle() or make them iterable. + if isinstance(out, HTTPError): + out.apply(response) + out = self.error_handler.get(out.status_code, self.default_error_handler)(out) + return self._cast(out) + if isinstance(out, HTTPResponse): + out.apply(response) + return self._cast(out.body) + + # File-like objects. + if hasattr(out, 'read'): + if 'wsgi.file_wrapper' in request.environ: + return request.environ['wsgi.file_wrapper'](out) + elif hasattr(out, 'close') or not hasattr(out, '__iter__'): + return WSGIFileWrapper(out) + + # Handle Iterables. We peek into them to detect their inner type. + try: + iout = iter(out) + first = next(iout) + while not first: + first = next(iout) + except StopIteration: + return self._cast('') + except HTTPResponse: + first = _e() + except (KeyboardInterrupt, SystemExit, MemoryError): + raise + except Exception: + if not self.catchall: raise + first = HTTPError(500, 'Unhandled exception', _e(), format_exc()) + + # These are the inner types allowed in iterator or generator objects. + if isinstance(first, HTTPResponse): + return self._cast(first) + elif isinstance(first, bytes): + new_iter = itertools.chain([first], iout) + elif isinstance(first, unicode): + encoder = lambda x: x.encode(response.charset) + new_iter = imap(encoder, itertools.chain([first], iout)) + else: + msg = 'Unsupported response type: %s' % type(first) + return self._cast(HTTPError(500, msg)) + if hasattr(out, 'close'): + new_iter = _closeiter(new_iter, out.close) + return new_iter + + def wsgi(self, environ, start_response): + """ The bottle WSGI-interface. """ + try: + out = self._cast(self._handle(environ)) + # rfc2616 section 4.3 + if response._status_code in (100, 101, 204, 304)\ + or environ['REQUEST_METHOD'] == 'HEAD': + if hasattr(out, 'close'): out.close() + out = [] + start_response(response._status_line, response.headerlist) + return out + except (KeyboardInterrupt, SystemExit, MemoryError): + raise + except Exception: + if not self.catchall: raise + err = '<h1>Critical error while processing request: %s</h1>' \ + % html_escape(environ.get('PATH_INFO', '/')) + if DEBUG: + err += '<h2>Error:</h2>\n<pre>\n%s\n</pre>\n' \ + '<h2>Traceback:</h2>\n<pre>\n%s\n</pre>\n' \ + % (html_escape(repr(_e())), html_escape(format_exc())) + environ['wsgi.errors'].write(err) + headers = [('Content-Type', 'text/html; charset=UTF-8')] + start_response('500 INTERNAL SERVER ERROR', headers, sys.exc_info()) + return [tob(err)] + + def __call__(self, environ, start_response): + ''' Each instance of :class:'Bottle' is a WSGI application. ''' + return self.wsgi(environ, start_response) + + + + + + +############################################################################### +# HTTP and WSGI Tools ########################################################## +############################################################################### + +class BaseRequest(object): + """ A wrapper for WSGI environment dictionaries that adds a lot of + convenient access methods and properties. Most of them are read-only. + + Adding new attributes to a request actually adds them to the environ + dictionary (as 'bottle.request.ext.<name>'). This is the recommended + way to store and access request-specific data. + """ + + __slots__ = ('environ') + + #: Maximum size of memory buffer for :attr:`body` in bytes. + MEMFILE_MAX = 102400 + #: Maximum number pr GET or POST parameters per request + MAX_PARAMS = 100 + + def __init__(self, environ=None): + """ Wrap a WSGI environ dictionary. """ + #: The wrapped WSGI environ dictionary. This is the only real attribute. + #: All other attributes actually are read-only properties. + self.environ = {} if environ is None else environ + self.environ['bottle.request'] = self + + @DictProperty('environ', 'bottle.app', read_only=True) + def app(self): + ''' Bottle application handling this request. ''' + raise RuntimeError('This request is not connected to an application.') + + @DictProperty('environ', 'bottle.route', read_only=True) + def route(self): + """ The bottle :class:`Route` object that matches this request. """ + raise RuntimeError('This request is not connected to a route.') + + @DictProperty('environ', 'route.url_args', read_only=True) + def url_args(self): + """ The arguments extracted from the URL. """ + raise RuntimeError('This request is not connected to a route.') + + @property + def path(self): + ''' The value of ``PATH_INFO`` with exactly one prefixed slash (to fix + broken clients and avoid the "empty path" edge case). ''' + return '/' + self.environ.get('PATH_INFO','').lstrip('/') + + @property + def method(self): + ''' The ``REQUEST_METHOD`` value as an uppercase string. ''' + return self.environ.get('REQUEST_METHOD', 'GET').upper() + + @DictProperty('environ', 'bottle.request.headers', read_only=True) + def headers(self): + ''' A :class:`WSGIHeaderDict` that provides case-insensitive access to + HTTP request headers. ''' + return WSGIHeaderDict(self.environ) + + def get_header(self, name, default=None): + ''' Return the value of a request header, or a given default value. ''' + return self.headers.get(name, default) + + @DictProperty('environ', 'bottle.request.cookies', read_only=True) + def cookies(self): + """ Cookies parsed into a :class:`FormsDict`. Signed cookies are NOT + decoded. Use :meth:`get_cookie` if you expect signed cookies. """ + cookies = SimpleCookie(self.environ.get('HTTP_COOKIE','')).values() + if len(cookies) > self.MAX_PARAMS: + raise HTTPError(413, 'Too many cookies') + return FormsDict((c.key, c.value) for c in cookies) + + def get_cookie(self, key, default=None, secret=None): + """ Return the content of a cookie. To read a `Signed Cookie`, the + `secret` must match the one used to create the cookie (see + :meth:`BaseResponse.set_cookie`). If anything goes wrong (missing + cookie or wrong signature), return a default value. """ + value = self.cookies.get(key) + if secret and value: + dec = cookie_decode(value, secret) # (key, value) tuple or None + return dec[1] if dec and dec[0] == key else default + return value or default + + @DictProperty('environ', 'bottle.request.query', read_only=True) + def query(self): + ''' The :attr:`query_string` parsed into a :class:`FormsDict`. These + values are sometimes called "URL arguments" or "GET parameters", but + not to be confused with "URL wildcards" as they are provided by the + :class:`Router`. ''' + get = self.environ['bottle.get'] = FormsDict() + pairs = _parse_qsl(self.environ.get('QUERY_STRING', '')) + if len(pairs) > self.MAX_PARAMS: + raise HTTPError(413, 'Too many parameters') + for key, value in pairs: + get[key] = value + return get + + @DictProperty('environ', 'bottle.request.forms', read_only=True) + def forms(self): + """ Form values parsed from an `url-encoded` or `multipart/form-data` + encoded POST or PUT request body. The result is returned as a + :class:`FormsDict`. All keys and values are strings. File uploads + are stored separately in :attr:`files`. """ + forms = FormsDict() + for name, item in self.POST.allitems(): + if not isinstance(item, FileUpload): + forms[name] = item + return forms + + @DictProperty('environ', 'bottle.request.params', read_only=True) + def params(self): + """ A :class:`FormsDict` with the combined values of :attr:`query` and + :attr:`forms`. File uploads are stored in :attr:`files`. """ + params = FormsDict() + for key, value in self.query.allitems(): + params[key] = value + for key, value in self.forms.allitems(): + params[key] = value + return params + + @DictProperty('environ', 'bottle.request.files', read_only=True) + def files(self): + """ File uploads parsed from `multipart/form-data` encoded POST or PUT + request body. The values are instances of :class:`FileUpload`. + + """ + files = FormsDict() + for name, item in self.POST.allitems(): + if isinstance(item, FileUpload): + files[name] = item + return files + + @DictProperty('environ', 'bottle.request.json', read_only=True) + def json(self): + ''' If the ``Content-Type`` header is ``application/json``, this + property holds the parsed content of the request body. Only requests + smaller than :attr:`MEMFILE_MAX` are processed to avoid memory + exhaustion. ''' + if 'application/json' in self.environ.get('CONTENT_TYPE', ''): + return json_loads(self._get_body_string()) + return None + + @DictProperty('environ', 'bottle.request.body', read_only=True) + def _body(self): + maxread = max(0, self.content_length) + stream = self.environ['wsgi.input'] + body = BytesIO() if maxread < self.MEMFILE_MAX else TemporaryFile(mode='w+b') + while maxread > 0: + part = stream.read(min(maxread, self.MEMFILE_MAX)) + if not part: break + body.write(part) + maxread -= len(part) + self.environ['wsgi.input'] = body + body.seek(0) + return body + + def _get_body_string(self): + ''' read body until content-length or MEMFILE_MAX into a string. Raise + HTTPError(413) on requests that are to large. ''' + clen = self.content_length + if clen > self.MEMFILE_MAX: + raise HTTPError(413, 'Request to large') + if clen < 0: clen = self.MEMFILE_MAX + 1 + data = self.body.read(clen) + if len(data) > self.MEMFILE_MAX: # Fail fast + raise HTTPError(413, 'Request to large') + return data + + @property + def body(self): + """ The HTTP request body as a seek-able file-like object. Depending on + :attr:`MEMFILE_MAX`, this is either a temporary file or a + :class:`io.BytesIO` instance. Accessing this property for the first + time reads and replaces the ``wsgi.input`` environ variable. + Subsequent accesses just do a `seek(0)` on the file object. """ + self._body.seek(0) + return self._body + + #: An alias for :attr:`query`. + GET = query + + @DictProperty('environ', 'bottle.request.post', read_only=True) + def POST(self): + """ The values of :attr:`forms` and :attr:`files` combined into a single + :class:`FormsDict`. Values are either strings (form values) or + instances of :class:`cgi.FieldStorage` (file uploads). + """ + post = FormsDict() + # We default to application/x-www-form-urlencoded for everything that + # is not multipart and take the fast path (also: 3.1 workaround) + if not self.content_type.startswith('multipart/'): + pairs = _parse_qsl(tonat(self._get_body_string(), 'latin1')) + if len(pairs) > self.MAX_PARAMS: + raise HTTPError(413, 'Too many parameters') + for key, value in pairs: + post[key] = value + return post + + safe_env = {'QUERY_STRING':''} # Build a safe environment for cgi + for key in ('REQUEST_METHOD', 'CONTENT_TYPE', 'CONTENT_LENGTH'): + if key in self.environ: safe_env[key] = self.environ[key] + args = dict(fp=self.body, environ=safe_env, keep_blank_values=True) + if py31: + args['fp'] = NCTextIOWrapper(args['fp'], encoding='latin1', + newline='\n') + elif py3k: + args['encoding'] = 'latin1' + data = cgi.FieldStorage(**args) + data = data.list or [] + if len(data) > self.MAX_PARAMS: + raise HTTPError(413, 'Too many parameters') + for item in data: + if item.filename: + post[item.name] = FileUpload(item.file, item.name, + item.filename, item.headers) + else: + post[item.name] = item.value + return post + + @property + def COOKIES(self): + ''' Alias for :attr:`cookies` (deprecated). ''' + depr('BaseRequest.COOKIES was renamed to BaseRequest.cookies (lowercase).') + return self.cookies + + @property + def url(self): + """ The full request URI including hostname and scheme. If your app + lives behind a reverse proxy or load balancer and you get confusing + results, make sure that the ``X-Forwarded-Host`` header is set + correctly. """ + return self.urlparts.geturl() + + @DictProperty('environ', 'bottle.request.urlparts', read_only=True) + def urlparts(self): + ''' The :attr:`url` string as an :class:`urlparse.SplitResult` tuple. + The tuple contains (scheme, host, path, query_string and fragment), + but the fragment is always empty because it is not visible to the + server. ''' + env = self.environ + http = env.get('HTTP_X_FORWARDED_PROTO') or env.get('wsgi.url_scheme', 'http') + host = env.get('HTTP_X_FORWARDED_HOST') or env.get('HTTP_HOST') + if not host: + # HTTP 1.1 requires a Host-header. This is for HTTP/1.0 clients. + host = env.get('SERVER_NAME', '127.0.0.1') + port = env.get('SERVER_PORT') + if port and port != ('80' if http == 'http' else '443'): + host += ':' + port + path = urlquote(self.fullpath) + return UrlSplitResult(http, host, path, env.get('QUERY_STRING'), '') + + @property + def fullpath(self): + """ Request path including :attr:`script_name` (if present). """ + return urljoin(self.script_name, self.path.lstrip('/')) + + @property + def query_string(self): + """ The raw :attr:`query` part of the URL (everything in between ``?`` + and ``#``) as a string. """ + return self.environ.get('QUERY_STRING', '') + + @property + def script_name(self): + ''' The initial portion of the URL's `path` that was removed by a higher + level (server or routing middleware) before the application was + called. This script path is returned with leading and tailing + slashes. ''' + script_name = self.environ.get('SCRIPT_NAME', '').strip('/') + return '/' + script_name + '/' if script_name else '/' + + def path_shift(self, shift=1): + ''' Shift path segments from :attr:`path` to :attr:`script_name` and + vice versa. + + :param shift: The number of path segments to shift. May be negative + to change the shift direction. (default: 1) + ''' + script = self.environ.get('SCRIPT_NAME','/') + self['SCRIPT_NAME'], self['PATH_INFO'] = path_shift(script, self.path, shift) + + @property + def content_length(self): + ''' The request body length as an integer. The client is responsible to + set this header. Otherwise, the real length of the body is unknown + and -1 is returned. In this case, :attr:`body` will be empty. ''' + return int(self.environ.get('CONTENT_LENGTH') or -1) + + @property + def content_type(self): + ''' The Content-Type header as a lowercase-string (default: empty). ''' + return self.environ.get('CONTENT_TYPE', '').lower() + + @property + def is_xhr(self): + ''' True if the request was triggered by a XMLHttpRequest. This only + works with JavaScript libraries that support the `X-Requested-With` + header (most of the popular libraries do). ''' + requested_with = self.environ.get('HTTP_X_REQUESTED_WITH','') + return requested_with.lower() == 'xmlhttprequest' + + @property + def is_ajax(self): + ''' Alias for :attr:`is_xhr`. "Ajax" is not the right term. ''' + return self.is_xhr + + @property + def auth(self): + """ HTTP authentication data as a (user, password) tuple. This + implementation currently supports basic (not digest) authentication + only. If the authentication happened at a higher level (e.g. in the + front web-server or a middleware), the password field is None, but + the user field is looked up from the ``REMOTE_USER`` environ + variable. On any errors, None is returned. """ + basic = parse_auth(self.environ.get('HTTP_AUTHORIZATION','')) + if basic: return basic + ruser = self.environ.get('REMOTE_USER') + if ruser: return (ruser, None) + return None + + @property + def remote_route(self): + """ A list of all IPs that were involved in this request, starting with + the client IP and followed by zero or more proxies. This does only + work if all proxies support the ```X-Forwarded-For`` header. Note + that this information can be forged by malicious clients. """ + proxy = self.environ.get('HTTP_X_FORWARDED_FOR') + if proxy: return [ip.strip() for ip in proxy.split(',')] + remote = self.environ.get('REMOTE_ADDR') + return [remote] if remote else [] + + @property + def remote_addr(self): + """ The client IP as a string. Note that this information can be forged + by malicious clients. """ + route = self.remote_route + return route[0] if route else None + + def copy(self): + """ Return a new :class:`Request` with a shallow :attr:`environ` copy. """ + return Request(self.environ.copy()) + + def get(self, value, default=None): return self.environ.get(value, default) + def __getitem__(self, key): return self.environ[key] + def __delitem__(self, key): self[key] = ""; del(self.environ[key]) + def __iter__(self): return iter(self.environ) + def __len__(self): return len(self.environ) + def keys(self): return self.environ.keys() + def __setitem__(self, key, value): + """ Change an environ value and clear all caches that depend on it. """ + + if self.environ.get('bottle.request.readonly'): + raise KeyError('The environ dictionary is read-only.') + + self.environ[key] = value + todelete = () + + if key == 'wsgi.input': + todelete = ('body', 'forms', 'files', 'params', 'post', 'json') + elif key == 'QUERY_STRING': + todelete = ('query', 'params') + elif key.startswith('HTTP_'): + todelete = ('headers', 'cookies') + + for key in todelete: + self.environ.pop('bottle.request.'+key, None) + + def __repr__(self): + return '<%s: %s %s>' % (self.__class__.__name__, self.method, self.url) + + def __getattr__(self, name): + ''' Search in self.environ for additional user defined attributes. ''' + try: + var = self.environ['bottle.request.ext.%s'%name] + return var.__get__(self) if hasattr(var, '__get__') else var + except KeyError: + raise AttributeError('Attribute %r not defined.' % name) + + def __setattr__(self, name, value): + if name == 'environ': return object.__setattr__(self, name, value) + self.environ['bottle.request.ext.%s'%name] = value + + + + +def _hkey(s): + return s.title().replace('_','-') + + +class HeaderProperty(object): + def __init__(self, name, reader=None, writer=str, default=''): + self.name, self.default = name, default + self.reader, self.writer = reader, writer + self.__doc__ = 'Current value of the %r header.' % name.title() + + def __get__(self, obj, cls): + if obj is None: return self + value = obj.headers.get(self.name, self.default) + return self.reader(value) if self.reader else value + + def __set__(self, obj, value): + obj.headers[self.name] = self.writer(value) + + def __delete__(self, obj): + del obj.headers[self.name] + + +class BaseResponse(object): + """ Storage class for a response body as well as headers and cookies. + + This class does support dict-like case-insensitive item-access to + headers, but is NOT a dict. Most notably, iterating over a response + yields parts of the body and not the headers. + + :param body: The response body as one of the supported types. + :param status: Either an HTTP status code (e.g. 200) or a status line + including the reason phrase (e.g. '200 OK'). + :param headers: A dictionary or a list of name-value pairs. + + Additional keyword arguments are added to the list of headers. + Underscores in the header name are replaced with dashes. + """ + + default_status = 200 + default_content_type = 'text/html; charset=UTF-8' + + # Header blacklist for specific response codes + # (rfc2616 section 10.2.3 and 10.3.5) + bad_headers = { + 204: set(('Content-Type',)), + 304: set(('Allow', 'Content-Encoding', 'Content-Language', + 'Content-Length', 'Content-Range', 'Content-Type', + 'Content-Md5', 'Last-Modified'))} + + def __init__(self, body='', status=None, headers=None, **more_headers): + self._cookies = None + self._headers = {} + self.body = body + self.status = status or self.default_status + if headers: + if isinstance(headers, dict): + headers = headers.items() + for name, value in headers: + self.add_header(name, value) + if more_headers: + for name, value in more_headers.items(): + self.add_header(name, value) + + def copy(self, cls=None): + ''' Returns a copy of self. ''' + cls = cls or BaseResponse + assert issubclass(cls, BaseResponse) + copy = cls() + copy.status = self.status + copy._headers = dict((k, v[:]) for (k, v) in self._headers.items()) + copy.COOKIES.load(self.COOKIES.output()) + return copy + + def __iter__(self): + return iter(self.body) + + def close(self): + if hasattr(self.body, 'close'): + self.body.close() + + @property + def status_line(self): + ''' The HTTP status line as a string (e.g. ``404 Not Found``).''' + return self._status_line + + @property + def status_code(self): + ''' The HTTP status code as an integer (e.g. 404).''' + return self._status_code + + def _set_status(self, status): + if isinstance(status, int): + code, status = status, _HTTP_STATUS_LINES.get(status) + elif ' ' in status: + status = status.strip() + code = int(status.split()[0]) + else: + raise ValueError('String status line without a reason phrase.') + if not 100 <= code <= 999: raise ValueError('Status code out of range.') + self._status_code = code + self._status_line = str(status or ('%d Unknown' % code)) + + def _get_status(self): + return self._status_line + + status = property(_get_status, _set_status, None, + ''' A writeable property to change the HTTP response status. It accepts + either a numeric code (100-999) or a string with a custom reason + phrase (e.g. "404 Brain not found"). Both :data:`status_line` and + :data:`status_code` are updated accordingly. The return value is + always a status string. ''') + del _get_status, _set_status + + @property + def headers(self): + ''' An instance of :class:`HeaderDict`, a case-insensitive dict-like + view on the response headers. ''' + hdict = HeaderDict() + hdict.dict = self._headers + return hdict + + def __contains__(self, name): return _hkey(name) in self._headers + def __delitem__(self, name): del self._headers[_hkey(name)] + def __getitem__(self, name): return self._headers[_hkey(name)][-1] + def __setitem__(self, name, value): self._headers[_hkey(name)] = [str(value)] + + def get_header(self, name, default=None): + ''' Return the value of a previously defined header. If there is no + header with that name, return a default value. ''' + return self._headers.get(_hkey(name), [default])[-1] + + def set_header(self, name, value): + ''' Create a new response header, replacing any previously defined + headers with the same name. ''' + self._headers[_hkey(name)] = [str(value)] + + def add_header(self, name, value): + ''' Add an additional response header, not removing duplicates. ''' + self._headers.setdefault(_hkey(name), []).append(str(value)) + + def iter_headers(self): + ''' Yield (header, value) tuples, skipping headers that are not + allowed with the current response status code. ''' + return self.headerlist + + def wsgiheader(self): + depr('The wsgiheader method is deprecated. See headerlist.') #0.10 + return self.headerlist + + @property + def headerlist(self): + ''' WSGI conform list of (header, value) tuples. ''' + out = [] + headers = list(self._headers.items()) + if 'Content-Type' not in self._headers: + headers.append(('Content-Type', [self.default_content_type])) + if self._status_code in self.bad_headers: + bad_headers = self.bad_headers[self._status_code] + headers = [h for h in headers if h[0] not in bad_headers] + out += [(name, val) for name, vals in headers for val in vals] + if self._cookies: + for c in self._cookies.values(): + out.append(('Set-Cookie', c.OutputString())) + return out + + content_type = HeaderProperty('Content-Type') + content_length = HeaderProperty('Content-Length', reader=int) + expires = HeaderProperty('Expires', + reader=lambda x: datetime.utcfromtimestamp(parse_date(x)), + writer=lambda x: http_date(x)) + + @property + def charset(self, default='UTF-8'): + """ Return the charset specified in the content-type header (default: utf8). """ + if 'charset=' in self.content_type: + return self.content_type.split('charset=')[-1].split(';')[0].strip() + return default + + @property + def COOKIES(self): + """ A dict-like SimpleCookie instance. This should not be used directly. + See :meth:`set_cookie`. """ + depr('The COOKIES dict is deprecated. Use `set_cookie()` instead.') # 0.10 + if not self._cookies: + self._cookies = SimpleCookie() + return self._cookies + + def set_cookie(self, name, value, secret=None, **options): + ''' Create a new cookie or replace an old one. If the `secret` parameter is + set, create a `Signed Cookie` (described below). + + :param name: the name of the cookie. + :param value: the value of the cookie. + :param secret: a signature key required for signed cookies. + + Additionally, this method accepts all RFC 2109 attributes that are + supported by :class:`cookie.Morsel`, including: + + :param max_age: maximum age in seconds. (default: None) + :param expires: a datetime object or UNIX timestamp. (default: None) + :param domain: the domain that is allowed to read the cookie. + (default: current domain) + :param path: limits the cookie to a given path (default: current path) + :param secure: limit the cookie to HTTPS connections (default: off). + :param httponly: prevents client-side javascript to read this cookie + (default: off, requires Python 2.6 or newer). + + If neither `expires` nor `max_age` is set (default), the cookie will + expire at the end of the browser session (as soon as the browser + window is closed). + + Signed cookies may store any pickle-able object and are + cryptographically signed to prevent manipulation. Keep in mind that + cookies are limited to 4kb in most browsers. + + Warning: Signed cookies are not encrypted (the client can still see + the content) and not copy-protected (the client can restore an old + cookie). The main intention is to make pickling and unpickling + save, not to store secret information at client side. + ''' + if not self._cookies: + self._cookies = SimpleCookie() + + if secret: + value = touni(cookie_encode((name, value), secret)) + elif not isinstance(value, basestring): + raise TypeError('Secret key missing for non-string Cookie.') + + if len(value) > 4096: raise ValueError('Cookie value to long.') + self._cookies[name] = value + + for key, value in options.items(): + if key == 'max_age': + if isinstance(value, timedelta): + value = value.seconds + value.days * 24 * 3600 + if key == 'expires': + if isinstance(value, (datedate, datetime)): + value = value.timetuple() + elif isinstance(value, (int, float)): + value = time.gmtime(value) + value = time.strftime("%a, %d %b %Y %H:%M:%S GMT", value) + self._cookies[name][key.replace('_', '-')] = value + + def delete_cookie(self, key, **kwargs): + ''' Delete a cookie. Be sure to use the same `domain` and `path` + settings as used to create the cookie. ''' + kwargs['max_age'] = -1 + kwargs['expires'] = 0 + self.set_cookie(key, '', **kwargs) + + def __repr__(self): + out = '' + for name, value in self.headerlist: + out += '%s: %s\n' % (name.title(), value.strip()) + return out + +#: Thread-local storage for :class:`LocalRequest` and :class:`LocalResponse` +#: attributes. +_lctx = threading.local() + +def local_property(name): + def fget(self): + try: + return getattr(_lctx, name) + except AttributeError: + raise RuntimeError("Request context not initialized.") + def fset(self, value): setattr(_lctx, name, value) + def fdel(self): delattr(_lctx, name) + return property(fget, fset, fdel, + 'Thread-local property stored in :data:`_lctx.%s`' % name) + + +class LocalRequest(BaseRequest): + ''' A thread-local subclass of :class:`BaseRequest` with a different + set of attribues for each thread. There is usually only one global + instance of this class (:data:`request`). If accessed during a + request/response cycle, this instance always refers to the *current* + request (even on a multithreaded server). ''' + bind = BaseRequest.__init__ + environ = local_property('request_environ') + + +class LocalResponse(BaseResponse): + ''' A thread-local subclass of :class:`BaseResponse` with a different + set of attribues for each thread. There is usually only one global + instance of this class (:data:`response`). Its attributes are used + to build the HTTP response at the end of the request/response cycle. + ''' + bind = BaseResponse.__init__ + _status_line = local_property('response_status_line') + _status_code = local_property('response_status_code') + _cookies = local_property('response_cookies') + _headers = local_property('response_headers') + body = local_property('response_body') + + +Request = BaseRequest +Response = BaseResponse + + +class HTTPResponse(Response, BottleException): + def __init__(self, body='', status=None, headers=None, + header=None, **more_headers): + if header or 'output' in more_headers: + depr('Call signature changed (for the better). See BaseResponse') + if header: more_headers.update(header) + if 'output' in more_headers: body = more_headers.pop('output') + super(HTTPResponse, self).__init__(body, status, headers, **more_headers) + + def apply(self, response): + response._status_code = self._status_code + response._status_line = self._status_line + response._headers = self._headers + response._cookies = self._cookies + response.body = self.body + + def _output(self, value=None): + depr('Use HTTPResponse.body instead of HTTPResponse.output') + if value is None: return self.body + self.body = value + + output = property(_output, _output, doc='Alias for .body') + + +class HTTPError(HTTPResponse): + default_status = 500 + def __init__(self, status=None, body=None, exception=None, traceback=None, + **options): + self.exception = exception + self.traceback = traceback + super(HTTPError, self).__init__(body, status, **options) + + + + + +############################################################################### +# Plugins ###################################################################### +############################################################################### + +class PluginError(BottleException): pass + + +class JSONPlugin(object): + name = 'json' + api = 2 + + def __init__(self, json_dumps=json_dumps): + self.json_dumps = json_dumps + + def apply(self, callback, route): + dumps = self.json_dumps + if not dumps: return callback + def wrapper(*a, **ka): + try: + rv = callback(*a, **ka) + except HTTPError: + rv = _e() + + if isinstance(rv, dict): + #Attempt to serialize, raises exception on failure + json_response = dumps(rv) + #Set content type only if serialization succesful + response.content_type = 'application/json' + return json_response + elif isinstance(rv, HTTPResponse) and isinstance(rv.body, dict): + rv.body = dumps(rv.body) + rv.content_type = 'application/json' + return rv + + return wrapper + + +class TemplatePlugin(object): + ''' This plugin applies the :func:`view` decorator to all routes with a + `template` config parameter. If the parameter is a tuple, the second + element must be a dict with additional options (e.g. `template_engine`) + or default variables for the template. ''' + name = 'template' + api = 2 + + def apply(self, callback, route): + conf = route.config.get('template') + if isinstance(conf, (tuple, list)) and len(conf) == 2: + return view(conf[0], **conf[1])(callback) + elif isinstance(conf, str): + return view(conf)(callback) + else: + return callback + + +#: Not a plugin, but part of the plugin API. TODO: Find a better place. +class _ImportRedirect(object): + def __init__(self, name, impmask): + ''' Create a virtual package that redirects imports (see PEP 302). ''' + self.name = name + self.impmask = impmask + self.module = sys.modules.setdefault(name, imp.new_module(name)) + self.module.__dict__.update({'__file__': __file__, '__path__': [], + '__all__': [], '__loader__': self}) + sys.meta_path.append(self) + + def find_module(self, fullname, path=None): + if '.' not in fullname: return + packname, modname = fullname.rsplit('.', 1) + if packname != self.name: return + return self + + def load_module(self, fullname): + if fullname in sys.modules: return sys.modules[fullname] + packname, modname = fullname.rsplit('.', 1) + realname = self.impmask % modname + __import__(realname) + module = sys.modules[fullname] = sys.modules[realname] + setattr(self.module, modname, module) + module.__loader__ = self + return module + + + + + + +############################################################################### +# Common Utilities ############################################################# +############################################################################### + + +class MultiDict(DictMixin): + """ This dict stores multiple values per key, but behaves exactly like a + normal dict in that it returns only the newest value for any given key. + There are special methods available to access the full list of values. + """ + + def __init__(self, *a, **k): + self.dict = dict((k, [v]) for (k, v) in dict(*a, **k).items()) + + def __len__(self): return len(self.dict) + def __iter__(self): return iter(self.dict) + def __contains__(self, key): return key in self.dict + def __delitem__(self, key): del self.dict[key] + def __getitem__(self, key): return self.dict[key][-1] + def __setitem__(self, key, value): self.append(key, value) + def keys(self): return self.dict.keys() + + if py3k: + def values(self): return (v[-1] for v in self.dict.values()) + def items(self): return ((k, v[-1]) for k, v in self.dict.items()) + def allitems(self): + return ((k, v) for k, vl in self.dict.items() for v in vl) + iterkeys = keys + itervalues = values + iteritems = items + iterallitems = allitems + + else: + def values(self): return [v[-1] for v in self.dict.values()] + def items(self): return [(k, v[-1]) for k, v in self.dict.items()] + def iterkeys(self): return self.dict.iterkeys() + def itervalues(self): return (v[-1] for v in self.dict.itervalues()) + def iteritems(self): + return ((k, v[-1]) for k, v in self.dict.iteritems()) + def iterallitems(self): + return ((k, v) for k, vl in self.dict.iteritems() for v in vl) + def allitems(self): + return [(k, v) for k, vl in self.dict.iteritems() for v in vl] + + def get(self, key, default=None, index=-1, type=None): + ''' Return the most recent value for a key. + + :param default: The default value to be returned if the key is not + present or the type conversion fails. + :param index: An index for the list of available values. + :param type: If defined, this callable is used to cast the value + into a specific type. Exception are suppressed and result in + the default value to be returned. + ''' + try: + val = self.dict[key][index] + return type(val) if type else val + except Exception: + pass + return default + + def append(self, key, value): + ''' Add a new value to the list of values for this key. ''' + self.dict.setdefault(key, []).append(value) + + def replace(self, key, value): + ''' Replace the list of values with a single value. ''' + self.dict[key] = [value] + + def getall(self, key): + ''' Return a (possibly empty) list of values for a key. ''' + return self.dict.get(key) or [] + + #: Aliases for WTForms to mimic other multi-dict APIs (Django) + getone = get + getlist = getall + + +class FormsDict(MultiDict): + ''' This :class:`MultiDict` subclass is used to store request form data. + Additionally to the normal dict-like item access methods (which return + unmodified data as native strings), this container also supports + attribute-like access to its values. Attributes are automatically de- + or recoded to match :attr:`input_encoding` (default: 'utf8'). Missing + attributes default to an empty string. ''' + + #: Encoding used for attribute values. + input_encoding = 'utf8' + #: If true (default), unicode strings are first encoded with `latin1` + #: and then decoded to match :attr:`input_encoding`. + recode_unicode = True + + def _fix(self, s, encoding=None): + if isinstance(s, unicode) and self.recode_unicode: # Python 3 WSGI + s = s.encode('latin1') + if isinstance(s, bytes): # Python 2 WSGI + return s.decode(encoding or self.input_encoding) + return s + + def decode(self, encoding=None): + ''' Returns a copy with all keys and values de- or recoded to match + :attr:`input_encoding`. Some libraries (e.g. WTForms) want a + unicode dictionary. ''' + copy = FormsDict() + enc = copy.input_encoding = encoding or self.input_encoding + copy.recode_unicode = False + for key, value in self.allitems(): + copy.append(self._fix(key, enc), self._fix(value, enc)) + return copy + + def getunicode(self, name, default=None, encoding=None): + ''' Return the value as a unicode string, or the default. ''' + try: + return self._fix(self[name], encoding) + except (UnicodeError, KeyError): + return default + + def __getattr__(self, name, default=unicode()): + # Without this guard, pickle generates a cryptic TypeError: + if name.startswith('__') and name.endswith('__'): + return super(FormsDict, self).__getattr__(name) + return self.getunicode(name, default=default) + + +class HeaderDict(MultiDict): + """ A case-insensitive version of :class:`MultiDict` that defaults to + replace the old value instead of appending it. """ + + def __init__(self, *a, **ka): + self.dict = {} + if a or ka: self.update(*a, **ka) + + def __contains__(self, key): return _hkey(key) in self.dict + def __delitem__(self, key): del self.dict[_hkey(key)] + def __getitem__(self, key): return self.dict[_hkey(key)][-1] + def __setitem__(self, key, value): self.dict[_hkey(key)] = [str(value)] + def append(self, key, value): + self.dict.setdefault(_hkey(key), []).append(str(value)) + def replace(self, key, value): self.dict[_hkey(key)] = [str(value)] + def getall(self, key): return self.dict.get(_hkey(key)) or [] + def get(self, key, default=None, index=-1): + return MultiDict.get(self, _hkey(key), default, index) + def filter(self, names): + for name in [_hkey(n) for n in names]: + if name in self.dict: + del self.dict[name] + + +class WSGIHeaderDict(DictMixin): + ''' This dict-like class wraps a WSGI environ dict and provides convenient + access to HTTP_* fields. Keys and values are native strings + (2.x bytes or 3.x unicode) and keys are case-insensitive. If the WSGI + environment contains non-native string values, these are de- or encoded + using a lossless 'latin1' character set. + + The API will remain stable even on changes to the relevant PEPs. + Currently PEP 333, 444 and 3333 are supported. (PEP 444 is the only one + that uses non-native strings.) + ''' + #: List of keys that do not have a ``HTTP_`` prefix. + cgikeys = ('CONTENT_TYPE', 'CONTENT_LENGTH') + + def __init__(self, environ): + self.environ = environ + + def _ekey(self, key): + ''' Translate header field name to CGI/WSGI environ key. ''' + key = key.replace('-','_').upper() + if key in self.cgikeys: + return key + return 'HTTP_' + key + + def raw(self, key, default=None): + ''' Return the header value as is (may be bytes or unicode). ''' + return self.environ.get(self._ekey(key), default) + + def __getitem__(self, key): + return tonat(self.environ[self._ekey(key)], 'latin1') + + def __setitem__(self, key, value): + raise TypeError("%s is read-only." % self.__class__) + + def __delitem__(self, key): + raise TypeError("%s is read-only." % self.__class__) + + def __iter__(self): + for key in self.environ: + if key[:5] == 'HTTP_': + yield key[5:].replace('_', '-').title() + elif key in self.cgikeys: + yield key.replace('_', '-').title() + + def keys(self): return [x for x in self] + def __len__(self): return len(self.keys()) + def __contains__(self, key): return self._ekey(key) in self.environ + + + +class ConfigDict(dict): + ''' A dict-like configuration storage with additional support for + namespaces, validators, meta-data, on_change listeners and more. + ''' + + __slots__ = ('_meta', '_on_change') + + def __init__(self, *a, **ka): + self._meta = {} + self._on_change = lambda name, value: None + if a or ka: + depr('Constructor does no longer accept parameters.') + self.update(*a, **ka) + + def load_config(self, filename): + ''' Load values from an *.ini style config file. + + If the config file contains sections, their names are used as + namespaces for the values within. The two special sections + ``DEFAULT`` and ``bottle`` refer to the root namespace (no prefix). + ''' + conf = ConfigParser() + conf.read(filename) + for section in conf.sections(): + for key, value in conf.items(section): + if section not in ('DEFAULT', 'bottle'): + key = section + '.' + key + self[key] = value + return self + + def load_dict(self, source, namespace=''): + ''' Load values from a dictionary structure. Nesting can be used to + represent namespaces. + + >>> c.load_dict({'some': {'namespace': {'key': 'value'} } }) + {'some.namespace.key': 'value'} + ''' + for key, value in source.items(): + if isinstance(key, str): + nskey = (namespace + '.' + key).strip('.') + if isinstance(value, dict): + self.load_dict(value, namespace=nskey) + else: + self[nskey] = value + else: + raise TypeError('Key has type %r (not a string)' % type(key)) + return self + + def update(self, *a, **ka): + ''' If the first parameter is a string, all keys are prefixed with this + namespace. Apart from that it works just as the usual dict.update(). + Example: ``update('some.namespace', key='value')`` ''' + prefix = '' + if a and isinstance(a[0], str): + prefix = a[0].strip('.') + '.' + a = a[1:] + for key, value in dict(*a, **ka).items(): + self[prefix+key] = value + + def setdefault(self, key, value): + if key not in self: + self[key] = value + + def __setitem__(self, key, value): + if not isinstance(key, str): + raise TypeError('Key has type %r (not a string)' % type(key)) + value = self.meta_get(key, 'filter', lambda x: x)(value) + if key in self and self[key] is value: + return + self._on_change(key, value) + dict.__setitem__(self, key, value) + + def __delitem__(self, key): + self._on_change(key, None) + dict.__delitem__(self, key) + + def meta_get(self, key, metafield, default=None): + ''' Return the value of a meta field for a key. ''' + return self._meta.get(key, {}).get(metafield, default) + + def meta_set(self, key, metafield, value): + ''' Set the meta field for a key to a new value. This triggers the + on-change handler for existing keys. ''' + self._meta.setdefault(key, {})[metafield] = value + if key in self: + self[key] = self[key] + + def meta_list(self, key): + ''' Return an iterable of meta field names defined for a key. ''' + return self._meta.get(key, {}).keys() + + # Deprecated ConfigDict features + def __getattr__(self, key): + depr('Attribute access is deprecated.') #0.12 + if key not in self and key[0].isupper(): + self[key] = ConfigDict() + return self.get(key) + + def __setattr__(self, key, value): + if key in self.__slots__: + return dict.__setattr__(self, key, value) + depr('Attribute assignment is deprecated.') #0.12 + if hasattr(dict, key): + raise AttributeError('Read-only attribute.') + if key in self and self[key] and isinstance(self[key], ConfigDict): + raise AttributeError('Non-empty namespace attribute.') + self[key] = value + + def __delattr__(self, key): + if key in self: del self[key] + + def __call__(self, *a, **ka): + depr('Calling ConfDict is deprecated. Use the update() method.') #0.12 + self.update(*a, **ka) + return self + + + +class AppStack(list): + """ A stack-like list. Calling it returns the head of the stack. """ + + def __call__(self): + """ Return the current default application. """ + return self[-1] + + def push(self, value=None): + """ Add a new :class:`Bottle` instance to the stack """ + if not isinstance(value, Bottle): + value = Bottle() + self.append(value) + return value + + +class WSGIFileWrapper(object): + + def __init__(self, fp, buffer_size=1024*64): + self.fp, self.buffer_size = fp, buffer_size + for attr in ('fileno', 'close', 'read', 'readlines', 'tell', 'seek'): + if hasattr(fp, attr): setattr(self, attr, getattr(fp, attr)) + + def __iter__(self): + buff, read = self.buffer_size, self.read + while True: + part = read(buff) + if not part: return + yield part + + +class _closeiter(object): + ''' This only exists to be able to attach a .close method to iterators that + do not support attribute assignment (most of itertools). ''' + + def __init__(self, iterator, close=None): + self.iterator = iterator + self.close_callbacks = makelist(close) + + def __iter__(self): + return iter(self.iterator) + + def close(self): + for func in self.close_callbacks: + func() + + +class ResourceManager(object): + ''' This class manages a list of search paths and helps to find and open + application-bound resources (files). + + :param base: default value for :meth:`add_path` calls. + :param opener: callable used to open resources. + :param cachemode: controls which lookups are cached. One of 'all', + 'found' or 'none'. + ''' + + def __init__(self, base='./', opener=open, cachemode='all'): + self.opener = open + self.base = base + self.cachemode = cachemode + + #: A list of search paths. See :meth:`add_path` for details. + self.path = [] + #: A cache for resolved paths. ``res.cache.clear()`` clears the cache. + self.cache = {} + + def add_path(self, path, base=None, index=None, create=False): + ''' Add a new path to the list of search paths. Return False if the + path does not exist. + + :param path: The new search path. Relative paths are turned into + an absolute and normalized form. If the path looks like a file + (not ending in `/`), the filename is stripped off. + :param base: Path used to absolutize relative search paths. + Defaults to :attr:`base` which defaults to ``os.getcwd()``. + :param index: Position within the list of search paths. Defaults + to last index (appends to the list). + + The `base` parameter makes it easy to reference files installed + along with a python module or package:: + + res.add_path('./resources/', __file__) + ''' + base = os.path.abspath(os.path.dirname(base or self.base)) + path = os.path.abspath(os.path.join(base, os.path.dirname(path))) + path += os.sep + if path in self.path: + self.path.remove(path) + if create and not os.path.isdir(path): + os.makedirs(path) + if index is None: + self.path.append(path) + else: + self.path.insert(index, path) + self.cache.clear() + return os.path.exists(path) + + def __iter__(self): + ''' Iterate over all existing files in all registered paths. ''' + search = self.path[:] + while search: + path = search.pop() + if not os.path.isdir(path): continue + for name in os.listdir(path): + full = os.path.join(path, name) + if os.path.isdir(full): search.append(full) + else: yield full + + def lookup(self, name): + ''' Search for a resource and return an absolute file path, or `None`. + + The :attr:`path` list is searched in order. The first match is + returend. Symlinks are followed. The result is cached to speed up + future lookups. ''' + if name not in self.cache or DEBUG: + for path in self.path: + fpath = os.path.join(path, name) + if os.path.isfile(fpath): + if self.cachemode in ('all', 'found'): + self.cache[name] = fpath + return fpath + if self.cachemode == 'all': + self.cache[name] = None + return self.cache[name] + + def open(self, name, mode='r', *args, **kwargs): + ''' Find a resource and return a file object, or raise IOError. ''' + fname = self.lookup(name) + if not fname: raise IOError("Resource %r not found." % name) + return self.opener(fname, mode=mode, *args, **kwargs) + + +class FileUpload(object): + + def __init__(self, fileobj, name, filename, headers=None): + ''' Wrapper for file uploads. ''' + #: Open file(-like) object (BytesIO buffer or temporary file) + self.file = fileobj + #: Name of the upload form field + self.name = name + #: Raw filename as sent by the client (may contain unsafe characters) + self.raw_filename = filename + #: A :class:`HeaderDict` with additional headers (e.g. content-type) + self.headers = HeaderDict(headers) if headers else HeaderDict() + + content_type = HeaderProperty('Content-Type') + content_length = HeaderProperty('Content-Length', reader=int, default=-1) + + @cached_property + def filename(self): + ''' Name of the file on the client file system, but normalized to ensure + file system compatibility (lowercase, no whitespace, no path + separators, no unsafe characters, ASCII only). An empty filename + is returned as 'empty'. + ''' + from unicodedata import normalize #TODO: Module level import? + fname = self.raw_filename + if isinstance(fname, unicode): + fname = normalize('NFKD', fname).encode('ASCII', 'ignore') + fname = fname.decode('ASCII', 'ignore') + fname = os.path.basename(fname.replace('\\', os.path.sep)) + fname = re.sub(r'[^a-zA-Z0-9-_.\s]', '', fname).strip().lower() + fname = re.sub(r'[-\s]+', '-', fname.strip('.').strip()) + return fname or 'empty' + + def _copy_file(self, fp, chunk_size=2**16): + read, write, offset = self.file.read, fp.write, self.file.tell() + while 1: + buf = read(chunk_size) + if not buf: break + write(buf) + self.file.seek(offset) + + def save(self, destination, overwrite=False, chunk_size=2**16): + ''' Save file to disk or copy its content to an open file(-like) object. + If *destination* is a directory, :attr:`filename` is added to the + path. Existing files are not overwritten by default (IOError). + + :param destination: File path, directory or file(-like) object. + :param overwrite: If True, replace existing files. (default: False) + :param chunk_size: Bytes to read at a time. (default: 64kb) + ''' + if isinstance(destination, basestring): # Except file-likes here + if os.path.isdir(destination): + destination = os.path.join(destination, self.filename) + if not overwrite and os.path.exists(destination): + raise IOError('File exists.') + with open(destination, 'wb') as fp: + self._copy_file(fp, chunk_size) + else: + self._copy_file(destination, chunk_size) + + + + + + +############################################################################### +# Application Helper ########################################################### +############################################################################### + + +def abort(code=500, text='Unknown Error: Application stopped.'): + """ Aborts execution and causes a HTTP error. """ + raise HTTPError(code, text) + + +def redirect(url, code=None): + """ Aborts execution and causes a 303 or 302 redirect, depending on + the HTTP protocol version. """ + if not code: + code = 303 if request.get('SERVER_PROTOCOL') == "HTTP/1.1" else 302 + res = response.copy(cls=HTTPResponse) + res.status = code + res.body = "" + res.set_header('Location', urljoin(request.url, url)) + raise res + + +def _file_iter_range(fp, offset, bytes, maxread=1024*1024): + ''' Yield chunks from a range in a file. No chunk is bigger than maxread.''' + fp.seek(offset) + while bytes > 0: + part = fp.read(min(bytes, maxread)) + if not part: break + bytes -= len(part) + yield part + + +def static_file(filename, root, mimetype='auto', download=False, charset='UTF-8'): + """ Open a file in a safe way and return :exc:`HTTPResponse` with status + code 200, 305, 401 or 404. The ``Content-Type``, ``Content-Encoding``, + ``Content-Length`` and ``Last-Modified`` headers are set if possible. + Special support for ``If-Modified-Since``, ``Range`` and ``HEAD`` + requests. + + :param filename: Name or path of the file to send. + :param root: Root path for file lookups. Should be an absolute directory + path. + :param mimetype: Defines the content-type header (default: guess from + file extension) + :param download: If True, ask the browser to open a `Save as...` dialog + instead of opening the file with the associated program. You can + specify a custom filename as a string. If not specified, the + original filename is used (default: False). + :param charset: The charset to use for files with a ``text/*`` + mime-type. (default: UTF-8) + """ + + root = os.path.abspath(root) + os.sep + filename = os.path.abspath(os.path.join(root, filename.strip('/\\'))) + headers = dict() + + if not filename.startswith(root): + return HTTPError(403, "Access denied.") + if not os.path.exists(filename) or not os.path.isfile(filename): + return HTTPError(404, "File does not exist.") + if not os.access(filename, os.R_OK): + return HTTPError(403, "You do not have permission to access this file.") + + if mimetype == 'auto': + mimetype, encoding = mimetypes.guess_type(filename) + if encoding: headers['Content-Encoding'] = encoding + + if mimetype: + if mimetype[:5] == 'text/' and charset and 'charset' not in mimetype: + mimetype += '; charset=%s' % charset + headers['Content-Type'] = mimetype + + if download: + download = os.path.basename(filename if download == True else download) + headers['Content-Disposition'] = 'attachment; filename="%s"' % download + + stats = os.stat(filename) + headers['Content-Length'] = clen = stats.st_size + lm = time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime(stats.st_mtime)) + headers['Last-Modified'] = lm + + ims = request.environ.get('HTTP_IF_MODIFIED_SINCE') + if ims: + ims = parse_date(ims.split(";")[0].strip()) + if ims is not None and ims >= int(stats.st_mtime): + headers['Date'] = time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime()) + return HTTPResponse(status=304, **headers) + + body = '' if request.method == 'HEAD' else open(filename, 'rb') + + headers["Accept-Ranges"] = "bytes" + ranges = request.environ.get('HTTP_RANGE') + if 'HTTP_RANGE' in request.environ: + ranges = list(parse_range_header(request.environ['HTTP_RANGE'], clen)) + if not ranges: + return HTTPError(416, "Requested Range Not Satisfiable") + offset, end = ranges[0] + headers["Content-Range"] = "bytes %d-%d/%d" % (offset, end-1, clen) + headers["Content-Length"] = str(end-offset) + if body: body = _file_iter_range(body, offset, end-offset) + return HTTPResponse(body, status=206, **headers) + return HTTPResponse(body, **headers) + + + + + + +############################################################################### +# HTTP Utilities and MISC (TODO) ############################################### +############################################################################### + + +def debug(mode=True): + """ Change the debug level. + There is only one debug level supported at the moment.""" + global DEBUG + if mode: warnings.simplefilter('default') + DEBUG = bool(mode) + +def http_date(value): + if isinstance(value, (datedate, datetime)): + value = value.utctimetuple() + elif isinstance(value, (int, float)): + value = time.gmtime(value) + if not isinstance(value, basestring): + value = time.strftime("%a, %d %b %Y %H:%M:%S GMT", value) + return value + +def parse_date(ims): + """ Parse rfc1123, rfc850 and asctime timestamps and return UTC epoch. """ + try: + ts = email.utils.parsedate_tz(ims) + return time.mktime(ts[:8] + (0,)) - (ts[9] or 0) - time.timezone + except (TypeError, ValueError, IndexError, OverflowError): + return None + +def parse_auth(header): + """ Parse rfc2617 HTTP authentication header string (basic) and return (user,pass) tuple or None""" + try: + method, data = header.split(None, 1) + if method.lower() == 'basic': + user, pwd = touni(base64.b64decode(tob(data))).split(':',1) + return user, pwd + except (KeyError, ValueError): + return None + +def parse_range_header(header, maxlen=0): + ''' Yield (start, end) ranges parsed from a HTTP Range header. Skip + unsatisfiable ranges. The end index is non-inclusive.''' + if not header or header[:6] != 'bytes=': return + ranges = [r.split('-', 1) for r in header[6:].split(',') if '-' in r] + for start, end in ranges: + try: + if not start: # bytes=-100 -> last 100 bytes + start, end = max(0, maxlen-int(end)), maxlen + elif not end: # bytes=100- -> all but the first 99 bytes + start, end = int(start), maxlen + else: # bytes=100-200 -> bytes 100-200 (inclusive) + start, end = int(start), min(int(end)+1, maxlen) + if 0 <= start < end <= maxlen: + yield start, end + except ValueError: + pass + +def _parse_qsl(qs): + r = [] + for pair in qs.replace(';','&').split('&'): + if not pair: continue + nv = pair.split('=', 1) + if len(nv) != 2: nv.append('') + key = urlunquote(nv[0].replace('+', ' ')) + value = urlunquote(nv[1].replace('+', ' ')) + r.append((key, value)) + return r + +def _lscmp(a, b): + ''' Compares two strings in a cryptographically safe way: + Runtime is not affected by length of common prefix. ''' + return not sum(0 if x==y else 1 for x, y in zip(a, b)) and len(a) == len(b) + + +def cookie_encode(data, key): + ''' Encode and sign a pickle-able object. Return a (byte) string ''' + msg = base64.b64encode(pickle.dumps(data, -1)) + sig = base64.b64encode(hmac.new(tob(key), msg).digest()) + return tob('!') + sig + tob('?') + msg + + +def cookie_decode(data, key): + ''' Verify and decode an encoded string. Return an object or None.''' + data = tob(data) + if cookie_is_encoded(data): + sig, msg = data.split(tob('?'), 1) + if _lscmp(sig[1:], base64.b64encode(hmac.new(tob(key), msg).digest())): + return pickle.loads(base64.b64decode(msg)) + return None + + +def cookie_is_encoded(data): + ''' Return True if the argument looks like a encoded cookie.''' + return bool(data.startswith(tob('!')) and tob('?') in data) + + +def html_escape(string): + ''' Escape HTML special characters ``&<>`` and quotes ``'"``. ''' + return string.replace('&','&').replace('<','<').replace('>','>')\ + .replace('"','"').replace("'",''') + + +def html_quote(string): + ''' Escape and quote a string to be used as an HTTP attribute.''' + return '"%s"' % html_escape(string).replace('\n','%#10;')\ + .replace('\r',' ').replace('\t','	') + + +def yieldroutes(func): + """ Return a generator for routes that match the signature (name, args) + of the func parameter. This may yield more than one route if the function + takes optional keyword arguments. The output is best described by example:: + + a() -> '/a' + b(x, y) -> '/b/<x>/<y>' + c(x, y=5) -> '/c/<x>' and '/c/<x>/<y>' + d(x=5, y=6) -> '/d' and '/d/<x>' and '/d/<x>/<y>' + """ + path = '/' + func.__name__.replace('__','/').lstrip('/') + spec = getargspec(func) + argc = len(spec[0]) - len(spec[3] or []) + path += ('/<%s>' * argc) % tuple(spec[0][:argc]) + yield path + for arg in spec[0][argc:]: + path += '/<%s>' % arg + yield path + + +def path_shift(script_name, path_info, shift=1): + ''' Shift path fragments from PATH_INFO to SCRIPT_NAME and vice versa. + + :return: The modified paths. + :param script_name: The SCRIPT_NAME path. + :param script_name: The PATH_INFO path. + :param shift: The number of path fragments to shift. May be negative to + change the shift direction. (default: 1) + ''' + if shift == 0: return script_name, path_info + pathlist = path_info.strip('/').split('/') + scriptlist = script_name.strip('/').split('/') + if pathlist and pathlist[0] == '': pathlist = [] + if scriptlist and scriptlist[0] == '': scriptlist = [] + if shift > 0 and shift <= len(pathlist): + moved = pathlist[:shift] + scriptlist = scriptlist + moved + pathlist = pathlist[shift:] + elif shift < 0 and shift >= -len(scriptlist): + moved = scriptlist[shift:] + pathlist = moved + pathlist + scriptlist = scriptlist[:shift] + else: + empty = 'SCRIPT_NAME' if shift < 0 else 'PATH_INFO' + raise AssertionError("Cannot shift. Nothing left from %s" % empty) + new_script_name = '/' + '/'.join(scriptlist) + new_path_info = '/' + '/'.join(pathlist) + if path_info.endswith('/') and pathlist: new_path_info += '/' + return new_script_name, new_path_info + + +def auth_basic(check, realm="private", text="Access denied"): + ''' Callback decorator to require HTTP auth (basic). + TODO: Add route(check_auth=...) parameter. ''' + def decorator(func): + def wrapper(*a, **ka): + user, password = request.auth or (None, None) + if user is None or not check(user, password): + err = HTTPError(401, text) + err.add_header('WWW-Authenticate', 'Basic realm="%s"' % realm) + return err + return func(*a, **ka) + return wrapper + return decorator + + +# Shortcuts for common Bottle methods. +# They all refer to the current default application. + +def make_default_app_wrapper(name): + ''' Return a callable that relays calls to the current default app. ''' + @functools.wraps(getattr(Bottle, name)) + def wrapper(*a, **ka): + return getattr(app(), name)(*a, **ka) + return wrapper + +route = make_default_app_wrapper('route') +get = make_default_app_wrapper('get') +post = make_default_app_wrapper('post') +put = make_default_app_wrapper('put') +delete = make_default_app_wrapper('delete') +error = make_default_app_wrapper('error') +mount = make_default_app_wrapper('mount') +hook = make_default_app_wrapper('hook') +install = make_default_app_wrapper('install') +uninstall = make_default_app_wrapper('uninstall') +url = make_default_app_wrapper('get_url') + + + + + + + +############################################################################### +# Server Adapter ############################################################### +############################################################################### + + +class ServerAdapter(object): + quiet = False + def __init__(self, host='127.0.0.1', port=8080, **options): + self.options = options + self.host = host + self.port = int(port) + + def run(self, handler): # pragma: no cover + pass + + def __repr__(self): + args = ', '.join(['%s=%s'%(k,repr(v)) for k, v in self.options.items()]) + return "%s(%s)" % (self.__class__.__name__, args) + + +class CGIServer(ServerAdapter): + quiet = True + def run(self, handler): # pragma: no cover + from wsgiref.handlers import CGIHandler + def fixed_environ(environ, start_response): + environ.setdefault('PATH_INFO', '') + return handler(environ, start_response) + CGIHandler().run(fixed_environ) + + +class FlupFCGIServer(ServerAdapter): + def run(self, handler): # pragma: no cover + import flup.server.fcgi + self.options.setdefault('bindAddress', (self.host, self.port)) + flup.server.fcgi.WSGIServer(handler, **self.options).run() + + +class WSGIRefServer(ServerAdapter): + def run(self, app): # pragma: no cover + from wsgiref.simple_server import WSGIRequestHandler, WSGIServer + from wsgiref.simple_server import make_server + import socket + + class FixedHandler(WSGIRequestHandler): + def address_string(self): # Prevent reverse DNS lookups please. + return self.client_address[0] + def log_request(*args, **kw): + if not self.quiet: + return WSGIRequestHandler.log_request(*args, **kw) + + handler_cls = self.options.get('handler_class', FixedHandler) + server_cls = self.options.get('server_class', WSGIServer) + + if ':' in self.host: # Fix wsgiref for IPv6 addresses. + if getattr(server_cls, 'address_family') == socket.AF_INET: + class server_cls(server_cls): + address_family = socket.AF_INET6 + + srv = make_server(self.host, self.port, app, server_cls, handler_cls) + srv.serve_forever() + + +class CherryPyServer(ServerAdapter): + def run(self, handler): # pragma: no cover + from cherrypy import wsgiserver + self.options['bind_addr'] = (self.host, self.port) + self.options['wsgi_app'] = handler + server = wsgiserver.CherryPyWSGIServer(**self.options) + try: + server.start() + finally: + server.stop() + + +class WaitressServer(ServerAdapter): + def run(self, handler): + from waitress import serve + serve(handler, host=self.host, port=self.port) + + +class PasteServer(ServerAdapter): + def run(self, handler): # pragma: no cover + from paste import httpserver + from paste.translogger import TransLogger + handler = TransLogger(handler, setup_console_handler=(not self.quiet)) + httpserver.serve(handler, host=self.host, port=str(self.port), + **self.options) + + +class MeinheldServer(ServerAdapter): + def run(self, handler): + from meinheld import server + server.listen((self.host, self.port)) + server.run(handler) + + +class FapwsServer(ServerAdapter): + """ Extremely fast webserver using libev. See http://www.fapws.org/ """ + def run(self, handler): # pragma: no cover + import fapws._evwsgi as evwsgi + from fapws import base, config + port = self.port + if float(config.SERVER_IDENT[-2:]) > 0.4: + # fapws3 silently changed its API in 0.5 + port = str(port) + evwsgi.start(self.host, port) + # fapws3 never releases the GIL. Complain upstream. I tried. No luck. + if 'BOTTLE_CHILD' in os.environ and not self.quiet: + _stderr("WARNING: Auto-reloading does not work with Fapws3.\n") + _stderr(" (Fapws3 breaks python thread support)\n") + evwsgi.set_base_module(base) + def app(environ, start_response): + environ['wsgi.multiprocess'] = False + return handler(environ, start_response) + evwsgi.wsgi_cb(('', app)) + evwsgi.run() + + +class TornadoServer(ServerAdapter): + """ The super hyped asynchronous server by facebook. Untested. """ + def run(self, handler): # pragma: no cover + import tornado.wsgi, tornado.httpserver, tornado.ioloop + container = tornado.wsgi.WSGIContainer(handler) + server = tornado.httpserver.HTTPServer(container) + server.listen(port=self.port,address=self.host) + tornado.ioloop.IOLoop.instance().start() + + +class AppEngineServer(ServerAdapter): + """ Adapter for Google App Engine. """ + quiet = True + def run(self, handler): + from google.appengine.ext.webapp import util + # A main() function in the handler script enables 'App Caching'. + # Lets makes sure it is there. This _really_ improves performance. + module = sys.modules.get('__main__') + if module and not hasattr(module, 'main'): + module.main = lambda: util.run_wsgi_app(handler) + util.run_wsgi_app(handler) + + +class TwistedServer(ServerAdapter): + """ Untested. """ + def run(self, handler): + from twisted.web import server, wsgi + from twisted.python.threadpool import ThreadPool + from twisted.internet import reactor + thread_pool = ThreadPool() + thread_pool.start() + reactor.addSystemEventTrigger('after', 'shutdown', thread_pool.stop) + factory = server.Site(wsgi.WSGIResource(reactor, thread_pool, handler)) + reactor.listenTCP(self.port, factory, interface=self.host) + reactor.run() + + +class DieselServer(ServerAdapter): + """ Untested. """ + def run(self, handler): + from diesel.protocols.wsgi import WSGIApplication + app = WSGIApplication(handler, port=self.port) + app.run() + + +class GeventServer(ServerAdapter): + """ Untested. Options: + + * `fast` (default: False) uses libevent's http server, but has some + issues: No streaming, no pipelining, no SSL. + * See gevent.wsgi.WSGIServer() documentation for more options. + """ + def run(self, handler): + from gevent import wsgi, pywsgi, local + if not isinstance(_lctx, local.local): + msg = "Bottle requires gevent.monkey.patch_all() (before import)" + raise RuntimeError(msg) + if not self.options.pop('fast', None): wsgi = pywsgi + self.options['log'] = None if self.quiet else 'default' + address = (self.host, self.port) + wsgi.WSGIServer(address, handler, **self.options).serve_forever() + + +class GunicornServer(ServerAdapter): + """ Untested. See http://gunicorn.org/configure.html for options. """ + def run(self, handler): + from gunicorn.app.base import Application + + config = {'bind': "%s:%d" % (self.host, int(self.port))} + config.update(self.options) + + class GunicornApplication(Application): + def init(self, parser, opts, args): + return config + + def load(self): + return handler + + GunicornApplication().run() + + +class EventletServer(ServerAdapter): + """ Untested """ + def run(self, handler): + from eventlet import wsgi, listen + try: + wsgi.server(listen((self.host, self.port)), handler, + log_output=(not self.quiet)) + except TypeError: + # Fallback, if we have old version of eventlet + wsgi.server(listen((self.host, self.port)), handler) + + +class RocketServer(ServerAdapter): + """ Untested. """ + def run(self, handler): + from rocket import Rocket + server = Rocket((self.host, self.port), 'wsgi', { 'wsgi_app' : handler }) + server.start() + + +class BjoernServer(ServerAdapter): + """ Fast server written in C: https://github.com/jonashaag/bjoern """ + def run(self, handler): + from bjoern import run + run(handler, self.host, self.port) + + +class AutoServer(ServerAdapter): + """ Untested. """ + adapters = [WaitressServer, PasteServer, TwistedServer, CherryPyServer, WSGIRefServer] + def run(self, handler): + for sa in self.adapters: + try: + return sa(self.host, self.port, **self.options).run(handler) + except ImportError: + pass + +server_names = { + 'cgi': CGIServer, + 'flup': FlupFCGIServer, + 'wsgiref': WSGIRefServer, + 'waitress': WaitressServer, + 'cherrypy': CherryPyServer, + 'paste': PasteServer, + 'fapws3': FapwsServer, + 'tornado': TornadoServer, + 'gae': AppEngineServer, + 'twisted': TwistedServer, + 'diesel': DieselServer, + 'meinheld': MeinheldServer, + 'gunicorn': GunicornServer, + 'eventlet': EventletServer, + 'gevent': GeventServer, + 'rocket': RocketServer, + 'bjoern' : BjoernServer, + 'auto': AutoServer, +} + + + + + + +############################################################################### +# Application Control ########################################################## +############################################################################### + + +def load(target, **namespace): + """ Import a module or fetch an object from a module. + + * ``package.module`` returns `module` as a module object. + * ``pack.mod:name`` returns the module variable `name` from `pack.mod`. + * ``pack.mod:func()`` calls `pack.mod.func()` and returns the result. + + The last form accepts not only function calls, but any type of + expression. Keyword arguments passed to this function are available as + local variables. Example: ``import_string('re:compile(x)', x='[a-z]')`` + """ + module, target = target.split(":", 1) if ':' in target else (target, None) + if module not in sys.modules: __import__(module) + if not target: return sys.modules[module] + if target.isalnum(): return getattr(sys.modules[module], target) + package_name = module.split('.')[0] + namespace[package_name] = sys.modules[package_name] + return eval('%s.%s' % (module, target), namespace) + + +def load_app(target): + """ Load a bottle application from a module and make sure that the import + does not affect the current default application, but returns a separate + application object. See :func:`load` for the target parameter. """ + global NORUN; NORUN, nr_old = True, NORUN + try: + tmp = default_app.push() # Create a new "default application" + rv = load(target) # Import the target module + return rv if callable(rv) else tmp + finally: + default_app.remove(tmp) # Remove the temporary added default application + NORUN = nr_old + +_debug = debug +def run(app=None, server='wsgiref', host='127.0.0.1', port=8080, + interval=1, reloader=False, quiet=False, plugins=None, + debug=None, **kargs): + """ Start a server instance. This method blocks until the server terminates. + + :param app: WSGI application or target string supported by + :func:`load_app`. (default: :func:`default_app`) + :param server: Server adapter to use. See :data:`server_names` keys + for valid names or pass a :class:`ServerAdapter` subclass. + (default: `wsgiref`) + :param host: Server address to bind to. Pass ``0.0.0.0`` to listens on + all interfaces including the external one. (default: 127.0.0.1) + :param port: Server port to bind to. Values below 1024 require root + privileges. (default: 8080) + :param reloader: Start auto-reloading server? (default: False) + :param interval: Auto-reloader interval in seconds (default: 1) + :param quiet: Suppress output to stdout and stderr? (default: False) + :param options: Options passed to the server adapter. + """ + if NORUN: return + if reloader and not os.environ.get('BOTTLE_CHILD'): + try: + lockfile = None + fd, lockfile = tempfile.mkstemp(prefix='bottle.', suffix='.lock') + os.close(fd) # We only need this file to exist. We never write to it + while os.path.exists(lockfile): + args = [sys.executable] + sys.argv + environ = os.environ.copy() + environ['BOTTLE_CHILD'] = 'true' + environ['BOTTLE_LOCKFILE'] = lockfile + p = subprocess.Popen(args, env=environ) + while p.poll() is None: # Busy wait... + os.utime(lockfile, None) # I am alive! + time.sleep(interval) + if p.poll() != 3: + if os.path.exists(lockfile): os.unlink(lockfile) + sys.exit(p.poll()) + except KeyboardInterrupt: + pass + finally: + if os.path.exists(lockfile): + os.unlink(lockfile) + return + + try: + if debug is not None: _debug(debug) + app = app or default_app() + if isinstance(app, basestring): + app = load_app(app) + if not callable(app): + raise ValueError("Application is not callable: %r" % app) + + for plugin in plugins or []: + app.install(plugin) + + if server in server_names: + server = server_names.get(server) + if isinstance(server, basestring): + server = load(server) + if isinstance(server, type): + server = server(host=host, port=port, **kargs) + if not isinstance(server, ServerAdapter): + raise ValueError("Unknown or unsupported server: %r" % server) + + server.quiet = server.quiet or quiet + if not server.quiet: + _stderr("Bottle v%s server starting up (using %s)...\n" % (__version__, repr(server))) + _stderr("Listening on http://%s:%d/\n" % (server.host, server.port)) + _stderr("Hit Ctrl-C to quit.\n\n") + + if reloader: + lockfile = os.environ.get('BOTTLE_LOCKFILE') + bgcheck = FileCheckerThread(lockfile, interval) + with bgcheck: + server.run(app) + if bgcheck.status == 'reload': + sys.exit(3) + else: + server.run(app) + except KeyboardInterrupt: + pass + except (SystemExit, MemoryError): + raise + except: + if not reloader: raise + if not getattr(server, 'quiet', quiet): + print_exc() + time.sleep(interval) + sys.exit(3) + + + +class FileCheckerThread(threading.Thread): + ''' Interrupt main-thread as soon as a changed module file is detected, + the lockfile gets deleted or gets to old. ''' + + def __init__(self, lockfile, interval): + threading.Thread.__init__(self) + self.lockfile, self.interval = lockfile, interval + #: Is one of 'reload', 'error' or 'exit' + self.status = None + + def run(self): + exists = os.path.exists + mtime = lambda path: os.stat(path).st_mtime + files = dict() + + for module in list(sys.modules.values()): + path = getattr(module, '__file__', '') + if path[-4:] in ('.pyo', '.pyc'): path = path[:-1] + if path and exists(path): files[path] = mtime(path) + + while not self.status: + if not exists(self.lockfile)\ + or mtime(self.lockfile) < time.time() - self.interval - 5: + self.status = 'error' + thread.interrupt_main() + for path, lmtime in list(files.items()): + if not exists(path) or mtime(path) > lmtime: + self.status = 'reload' + thread.interrupt_main() + break + time.sleep(self.interval) + + def __enter__(self): + self.start() + + def __exit__(self, exc_type, exc_val, exc_tb): + if not self.status: self.status = 'exit' # silent exit + self.join() + return exc_type is not None and issubclass(exc_type, KeyboardInterrupt) + + + + + +############################################################################### +# Template Adapters ############################################################ +############################################################################### + + +class TemplateError(HTTPError): + def __init__(self, message): + HTTPError.__init__(self, 500, message) + + +class BaseTemplate(object): + """ Base class and minimal API for template adapters """ + extensions = ['tpl','html','thtml','stpl'] + settings = {} #used in prepare() + defaults = {} #used in render() + + def __init__(self, source=None, name=None, lookup=[], encoding='utf8', **settings): + """ Create a new template. + If the source parameter (str or buffer) is missing, the name argument + is used to guess a template filename. Subclasses can assume that + self.source and/or self.filename are set. Both are strings. + The lookup, encoding and settings parameters are stored as instance + variables. + The lookup parameter stores a list containing directory paths. + The encoding parameter should be used to decode byte strings or files. + The settings parameter contains a dict for engine-specific settings. + """ + self.name = name + self.source = source.read() if hasattr(source, 'read') else source + self.filename = source.filename if hasattr(source, 'filename') else None + self.lookup = [os.path.abspath(x) for x in lookup] + self.encoding = encoding + self.settings = self.settings.copy() # Copy from class variable + self.settings.update(settings) # Apply + if not self.source and self.name: + self.filename = self.search(self.name, self.lookup) + if not self.filename: + raise TemplateError('Template %s not found.' % repr(name)) + if not self.source and not self.filename: + raise TemplateError('No template specified.') + self.prepare(**self.settings) + + @classmethod + def search(cls, name, lookup=[]): + """ Search name in all directories specified in lookup. + First without, then with common extensions. Return first hit. """ + if not lookup: + depr('The template lookup path list should not be empty.') + lookup = ['.'] + + if os.path.isabs(name) and os.path.isfile(name): + depr('Absolute template path names are deprecated.') + return os.path.abspath(name) + + for spath in lookup: + spath = os.path.abspath(spath) + os.sep + fname = os.path.abspath(os.path.join(spath, name)) + if not fname.startswith(spath): continue + if os.path.isfile(fname): return fname + for ext in cls.extensions: + if os.path.isfile('%s.%s' % (fname, ext)): + return '%s.%s' % (fname, ext) + + @classmethod + def global_config(cls, key, *args): + ''' This reads or sets the global settings stored in class.settings. ''' + if args: + cls.settings = cls.settings.copy() # Make settings local to class + cls.settings[key] = args[0] + else: + return cls.settings[key] + + def prepare(self, **options): + """ Run preparations (parsing, caching, ...). + It should be possible to call this again to refresh a template or to + update settings. + """ + raise NotImplementedError + + def render(self, *args, **kwargs): + """ Render the template with the specified local variables and return + a single byte or unicode string. If it is a byte string, the encoding + must match self.encoding. This method must be thread-safe! + Local variables may be provided in dictionaries (args) + or directly, as keywords (kwargs). + """ + raise NotImplementedError + + +class MakoTemplate(BaseTemplate): + def prepare(self, **options): + from mako.template import Template + from mako.lookup import TemplateLookup + options.update({'input_encoding':self.encoding}) + options.setdefault('format_exceptions', bool(DEBUG)) + lookup = TemplateLookup(directories=self.lookup, **options) + if self.source: + self.tpl = Template(self.source, lookup=lookup, **options) + else: + self.tpl = Template(uri=self.name, filename=self.filename, lookup=lookup, **options) + + def render(self, *args, **kwargs): + for dictarg in args: kwargs.update(dictarg) + _defaults = self.defaults.copy() + _defaults.update(kwargs) + return self.tpl.render(**_defaults) + + +class CheetahTemplate(BaseTemplate): + def prepare(self, **options): + from Cheetah.Template import Template + self.context = threading.local() + self.context.vars = {} + options['searchList'] = [self.context.vars] + if self.source: + self.tpl = Template(source=self.source, **options) + else: + self.tpl = Template(file=self.filename, **options) + + def render(self, *args, **kwargs): + for dictarg in args: kwargs.update(dictarg) + self.context.vars.update(self.defaults) + self.context.vars.update(kwargs) + out = str(self.tpl) + self.context.vars.clear() + return out + + +class Jinja2Template(BaseTemplate): + def prepare(self, filters=None, tests=None, **kwargs): + from jinja2 import Environment, FunctionLoader + if 'prefix' in kwargs: # TODO: to be removed after a while + raise RuntimeError('The keyword argument `prefix` has been removed. ' + 'Use the full jinja2 environment name line_statement_prefix instead.') + self.env = Environment(loader=FunctionLoader(self.loader), **kwargs) + if filters: self.env.filters.update(filters) + if tests: self.env.tests.update(tests) + if self.source: + self.tpl = self.env.from_string(self.source) + else: + self.tpl = self.env.get_template(self.filename) + + def render(self, *args, **kwargs): + for dictarg in args: kwargs.update(dictarg) + _defaults = self.defaults.copy() + _defaults.update(kwargs) + return self.tpl.render(**_defaults) + + def loader(self, name): + fname = self.search(name, self.lookup) + if not fname: return + with open(fname, "rb") as f: + return f.read().decode(self.encoding) + + +class SimpleTemplate(BaseTemplate): + + def prepare(self, escape_func=html_escape, noescape=False, syntax=None, **ka): + self.cache = {} + enc = self.encoding + self._str = lambda x: touni(x, enc) + self._escape = lambda x: escape_func(touni(x, enc)) + self.syntax = syntax + if noescape: + self._str, self._escape = self._escape, self._str + + @cached_property + def co(self): + return compile(self.code, self.filename or '<string>', 'exec') + + @cached_property + def code(self): + source = self.source or open(self.filename, 'rb').read() + try: + source, encoding = touni(source), 'utf8' + except UnicodeError: + depr('Template encodings other than utf8 are no longer supported.') + source, encoding = touni(source, 'latin1'), 'latin1' + parser = StplParser(source, encoding=encoding, syntax=self.syntax) + code = parser.translate() + self.encoding = parser.encoding + return code + + def _rebase(self, _env, _name=None, **kwargs): + if _name is None: + depr('Rebase function called without arguments.' + ' You were probably looking for {{base}}?', True) + _env['_rebase'] = (_name, kwargs) + + def _include(self, _env, _name=None, **kwargs): + if _name is None: + depr('Rebase function called without arguments.' + ' You were probably looking for {{base}}?', True) + env = _env.copy() + env.update(kwargs) + if _name not in self.cache: + self.cache[_name] = self.__class__(name=_name, lookup=self.lookup) + return self.cache[_name].execute(env['_stdout'], env) + + def execute(self, _stdout, kwargs): + env = self.defaults.copy() + env.update(kwargs) + env.update({'_stdout': _stdout, '_printlist': _stdout.extend, + 'include': functools.partial(self._include, env), + 'rebase': functools.partial(self._rebase, env), '_rebase': None, + '_str': self._str, '_escape': self._escape, 'get': env.get, + 'setdefault': env.setdefault, 'defined': env.__contains__ }) + eval(self.co, env) + if env.get('_rebase'): + subtpl, rargs = env.pop('_rebase') + rargs['base'] = ''.join(_stdout) #copy stdout + del _stdout[:] # clear stdout + return self._include(env, subtpl, **rargs) + return env + + def render(self, *args, **kwargs): + """ Render the template using keyword arguments as local variables. """ + env = {}; stdout = [] + for dictarg in args: env.update(dictarg) + env.update(kwargs) + self.execute(stdout, env) + return ''.join(stdout) + + +class StplSyntaxError(TemplateError): pass + + +class StplParser(object): + ''' Parser for stpl templates. ''' + _re_cache = {} #: Cache for compiled re patterns + # This huge pile of voodoo magic splits python code into 8 different tokens. + # 1: All kinds of python strings (trust me, it works) + _re_tok = '((?m)[urbURB]?(?:\'\'(?!\')|""(?!")|\'{6}|"{6}' \ + '|\'(?:[^\\\\\']|\\\\.)+?\'|"(?:[^\\\\"]|\\\\.)+?"' \ + '|\'{3}(?:[^\\\\]|\\\\.|\\n)+?\'{3}' \ + '|"{3}(?:[^\\\\]|\\\\.|\\n)+?"{3}))' + _re_inl = _re_tok.replace('|\\n','') # We re-use this string pattern later + # 2: Comments (until end of line, but not the newline itself) + _re_tok += '|(#.*)' + # 3,4: Keywords that start or continue a python block (only start of line) + _re_tok += '|^([ \\t]*(?:if|for|while|with|try|def|class)\\b)' \ + '|^([ \\t]*(?:elif|else|except|finally)\\b)' + # 5: Our special 'end' keyword (but only if it stands alone) + _re_tok += '|((?:^|;)[ \\t]*end[ \\t]*(?=(?:%(block_close)s[ \\t]*)?\\r?$|;|#))' + # 6: A customizable end-of-code-block template token (only end of line) + _re_tok += '|(%(block_close)s[ \\t]*(?=$))' + # 7: And finally, a single newline. The 8th token is 'everything else' + _re_tok += '|(\\r?\\n)' + # Match the start tokens of code areas in a template + _re_split = '(?m)^[ \t]*(\\\\?)((%(line_start)s)|(%(block_start)s))(%%?)' + # Match inline statements (may contain python strings) + _re_inl = '%%(inline_start)s((?:%s|[^\'"\n]*?)+)%%(inline_end)s' % _re_inl + + default_syntax = '<% %> % {{ }}' + + def __init__(self, source, syntax=None, encoding='utf8'): + self.source, self.encoding = touni(source, encoding), encoding + self.set_syntax(syntax or self.default_syntax) + self.code_buffer, self.text_buffer = [], [] + self.lineno, self.offset = 1, 0 + self.indent, self.indent_mod = 0, 0 + + def get_syntax(self): + ''' Tokens as a space separated string (default: <% %> % {{ }}) ''' + return self._syntax + + def set_syntax(self, syntax): + self._syntax = syntax + self._tokens = syntax.split() + if not syntax in self._re_cache: + names = 'block_start block_close line_start inline_start inline_end' + etokens = map(re.escape, self._tokens) + pattern_vars = dict(zip(names.split(), etokens)) + patterns = (self._re_split, self._re_tok, self._re_inl) + patterns = [re.compile(p%pattern_vars) for p in patterns] + self._re_cache[syntax] = patterns + self.re_split, self.re_tok, self.re_inl = self._re_cache[syntax] + + syntax = property(get_syntax, set_syntax) + + def translate(self): + if self.offset: raise RuntimeError('Parser is a one time instance.') + while True: + m = self.re_split.search(self.source[self.offset:]) + if m: + text = self.source[self.offset:self.offset+m.start()] + self.text_buffer.append(text) + self.offset += m.end() + if m.group(1): # New escape syntax + line, sep, _ = self.source[self.offset:].partition('\n') + self.text_buffer.append(m.group(2)+m.group(5)+line+sep) + self.offset += len(line+sep)+1 + continue + elif m.group(5): # Old escape syntax + depr('Escape code lines with a backslash.') + line, sep, _ = self.source[self.offset:].partition('\n') + self.text_buffer.append(m.group(2)+line+sep) + self.offset += len(line+sep)+1 + continue + self.flush_text() + self.read_code(multiline=bool(m.group(4))) + else: break + self.text_buffer.append(self.source[self.offset:]) + self.flush_text() + return ''.join(self.code_buffer) + + def read_code(self, multiline): + code_line, comment, start_line = '', '', self.lineno + while True: + m = self.re_tok.search(self.source[self.offset:]) + if not m: + code_line += self.source[self.offset:] + self.offset = len(self.source) + self.write_code(code_line.strip(), comment) + return + code_line += self.source[self.offset:self.offset+m.start()] + self.offset += m.end() + _str, _com, _blk1, _blk2, _end, _cend, _nl = m.groups() + if _str: # Python string + code_line += _str + elif _com: # Python comment (up to EOL) + comment = _com + if multiline and _com.strip().endswith(self._tokens[1]): + multiline = False # Allow end-of-block in comments + elif _blk1: # Start-block keyword (if/for/while/def/try/...) + code_line, self.indent_mod = _blk1, -1 + self.indent += 1 + elif _blk2: # Continue-block keyword (else/elif/except/...) + code_line, self.indent_mod = _blk2, -1 + elif _end: # The non-standard 'end'-keyword (ends a block) + self.indent -= 1 + elif _cend: # The end-code-block template token (usually '%>') + if multiline: multiline = False + else: code_line += _cend + else: # \n + self.write_code(code_line.strip(), comment) + self.lineno += 1 + code_line, comment, self.indent_mod = '', '', 0 + if not multiline: + break + + def flush_text(self): + text = ''.join(self.text_buffer) + del self.text_buffer[:] + if not text: return + parts, pos, nl = [], 0, '\\\n'+' '*self.indent + for m in self.re_inl.finditer(text): + prefix, pos = text[pos:m.start()], m.end() + if prefix: + parts.append(nl.join(map(repr, prefix.splitlines(True)))) + if prefix.endswith('\n'): parts[-1] += nl + parts.append(self.process_inline(m.group(1).strip())) + if pos < len(text): + prefix = text[pos:] + lines = prefix.splitlines(True) + if lines[-1].endswith('\\\\\n'): lines[-1] = lines[-1][:-3] + parts.append(nl.join(map(repr, lines))) + code = '_printlist((%s,))' % ', '.join(parts) + self.lineno += code.count('\n')+1 + self.write_code(code) + + def process_inline(self, chunk): + if chunk[0] == '!': return '_str(%s)' % chunk[1:] + return '_escape(%s)' % chunk + + def write_code(self, line, comment=''): + line, comment = self.fix_backward_compatibility(line, comment) + code = ' ' * (self.indent+self.indent_mod) + code += line.lstrip() + comment + '\n' + self.code_buffer.append(code) + + def fix_backward_compatibility(self, line, comment): + parts = line.strip().split(None, 2) + if parts and parts[0] in ('include', 'rebase'): + depr('The include and rebase keywords are functions now.') + if len(parts) == 1: return "_printlist([base])", comment + elif len(parts) == 2: return "_=%s(%r)" % tuple(parts), comment + else: return "_=%s(%r, %s)" % tuple(parts), comment + if self.lineno <= 2 and not line.strip() and 'coding' in comment: + m = re.match(r"#.*coding[:=]\s*([-\w.]+)", comment) + if m: + depr('PEP263 encoding strings in templates are deprecated.') + enc = m.group(1) + self.source = self.source.encode(self.encoding).decode(enc) + self.encoding = enc + return line, comment.replace('coding','coding*') + return line, comment + + +def template(*args, **kwargs): + ''' + Get a rendered template as a string iterator. + You can use a name, a filename or a template string as first parameter. + Template rendering arguments can be passed as dictionaries + or directly (as keyword arguments). + ''' + tpl = args[0] if args else None + adapter = kwargs.pop('template_adapter', SimpleTemplate) + lookup = kwargs.pop('template_lookup', TEMPLATE_PATH) + tplid = (id(lookup), tpl) + if tplid not in TEMPLATES or DEBUG: + settings = kwargs.pop('template_settings', {}) + if isinstance(tpl, adapter): + TEMPLATES[tplid] = tpl + if settings: TEMPLATES[tplid].prepare(**settings) + elif "\n" in tpl or "{" in tpl or "%" in tpl or '$' in tpl: + TEMPLATES[tplid] = adapter(source=tpl, lookup=lookup, **settings) + else: + TEMPLATES[tplid] = adapter(name=tpl, lookup=lookup, **settings) + if not TEMPLATES[tplid]: + abort(500, 'Template (%s) not found' % tpl) + for dictarg in args[1:]: kwargs.update(dictarg) + return TEMPLATES[tplid].render(kwargs) + +mako_template = functools.partial(template, template_adapter=MakoTemplate) +cheetah_template = functools.partial(template, template_adapter=CheetahTemplate) +jinja2_template = functools.partial(template, template_adapter=Jinja2Template) + + +def view(tpl_name, **defaults): + ''' Decorator: renders a template for a handler. + The handler can control its behavior like that: + + - return a dict of template vars to fill out the template + - return something other than a dict and the view decorator will not + process the template, but return the handler result as is. + This includes returning a HTTPResponse(dict) to get, + for instance, JSON with autojson or other castfilters. + ''' + def decorator(func): + @functools.wraps(func) + def wrapper(*args, **kwargs): + result = func(*args, **kwargs) + if isinstance(result, (dict, DictMixin)): + tplvars = defaults.copy() + tplvars.update(result) + return template(tpl_name, **tplvars) + elif result is None: + return template(tpl_name, defaults) + return result + return wrapper + return decorator + +mako_view = functools.partial(view, template_adapter=MakoTemplate) +cheetah_view = functools.partial(view, template_adapter=CheetahTemplate) +jinja2_view = functools.partial(view, template_adapter=Jinja2Template) + + + + + + +############################################################################### +# Constants and Globals ######################################################## +############################################################################### + + +TEMPLATE_PATH = ['./', './views/'] +TEMPLATES = {} +DEBUG = False +NORUN = False # If set, run() does nothing. Used by load_app() + +#: A dict to map HTTP status codes (e.g. 404) to phrases (e.g. 'Not Found') +HTTP_CODES = httplib.responses +HTTP_CODES[418] = "I'm a teapot" # RFC 2324 +HTTP_CODES[428] = "Precondition Required" +HTTP_CODES[429] = "Too Many Requests" +HTTP_CODES[431] = "Request Header Fields Too Large" +HTTP_CODES[511] = "Network Authentication Required" +_HTTP_STATUS_LINES = dict((k, '%d %s'%(k,v)) for (k,v) in HTTP_CODES.items()) + +#: The default template used for error pages. Override with @error() +ERROR_PAGE_TEMPLATE = """ +%%try: + %%from %s import DEBUG, HTTP_CODES, request, touni + <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> + <html> + <head> + <title>Error: {{e.status}}</title> + <style type="text/css"> + html {background-color: #eee; font-family: sans;} + body {background-color: #fff; border: 1px solid #ddd; + padding: 15px; margin: 15px;} + pre {background-color: #eee; border: 1px solid #ddd; padding: 5px;} + </style> + </head> + <body> + <h1>Error: {{e.status}}</h1> + <p>Sorry, the requested URL <tt>{{repr(request.url)}}</tt> + caused an error:</p> + <pre>{{e.body}}</pre> + %%if DEBUG and e.exception: + <h2>Exception:</h2> + <pre>{{repr(e.exception)}}</pre> + %%end + %%if DEBUG and e.traceback: + <h2>Traceback:</h2> + <pre>{{e.traceback}}</pre> + %%end + </body> + </html> +%%except ImportError: + <b>ImportError:</b> Could not generate the error page. Please add bottle to + the import path. +%%end +""" % __name__ + +#: A thread-safe instance of :class:`LocalRequest`. If accessed from within a +#: request callback, this instance always refers to the *current* request +#: (even on a multithreaded server). +request = LocalRequest() + +#: A thread-safe instance of :class:`LocalResponse`. It is used to change the +#: HTTP response for the *current* request. +response = LocalResponse() + +#: A thread-safe namespace. Not used by Bottle. +local = threading.local() + +# Initialize app stack (create first empty Bottle app) +# BC: 0.6.4 and needed for run() +app = default_app = AppStack() +app.push() + +#: A virtual package that redirects import statements. +#: Example: ``import bottle.ext.sqlite`` actually imports `bottle_sqlite`. +ext = _ImportRedirect('bottle.ext' if __name__ == '__main__' else __name__+".ext", 'bottle_%s').module + +if __name__ == '__main__': + opt, args, parser = _cmd_options, _cmd_args, _cmd_parser + if opt.version: + _stdout('Bottle %s\n'%__version__) + sys.exit(0) + if not args: + parser.print_help() + _stderr('\nError: No application specified.\n') + sys.exit(1) + + sys.path.insert(0, '.') + sys.modules.setdefault('bottle', sys.modules['__main__']) + + host, port = (opt.bind or 'localhost'), 8080 + if ':' in host and host.rfind(']') < host.rfind(':'): + host, port = host.rsplit(':', 1) + host = host.strip('[]') + + run(args[0], host=host, port=int(port), server=opt.server, + reloader=opt.reload, plugins=opt.plugin, debug=opt.debug) + + + + +# THE END diff --git a/frontend/imdither/imdither.html b/frontend/imdither/imdither.html new file mode 100755 index 0000000..1aee616 --- /dev/null +++ b/frontend/imdither/imdither.html @@ -0,0 +1,291 @@ +<html> +<head> +<link href='http://fonts.googleapis.com/css?family=Orienta|Roboto' rel='stylesheet' type='text/css'> +<style type="text/css"> +body{ +font-family: 'Roboto', sans-serif; +} +.title{ + font-family: 'Orienta', sans-serif; + font-size:3em; + text-shadow: 2px 4px 3px rgba(153,153,153,0.3); + color: #1C1C1C; +} +#sample + { + border-style: outset; + border-color: gray; + border-width: 5px; + } +table.dithertable { + border-width: 5px; + border-spacing: 3px; + border-style: outset; + border-color: gray; + border-collapse: separate; + background-color: rgb(250, 240, 230); +} +table.dithertable th { + border-width: medium; + padding: 2px; + border-style: ridge; + border-color: gray; + background-color: rgb(255, 255, 240); + -moz-border-radius: ; +} +table.dithertable td { + border-width: medium; + padding: 2px; + border-style: ridge; + border-color: gray; + background-color: rgb(255, 255, 240); + -moz-border-radius: ; + background-color:white; +} +.dithers + { + width:10px; + height:10px; + cursor:pointer; + } +#dithertable + { + width:50%; + display:inline-block; + } +tr + { + height:40px; + } +.dontshowme{ + display: none; + +} +</style> + +</head> +<body> +<div id="imdither"> + <img src="img/logo.png"/> +</div> + +<div id="step1"> +Step 1: Choose your dither +</div> +<table class="dithertable" id="dithertable"> +<tr> +<td class='dithers' style='background-image:url(dithers/1.png)' id='dither_1'> </td> +<td class='dithers' style='background-image:url(dithers/10.png)' id='dither_10'> </td> +<td class='dithers' style='background-image:url(dithers/11.png)' id='dither_11'></td> +<td class='dithers' style='background-image:url(dithers/12.png)' id='dither_12'></td> +<td class='dithers' style='background-image:url(dithers/13.png)' id='dither_13'></td> +<td class='dithers' style='background-image:url(dithers/14.png)' id='dither_14'></td> +<td class='dithers' style='background-image:url(dithers/15.png)' id='dither_15'></td> +<td class='dithers' style='background-image:url(dithers/16.png)' id='dither_16'></td> +<td class='dithers' style='background-image:url(dithers/17.png)' id='dither_17'></td> +<td class='dithers' style='background-image:url(dithers/18.png)' id='dither_18'></td> +<td class='dithers' style='background-image:url(dithers/19.png)' id='dither_19'></td> +<td class='dithers' style='background-image:url(dithers/2.png)' id='dither_2'></td> +<td class='dithers' style='background-image:url(dithers/20.png)' id='dither_20'></td> +<td class='dithers' style='background-image:url(dithers/21.png)' id='dither_21'></td> +<td class='dithers' style='background-image:url(dithers/22.png)' id='dither_22'></td> +<td class='dithers' style='background-image:url(dithers/23.png)' id='dither_23'></td> +<td class='dithers' style='background-image:url(dithers/24.png)' id='dither_24'></td> +<td class='dithers' style='background-image:url(dithers/25.png)' id='dither_25'></td> +<td class='dithers' style='background-image:url(dithers/26.png)' id='dither_26'></td> +<td class='dithers' style='background-image:url(dithers/27.png)' id='dither_27'></td> +<td class='dithers' style='background-image:url(dithers/28.png)' id='dither_28'></td> +<td class='dithers' style='background-image:url(dithers/29.png)' id='dither_29'></td> +<td class='dithers' style='background-image:url(dithers/3.png)' id='dither_3'></td> +<td class='dithers' style='background-image:url(dithers/30.png)' id='dither_30'></td> +</tr> +<tr> +<td class='dithers' style='background-image:url(dithers/31.png)' id='dither_31'></td> +<td class='dithers' style='background-image:url(dithers/32.png)' id='dither_32'></td> +<td class='dithers' style='background-image:url(dithers/33.png)' id='dither_33'></td> +<td class='dithers' style='background-image:url(dithers/34.png)' id='dither_34'></td> +<td class='dithers' style='background-image:url(dithers/35.png)' id='dither_35'></td> +<td class='dithers' style='background-image:url(dithers/36.png)' id='dither_36'></td> +<td class='dithers' style='background-image:url(dithers/37.png)' id='dither_37'></td> +<td class='dithers' style='background-image:url(dithers/38.png)' id='dither_38'></td> +<td class='dithers' style='background-image:url(dithers/39.png)' id='dither_39'></td> +<td class='dithers' style='background-image:url(dithers/4.png)' id='dither_4'></td> +<td class='dithers' style='background-image:url(dithers/40.png)' id='dither_40'></td> +<td class='dithers' style='background-image:url(dithers/41.png)' id='dither_41'></td> +<td class='dithers' style='background-image:url(dithers/42.png)' id='dither_42'></td> +<td class='dithers' style='background-image:url(dithers/43.png)' id='dither_43'></td> +<td class='dithers' style='background-image:url(dithers/44.png)' id='dither_44'></td> +<td class='dithers' style='background-image:url(dithers/45.png)' id='dither_45'></td> +<td class='dithers' style='background-image:url(dithers/46.png)' id='dither_46'></td> +<td class='dithers' style='background-image:url(dithers/47.png)' id='dither_47'></td> +<td class='dithers' style='background-image:url(dithers/48.png)' id='dither_48'></td> +<td class='dithers' style='background-image:url(dithers/49.png)' id='dither_49'></td> +<td class='dithers' style='background-image:url(dithers/5.png)' id='dither_5'></td> +<td class='dithers' style='background-image:url(dithers/50.png)' id='dither_50'></td> +<td class='dithers' style='background-image:url(dithers/51.png)' id='dither_51'></td> +<td class='dithers' style='background-image:url(dithers/52.png)' id='dither_52'></td> +</tr> +<tr> + +<td class='dithers' style='background-image:url(dithers/53.png)' id='dither_53'></td> +<td class='dithers' style='background-image:url(dithers/54.png)' id='dither_54'></td> +<td class='dithers' style='background-image:url(dithers/55.png)' id='dither_55'></td> +<td class='dithers' style='background-image:url(dithers/56.png)' id='dither_56'></td> +<td class='dithers' style='background-image:url(dithers/57.png)' id='dither_57'></td> +<td class='dithers' style='background-image:url(dithers/58.png)' id='dither_58'></td> +<td class='dithers' style='background-image:url(dithers/59.png)' id='dither_59'></td> +<td class='dithers' style='background-image:url(dithers/6.png)' id='dither_6'></td> +<td class='dithers' style='background-image:url(dithers/60.png)' id='dither_60'></td> + +<td class='dithers' style='background-image:url(dithers/61.png)' id='dither_61'></td> +<td class='dithers' style='background-image:url(dithers/62.png)' id='dither_62'></td> +<td class='dithers' style='background-image:url(dithers/63.png)' id='dither_63'></td> +<td class='dithers' style='background-image:url(dithers/64.png)' id='dither_64'></td> +<td class='dithers' style='background-image:url(dithers/65.png)' id='dither_65'></td> +<td class='dithers' style='background-image:url(dithers/66.png)' id='dither_66'></td> +<td class='dithers' style='background-image:url(dithers/67.png)' id='dither_67'></td> +<td class='dithers' style='background-image:url(dithers/68.png)' id='dither_68'></td> +<td class='dithers' style='background-image:url(dithers/69.png)' id='dither_69'></td> +<td class='dithers' style='background-image:url(dithers/7.png)' id='dither_7'></td> +<td class='dithers' style='background-image:url(dithers/70.png)' id='dither_70'></td> +<td class='dithers' style='background-image:url(dithers/71.png)' id='dither_71'></td> +<td class='dithers' style='background-image:url(dithers/72.png)' id='dither_72'></td> +<td class='dithers' style='background-image:url(dithers/73.png)' id='dither_73'></td> +<td class='dithers' style='background-image:url(dithers/74.png)' id='dither_74'></td> +</tr> +<tr> +<td class='dithers' style='background-image:url(dithers/75.png)' id='dither_75'></td> +<td class='dithers' style='background-image:url(dithers/76.png)' id='dither_76'></td> +<td class='dithers' style='background-image:url(dithers/77.png)' id='dither_77'></td> +<td class='dithers' style='background-image:url(dithers/78.png)' id='dither_78'></td> +<td class='dithers' style='background-image:url(dithers/79.png)' id='dither_79'></td> +<td class='dithers' style='background-image:url(dithers/8.png)' id='dither_8'></td> +<td class='dithers' style='background-image:url(dithers/80.png)' id='dither_80'></td> +<td class='dithers' style='background-image:url(dithers/81.png)' id='dither_81'></td> +<td class='dithers' style='background-image:url(dithers/82.png)' id='dither_82'></td> +<td class='dithers' style='background-image:url(dithers/83.png)' id='dither_83'></td> +<td class='dithers' style='background-image:url(dithers/84.png)' id='dither_84'></td> +<td class='dithers' style='background-image:url(dithers/85.png)' id='dither_85'></td> +<td class='dithers' style='background-image:url(dithers/86.png)' id='dither_86'></td> +<td class='dithers' style='background-image:url(dithers/87.png)' id='dither_87'></td> +<td class='dithers' style='background-image:url(dithers/88.png)' id='dither_88'></td> +<td class='dithers' style='background-image:url(dithers/89.png)' id='dither_89'></td> +<td class='dithers' style='background-image:url(dithers/9.png)' id='dither_9'></td> +<td class='dithers' style='background-image:url(dithers/90.png)' id='dither_90'></td> +<td class='dithers' style='background-image:url(dithers/91.png)' id='dither_91'></td> +<td class='dithers' style='background-image:url(dithers/92.png)' id='dither_92'></td> +<td class='dithers' style='background-image:url(dithers/93.png)' id='dither_93'></td> +<td class='dithers' style='background-image:url(dithers/94.png)' id='dither_94'></td> +<td class='dithers' style='background-image:url(dithers/95.png)' id='dither_95'></td> +<td class='dithers' style='background-image:url(dithers/96.png)' id='dither_96'></td> + +</tr> +<tr> +<td class='dithers' style='background-image:url(dithers/a0.png)' id='dither_a0'></td> +<td class='dithers' style='background-image:url(dithers/a1.png)' id='dither_a1'></td> +<td class='dithers' style='background-image:url(dithers/a10.png)' id='dither_a10'></td> +<td class='dithers' style='background-image:url(dithers/a11.png)' id='dither_a11'></td> +<td class='dithers' style='background-image:url(dithers/a12.png)' id='dither_a12'></td> +<td class='dithers' style='background-image:url(dithers/a13.png)' id='dither_a13'></td> +<td class='dithers' style='background-image:url(dithers/a14.png)' id='dither_a14'></td> +<td class='dithers' style='background-image:url(dithers/a15.png)' id='dither_a15'></td> +<td class='dithers' style='background-image:url(dithers/a16.png)' id='dither_a16'></td> +<td class='dithers' style='background-image:url(dithers/a17.png)' id='dither_a17'></td> +<td class='dithers' style='background-image:url(dithers/a18.png)' id='dither_a18'></td> +<td class='dithers' style='background-image:url(dithers/a19.png)' id='dither_a19'></td> +<td class='dithers' style='background-image:url(dithers/a2.png)' id='dither_a2'></td> +<td class='dithers' style='background-image:url(dithers/a20.png)' id='dither_a20'></td> +<td class='dithers' style='background-image:url(dithers/a21.png)' id='dither_a21'></td> +<td class='dithers' style='background-image:url(dithers/a22.png)' id='dither_a22'></td> +<td class='dithers' style='background-image:url(dithers/a23.png)' id='dither_a23'></td> +<td class='dithers' style='background-image:url(dithers/a24.png)' id='dither_a24'></td> +<td class='dithers' style='background-image:url(dithers/a25.png)' id='dither_a25'></td> +<td class='dithers' style='background-image:url(dithers/a26.png)' id='dither_a26'></td> +<td class='dithers' style='background-image:url(dithers/a27.png)' id='dither_a27'></td> +<td class='dithers' style='background-image:url(dithers/a28.png)' id='dither_a28'></td> +<td class='dithers' style='background-image:url(dithers/a29.png)' id='dither_a29'></td> +<td class='dithers' style='background-image:url(dithers/a3.png)' id='dither_a3'></td> + +</tr> +<tr> +<td class='dithers' style='background-image:url(dithers/a30.png)' id='dither_a30'></td> +<td class='dithers' style='background-image:url(dithers/a31.png)' id='dither_a31'></td> +<td class='dithers' style='background-image:url(dithers/a32.png)' id='dither_a32'></td> +<td class='dithers' style='background-image:url(dithers/a33.png)' id='dither_a33'></td> +<td class='dithers' style='background-image:url(dithers/a34.png)' id='dither_a34'></td> +<td class='dithers' style='background-image:url(dithers/a35.png)' id='dither_a35'></td> +<td class='dithers' style='background-image:url(dithers/a36.png)' id='dither_a36'></td> +<td class='dithers' style='background-image:url(dithers/a37.png)' id='dither_a37'></td> +<td class='dithers' style='background-image:url(dithers/a38.png)' id='dither_a38'></td> +<td class='dithers' style='background-image:url(dithers/a39.png)' id='dither_a39'></td> +<td class='dithers' style='background-image:url(dithers/a4.png)' id='dither_a4'></td> +<td class='dithers' style='background-image:url(dithers/a40.png)' id='dither_a40'></td> +<td class='dithers' style='background-image:url(dithers/a41.png)' id='dither_a41'></td> +<td class='dithers' style='background-image:url(dithers/a5.png)' id='dither_a5'></td> +<td class='dithers' style='background-image:url(dithers/a6.png)' id='dither_a6'></td> +<td class='dithers' style='background-image:url(dithers/a7.png)' id='dither_a7'></td> +<td class='dithers' style='background-image:url(dithers/a8.png)' id='dither_a8'></td> +<td class='dithers' style='background-image:url(dithers/a9.png)' id='dither_a9'></td> +</tr> +</table> + + +<div id="sample"> +</div> + +</br> +<span class="parameter">Image to overlay:</span><input type="text/css" class="image_input" value="Enter an image url here"></input> +<span class="parameter">Or Upload</span><input type="text/css" class="image_input" value="Enter an image url here"></input> +</br><span class="uploadError dontshowme unsubmitted"></span> +<button id="submit">SUBMIT</button> + +<div class="processing dontshowme"></div> +<div class="result dontshowme"></div> + +<script type="text/javascript" src="jquery.min.js"></script> +<script type="text/javascript"> +function makesample(){ +theheight = $('#dithertable').height() +$('#sample').css({'width':"20%",'height':theheight,'display':'inline-block'}) +} +makesample() +var preview_box = $("#sample") +$('.dithers').click(function(){ + $('.dithers').css({'border-color':'gray','-moz-box-shadow': 'none','-webkit-box-shadow':'none','box-shadow': 'none'}); + $(this).css({'border-color':'#EE0000','-moz-box-shadow': '0px 0px 9px 3px firebrick','-webkit-box-shadow':'0px 0px 9px 3px firebrick','box-shadow': '0px 0px 9px 3px firebrick'}) + var dither = $(this).css("background-image"); + preview_box.css("background-image", dither); + }); +$(".image_input").clicked = false; +$(".image_input").click(function(){ + if(! $(this).clicked){ + $(this).attr("value", ""); + $(this).clicked = true; + } +}) +$("#submit").click(function(){ + if (! $(".uploadError").hasClass("dontshowme") ){ + $(".uploadError").addClass("dontshowme") + } + + var image_url = $(".image_input").val() + if (! image_url || image_url == "Enter an image url here"){ + uploadError = $(".uploadError") + uploadError.html("you didn't provide an image url") + uploadError.removeClass("dontshowme") + return false; + } + $.ajax({ + type: "POST", + url: "process", + data: { url: image_url } + }).done(function( msg ) { + alert( "Data Saved: " + msg ); + }); +}) +</script> + + +</body> +</html> + diff --git a/frontend/imdither/img/logo.png b/frontend/imdither/img/logo.png Binary files differnew file mode 100755 index 0000000..64432e3 --- /dev/null +++ b/frontend/imdither/img/logo.png diff --git a/frontend/imdither/jquery.min.js b/frontend/imdither/jquery.min.js new file mode 100755 index 0000000..b2ac174 --- /dev/null +++ b/frontend/imdither/jquery.min.js @@ -0,0 +1,18 @@ +/*! + * jQuery JavaScript Library v1.6.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu May 12 15:04:36 2011 -0400 + */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("<!doctype><html><body></body></html>");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bF.test(a)?d(a,e):b_(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bU,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bQ),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bD(a,b,c){var d=b==="width"?bx:by,e=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return e;f.each(d,function(){c||(e-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?e+=parseFloat(f.css(a,"margin"+this))||0:e-=parseFloat(f.css(a,"border"+this+"Width"))||0});return e}function bn(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bm(a){f.nodeName(a,"input")?bl(a):a.getElementsByTagName&&f.grep(a.getElementsByTagName("input"),bl)}function bl(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bk(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bj(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bi(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bh(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function X(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(S.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(y,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:E?function(a){return a==null?"":E.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?C.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(F)return F.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=D.call(arguments,2),g=function(){return a.apply(c,f.concat(D.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){G["[object "+b+"]"]=b.toLowerCase()}),x=e.uaMatch(w),x.browser&&(e.browser[x.browser]=!0,e.browser.version=x.version),e.browser.webkit&&(e.browser.safari=!0),j.test("Â ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?z=function(){c.removeEventListener("DOMContentLoaded",z,!1),e.ready()}:c.attachEvent&&(z=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",z),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.addClass(a.call(this,b,c.attr("class")||""))});if(a&&typeof a=="string"){var b=(a||"").split(o);for(var c=0,d=this.length;c<d;c++){var e=this[c];if(e.nodeType===1)if(!e.className)e.className=a;else{var g=" "+e.className+" ",h=e.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);e.className=f.trim(h)}}}return this},removeClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a=="string"||a===b){var c=(a||"").split(o);for(var d=0,e=this.length;d<e;d++){var g=this[d];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(n," ");for(var i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){var d=f(this);d.toggleClass(a.call(this,c,d.attr("class"),b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem +)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,O(a.origType,a.selector),f.extend({},a,{handler:N,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,O(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?F:E):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=F;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=F;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=F,this.stopPropagation()},isDefaultPrevented:E,isPropagationStopped:E,isImmediatePropagationStopped:E};var G=function(a){var b=a.relatedTarget;a.type=a.data;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&f.event.handle.apply(this,arguments)}catch(d){}},H=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?H:G,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?H:G)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&L("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&L("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var I,J=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var M={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||E,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=y.exec(h),k="",j&&(k=j[0],h=h.replace(y,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,M[h]?(a.push(M[h]+k),h=h+k):h=(M[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+O(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+O(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var P=/Until$/,Q=/^(?:parents|prevUntil|prevAll)/,R=/,/,S=/^.[^:#\[\.,]*$/,T=Array.prototype.slice,U=f.expr.match.POS,V={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(X(this,a,!1),"not",a)},filter:function(a){return this.pushStack(X(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=U.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/<tbody/i,bb=/<|&#?\w+;/,bc=/<(?:script|object|embed|option|style)/i,bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bh(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bn)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bc.test(a[0])&&(f.support.checkClone||!bd.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument|| +b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1></$2>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bm(k[i]);else bm(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bo=/alpha\([^)]*\)/i,bp=/opacity=([^)]*)/,bq=/-([a-z])/ig,br=/([A-Z]|^ms)/g,bs=/^-?\d+(?:px)?$/i,bt=/^-?\d/,bu=/^[+\-]=/,bv=/[^+\-\.\de]+/g,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB,bC=function(a,b){return b.toUpperCase()};f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0,widows:!0,orphans:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bu.test(d)&&(d=+d.replace(bv,"")+parseFloat(f.css(a,c))),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bq,bC)}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){a.offsetWidth!==0?e=bD(a,b,d):f.swap(a,bw,function(){e=bD(a,b,d)});if(e<=0){e=bz(a,b,b),e==="0px"&&bB&&(e=bB(a,b,b));if(e!=null)return e===""||e==="auto"?"0px":e}if(e<0||e==null){e=a.style[b];return e===""||e==="auto"?"0px":e}return typeof e=="string"?e:e+"px"}},set:function(a,b){if(!bs.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cv(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cm.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=cn.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this),f.isFunction(d.old)&&d.old.call(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cq||cs(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!co&&(cr?(co=1,g=function(){co&&(cr(g),e.tick())},cr(g)):co=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cq||cs(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
\ No newline at end of file diff --git a/frontend/imdither/makeDither.py b/frontend/imdither/makeDither.py new file mode 100755 index 0000000..57775fb --- /dev/null +++ b/frontend/imdither/makeDither.py @@ -0,0 +1,72 @@ +#!/usr/bin/python2.7 + +import cgi +import pbutils +from os import getpid, path +from subprocess import call + +MAIN_DIRECTORY = "" +BIN_CONVERT = "convert" +BIN_IDENTIFY = "identify" +BIN_COMPOSITE = "composite" + +class Dither: + def __init__(self, + input_file_path, + dither_file="1.png", + username="", + ): + + self.nametag = "imDither"; + if username: + self.username = username + else: + self.username = ""; + + self.pid = str(getpid()) + self.dither_file = dither_file; + self.original_file = input_file_path; + self.MAX_NAME_LENGTH = 10; + + self.image_format = self.original_file.split(".")[-1] + try: + self.dimensions = pbutils.image_dimensions_and_test(self.original_file); + except Exception as E: + pbutils.error("Corrupt image") + self.canvas_file = self.pid+"blank_canvas.png"; + self.makeCanvas(); + self.mask_file = self.pid+"mask_file"+"."+self.image_format; + self.makeMask(); + self.result_file = self.makeResultFilename(); + self.fuseMask(); + + def makeResultFilename(self): + file_base, extension = path.splitext(self.original_file) + if len(file_base) > self.MAX_NAME_LENGTH: + file_base = file_base[0:self.MAX_NAME_LENGTH] + return "%s_%s_%s%s%s" % (file_base, self.username, self.nametag, pbutils.now(), extension) + + #first step + def makeCanvas(self): + call([BIN_CONVERT,"-size",self.dimensions[0]+"x"+self.dimensions[1],"canvas:transparent", self.canvas_file]) + + #second step use the Canvas as a background + def makeMask(self): + #tile the dither pattern on the canvas + call([BIN_COMPOSITE,"-tile", self.dither_file, self.canvas_file, self.mask_file]) + + #fuse the tiled file to create a mask + #convert thebg.gif -compose Dst_In null: thefile.gif -matte -layers composite new.gif + call([BIN_CONVERT, self.mask_file, "-compose", "Dst_In", "null:", self.original_file, "-matte", "-layers", "composite", self.mask_file]) + + #cleanup + call(["rm", self.canvas_file]) + + #third step + def fuseMask(self, fuse_mode="Pin_Light"): + call([BIN_CONVERT, self.mask_file, "null:", self.original_file, "-matte", "-compose", fuse_mode, "-layers", "composite", self.result_file]) + call(["rm", self.mask_file]) + + +if __name__ == "__main__": + dither = Dither("./test.gif"); diff --git a/frontend/imdither/pbutils.py b/frontend/imdither/pbutils.py new file mode 100755 index 0000000..bcc188d --- /dev/null +++ b/frontend/imdither/pbutils.py @@ -0,0 +1,238 @@ +#!/usr/bin/python
+import time
+import re
+from urllib2 import Request, urlopen
+from subprocess import check_output, call, Popen, PIPE
+from os import stat, path
+from random import randint
+from hashlib import sha1
+import mimetypes
+import s3
+import MySQLdb
+import logging
+
+
+ACCEPTABLE_FILE_TYPES = [".png", ".jpg", ".gif", ".jpeg"]
+MAX_DOWNLOAD_SIZE = 1024 * 1024 * 1.2
+
+AWS_ACCESS_KEY_ID = "SECRETID"
+AWS_SECRET_ACCESS_KEY = "SECRETACCESSKEY"
+BUCKET_NAME = "i.asdf.us"
+
+MYSQLUSER = "secretuser"
+MYSQLDB = "secretdb"
+MYSQLPW = "secretpw"
+
+BASE_DIR = "/var/www/asdf.us/im/"
+IDENTIFY = "/usr/bin/identify"
+CONVERT = "/usr/bin/convert"
+
+def now():
+ return str(int(time.time()))
+
+class pb_log:
+ " creates a log for each script "
+ def __init__(self, logname):
+ self.logger = logging.getLogger(logname)
+ hdlr = logging.FileHandler("/var/tmp/photoblaster/"+logname+".log")
+ formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
+ hdlr.setFormatter(formatter)
+ self.logger.addHandler(hdlr)
+ self.logger.setLevel(logging.WARNING)
+ def log(self, message):
+ self.logger.warning(message)
+
+
+def error(s):
+ " returns an error and exits the program "
+ print("ERROR: "+s)
+ exit(1)
+
+def hexdir(filename):
+ " creates a two-letter directory name "
+ return sha1(filename.encode()).hexdigest()[:2]
+
+def image_dimensions_and_test(filename):
+ ident = Popen([IDENTIFY, filename], stdout=PIPE).communicate()[0]
+ partz = ident.split(" ")
+ filetype = "."+partz[1]
+ size = partz[6]
+ if filetype.lower() not in ACCEPTABLE_FILE_TYPES:
+ error("file was not an image")
+ return partz[2].split("x")
+
+#ok is this a little better? yes, add a dot to filetype since ACCEPTABLE_FILE_TYPES have one
+
+def image_dimensions(filename):
+ ident = Popen([IDENTIFY, filename], stdout=PIPE).communicate()[0]
+ partz = ident.split(" ")
+ return partz[2].split("x")
+
+
+def process_form(form, param_list):
+ """ converts form returned from form submission into an object with values
+ takes the form and splitted param param_list as args """
+ return dict([(key, form[key].value() or "" ) for key in param_list])
+
+
+def sanitize(s):
+ " sanitizes potential shell commands out of form entries "
+ return re.sub("[^a-zA-Z0-9]", '', s)
+
+
+def is_number(s):
+ " makes sure that the number entries are numbers, not malicious strings "
+ try:
+ float(s)
+ if s.lower() == "nan": raise ValueError
+ return True
+ except (ValueError, TypeError):
+ error("One of the number values entered is not a number.")
+ return False
+
+
+def check_color(colorparam, index, defaultcolors):
+ " makes sure that there aren't malicious strings in the colorparam "
+ if not colorparam:
+ return defaultcolors[index]
+ elif colorparam[0] != "#" and "rgb" not in colorparam:
+ return sanitize(colorparam)
+ else:
+ return colorparam
+
+
+class gifCheck:
+ " checks to see if file is a gif "
+
+ def __init__(self, f):
+ self.f = f
+ frames = check_output([IDENTIFY, f]).decode().split('\n')
+ self.frames = frames.remove('')
+
+ def check_anim(self):
+ return len(self.frames) > 1
+
+ def pick_frame(self):
+ if self.check_anim() is True:
+ i = randint(0, (len(self.frames) - 1))
+ choice = self.f + "[" + str(i) + "]"
+ return choice
+ else:
+ return self.f
+
+ def collapse(self):
+ choice = self.pick_frame()
+ call([CONVERT, choice, self.f])
+
+
+def pb_s3(hexdir,filename):
+ " sends a file to s3 and returns the new url "
+ s3object = '/'.join(('im',hexdir,filename))
+ f = path.join(BASE_DIR, "im", hexdir, filename)
+ conn = s3.AWSAuthConnection(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)
+ with open(f, 'rb') as opened:
+ filedata = opened.read()
+ content_type = mimetypes.guess_type(f)[0]
+ if not content_type:
+ content_type = 'text/plain'
+ try:
+ conn.put(BUCKET_NAME, s3object, s3.S3Object(filedata),
+ {'x-amz-acl': 'public-read', 'Content-Type': content_type,
+ 'x-amz-storage-class': 'REDUCED_REDUNDANCY'})
+ call(['rm',f])
+ return "http://i.asdf.us/"+s3object
+ except Exception as e:
+ return e
+
+
+#so now I need to test the image? yes
+
+def test_image(basename, ext):
+ """ checks to make sure the image is an image """
+
+
+def download_image(url, filename=None,final_path=""):
+ " downloads an image and stores it in a directory "
+ headers = {
+ 'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)',
+ 'Accept': '*/*',
+ }
+ if not filename:
+ filename = url.split("/")[-1]
+ try:
+ req = Request(url, None, headers)
+ response = urlopen(req).read()
+ if not response: error("File did not exist or was zero-length")
+ if len(response) > MAX_DOWNLOAD_SIZE:
+ error(
+ "file too big: max size %sKB\n %s is %s KB" %
+ ( MAX_DOWNLOAD_SIZE/1024, filename, len(response)/1024 )
+ )
+ f = open(final_path+filename, "w")
+ f.write(response)
+ f.close()
+ return final_path
+
+ except Exception as E:
+ error('There is a problem with the url or an I/O error: \n %s' % (E))
+
+
+
+def new_filename_from_url(url, username="", nametag=""):
+ " creates a safe filename from a url "
+ parts = url.rsplit("/", -1)
+ try:
+ name, filetype = parts.rsplit(".", -1)
+ except:
+ error("Invalid url") # I could pass in the logging function as an argument if you wanted to store the invalid urls
+ if "?" in filetype: filetype = filetype.split("?")[1]
+ name = sanitize(name)
+ filetype = sanitize(filetype)
+ if not ('.' + filetype.lower()) in ACCEPTABLE_FILE_TYPES:
+ error("Invalid url")
+
+
+ if len(name) > 32: name = "__abridged"
+ name = now()+"_"+name
+
+ if username: name += "_" + username
+ if nametag: name += "_" + nametag
+ return name +"."+filetype
+
+def new_filename(filetype, username="", nametag=""):
+ " creates a new image filename "
+ parts = now()
+ if username: parts += "_"+username
+ if nametag: parts += "_"+nametag
+ return parts+"."+filetype
+
+
+def file_size (file):
+ " returns the file size in bytes "
+ return stat(file)[6]
+
+
+class db:
+ " initializes the database connection "
+ def __init__ (self):
+ self.conn = None
+ self.cursor = None
+ self.connect()
+
+ def connect (self):
+ self.conn = MySQLdb.connect (host = "localhost",
+ user = MYSQLUSER,
+ passwd = MYSQLPW,
+ db = MYSQLDB)
+ self.cursor = self.conn.cursor ()
+
+ def execute (self,sql,args=()):
+ try:
+ self.cursor.execute(sql,args)
+ except MySQLdb.Error, e:
+ error(" %d: %s" % (e.args[0], e.args[1]))
+
+ def lastinsertid (self):
+ return self.conn.insert_id()
+
+#pb_db = db()
diff --git a/frontend/imdither/run.py b/frontend/imdither/run.py new file mode 100755 index 0000000..3fed429 --- /dev/null +++ b/frontend/imdither/run.py @@ -0,0 +1,35 @@ +#!/usr/bin/python2.7 +from bottle import route, run, static_file, request +import makeDither +import urlDownload + +@route('/') +def server_static(): + return static_file("imdither.html", root='./') + +@route('/dithers/<filename>') +def server_static(filename): + return static_file(filename, root='./dithers/') + +@route('/img/<filename>') +def server_static(filename): + return static_file(filename, root='./img/') + +@route('/<filename>') +def server_static(filename): + return static_file(filename, root='./') + +@route('/process', method='POST') +def process_image(): + url = request.forms.get('url') + params = request.forms.get('params') + download = urlDownload.UrlDownload(url) + tempfile = download.dir + download.filename + makeDither.Dither(tempfile) + +@route('/status', method='GET') +def show_status(): + pass +#run(host='0.0.0.0', port=4111, debug=True) +run(server='flup', host='localhost', port=4111, debug=True) + diff --git a/frontend/imdither/s3.py b/frontend/imdither/s3.py new file mode 100755 index 0000000..1c2b09e --- /dev/null +++ b/frontend/imdither/s3.py @@ -0,0 +1,618 @@ +#!/usr/bin/env python + +# This software code is made available "AS IS" without warranties of any +# kind. You may copy, display, modify and redistribute the software +# code either by itself or as incorporated into your code; provided that +# you do not remove any proprietary notices. Your use of this software +# code is at your own risk and you waive any claim against Amazon +# Digital Services, Inc. or its affiliates with respect to your use of +# this software code. (c) 2006-2007 Amazon Digital Services, Inc. or its +# affiliates. + +import base64 +import hmac +import httplib +import re +import sha +import sys +import time +import urllib +import urlparse +import xml.sax + +DEFAULT_HOST = 's3.amazonaws.com' +PORTS_BY_SECURITY = { True: 443, False: 80 } +METADATA_PREFIX = 'x-amz-meta-' +AMAZON_HEADER_PREFIX = 'x-amz-' + +# generates the aws canonical string for the given parameters +def canonical_string(method, bucket="", key="", query_args={}, headers={}, expires=None): + interesting_headers = {} + for header_key in headers: + lk = header_key.lower() + if lk in ['content-md5', 'content-type', 'date'] or lk.startswith(AMAZON_HEADER_PREFIX): + interesting_headers[lk] = headers[header_key].strip() + + # these keys get empty strings if they don't exist + if not interesting_headers.has_key('content-type'): + interesting_headers['content-type'] = '' + if not interesting_headers.has_key('content-md5'): + interesting_headers['content-md5'] = '' + + # just in case someone used this. it's not necessary in this lib. + if interesting_headers.has_key('x-amz-date'): + interesting_headers['date'] = '' + + # if you're using expires for query string auth, then it trumps date + # (and x-amz-date) + if expires: + interesting_headers['date'] = str(expires) + + sorted_header_keys = interesting_headers.keys() + sorted_header_keys.sort() + + buf = "%s\n" % method + for header_key in sorted_header_keys: + if header_key.startswith(AMAZON_HEADER_PREFIX): + buf += "%s:%s\n" % (header_key, interesting_headers[header_key]) + else: + buf += "%s\n" % interesting_headers[header_key] + + # append the bucket if it exists + if bucket != "": + buf += "/%s" % bucket + + # add the key. even if it doesn't exist, add the slash + buf += "/%s" % urllib.quote_plus(key) + + # handle special query string arguments + + if query_args.has_key("acl"): + buf += "?acl" + elif query_args.has_key("torrent"): + buf += "?torrent" + elif query_args.has_key("logging"): + buf += "?logging" + elif query_args.has_key("location"): + buf += "?location" + + return buf + +# computes the base64'ed hmac-sha hash of the canonical string and the secret +# access key, optionally urlencoding the result +def encode(aws_secret_access_key, str, urlencode=False): + b64_hmac = base64.encodestring(hmac.new(aws_secret_access_key, str, sha).digest()).strip() + if urlencode: + return urllib.quote_plus(b64_hmac) + else: + return b64_hmac + +def merge_meta(headers, metadata): + final_headers = headers.copy() + for k in metadata.keys(): + final_headers[METADATA_PREFIX + k] = metadata[k] + + return final_headers + +# builds the query arg string +def query_args_hash_to_string(query_args): + query_string = "" + pairs = [] + for k, v in query_args.items(): + piece = k + if v != None: + piece += "=%s" % urllib.quote_plus(str(v)) + pairs.append(piece) + + return '&'.join(pairs) + + +class CallingFormat: + PATH = 1 + SUBDOMAIN = 2 + VANITY = 3 + + def build_url_base(protocol, server, port, bucket, calling_format): + url_base = '%s://' % protocol + + if bucket == '': + url_base += server + elif calling_format == CallingFormat.SUBDOMAIN: + url_base += "%s.%s" % (bucket, server) + elif calling_format == CallingFormat.VANITY: + url_base += bucket + else: + url_base += server + + url_base += ":%s" % port + + if (bucket != '') and (calling_format == CallingFormat.PATH): + url_base += "/%s" % bucket + + return url_base + + build_url_base = staticmethod(build_url_base) + + + +class Location: + DEFAULT = None + EU = 'EU' + + + +class AWSAuthConnection: + def __init__(self, aws_access_key_id, aws_secret_access_key, is_secure=True, + server=DEFAULT_HOST, port=None, calling_format=CallingFormat.SUBDOMAIN): + + if not port: + port = PORTS_BY_SECURITY[is_secure] + + self.aws_access_key_id = aws_access_key_id + self.aws_secret_access_key = aws_secret_access_key + self.is_secure = is_secure + self.server = server + self.port = port + self.calling_format = calling_format + + def create_bucket(self, bucket, headers={}): + return Response(self._make_request('PUT', bucket, '', {}, headers)) + + def create_located_bucket(self, bucket, location=Location.DEFAULT, headers={}): + if location == Location.DEFAULT: + body = "" + else: + body = "<CreateBucketConstraint><LocationConstraint>" + \ + location + \ + "</LocationConstraint></CreateBucketConstraint>" + return Response(self._make_request('PUT', bucket, '', {}, headers, body)) + + def check_bucket_exists(self, bucket): + return self._make_request('HEAD', bucket, '', {}, {}) + + def list_bucket(self, bucket, options={}, headers={}): + return ListBucketResponse(self._make_request('GET', bucket, '', options, headers)) + + def delete_bucket(self, bucket, headers={}): + return Response(self._make_request('DELETE', bucket, '', {}, headers)) + + def put(self, bucket, key, object, headers={}): + if not isinstance(object, S3Object): + object = S3Object(object) + + return Response( + self._make_request( + 'PUT', + bucket, + key, + {}, + headers, + object.data, + object.metadata)) + + def get(self, bucket, key, headers={}): + return GetResponse( + self._make_request('GET', bucket, key, {}, headers)) + + def delete(self, bucket, key, headers={}): + return Response( + self._make_request('DELETE', bucket, key, {}, headers)) + + def get_bucket_logging(self, bucket, headers={}): + return GetResponse(self._make_request('GET', bucket, '', { 'logging': None }, headers)) + + def put_bucket_logging(self, bucket, logging_xml_doc, headers={}): + return Response(self._make_request('PUT', bucket, '', { 'logging': None }, headers, logging_xml_doc)) + + def get_bucket_acl(self, bucket, headers={}): + return self.get_acl(bucket, '', headers) + + def get_acl(self, bucket, key, headers={}): + return GetResponse( + self._make_request('GET', bucket, key, { 'acl': None }, headers)) + + def put_bucket_acl(self, bucket, acl_xml_document, headers={}): + return self.put_acl(bucket, '', acl_xml_document, headers) + + def put_acl(self, bucket, key, acl_xml_document, headers={}): + return Response( + self._make_request( + 'PUT', + bucket, + key, + { 'acl': None }, + headers, + acl_xml_document)) + + def list_all_my_buckets(self, headers={}): + return ListAllMyBucketsResponse(self._make_request('GET', '', '', {}, headers)) + + def get_bucket_location(self, bucket): + return LocationResponse(self._make_request('GET', bucket, '', {'location' : None})) + + # end public methods + + def _make_request(self, method, bucket='', key='', query_args={}, headers={}, data='', metadata={}): + + server = '' + if bucket == '': + server = self.server + elif self.calling_format == CallingFormat.SUBDOMAIN: + server = "%s.%s" % (bucket, self.server) + elif self.calling_format == CallingFormat.VANITY: + server = bucket + else: + server = self.server + + path = '' + + if (bucket != '') and (self.calling_format == CallingFormat.PATH): + path += "/%s" % bucket + + # add the slash after the bucket regardless + # the key will be appended if it is non-empty + path += "/%s" % urllib.quote_plus(key) + + + # build the path_argument string + # add the ? in all cases since + # signature and credentials follow path args + if len(query_args): + path += "?" + query_args_hash_to_string(query_args) + + is_secure = self.is_secure + host = "%s:%d" % (server, self.port) + while True: + if (is_secure): + connection = httplib.HTTPSConnection(host) + else: + connection = httplib.HTTPConnection(host) + + final_headers = merge_meta(headers, metadata); + # add auth header + self._add_aws_auth_header(final_headers, method, bucket, key, query_args) + + connection.request(method, path, data, final_headers) + resp = connection.getresponse() + if resp.status < 300 or resp.status >= 400: + return resp + # handle redirect + location = resp.getheader('location') + if not location: + return resp + # (close connection) + resp.read() + scheme, host, path, params, query, fragment \ + = urlparse.urlparse(location) + if scheme == "http": is_secure = True + elif scheme == "https": is_secure = False + else: raise invalidURL("Not http/https: " + location) + if query: path += "?" + query + # retry with redirect + + def _add_aws_auth_header(self, headers, method, bucket, key, query_args): + if not headers.has_key('Date'): + headers['Date'] = time.strftime("%a, %d %b %Y %X GMT", time.gmtime()) + + c_string = canonical_string(method, bucket, key, query_args, headers) + headers['Authorization'] = \ + "AWS %s:%s" % (self.aws_access_key_id, encode(self.aws_secret_access_key, c_string)) + + +class QueryStringAuthGenerator: + # by default, expire in 1 minute + DEFAULT_EXPIRES_IN = 60 + + def __init__(self, aws_access_key_id, aws_secret_access_key, is_secure=True, + server=DEFAULT_HOST, port=None, calling_format=CallingFormat.SUBDOMAIN): + + if not port: + port = PORTS_BY_SECURITY[is_secure] + + self.aws_access_key_id = aws_access_key_id + self.aws_secret_access_key = aws_secret_access_key + if (is_secure): + self.protocol = 'https' + else: + self.protocol = 'http' + + self.is_secure = is_secure + self.server = server + self.port = port + self.calling_format = calling_format + self.__expires_in = QueryStringAuthGenerator.DEFAULT_EXPIRES_IN + self.__expires = None + + # for backwards compatibility with older versions + self.server_name = "%s:%s" % (self.server, self.port) + + def set_expires_in(self, expires_in): + self.__expires_in = expires_in + self.__expires = None + + def set_expires(self, expires): + self.__expires = expires + self.__expires_in = None + + def create_bucket(self, bucket, headers={}): + return self.generate_url('PUT', bucket, '', {}, headers) + + def list_bucket(self, bucket, options={}, headers={}): + return self.generate_url('GET', bucket, '', options, headers) + + def delete_bucket(self, bucket, headers={}): + return self.generate_url('DELETE', bucket, '', {}, headers) + + def put(self, bucket, key, object, headers={}): + if not isinstance(object, S3Object): + object = S3Object(object) + + return self.generate_url( + 'PUT', + bucket, + key, + {}, + merge_meta(headers, object.metadata)) + + def get(self, bucket, key, headers={}): + return self.generate_url('GET', bucket, key, {}, headers) + + def delete(self, bucket, key, headers={}): + return self.generate_url('DELETE', bucket, key, {}, headers) + + def get_bucket_logging(self, bucket, headers={}): + return self.generate_url('GET', bucket, '', { 'logging': None }, headers) + + def put_bucket_logging(self, bucket, logging_xml_doc, headers={}): + return self.generate_url('PUT', bucket, '', { 'logging': None }, headers) + + def get_bucket_acl(self, bucket, headers={}): + return self.get_acl(bucket, '', headers) + + def get_acl(self, bucket, key='', headers={}): + return self.generate_url('GET', bucket, key, { 'acl': None }, headers) + + def put_bucket_acl(self, bucket, acl_xml_document, headers={}): + return self.put_acl(bucket, '', acl_xml_document, headers) + + # don't really care what the doc is here. + def put_acl(self, bucket, key, acl_xml_document, headers={}): + return self.generate_url('PUT', bucket, key, { 'acl': None }, headers) + + def list_all_my_buckets(self, headers={}): + return self.generate_url('GET', '', '', {}, headers) + + def make_bare_url(self, bucket, key=''): + full_url = self.generate_url(self, bucket, key) + return full_url[:full_url.index('?')] + + def generate_url(self, method, bucket='', key='', query_args={}, headers={}): + expires = 0 + if self.__expires_in != None: + expires = int(time.time() + self.__expires_in) + elif self.__expires != None: + expires = int(self.__expires) + else: + raise "Invalid expires state" + + canonical_str = canonical_string(method, bucket, key, query_args, headers, expires) + encoded_canonical = encode(self.aws_secret_access_key, canonical_str) + + url = CallingFormat.build_url_base(self.protocol, self.server, self.port, bucket, self.calling_format) + + url += "/%s" % urllib.quote_plus(key) + + query_args['Signature'] = encoded_canonical + query_args['Expires'] = expires + query_args['AWSAccessKeyId'] = self.aws_access_key_id + + url += "?%s" % query_args_hash_to_string(query_args) + + return url + + +class S3Object: + def __init__(self, data, metadata={}): + self.data = data + self.metadata = metadata + +class Owner: + def __init__(self, id='', display_name=''): + self.id = id + self.display_name = display_name + +class ListEntry: + def __init__(self, key='', last_modified=None, etag='', size=0, storage_class='', owner=None): + self.key = key + self.last_modified = last_modified + self.etag = etag + self.size = size + self.storage_class = storage_class + self.owner = owner + +class CommonPrefixEntry: + def __init(self, prefix=''): + self.prefix = prefix + +class Bucket: + def __init__(self, name='', creation_date=''): + self.name = name + self.creation_date = creation_date + +class Response: + def __init__(self, http_response): + self.http_response = http_response + # you have to do this read, even if you don't expect a body. + # otherwise, the next request fails. + self.body = http_response.read() + if http_response.status >= 300 and self.body: + self.message = self.body + else: + self.message = "%03d %s" % (http_response.status, http_response.reason) + + + +class ListBucketResponse(Response): + def __init__(self, http_response): + Response.__init__(self, http_response) + if http_response.status < 300: + handler = ListBucketHandler() + xml.sax.parseString(self.body, handler) + self.entries = handler.entries + self.common_prefixes = handler.common_prefixes + self.name = handler.name + self.marker = handler.marker + self.prefix = handler.prefix + self.is_truncated = handler.is_truncated + self.delimiter = handler.delimiter + self.max_keys = handler.max_keys + self.next_marker = handler.next_marker + else: + self.entries = [] + +class ListAllMyBucketsResponse(Response): + def __init__(self, http_response): + Response.__init__(self, http_response) + if http_response.status < 300: + handler = ListAllMyBucketsHandler() + xml.sax.parseString(self.body, handler) + self.entries = handler.entries + else: + self.entries = [] + +class GetResponse(Response): + def __init__(self, http_response): + Response.__init__(self, http_response) + response_headers = http_response.msg # older pythons don't have getheaders + metadata = self.get_aws_metadata(response_headers) + self.object = S3Object(self.body, metadata) + + def get_aws_metadata(self, headers): + metadata = {} + for hkey in headers.keys(): + if hkey.lower().startswith(METADATA_PREFIX): + metadata[hkey[len(METADATA_PREFIX):]] = headers[hkey] + del headers[hkey] + + return metadata + +class LocationResponse(Response): + def __init__(self, http_response): + Response.__init__(self, http_response) + if http_response.status < 300: + handler = LocationHandler() + xml.sax.parseString(self.body, handler) + self.location = handler.location + +class ListBucketHandler(xml.sax.ContentHandler): + def __init__(self): + self.entries = [] + self.curr_entry = None + self.curr_text = '' + self.common_prefixes = [] + self.curr_common_prefix = None + self.name = '' + self.marker = '' + self.prefix = '' + self.is_truncated = False + self.delimiter = '' + self.max_keys = 0 + self.next_marker = '' + self.is_echoed_prefix_set = False + + def startElement(self, name, attrs): + if name == 'Contents': + self.curr_entry = ListEntry() + elif name == 'Owner': + self.curr_entry.owner = Owner() + elif name == 'CommonPrefixes': + self.curr_common_prefix = CommonPrefixEntry() + + + def endElement(self, name): + if name == 'Contents': + self.entries.append(self.curr_entry) + elif name == 'CommonPrefixes': + self.common_prefixes.append(self.curr_common_prefix) + elif name == 'Key': + self.curr_entry.key = self.curr_text + elif name == 'LastModified': + self.curr_entry.last_modified = self.curr_text + elif name == 'ETag': + self.curr_entry.etag = self.curr_text + elif name == 'Size': + self.curr_entry.size = int(self.curr_text) + elif name == 'ID': + self.curr_entry.owner.id = self.curr_text + elif name == 'DisplayName': + self.curr_entry.owner.display_name = self.curr_text + elif name == 'StorageClass': + self.curr_entry.storage_class = self.curr_text + elif name == 'Name': + self.name = self.curr_text + elif name == 'Prefix' and self.is_echoed_prefix_set: + self.curr_common_prefix.prefix = self.curr_text + elif name == 'Prefix': + self.prefix = self.curr_text + self.is_echoed_prefix_set = True + elif name == 'Marker': + self.marker = self.curr_text + elif name == 'IsTruncated': + self.is_truncated = self.curr_text == 'true' + elif name == 'Delimiter': + self.delimiter = self.curr_text + elif name == 'MaxKeys': + self.max_keys = int(self.curr_text) + elif name == 'NextMarker': + self.next_marker = self.curr_text + + self.curr_text = '' + + def characters(self, content): + self.curr_text += content + + +class ListAllMyBucketsHandler(xml.sax.ContentHandler): + def __init__(self): + self.entries = [] + self.curr_entry = None + self.curr_text = '' + + def startElement(self, name, attrs): + if name == 'Bucket': + self.curr_entry = Bucket() + + def endElement(self, name): + if name == 'Name': + self.curr_entry.name = self.curr_text + elif name == 'CreationDate': + self.curr_entry.creation_date = self.curr_text + elif name == 'Bucket': + self.entries.append(self.curr_entry) + + def characters(self, content): + self.curr_text = content + + +class LocationHandler(xml.sax.ContentHandler): + def __init__(self): + self.location = None + self.state = 'init' + + def startElement(self, name, attrs): + if self.state == 'init': + if name == 'LocationConstraint': + self.state = 'tag_location' + self.location = '' + else: self.state = 'bad' + else: self.state = 'bad' + + def endElement(self, name): + if self.state == 'tag_location' and name == 'LocationConstraint': + self.state = 'done' + else: self.state = 'bad' + + def characters(self, content): + if self.state == 'tag_location': + self.location += content +
diff --git a/frontend/imdither/urlDownload.py b/frontend/imdither/urlDownload.py new file mode 100755 index 0000000..f806650 --- /dev/null +++ b/frontend/imdither/urlDownload.py @@ -0,0 +1,33 @@ +#!/usr/bin/python2.7 +import pbutils +from os import getpid +class UrlDownload: + def __init__(self, url): + self.dir = "/tmp/"; + self.url = url + self.filename = self.makeTempname() + try: + self.download(); + except Exception as E: + print E + pbutils.error("Could not download image") + + def makeTempname(self): + self.url = self.url.split("?")[0] + parts = self.url.split(".") + namepart = pbutils.sanitize(parts[-2].split("/")[-1]) + extension = pbutils.sanitize(parts[-1]) + return str(getpid()) + namepart + "." + extension; + + + def getFilename(self): + return self.filename + def download(self): + pbutils.download_image(self.url, self.filename, self.dir) + +from sys import argv + +if __name__ == "__main__": + if len(argv) < 2: + pbutils.error("supply a url as an argument") + download = UrlDownload(argv[1]) diff --git a/frontend/img/ALPHA20IVY20201_1323328300.gif b/frontend/img/ALPHA20IVY20201_1323328300.gif new file mode 120000 index 0000000..97c32d3 --- /dev/null +++ b/frontend/img/ALPHA20IVY20201_1323328300.gif @@ -0,0 +1 @@ +../imbreak/img/ALPHA20IVY20201_1323328300.gif
\ No newline at end of file diff --git a/frontend/img/_broken_by_janie_147_greeks.gif b/frontend/img/_broken_by_janie_147_greeks.gif new file mode 120000 index 0000000..29caea0 --- /dev/null +++ b/frontend/img/_broken_by_janie_147_greeks.gif @@ -0,0 +1 @@ +../imbreak/img/_broken_by_janie_147_greeks.gif
\ No newline at end of file diff --git a/frontend/img/_broken_by_janie_16b_justhost_155x75.gif b/frontend/img/_broken_by_janie_16b_justhost_155x75.gif new file mode 120000 index 0000000..3736d16 --- /dev/null +++ b/frontend/img/_broken_by_janie_16b_justhost_155x75.gif @@ -0,0 +1 @@ +../imbreak/img/_broken_by_janie_16b_justhost_155x75.gif
\ No newline at end of file diff --git a/frontend/img/_broken_by_janie_399_a_pair_of_siena_and_carved_white_marble_columns_20th_century_d5409361h.jpg b/frontend/img/_broken_by_janie_399_a_pair_of_siena_and_carved_white_marble_columns_20th_century_d5409361h.jpg new file mode 120000 index 0000000..a3d6e08 --- /dev/null +++ b/frontend/img/_broken_by_janie_399_a_pair_of_siena_and_carved_white_marble_columns_20th_century_d5409361h.jpg @@ -0,0 +1 @@ +../imbreak/img/_broken_by_janie_399_a_pair_of_siena_and_carved_white_marble_columns_20th_century_d5409361h.jpg
\ No newline at end of file diff --git a/frontend/img/athenafinal.gif b/frontend/img/athenafinal.gif new file mode 120000 index 0000000..0cd8f3e --- /dev/null +++ b/frontend/img/athenafinal.gif @@ -0,0 +1 @@ +../imgrid/img/athenafinal.gif
\ No newline at end of file diff --git a/frontend/img/background.gif b/frontend/img/background.gif new file mode 120000 index 0000000..f8aa1a3 --- /dev/null +++ b/frontend/img/background.gif @@ -0,0 +1 @@ +../imgrid/img/background.gif
\ No newline at end of file diff --git a/frontend/img/blackplant.png b/frontend/img/blackplant.png new file mode 120000 index 0000000..e65f323 --- /dev/null +++ b/frontend/img/blackplant.png @@ -0,0 +1 @@ +../imgrid/img/blackplant.png
\ No newline at end of file diff --git a/frontend/img/blackplant2.png b/frontend/img/blackplant2.png new file mode 120000 index 0000000..0bed1b2 --- /dev/null +++ b/frontend/img/blackplant2.png @@ -0,0 +1 @@ +../imgrid/img/blackplant2.png
\ No newline at end of file diff --git a/frontend/img/blackplant3.png b/frontend/img/blackplant3.png new file mode 120000 index 0000000..15af280 --- /dev/null +++ b/frontend/img/blackplant3.png @@ -0,0 +1 @@ +../imgrid/img/blackplant3.png
\ No newline at end of file diff --git a/frontend/img/bros.png b/frontend/img/bros.png new file mode 120000 index 0000000..672b466 --- /dev/null +++ b/frontend/img/bros.png @@ -0,0 +1 @@ +../imgrid/img/bros.png
\ No newline at end of file diff --git a/frontend/img/brush.png b/frontend/img/brush.png new file mode 120000 index 0000000..2fa4e68 --- /dev/null +++ b/frontend/img/brush.png @@ -0,0 +1 @@ +../impattern/img/brush.png
\ No newline at end of file diff --git a/frontend/img/columns.jpg b/frontend/img/columns.jpg new file mode 120000 index 0000000..372104d --- /dev/null +++ b/frontend/img/columns.jpg @@ -0,0 +1 @@ +../imbreak/img/columns.jpg
\ No newline at end of file diff --git a/frontend/img/eraser.png b/frontend/img/eraser.png new file mode 120000 index 0000000..fb9853e --- /dev/null +++ b/frontend/img/eraser.png @@ -0,0 +1 @@ +../impattern/img/eraser.png
\ No newline at end of file diff --git a/frontend/img/facebookimage.png b/frontend/img/facebookimage.png new file mode 120000 index 0000000..b577a5f --- /dev/null +++ b/frontend/img/facebookimage.png @@ -0,0 +1 @@ +../imgrid/img/facebookimage.png
\ No newline at end of file diff --git a/frontend/img/firstlogo.gif b/frontend/img/firstlogo.gif new file mode 120000 index 0000000..4b682ca --- /dev/null +++ b/frontend/img/firstlogo.gif @@ -0,0 +1 @@ +../imbreak/img/firstlogo.gif
\ No newline at end of file diff --git a/frontend/img/generating.gif b/frontend/img/generating.gif new file mode 120000 index 0000000..f3e29ef --- /dev/null +++ b/frontend/img/generating.gif @@ -0,0 +1 @@ +../imgrid/img/generating.gif
\ No newline at end of file diff --git a/frontend/img/greeks.gif b/frontend/img/greeks.gif new file mode 120000 index 0000000..c691a2d --- /dev/null +++ b/frontend/img/greeks.gif @@ -0,0 +1 @@ +../imbreak/img/greeks.gif
\ No newline at end of file diff --git a/frontend/img/harrisbros.png b/frontend/img/harrisbros.png new file mode 120000 index 0000000..7875be6 --- /dev/null +++ b/frontend/img/harrisbros.png @@ -0,0 +1 @@ +../imgrid/img/harrisbros.png
\ No newline at end of file diff --git a/frontend/img/imgrid.png b/frontend/img/imgrid.png new file mode 120000 index 0000000..d74b0db --- /dev/null +++ b/frontend/img/imgrid.png @@ -0,0 +1 @@ +../imgrid/img/imgrid.png
\ No newline at end of file diff --git a/frontend/img/imgrid_1328137237_ivy_pepper.gif b/frontend/img/imgrid_1328137237_ivy_pepper.gif new file mode 120000 index 0000000..122081e --- /dev/null +++ b/frontend/img/imgrid_1328137237_ivy_pepper.gif @@ -0,0 +1 @@ +../imbreak/img/imgrid_1328137237_ivy_pepper.gif
\ No newline at end of file diff --git a/frontend/img/impattern.png b/frontend/img/impattern.png new file mode 120000 index 0000000..b879f57 --- /dev/null +++ b/frontend/img/impattern.png @@ -0,0 +1 @@ +../impattern/img/impattern.png
\ No newline at end of file diff --git a/frontend/img/ivy.gif b/frontend/img/ivy.gif new file mode 120000 index 0000000..5a66e61 --- /dev/null +++ b/frontend/img/ivy.gif @@ -0,0 +1 @@ +../imbreak/img/ivy.gif
\ No newline at end of file diff --git a/frontend/img/ivy2.gif b/frontend/img/ivy2.gif new file mode 120000 index 0000000..a54ded9 --- /dev/null +++ b/frontend/img/ivy2.gif @@ -0,0 +1 @@ +../imbreak/img/ivy2.gif
\ No newline at end of file diff --git a/frontend/img/loading.gif b/frontend/img/loading.gif new file mode 120000 index 0000000..f9152ce --- /dev/null +++ b/frontend/img/loading.gif @@ -0,0 +1 @@ +../impattern/img/loading.gif
\ No newline at end of file diff --git a/frontend/img/logo.gif b/frontend/img/logo.gif new file mode 120000 index 0000000..7d0de6a --- /dev/null +++ b/frontend/img/logo.gif @@ -0,0 +1 @@ +../impattern/img/logo.gif
\ No newline at end of file diff --git a/frontend/img/newmain.gif b/frontend/img/newmain.gif new file mode 120000 index 0000000..9fa84e9 --- /dev/null +++ b/frontend/img/newmain.gif @@ -0,0 +1 @@ +../imbreak/img/newmain.gif
\ No newline at end of file diff --git a/frontend/img/og.jpg b/frontend/img/og.jpg new file mode 120000 index 0000000..9807db4 --- /dev/null +++ b/frontend/img/og.jpg @@ -0,0 +1 @@ +../imbreak/img/og.jpg
\ No newline at end of file diff --git a/frontend/img/oldathena.gif b/frontend/img/oldathena.gif new file mode 120000 index 0000000..ab760ad --- /dev/null +++ b/frontend/img/oldathena.gif @@ -0,0 +1 @@ +../imgrid/img/oldathena.gif
\ No newline at end of file diff --git a/frontend/img/on9TF_1322970909_1322970984_1323325278.gif b/frontend/img/on9TF_1322970909_1322970984_1323325278.gif new file mode 120000 index 0000000..5cdca1f --- /dev/null +++ b/frontend/img/on9TF_1322970909_1322970984_1323325278.gif @@ -0,0 +1 @@ +../imbreak/img/on9TF_1322970909_1322970984_1323325278.gif
\ No newline at end of file diff --git a/frontend/img/test.gif b/frontend/img/test.gif new file mode 120000 index 0000000..a9e9cf0 --- /dev/null +++ b/frontend/img/test.gif @@ -0,0 +1 @@ +../imgrid/img/test.gif
\ No newline at end of file diff --git a/frontend/img/thatbackground.gif b/frontend/img/thatbackground.gif new file mode 120000 index 0000000..bdf00cf --- /dev/null +++ b/frontend/img/thatbackground.gif @@ -0,0 +1 @@ +../imgrid/img/thatbackground.gif
\ No newline at end of file diff --git a/frontend/img/title1.gif b/frontend/img/title1.gif new file mode 120000 index 0000000..913fede --- /dev/null +++ b/frontend/img/title1.gif @@ -0,0 +1 @@ +../imbreak/img/title1.gif
\ No newline at end of file diff --git a/frontend/imgradient/bevelborder(2) b/frontend/imgradient/bevelborder(2) new file mode 100755 index 0000000..20774dd --- /dev/null +++ b/frontend/imgradient/bevelborder(2) @@ -0,0 +1,295 @@ +#!/bin/bash +# +# Developed by Fred Weinhaus 7/16/2010 .......... revised 6/30/2011 +# +# USAGE: bevelborder [-s size] [-m method] [-p percent] [-c contrast] [-b bcolor] [-a amount] [-t type] infile outfile +# USAGE: bevelborder [-h or -help] +# +# OPTIONS: +# +# -s size size of border in pixels; same in both dimensions; +# default equals 10% of min(imagewidth, imageheight) +# -m method bevel method; choices are: outer, inner or split; +# default=outer +# -p percent split percent between outer and inner bevel; +# 100 is outer bevel only; 0 is inner bevel only; +# default=50 applies only to method=split +# -c contrast contrast percent for bevel; 0<=integer<=100; +# default=50 +# -b bcolor border coloring; any IM opaque color is allowed; +# default is no coloring +# -a amount amount of border coloring; 0<=integer<=100; +# default=25 +# -t type type of compose; hardlight, linearlight or +# vividlight; default=hardlight +# +### +# +# NAME: BEVELBORDER +# +# PURPOSE: To applies a bevel effect to the border of an image. +# +# DESCRIPTION: BEVELBORDER applies a bevel effect to the border of an image. +# The bevel can be an outer bevel (raised effect), an inner bevel (depressed +# effect) or a split (mix) of the two. The border may also be colorized. +# +# +# ARGUMENTS: +# +# -s size ... SIZE is the dimensions of the border region in pixels. The same +# value is used in both dimensions. Values are integers greater than 0. The +# default is 10% of the min(width,height) of the image. +# +# -m method ... METHOD is the bevel method. Choices are: outer, which makes a +# raised effect; inner, which makes a depressed effect; and split, which is +# part raised and part depressed. The amount of each is controlled by the +# percent argument. The default is outer. +# +# -p percent ... PERCENT is the percent split between outer and inner bevels. +# Values are integers such that 0<=percent<=100. A value of 100 is full outer +# bevel. A value of 0 is full inner bevel. The default is 50 and only applies +# when the method=split. +# +# -c contrast ... CONTRAST percent for innerbevel or outerbevel. Values are +# integers between 0 and 100. The default=50. +# +# -b bcolor ... BCOLOR is the bevel colorization color. Any valid opaque IM +# color is allowed. The default is no additional colorization. +# +# -a amount ... AMOUNT of colorization. Values are integers between 0 and 100. +# The default=25. +# +# -t type ... TYPE of compose. Choices are: hardlight, linearlight and +# vividlight. The default=hardlight +# +# REQUIREMENTS: IM 6.5.9.0 or higher due to the use of -brightness-contrast. +# +# CAVEAT: No guarantee that this script will work on all platforms, +# nor that trapping of inconsistent parameters is complete and +# foolproof. Use At Your Own Risk. +# +###### +# + +# set default values +size="" # bevel border amount in pixels +method="outer" # outer, inner, split +percent=50 # split percent; 0 to 100; 100 is outer; 0 is inner +contrast=50 # bevel contrast percent +bcolor="" # bevel color +amount=25 # amount of coloring; 0<=integer<=100 +type="hardlight" # bevel compose method + +# set directory for temporary files +dir="." # suggestions are dir="." or dir="/tmp" + +# set up functions to report Usage and Usage with Description +PROGNAME=`type $0 | awk '{print $3}'` # search for executable on path +PROGDIR=`dirname $PROGNAME` # extract directory of program +PROGNAME=`basename $PROGNAME` # base name of program +usage1() + { + echo >&2 "" + echo >&2 "$PROGNAME:" "$@" + sed >&2 -n '/^###/q; /^#/!q; s/^#//; s/^ //; 4,$p' "$PROGDIR/$PROGNAME" + } +usage2() + { + echo >&2 "" + echo >&2 "$PROGNAME:" "$@" + sed >&2 -n '/^######/q; /^#/!q; s/^#*//; s/^ //; 4,$p' "$PROGDIR/$PROGNAME" + } + + +# function to report error messages +errMsg() + { + echo "" + echo $1 + echo "" + usage1 + exit 1 + } + + +# function to test for minus at start of value of second part of option 1 or 2 +checkMinus() + { + test=`echo "$1" | grep -c '^-.*$'` # returns 1 if match; 0 otherwise + [ $test -eq 1 ] && errMsg "$errorMsg" + } + +# test for correct number of arguments and get values +if [ $# -eq 0 ] + then + # help information + echo "" + usage2 + exit 0 +elif [ $# -gt 16 ] + then + errMsg "--- TOO MANY ARGUMENTS WERE PROVIDED ---" +else + while [ $# -gt 0 ] + do + # get parameter values + case "$1" in + -h|-help) # help information + echo "" + usage2 + exit 0 + ;; + -s) # get size + shift # to get the next parameter + # test if parameter starts with minus sign + errorMsg="--- INVALID SIZE SPECIFICATION ---" + checkMinus "$1" + size=`expr "$1" : '\([0-9]*\)'` + [ "$size" = "" ] && errMsg "--- SIZE=$size MUST BE A NON-NEGATIVE INTEGER VALUE (with no sign) ---" + testA=`echo "$size <= 0" | bc` + [ $testA -eq 1 ] && errMsg "--- SIZE=$size MUST BE A POSITIVE INTEGER ---" + ;; + -m) # get method + shift # to get the next parameter + # test if parameter starts with minus sign + errorMsg="--- INVALID METHOD SPECIFICATION ---" + checkMinus "$1" + # test type values + method=`echo "$1" | tr "[:upper:]" "[:lower:]"` + case "$method" in + outer|inner|split) ;; # do nothing - valid type + *) errMsg "--- METHOD=$method IS NOT A VALID VALUE ---" ;; + esac + ;; + -p) # get percent + shift # to get the next parameter + # test if parameter starts with minus sign + errorMsg="--- INVALID PERCENT SPECIFICATION ---" + checkMinus "$1" + percent=`expr "$1" : '\([0-9]*\)'` + [ "$percent" = "" ] && errMsg "--- PERCENT=$percent MUST BE A NON-NEGATIVE INTEGER ---" + testA=`echo "$percent < 0" | bc` + testB=`echo "$percent > 100" | bc` + [ $testA -eq 1 -o $testB -eq 1 ] && errMsg "--- PERCENT=$percent MUST BE AN INTEGER BETWEEN 0 AND 100 ---" + ;; + -c) # get contrast + shift # to get the next parameter + # test if parameter starts with minus sign + errorMsg="--- INVALID CONTRAST SPECIFICATION ---" + checkMinus "$1" + contrast=`expr "$1" : '\([0-9]*\)'` + [ "$contrast" = "" ] && errMsg "--- CONTRAST=$contrast MUST BE A NON-NEGATIVE INTEGER ---" + testA=`echo "$contrast < 0" | bc` + testB=`echo "$contrast > 100" | bc` + [ $testA -eq 1 -o $testB -eq 1 ] && errMsg "--- CONTRAST=$contrast MUST BE AN INTEGER BETWEEN 0 AND 100 ---" + ;; + -b) # get bcolor + shift # to get the next parameter + # test if parameter starts with minus sign + errorMsg="--- INVALID BCOLOR SPECIFICATION ---" + checkMinus "$1" + bcolor="$1" + ;; + -a) # get amount + shift # to get the next parameter + # test if parameter starts with minus sign + errorMsg="--- INVALID AMOUNT SPECIFICATION ---" + checkMinus "$1" + amount=`expr "$1" : '\([0-9]*\)'` + [ "$amount" = "" ] && errMsg "--- AMOUNT=$amount MUST BE A NON-NEGATIVE INTEGER ---" + testA=`echo "$amount < 0" | bc` + testB=`echo "$amount > 100" | bc` + [ $testA -eq 1 -o $testB -eq 1 ] && errMsg "--- AMOUNT=$amount MUST BE AN INTEGER BETWEEN 0 AND 100 ---" + ;; + -t) # get type + shift # to get the next parameter + # test if parameter starts with minus sign + errorMsg="--- INVALID TYPE SPECIFICATION ---" + checkMinus "$1" + # test type values + type=`echo "$1" | tr "[:upper:]" "[:lower:]"` + case "$type" in + hardlight|linearlight|vividlight) ;; # do nothing - valid type + *) errMsg "--- METHOD=$method IS NOT A VALID VALUE ---" ;; + esac + ;; + -) # STDIN and end of arguments + break + ;; + -*) # any other - argument + errMsg "--- UNKNOWN OPTION ---" + ;; + *) # end of arguments + break + ;; + esac + shift # next option + done + # + # get infile and outfile + infile=$1 + outfile=$2 +fi + +# test that infile provided +[ "$infile" = "" ] && errMsg "NO INPUT FILE SPECIFIED" + +# test that outfile provided +[ "$outfile" = "" ] && errMsg "NO OUTPUT FILE SPECIFIED" + + +tmpA="$dir/bevelborder_$$.mpc" +tmpB="$dir/bevelborder_$$.cache" +trap "rm -f $tmpA $tmpB; exit 0" 0 +trap "rm -f $tmpA $tmpB; exit 1" 1 2 3 15 + + +# read the input image into the TMP cached image. +convert -quiet -regard-warnings "$infile" +repage "$tmpA" || + errMsg "--- FILE $infile NOT READABLE OR HAS ZERO SIZE ---" + +# set default size +if [ "$size" = "" ]; then + size=`convert $tmpA -ping -format "%[fx:floor(0.1*min(w,h))]" info:` + wsize=$size + hsize=$size +fi + +# get input image size +ww=`convert $infile -ping -format "%w" info:` +hh=`convert $infile -ping -format "%h" info:` +wd=`convert xc: -format "%[fx:$ww-2*$size]" info:` +ht=`convert xc: -format "%[fx:$hh-2*$size]" info:` + +# adjust contrast and transparency to fractions +contr1=`convert xc: -format "%[fx:$contrast-100]" info:` + +# setup bevel parameters +if [ "$method" = "outer" ]; then + wsize2=$size + hsize2=0 +elif [ "$method" = "inner" ]; then + hsize2=$size + wsize2=0 +elif [ "$method" = "split" ]; then + wsize2=`convert xc: -format "%[fx:floor($percent*$size/100)]" info:` + hsize2=$(($size-$wsize2)) +fi +echo "ww=$ww; hh=$hh; wd=$wd; ht=$ht; wsize2=$wsize2; hsize2=$hsize2" + +if [ "$bcolor" = "" ]; then + colorize="" +else + colorize="-fill $bcolor -colorize $amount%" +fi + +# process image +convert $tmpA -size ${wd}x${ht} xc:"gray(50%)" \ +\( -clone 1 -frame ${size}x${size}+${wsize2}+${hsize2} \ +-auto-level -black-threshold 25% -white-threshold 75% $colorize \ +-brightness-contrast 0,${contr1}% \ +-clone 1 -gravity center -composite \) \ +-delete 1 -compose $type -composite \ +$outfile + +exit 0
\ No newline at end of file diff --git a/frontend/imgradient/colors.html b/frontend/imgradient/colors.html new file mode 100755 index 0000000..0ef22f9 --- /dev/null +++ b/frontend/imgradient/colors.html @@ -0,0 +1,5429 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<!-- saved from url=(0124)https://mail.google.com/mail/?ui=2&ik=8c5c6e41c0&view=att&th=131a60939ee4c454&attid=0.1&disp=inline&realattid=f_gr2htzs60&zw --> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head> +<style type="text/css"> +* + { + font-family: sans-serif; + } +</style> +<body> + + + +<div> +<h1><a></a>List of Color Names</h1> +<div> + +<p>a list of named colors for use with PHOTOBLASTER:</p> + +<table> +<tbody> + <tr> + <th align="right">Name</th> + <th align="center">Color</th> + <th align="left">RGB</th> + <th align="left">Hex</th> + + </tr> + + <tr> + <td align="right">snow</td> + <td align="center" style="background-color:rgb(255, 250, 250)">snow</td> + <td align="left">rgb(255, 250, 250)</td> + <td align="left">#FFFAFA</td> + + </tr> + + <tr> + <td align="right">snow1</td> + <td align="center" style="background-color:rgb(255, 250, 250)">snow1</td> + <td align="left">rgb(255, 250, 250)</td> + <td align="left">#FFFAFA</td> + + </tr> + + <tr> + <td align="right">snow2</td> + <td align="center" style="background-color:rgb(238, 233, 233)">snow2</td> + <td align="left">rgb(238, 233, 233)</td> + <td align="left">#EEE9E9</td> + + </tr> + + <tr> + <td align="right">RosyBrown1</td> + <td align="center" style="background-color:rgb(255, 193, 193)">RosyBrown1</td> + <td align="left">rgb(255, 193, 193)</td> + <td align="left">#FFC1C1</td> + + </tr> + + <tr> + <td align="right">RosyBrown2</td> + <td align="center" style="background-color:rgb(238, 180, 180)">RosyBrown2</td> + <td align="left">rgb(238, 180, 180)</td> + <td align="left">#EEB4B4</td> + + </tr> + + <tr> + <td align="right">snow3</td> + <td align="center" style="background-color:rgb(205, 201, 201)">snow3</td> + <td align="left">rgb(205, 201, 201)</td> + <td align="left">#CDC9C9</td> + + </tr> + + <tr> + <td align="right">LightCoral</td> + <td align="center" style="background-color:rgb(240, 128, 128)">LightCoral</td> + <td align="left">rgb(240, 128, 128)</td> + <td align="left">#F08080</td> + + </tr> + + <tr> + <td align="right">IndianRed1</td> + <td align="center" style="background-color:rgb(255, 106, 106)">IndianRed1</td> + <td align="left">rgb(255, 106, 106)</td> + <td align="left">#FF6A6A</td> + + </tr> + + <tr> + <td align="right">RosyBrown3</td> + <td align="center" style="background-color:rgb(205, 155, 155)">RosyBrown3</td> + <td align="left">rgb(205, 155, 155)</td> + <td align="left">#CD9B9B</td> + + </tr> + + <tr> + <td align="right">IndianRed2</td> + <td align="center" style="background-color:rgb(238, 99, 99)">IndianRed2</td> + <td align="left">rgb(238, 99, 99)</td> + <td align="left">#EE6363</td> + + </tr> + + <tr> + <td align="right">RosyBrown</td> + <td align="center" style="background-color:rgb(188, 143, 143)">RosyBrown</td> + <td align="left">rgb(188, 143, 143)</td> + <td align="left">#BC8F8F</td> + + </tr> + + <tr> + <td align="right">brown1</td> + <td align="center" style="background-color:rgb(255, 64, 64)">brown1</td> + <td align="left">rgb(255, 64, 64)</td> + <td align="left">#FF4040</td> + + </tr> + + <tr> + <td align="right">firebrick1</td> + <td align="center" style="background-color:rgb(255, 48, 48)">firebrick1</td> + <td align="left">rgb(255, 48, 48)</td> + <td align="left">#FF3030</td> + + </tr> + + <tr> + <td align="right">brown2</td> + <td align="center" style="background-color:rgb(238, 59, 59)">brown2</td> + <td align="left">rgb(238, 59, 59)</td> + <td align="left">#EE3B3B</td> + + </tr> + + <tr> + <td align="right">IndianRed</td> + <td align="center" style="background-color:rgb(205, 92, 92)">IndianRed</td> + <td align="left">rgb(205, 92, 92)</td> + <td align="left">#CD5C5C</td> + + </tr> + + <tr> + <td align="right">IndianRed3</td> + <td align="center" style="background-color:rgb(205, 85, 85)">IndianRed3</td> + <td align="left">rgb(205, 85, 85)</td> + <td align="left">#CD5555</td> + + </tr> + + <tr> + <td align="right">firebrick2</td> + <td align="center" style="background-color:rgb(238, 44, 44)">firebrick2</td> + <td align="left">rgb(238, 44, 44)</td> + <td align="left">#EE2C2C</td> + + </tr> + + <tr> + <td align="right">snow4</td> + <td align="center" style="background-color:rgb(139, 137, 137)">snow4</td> + <td align="left">rgb(139, 137, 137)</td> + <td align="left">#8B8989</td> + + </tr> + + <tr> + <td align="right">brown3</td> + <td align="center" style="background-color:rgb(205, 51, 51)">brown3</td> + <td align="left">rgb(205, 51, 51)</td> + <td align="left">#CD3333</td> + + </tr> + + <tr> + <td align="right">red</td> + <td align="center" style="background-color:rgb(255, 0, 0)">red</td> + <td align="left">rgb(255, 0, 0)</td> + <td align="left">#FF0000</td> + + </tr> + + <tr> + <td align="right">red1</td> + <td align="center" style="background-color:rgb(255, 0, 0)">red1</td> + <td align="left">rgb(255, 0, 0)</td> + <td align="left">#FF0000</td> + + </tr> + + <tr> + <td align="right">RosyBrown4</td> + <td align="center" style="background-color:rgb(139, 105, 105)">RosyBrown4</td> + <td align="left">rgb(139, 105, 105)</td> + <td align="left">#8B6969</td> + + </tr> + + <tr> + <td align="right">firebrick3</td> + <td align="center" style="background-color:rgb(205, 38, 38)">firebrick3</td> + <td align="left">rgb(205, 38, 38)</td> + <td align="left">#CD2626</td> + + </tr> + + <tr> + <td align="right">red2</td> + <td align="center" style="background-color:rgb(238, 0, 0)">red2</td> + <td align="left">rgb(238, 0, 0)</td> + <td align="left">#EE0000</td> + + </tr> + + <tr> + <td align="right">firebrick</td> + <td align="center" style="background-color:rgb(178, 34, 34)">firebrick</td> + <td align="left">rgb(178, 34, 34)</td> + <td align="left">#B22222</td> + + </tr> + + <tr> + <td align="right">brown</td> + <td align="center" style="background-color:rgb(165, 42, 42)">brown</td> + <td align="left">rgb(165, 42, 42)</td> + <td align="left">#A52A2A</td> + + </tr> + + <tr> + <td align="right">red3</td> + <td align="center" style="background-color:rgb(205, 0, 0)">red3</td> + <td align="left">rgb(205, 0, 0)</td> + <td align="left">#CD0000</td> + + </tr> + + <tr> + <td align="right">IndianRed4</td> + <td align="center" style="background-color:rgb(139, 58, 58)">IndianRed4</td> + <td align="left">rgb(139, 58, 58)</td> + <td align="left">#8B3A3A</td> + + </tr> + + <tr> + <td align="right">brown4</td> + <td align="center" style="background-color:rgb(139, 35, 35)">brown4</td> + <td align="left">rgb(139, 35, 35)</td> + <td align="left">#8B2323</td> + + </tr> + + <tr> + <td align="right">firebrick4</td> + <td align="center" style="background-color:rgb(139, 26, 26)">firebrick4</td> + <td align="left">rgb(139, 26, 26)</td> + <td align="left">#8B1A1A</td> + + </tr> + + <tr> + <td align="right">DarkRed</td> + <td align="center" style="background-color:rgb(139, 0, 0)">DarkRed</td> + <td align="left">rgb(139, 0, 0)</td> + <td align="left">#8B0000</td> + + </tr> + + <tr> + <td align="right">red4</td> + <td align="center" style="background-color:rgb(139, 0, 0)">red4</td> + <td align="left">rgb(139, 0, 0)</td> + <td align="left">#8B0000</td> + + </tr> + + <tr> + <td align="right">maroon</td> + <td align="center" style="background-color:rgb(128, 0, 0)">maroon</td> + <td align="left">rgb(128, 0, 0)</td> + <td align="left">#800000</td> + + </tr> + + <tr> + <td align="right">LightPink1</td> + <td align="center" style="background-color:rgb(255, 174, 185)">LightPink1</td> + <td align="left">rgb(255, 174, 185)</td> + <td align="left">#FFAEB9</td> + + </tr> + + <tr> + <td align="right">LightPink3</td> + <td align="center" style="background-color:rgb(205, 140, 149)">LightPink3</td> + <td align="left">rgb(205, 140, 149)</td> + <td align="left">#CD8C95</td> + + </tr> + + <tr> + <td align="right">LightPink4</td> + <td align="center" style="background-color:rgb(139, 95, 101)">LightPink4</td> + <td align="left">rgb(139, 95, 101)</td> + <td align="left">#8B5F65</td> + + </tr> + + <tr> + <td align="right">LightPink2</td> + <td align="center" style="background-color:rgb(238, 162, 173)">LightPink2</td> + <td align="left">rgb(238, 162, 173)</td> + <td align="left">#EEA2AD</td> + + </tr> + + <tr> + <td align="right">LightPink</td> + <td align="center" style="background-color:rgb(255, 182, 193)">LightPink</td> + <td align="left">rgb(255, 182, 193)</td> + <td align="left">#FFB6C1</td> + + </tr> + + <tr> + <td align="right">pink</td> + <td align="center" style="background-color:rgb(255, 192, 203)">pink</td> + <td align="left">rgb(255, 192, 203)</td> + <td align="left">#FFC0CB</td> + + </tr> + + <tr> + <td align="right">crimson</td> + <td align="center" style="background-color:rgb(220, 20, 60)">crimson</td> + <td align="left">rgb(220, 20, 60)</td> + <td align="left">#DC143C</td> + + </tr> + + <tr> + <td align="right">pink1</td> + <td align="center" style="background-color:rgb(255, 181, 197)">pink1</td> + <td align="left">rgb(255, 181, 197)</td> + <td align="left">#FFB5C5</td> + + </tr> + + <tr> + <td align="right">pink2</td> + <td align="center" style="background-color:rgb(238, 169, 184)">pink2</td> + <td align="left">rgb(238, 169, 184)</td> + <td align="left">#EEA9B8</td> + + </tr> + + <tr> + <td align="right">pink3</td> + <td align="center" style="background-color:rgb(205, 145, 158)">pink3</td> + <td align="left">rgb(205, 145, 158)</td> + <td align="left">#CD919E</td> + + </tr> + + <tr> + <td align="right">pink4</td> + <td align="center" style="background-color:rgb(139, 99, 108)">pink4</td> + <td align="left">rgb(139, 99, 108)</td> + <td align="left">#8B636C</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed4</td> + <td align="center" style="background-color:rgb(139, 71, 93)">PaleVioletRed4</td> + <td align="left">rgb(139, 71, 93)</td> + <td align="left">#8B475D</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed</td> + <td align="center" style="background-color:rgb(219, 112, 147)">PaleVioletRed</td> + <td align="left">rgb(219, 112, 147)</td> + <td align="left">#DB7093</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed2</td> + <td align="center" style="background-color:rgb(238, 121, 159)">PaleVioletRed2</td> + <td align="left">rgb(238, 121, 159)</td> + <td align="left">#EE799F</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed1</td> + <td align="center" style="background-color:rgb(255, 130, 171)">PaleVioletRed1</td> + <td align="left">rgb(255, 130, 171)</td> + <td align="left">#FF82AB</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed3</td> + <td align="center" style="background-color:rgb(205, 104, 137)">PaleVioletRed3</td> + <td align="left">rgb(205, 104, 137)</td> + <td align="left">#CD6889</td> + + </tr> + + <tr> + <td align="right">LavenderBlush</td> + <td align="center" style="background-color:rgb(255, 240, 245)">LavenderBlush</td> + <td align="left">rgb(255, 240, 245)</td> + <td align="left">#FFF0F5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush1</td> + <td align="center" style="background-color:rgb(255, 240, 245)">LavenderBlush1</td> + <td align="left">rgb(255, 240, 245)</td> + <td align="left">#FFF0F5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush3</td> + <td align="center" style="background-color:rgb(205, 193, 197)">LavenderBlush3</td> + <td align="left">rgb(205, 193, 197)</td> + <td align="left">#CDC1C5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush2</td> + <td align="center" style="background-color:rgb(238, 224, 229)">LavenderBlush2</td> + <td align="left">rgb(238, 224, 229)</td> + <td align="left">#EEE0E5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush4</td> + <td align="center" style="background-color:rgb(139, 131, 134)">LavenderBlush4</td> + <td align="left">rgb(139, 131, 134)</td> + <td align="left">#8B8386</td> + + </tr> + + <tr> + <td align="right">maroon</td> + <td align="center" style="background-color:rgb(176, 48, 96)">maroon</td> + <td align="left">rgb(176, 48, 96)</td> + <td align="left">#B03060</td> + + </tr> + + <tr> + <td align="right">HotPink3</td> + <td align="center" style="background-color:rgb(205, 96, 144)">HotPink3</td> + <td align="left">rgb(205, 96, 144)</td> + <td align="left">#CD6090</td> + + </tr> + + <tr> + <td align="right">VioletRed3</td> + <td align="center" style="background-color:rgb(205, 50, 120)">VioletRed3</td> + <td align="left">rgb(205, 50, 120)</td> + <td align="left">#CD3278</td> + + </tr> + + <tr> + <td align="right">VioletRed1</td> + <td align="center" style="background-color:rgb(255, 62, 150)">VioletRed1</td> + <td align="left">rgb(255, 62, 150)</td> + <td align="left">#FF3E96</td> + + </tr> + + <tr> + <td align="right">VioletRed2</td> + <td align="center" style="background-color:rgb(238, 58, 140)">VioletRed2</td> + <td align="left">rgb(238, 58, 140)</td> + <td align="left">#EE3A8C</td> + + </tr> + + <tr> + <td align="right">VioletRed4</td> + <td align="center" style="background-color:rgb(139, 34, 82)">VioletRed4</td> + <td align="left">rgb(139, 34, 82)</td> + <td align="left">#8B2252</td> + + </tr> + + <tr> + <td align="right">HotPink2</td> + <td align="center" style="background-color:rgb(238, 106, 167)">HotPink2</td> + <td align="left">rgb(238, 106, 167)</td> + <td align="left">#EE6AA7</td> + + </tr> + + <tr> + <td align="right">HotPink1</td> + <td align="center" style="background-color:rgb(255, 110, 180)">HotPink1</td> + <td align="left">rgb(255, 110, 180)</td> + <td align="left">#FF6EB4</td> + + </tr> + + <tr> + <td align="right">HotPink4</td> + <td align="center" style="background-color:rgb(139, 58, 98)">HotPink4</td> + <td align="left">rgb(139, 58, 98)</td> + <td align="left">#8B3A62</td> + + </tr> + + <tr> + <td align="right">HotPink</td> + <td align="center" style="background-color:rgb(255, 105, 180)">HotPink</td> + <td align="left">rgb(255, 105, 180)</td> + <td align="left">#FF69B4</td> + + </tr> + + <tr> + <td align="right">DeepPink</td> + <td align="center" style="background-color:rgb(255, 20, 147)">DeepPink</td> + <td align="left">rgb(255, 20, 147)</td> + <td align="left">#FF1493</td> + + </tr> + + <tr> + <td align="right">DeepPink1</td> + <td align="center" style="background-color:rgb(255, 20, 147)">DeepPink1</td> + <td align="left">rgb(255, 20, 147)</td> + <td align="left">#FF1493</td> + + </tr> + + <tr> + <td align="right">DeepPink2</td> + <td align="center" style="background-color:rgb(238, 18, 137)">DeepPink2</td> + <td align="left">rgb(238, 18, 137)</td> + <td align="left">#EE1289</td> + + </tr> + + <tr> + <td align="right">DeepPink3</td> + <td align="center" style="background-color:rgb(205, 16, 118)">DeepPink3</td> + <td align="left">rgb(205, 16, 118)</td> + <td align="left">#CD1076</td> + + </tr> + + <tr> + <td align="right">DeepPink4</td> + <td align="center" style="background-color:rgb(139, 10, 80)">DeepPink4</td> + <td align="left">rgb(139, 10, 80)</td> + <td align="left">#8B0A50</td> + + </tr> + + <tr> + <td align="right">maroon1</td> + <td align="center" style="background-color:rgb(255, 52, 179)">maroon1</td> + <td align="left">rgb(255, 52, 179)</td> + <td align="left">#FF34B3</td> + + </tr> + + <tr> + <td align="right">maroon2</td> + <td align="center" style="background-color:rgb(238, 48, 167)">maroon2</td> + <td align="left">rgb(238, 48, 167)</td> + <td align="left">#EE30A7</td> + + </tr> + + <tr> + <td align="right">maroon3</td> + <td align="center" style="background-color:rgb(205, 41, 144)">maroon3</td> + <td align="left">rgb(205, 41, 144)</td> + <td align="left">#CD2990</td> + + </tr> + + <tr> + <td align="right">maroon4</td> + <td align="center" style="background-color:rgb(139, 28, 98)">maroon4</td> + <td align="left">rgb(139, 28, 98)</td> + <td align="left">#8B1C62</td> + + </tr> + + <tr> + <td align="right">MediumVioletRed</td> + <td align="center" style="background-color:rgb(199, 21, 133)">MediumVioletRed</td> + <td align="left">rgb(199, 21, 133)</td> + <td align="left">#C71585</td> + + </tr> + + <tr> + <td align="right">VioletRed</td> + <td align="center" style="background-color:rgb(208, 32, 144)">VioletRed</td> + <td align="left">rgb(208, 32, 144)</td> + <td align="left">#D02090</td> + + </tr> + + <tr> + <td align="right">orchid2</td> + <td align="center" style="background-color:rgb(238, 122, 233)">orchid2</td> + <td align="left">rgb(238, 122, 233)</td> + <td align="left">#EE7AE9</td> + + </tr> + + <tr> + <td align="right">orchid</td> + <td align="center" style="background-color:rgb(218, 112, 214)">orchid</td> + <td align="left">rgb(218, 112, 214)</td> + <td align="left">#DA70D6</td> + + </tr> + + <tr> + <td align="right">orchid1</td> + <td align="center" style="background-color:rgb(255, 131, 250)">orchid1</td> + <td align="left">rgb(255, 131, 250)</td> + <td align="left">#FF83FA</td> + + </tr> + + <tr> + <td align="right">orchid3</td> + <td align="center" style="background-color:rgb(205, 105, 201)">orchid3</td> + <td align="left">rgb(205, 105, 201)</td> + <td align="left">#CD69C9</td> + + </tr> + + <tr> + <td align="right">orchid4</td> + <td align="center" style="background-color:rgb(139, 71, 137)">orchid4</td> + <td align="left">rgb(139, 71, 137)</td> + <td align="left">#8B4789</td> + + </tr> + + <tr> + <td align="right">thistle1</td> + <td align="center" style="background-color:rgb(255, 225, 255)">thistle1</td> + <td align="left">rgb(255, 225, 255)</td> + <td align="left">#FFE1FF</td> + + </tr> + + <tr> + <td align="right">thistle2</td> + <td align="center" style="background-color:rgb(238, 210, 238)">thistle2</td> + <td align="left">rgb(238, 210, 238)</td> + <td align="left">#EED2EE</td> + + </tr> + + <tr> + <td align="right">plum1</td> + <td align="center" style="background-color:rgb(255, 187, 255)">plum1</td> + <td align="left">rgb(255, 187, 255)</td> + <td align="left">#FFBBFF</td> + + </tr> + + <tr> + <td align="right">plum2</td> + <td align="center" style="background-color:rgb(238, 174, 238)">plum2</td> + <td align="left">rgb(238, 174, 238)</td> + <td align="left">#EEAEEE</td> + + </tr> + + <tr> + <td align="right">thistle</td> + <td align="center" style="background-color:rgb(216, 191, 216)">thistle</td> + <td align="left">rgb(216, 191, 216)</td> + <td align="left">#D8BFD8</td> + + </tr> + + <tr> + <td align="right">thistle3</td> + <td align="center" style="background-color:rgb(205, 181, 205)">thistle3</td> + <td align="left">rgb(205, 181, 205)</td> + <td align="left">#CDB5CD</td> + + </tr> + + <tr> + <td align="right">plum</td> + <td align="center" style="background-color:rgb(221, 160, 221)">plum</td> + <td align="left">rgb(221, 160, 221)</td> + <td align="left">#DDA0DD</td> + + </tr> + + <tr> + <td align="right">violet</td> + <td align="center" style="background-color:rgb(238, 130, 238)">violet</td> + <td align="left">rgb(238, 130, 238)</td> + <td align="left">#EE82EE</td> + + </tr> + + <tr> + <td align="right">plum3</td> + <td align="center" style="background-color:rgb(205, 150, 205)">plum3</td> + <td align="left">rgb(205, 150, 205)</td> + <td align="left">#CD96CD</td> + + </tr> + + <tr> + <td align="right">thistle4</td> + <td align="center" style="background-color:rgb(139, 123, 139)">thistle4</td> + <td align="left">rgb(139, 123, 139)</td> + <td align="left">#8B7B8B</td> + + </tr> + + <tr> + <td align="right">fuchsia</td> + <td align="center" style="background-color:rgb(255, 0, 255)">fuchsia</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">magenta</td> + <td align="center" style="background-color:rgb(255, 0, 255)">magenta</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">magenta1</td> + <td align="center" style="background-color:rgb(255, 0, 255)">magenta1</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">plum4</td> + <td align="center" style="background-color:rgb(139, 102, 139)">plum4</td> + <td align="left">rgb(139, 102, 139)</td> + <td align="left">#8B668B</td> + + </tr> + + <tr> + <td align="right">magenta2</td> + <td align="center" style="background-color:rgb(238, 0, 238)">magenta2</td> + <td align="left">rgb(238, 0, 238)</td> + <td align="left">#EE00EE</td> + + </tr> + + <tr> + <td align="right">magenta3</td> + <td align="center" style="background-color:rgb(205, 0, 205)">magenta3</td> + <td align="left">rgb(205, 0, 205)</td> + <td align="left">#CD00CD</td> + + </tr> + + <tr> + <td align="right">DarkMagenta</td> + <td align="center" style="background-color:rgb(139, 0, 139)">DarkMagenta</td> + <td align="left">rgb(139, 0, 139)</td> + <td align="left">#8B008B</td> + + </tr> + + <tr> + <td align="right">magenta4</td> + <td align="center" style="background-color:rgb(139, 0, 139)">magenta4</td> + <td align="left">rgb(139, 0, 139)</td> + <td align="left">#8B008B</td> + + </tr> + + <tr> + <td align="right">purple</td> + <td align="center" style="background-color:rgb(128, 0, 128)">purple</td> + <td align="left">rgb(128, 0, 128)</td> + <td align="left">#800080</td> + + </tr> + + <tr> + <td align="right">MediumOrchid</td> + <td align="center" style="background-color:rgb(186, 85, 211)">MediumOrchid</td> + <td align="left">rgb(186, 85, 211)</td> + <td align="left">#BA55D3</td> + + </tr> + + <tr> + <td align="right">MediumOrchid1</td> + <td align="center" style="background-color:rgb(224, 102, 255)">MediumOrchid1</td> + <td align="left">rgb(224, 102, 255)</td> + <td align="left">#E066FF</td> + + </tr> + + <tr> + <td align="right">MediumOrchid2</td> + <td align="center" style="background-color:rgb(209, 95, 238)">MediumOrchid2</td> + <td align="left">rgb(209, 95, 238)</td> + <td align="left">#D15FEE</td> + + </tr> + + <tr> + <td align="right">MediumOrchid3</td> + <td align="center" style="background-color:rgb(180, 82, 205)">MediumOrchid3</td> + <td align="left">rgb(180, 82, 205)</td> + <td align="left">#B452CD</td> + + </tr> + + <tr> + <td align="right">MediumOrchid4</td> + <td align="center" style="background-color:rgb(122, 55, 139)">MediumOrchid4</td> + <td align="left">rgb(122, 55, 139)</td> + <td align="left">#7A378B</td> + + </tr> + + <tr> + <td align="right">DarkViolet</td> + <td align="center" style="background-color:rgb(148, 0, 211)">DarkViolet</td> + <td align="left">rgb(148, 0, 211)</td> + <td align="left">#9400D3</td> + + </tr> + + <tr> + <td align="right">DarkOrchid</td> + <td align="center" style="background-color:rgb(153, 50, 204)">DarkOrchid</td> + <td align="left">rgb(153, 50, 204)</td> + <td align="left">#9932CC</td> + + </tr> + + <tr> + <td align="right">DarkOrchid1</td> + <td align="center" style="background-color:rgb(191, 62, 255)">DarkOrchid1</td> + <td align="left">rgb(191, 62, 255)</td> + <td align="left">#BF3EFF</td> + + </tr> + + <tr> + <td align="right">DarkOrchid3</td> + <td align="center" style="background-color:rgb(154, 50, 205)">DarkOrchid3</td> + <td align="left">rgb(154, 50, 205)</td> + <td align="left">#9A32CD</td> + + </tr> + + <tr> + <td align="right">DarkOrchid2</td> + <td align="center" style="background-color:rgb(178, 58, 238)">DarkOrchid2</td> + <td align="left">rgb(178, 58, 238)</td> + <td align="left">#B23AEE</td> + + </tr> + + <tr> + <td align="right">DarkOrchid4</td> + <td align="center" style="background-color:rgb(104, 34, 139)">DarkOrchid4</td> + <td align="left">rgb(104, 34, 139)</td> + <td align="left">#68228B</td> + + </tr> + + <tr> + <td align="right">purple</td> + <td align="center" style="background-color:rgb(160, 32, 240)">purple</td> + <td align="left">rgb(160, 32, 240)</td> + <td align="left">#A020F0</td> + + </tr> + + <tr> + <td align="right">indigo</td> + <td align="center" style="background-color:rgb( 75, 0, 130)">indigo</td> + <td align="left">rgb( 75, 0, 130)</td> + <td align="left">#4B0082</td> + + </tr> + + <tr> + <td align="right">BlueViolet</td> + <td align="center" style="background-color:rgb(138, 43, 226)">BlueViolet</td> + <td align="left">rgb(138, 43, 226)</td> + <td align="left">#8A2BE2</td> + + </tr> + + <tr> + <td align="right">purple2</td> + <td align="center" style="background-color:rgb(145, 44, 238)">purple2</td> + <td align="left">rgb(145, 44, 238)</td> + <td align="left">#912CEE</td> + + </tr> + + <tr> + <td align="right">purple3</td> + <td align="center" style="background-color:rgb(125, 38, 205)">purple3</td> + <td align="left">rgb(125, 38, 205)</td> + <td align="left">#7D26CD</td> + + </tr> + + <tr> + <td align="right">purple4</td> + <td align="center" style="background-color:rgb( 85, 26, 139)">purple4</td> + <td align="left">rgb( 85, 26, 139)</td> + <td align="left">#551A8B</td> + + </tr> + + <tr> + <td align="right">purple1</td> + <td align="center" style="background-color:rgb(155, 48, 255)">purple1</td> + <td align="left">rgb(155, 48, 255)</td> + <td align="left">#9B30FF</td> + + </tr> + + <tr> + <td align="right">MediumPurple</td> + <td align="center" style="background-color:rgb(147, 112, 219)">MediumPurple</td> + <td align="left">rgb(147, 112, 219)</td> + <td align="left">#9370DB</td> + + </tr> + + <tr> + <td align="right">MediumPurple1</td> + <td align="center" style="background-color:rgb(171, 130, 255)">MediumPurple1</td> + <td align="left">rgb(171, 130, 255)</td> + <td align="left">#AB82FF</td> + + </tr> + + <tr> + <td align="right">MediumPurple2</td> + <td align="center" style="background-color:rgb(159, 121, 238)">MediumPurple2</td> + <td align="left">rgb(159, 121, 238)</td> + <td align="left">#9F79EE</td> + + </tr> + + <tr> + <td align="right">MediumPurple3</td> + <td align="center" style="background-color:rgb(137, 104, 205)">MediumPurple3</td> + <td align="left">rgb(137, 104, 205)</td> + <td align="left">#8968CD</td> + + </tr> + + <tr> + <td align="right">MediumPurple4</td> + <td align="center" style="background-color:rgb( 93, 71, 139)">MediumPurple4</td> + <td align="left">rgb( 93, 71, 139)</td> + <td align="left">#5D478B</td> + + </tr> + + <tr> + <td align="right">DarkSlateBlue</td> + <td align="center" style="background-color:rgb( 72, 61, 139)">DarkSlateBlue</td> + <td align="left">rgb( 72, 61, 139)</td> + <td align="left">#483D8B</td> + + </tr> + + <tr> + <td align="right">LightSlateBlue</td> + <td align="center" style="background-color:rgb(132, 112, 255)">LightSlateBlue</td> + <td align="left">rgb(132, 112, 255)</td> + <td align="left">#8470FF</td> + + </tr> + + <tr> + <td align="right">MediumSlateBlue</td> + <td align="center" style="background-color:rgb(123, 104, 238)">MediumSlateBlue</td> + <td align="left">rgb(123, 104, 238)</td> + <td align="left">#7B68EE</td> + + </tr> + + <tr> + <td align="right">SlateBlue</td> + <td align="center" style="background-color:rgb(106, 90, 205)">SlateBlue</td> + <td align="left">rgb(106, 90, 205)</td> + <td align="left">#6A5ACD</td> + + </tr> + + <tr> + <td align="right">SlateBlue1</td> + <td align="center" style="background-color:rgb(131, 111, 255)">SlateBlue1</td> + <td align="left">rgb(131, 111, 255)</td> + <td align="left">#836FFF</td> + + </tr> + + <tr> + <td align="right">SlateBlue2</td> + <td align="center" style="background-color:rgb(122, 103, 238)">SlateBlue2</td> + <td align="left">rgb(122, 103, 238)</td> + <td align="left">#7A67EE</td> + + </tr> + + <tr> + <td align="right">SlateBlue3</td> + <td align="center" style="background-color:rgb(105, 89, 205)">SlateBlue3</td> + <td align="left">rgb(105, 89, 205)</td> + <td align="left">#6959CD</td> + + </tr> + + <tr> + <td align="right">SlateBlue4</td> + <td align="center" style="background-color:rgb( 71, 60, 139)">SlateBlue4</td> + <td align="left">rgb( 71, 60, 139)</td> + <td align="left">#473C8B</td> + + </tr> + + <tr> + <td align="right">GhostWhite</td> + <td align="center" style="background-color:rgb(248, 248, 255)">GhostWhite</td> + <td align="left">rgb(248, 248, 255)</td> + <td align="left">#F8F8FF</td> + + </tr> + + <tr> + <td align="right">lavender</td> + <td align="center" style="background-color:rgb(230, 230, 250)">lavender</td> + <td align="left">rgb(230, 230, 250)</td> + <td align="left">#E6E6FA</td> + + </tr> + + <tr> + <td align="right">blue</td> + <td align="center" style="background-color:rgb( 0, 0, 255)">blue</td> + <td align="left">rgb( 0, 0, 255)</td> + <td align="left">#0000FF</td> + + </tr> + + <tr> + <td align="right">blue1</td> + <td align="center" style="background-color:rgb( 0, 0, 255)">blue1</td> + <td align="left">rgb( 0, 0, 255)</td> + <td align="left">#0000FF</td> + + </tr> + + <tr> + <td align="right">blue2</td> + <td align="center" style="background-color:rgb( 0, 0, 238)">blue2</td> + <td align="left">rgb( 0, 0, 238)</td> + <td align="left">#0000EE</td> + + </tr> + + <tr> + <td align="right">blue3</td> + <td align="center" style="background-color:rgb( 0, 0, 205)">blue3</td> + <td align="left">rgb( 0, 0, 205)</td> + <td align="left">#0000CD</td> + + </tr> + + <tr> + <td align="right">MediumBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 205)">MediumBlue</td> + <td align="left">rgb( 0, 0, 205)</td> + <td align="left">#0000CD</td> + + </tr> + + <tr> + <td align="right">blue4</td> + <td align="center" style="background-color:rgb( 0, 0, 139)">blue4</td> + <td align="left">rgb( 0, 0, 139)</td> + <td align="left">#00008B</td> + + </tr> + + <tr> + <td align="right">DarkBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 139)">DarkBlue</td> + <td align="left">rgb( 0, 0, 139)</td> + <td align="left">#00008B</td> + + </tr> + + <tr> + <td align="right">MidnightBlue</td> + <td align="center" style="background-color:rgb( 25, 25, 112)">MidnightBlue</td> + <td align="left">rgb( 25, 25, 112)</td> + <td align="left">#191970</td> + + </tr> + + <tr> + <td align="right">navy</td> + <td align="center" style="background-color:rgb( 0, 0, 128)">navy</td> + <td align="left">rgb( 0, 0, 128)</td> + <td align="left">#000080</td> + + </tr> + + <tr> + <td align="right">NavyBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 128)">NavyBlue</td> + <td align="left">rgb( 0, 0, 128)</td> + <td align="left">#000080</td> + + </tr> + + <tr> + <td align="right">RoyalBlue</td> + <td align="center" style="background-color:rgb( 65, 105, 225)">RoyalBlue</td> + <td align="left">rgb( 65, 105, 225)</td> + <td align="left">#4169E1</td> + + </tr> + + <tr> + <td align="right">RoyalBlue1</td> + <td align="center" style="background-color:rgb( 72, 118, 255)">RoyalBlue1</td> + <td align="left">rgb( 72, 118, 255)</td> + <td align="left">#4876FF</td> + + </tr> + + <tr> + <td align="right">RoyalBlue2</td> + <td align="center" style="background-color:rgb( 67, 110, 238)">RoyalBlue2</td> + <td align="left">rgb( 67, 110, 238)</td> + <td align="left">#436EEE</td> + + </tr> + + <tr> + <td align="right">RoyalBlue3</td> + <td align="center" style="background-color:rgb( 58, 95, 205)">RoyalBlue3</td> + <td align="left">rgb( 58, 95, 205)</td> + <td align="left">#3A5FCD</td> + + </tr> + + <tr> + <td align="right">RoyalBlue4</td> + <td align="center" style="background-color:rgb( 39, 64, 139)">RoyalBlue4</td> + <td align="left">rgb( 39, 64, 139)</td> + <td align="left">#27408B</td> + + </tr> + + <tr> + <td align="right">CornflowerBlue</td> + <td align="center" style="background-color:rgb(100, 149, 237)">CornflowerBlue</td> + <td align="left">rgb(100, 149, 237)</td> + <td align="left">#6495ED</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue</td> + <td align="center" style="background-color:rgb(176, 196, 222)">LightSteelBlue</td> + <td align="left">rgb(176, 196, 222)</td> + <td align="left">#B0C4DE</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue1</td> + <td align="center" style="background-color:rgb(202, 225, 255)">LightSteelBlue1</td> + <td align="left">rgb(202, 225, 255)</td> + <td align="left">#CAE1FF</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue2</td> + <td align="center" style="background-color:rgb(188, 210, 238)">LightSteelBlue2</td> + <td align="left">rgb(188, 210, 238)</td> + <td align="left">#BCD2EE</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue3</td> + <td align="center" style="background-color:rgb(162, 181, 205)">LightSteelBlue3</td> + <td align="left">rgb(162, 181, 205)</td> + <td align="left">#A2B5CD</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue4</td> + <td align="center" style="background-color:rgb(110, 123, 139)">LightSteelBlue4</td> + <td align="left">rgb(110, 123, 139)</td> + <td align="left">#6E7B8B</td> + + </tr> + + <tr> + <td align="right">SlateGray4</td> + <td align="center" style="background-color:rgb(108, 123, 139)">SlateGray4</td> + <td align="left">rgb(108, 123, 139)</td> + <td align="left">#6C7B8B</td> + + </tr> + + <tr> + <td align="right">SlateGray1</td> + <td align="center" style="background-color:rgb(198, 226, 255)">SlateGray1</td> + <td align="left">rgb(198, 226, 255)</td> + <td align="left">#C6E2FF</td> + + </tr> + + <tr> + <td align="right">SlateGray2</td> + <td align="center" style="background-color:rgb(185, 211, 238)">SlateGray2</td> + <td align="left">rgb(185, 211, 238)</td> + <td align="left">#B9D3EE</td> + + </tr> + + <tr> + <td align="right">SlateGray3</td> + <td align="center" style="background-color:rgb(159, 182, 205)">SlateGray3</td> + <td align="left">rgb(159, 182, 205)</td> + <td align="left">#9FB6CD</td> + + </tr> + + <tr> + <td align="right">LightSlateGray</td> + <td align="center" style="background-color:rgb(119, 136, 153)">LightSlateGray</td> + <td align="left">rgb(119, 136, 153)</td> + <td align="left">#778899</td> + + </tr> + + <tr> + <td align="right">LightSlateGrey</td> + <td align="center" style="background-color:rgb(119, 136, 153)">LightSlateGrey</td> + <td align="left">rgb(119, 136, 153)</td> + <td align="left">#778899</td> + + </tr> + + <tr> + <td align="right">SlateGray</td> + <td align="center" style="background-color:rgb(112, 128, 144)">SlateGray</td> + <td align="left">rgb(112, 128, 144)</td> + <td align="left">#708090</td> + + </tr> + + <tr> + <td align="right">SlateGrey</td> + <td align="center" style="background-color:rgb(112, 128, 144)">SlateGrey</td> + <td align="left">rgb(112, 128, 144)</td> + <td align="left">#708090</td> + + </tr> + + <tr> + <td align="right">DodgerBlue</td> + <td align="center" style="background-color:rgb( 30, 144, 255)">DodgerBlue</td> + <td align="left">rgb( 30, 144, 255)</td> + <td align="left">#1E90FF</td> + + </tr> + + <tr> + <td align="right">DodgerBlue1</td> + <td align="center" style="background-color:rgb( 30, 144, 255)">DodgerBlue1</td> + <td align="left">rgb( 30, 144, 255)</td> + <td align="left">#1E90FF</td> + + </tr> + + <tr> + <td align="right">DodgerBlue2</td> + <td align="center" style="background-color:rgb( 28, 134, 238)">DodgerBlue2</td> + <td align="left">rgb( 28, 134, 238)</td> + <td align="left">#1C86EE</td> + + </tr> + + <tr> + <td align="right">DodgerBlue4</td> + <td align="center" style="background-color:rgb( 16, 78, 139)">DodgerBlue4</td> + <td align="left">rgb( 16, 78, 139)</td> + <td align="left">#104E8B</td> + + </tr> + + <tr> + <td align="right">DodgerBlue3</td> + <td align="center" style="background-color:rgb( 24, 116, 205)">DodgerBlue3</td> + <td align="left">rgb( 24, 116, 205)</td> + <td align="left">#1874CD</td> + + </tr> + + <tr> + <td align="right">AliceBlue</td> + <td align="center" style="background-color:rgb(240, 248, 255)">AliceBlue</td> + <td align="left">rgb(240, 248, 255)</td> + <td align="left">#F0F8FF</td> + + </tr> + + <tr> + <td align="right">SteelBlue4</td> + <td align="center" style="background-color:rgb( 54, 100, 139)">SteelBlue4</td> + <td align="left">rgb( 54, 100, 139)</td> + <td align="left">#36648B</td> + + </tr> + + <tr> + <td align="right">SteelBlue</td> + <td align="center" style="background-color:rgb( 70, 130, 180)">SteelBlue</td> + <td align="left">rgb( 70, 130, 180)</td> + <td align="left">#4682B4</td> + + </tr> + + <tr> + <td align="right">SteelBlue1</td> + <td align="center" style="background-color:rgb( 99, 184, 255)">SteelBlue1</td> + <td align="left">rgb( 99, 184, 255)</td> + <td align="left">#63B8FF</td> + + </tr> + + <tr> + <td align="right">SteelBlue2</td> + <td align="center" style="background-color:rgb( 92, 172, 238)">SteelBlue2</td> + <td align="left">rgb( 92, 172, 238)</td> + <td align="left">#5CACEE</td> + + </tr> + + <tr> + <td align="right">SteelBlue3</td> + <td align="center" style="background-color:rgb( 79, 148, 205)">SteelBlue3</td> + <td align="left">rgb( 79, 148, 205)</td> + <td align="left">#4F94CD</td> + + </tr> + + <tr> + <td align="right">SkyBlue4</td> + <td align="center" style="background-color:rgb( 74, 112, 139)">SkyBlue4</td> + <td align="left">rgb( 74, 112, 139)</td> + <td align="left">#4A708B</td> + + </tr> + + <tr> + <td align="right">SkyBlue1</td> + <td align="center" style="background-color:rgb(135, 206, 255)">SkyBlue1</td> + <td align="left">rgb(135, 206, 255)</td> + <td align="left">#87CEFF</td> + + </tr> + + <tr> + <td align="right">SkyBlue2</td> + <td align="center" style="background-color:rgb(126, 192, 238)">SkyBlue2</td> + <td align="left">rgb(126, 192, 238)</td> + <td align="left">#7EC0EE</td> + + </tr> + + <tr> + <td align="right">SkyBlue3</td> + <td align="center" style="background-color:rgb(108, 166, 205)">SkyBlue3</td> + <td align="left">rgb(108, 166, 205)</td> + <td align="left">#6CA6CD</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue</td> + <td align="center" style="background-color:rgb(135, 206, 250)">LightSkyBlue</td> + <td align="left">rgb(135, 206, 250)</td> + <td align="left">#87CEFA</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue4</td> + <td align="center" style="background-color:rgb( 96, 123, 139)">LightSkyBlue4</td> + <td align="left">rgb( 96, 123, 139)</td> + <td align="left">#607B8B</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue1</td> + <td align="center" style="background-color:rgb(176, 226, 255)">LightSkyBlue1</td> + <td align="left">rgb(176, 226, 255)</td> + <td align="left">#B0E2FF</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue2</td> + <td align="center" style="background-color:rgb(164, 211, 238)">LightSkyBlue2</td> + <td align="left">rgb(164, 211, 238)</td> + <td align="left">#A4D3EE</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue3</td> + <td align="center" style="background-color:rgb(141, 182, 205)">LightSkyBlue3</td> + <td align="left">rgb(141, 182, 205)</td> + <td align="left">#8DB6CD</td> + + </tr> + + <tr> + <td align="right">SkyBlue</td> + <td align="center" style="background-color:rgb(135, 206, 235)">SkyBlue</td> + <td align="left">rgb(135, 206, 235)</td> + <td align="left">#87CEEB</td> + + </tr> + + <tr> + <td align="right">LightBlue3</td> + <td align="center" style="background-color:rgb(154, 192, 205)">LightBlue3</td> + <td align="left">rgb(154, 192, 205)</td> + <td align="left">#9AC0CD</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue</td> + <td align="center" style="background-color:rgb( 0, 191, 255)">DeepSkyBlue</td> + <td align="left">rgb( 0, 191, 255)</td> + <td align="left">#00BFFF</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue1</td> + <td align="center" style="background-color:rgb( 0, 191, 255)">DeepSkyBlue1</td> + <td align="left">rgb( 0, 191, 255)</td> + <td align="left">#00BFFF</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue2</td> + <td align="center" style="background-color:rgb( 0, 178, 238)">DeepSkyBlue2</td> + <td align="left">rgb( 0, 178, 238)</td> + <td align="left">#00B2EE</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue4</td> + <td align="center" style="background-color:rgb( 0, 104, 139)">DeepSkyBlue4</td> + <td align="left">rgb( 0, 104, 139)</td> + <td align="left">#00688B</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue3</td> + <td align="center" style="background-color:rgb( 0, 154, 205)">DeepSkyBlue3</td> + <td align="left">rgb( 0, 154, 205)</td> + <td align="left">#009ACD</td> + + </tr> + + <tr> + <td align="right">LightBlue1</td> + <td align="center" style="background-color:rgb(191, 239, 255)">LightBlue1</td> + <td align="left">rgb(191, 239, 255)</td> + <td align="left">#BFEFFF</td> + + </tr> + + <tr> + <td align="right">LightBlue2</td> + <td align="center" style="background-color:rgb(178, 223, 238)">LightBlue2</td> + <td align="left">rgb(178, 223, 238)</td> + <td align="left">#B2DFEE</td> + + </tr> + + <tr> + <td align="right">LightBlue</td> + <td align="center" style="background-color:rgb(173, 216, 230)">LightBlue</td> + <td align="left">rgb(173, 216, 230)</td> + <td align="left">#ADD8E6</td> + + </tr> + + <tr> + <td align="right">LightBlue4</td> + <td align="center" style="background-color:rgb(104, 131, 139)">LightBlue4</td> + <td align="left">rgb(104, 131, 139)</td> + <td align="left">#68838B</td> + + </tr> + + <tr> + <td align="right">PowderBlue</td> + <td align="center" style="background-color:rgb(176, 224, 230)">PowderBlue</td> + <td align="left">rgb(176, 224, 230)</td> + <td align="left">#B0E0E6</td> + + </tr> + + <tr> + <td align="right">CadetBlue1</td> + <td align="center" style="background-color:rgb(152, 245, 255)">CadetBlue1</td> + <td align="left">rgb(152, 245, 255)</td> + <td align="left">#98F5FF</td> + + </tr> + + <tr> + <td align="right">CadetBlue2</td> + <td align="center" style="background-color:rgb(142, 229, 238)">CadetBlue2</td> + <td align="left">rgb(142, 229, 238)</td> + <td align="left">#8EE5EE</td> + + </tr> + + <tr> + <td align="right">CadetBlue3</td> + <td align="center" style="background-color:rgb(122, 197, 205)">CadetBlue3</td> + <td align="left">rgb(122, 197, 205)</td> + <td align="left">#7AC5CD</td> + + </tr> + + <tr> + <td align="right">CadetBlue4</td> + <td align="center" style="background-color:rgb( 83, 134, 139)">CadetBlue4</td> + <td align="left">rgb( 83, 134, 139)</td> + <td align="left">#53868B</td> + + </tr> + + <tr> + <td align="right">turquoise1</td> + <td align="center" style="background-color:rgb( 0, 245, 255)">turquoise1</td> + <td align="left">rgb( 0, 245, 255)</td> + <td align="left">#00F5FF</td> + + </tr> + + <tr> + <td align="right">turquoise2</td> + <td align="center" style="background-color:rgb( 0, 229, 238)">turquoise2</td> + <td align="left">rgb( 0, 229, 238)</td> + <td align="left">#00E5EE</td> + + </tr> + + <tr> + <td align="right">turquoise3</td> + <td align="center" style="background-color:rgb( 0, 197, 205)">turquoise3</td> + <td align="left">rgb( 0, 197, 205)</td> + <td align="left">#00C5CD</td> + + </tr> + + <tr> + <td align="right">turquoise4</td> + <td align="center" style="background-color:rgb( 0, 134, 139)">turquoise4</td> + <td align="left">rgb( 0, 134, 139)</td> + <td align="left">#00868B</td> + + </tr> + + <tr> + <td align="right">cadet blue</td> + <td align="center" style="background-color:rgb( 95, 158, 160)">cadet blue</td> + <td align="left">rgb( 95, 158, 160)</td> + <td align="left">#5F9EA0</td> + + </tr> + + <tr> + <td align="right">CadetBlue</td> + <td align="center" style="background-color:rgb( 95, 158, 160)">CadetBlue</td> + <td align="left">rgb( 95, 158, 160)</td> + <td align="left">#5F9EA0</td> + + </tr> + + <tr> + <td align="right">DarkTurquoise</td> + <td align="center" style="background-color:rgb( 0, 206, 209)">DarkTurquoise</td> + <td align="left">rgb( 0, 206, 209)</td> + <td align="left">#00CED1</td> + + </tr> + + <tr> + <td align="right">azure</td> + <td align="center" style="background-color:rgb(240, 255, 255)">azure</td> + <td align="left">rgb(240, 255, 255)</td> + <td align="left">#F0FFFF</td> + + </tr> + + <tr> + <td align="right">azure1</td> + <td align="center" style="background-color:rgb(240, 255, 255)">azure1</td> + <td align="left">rgb(240, 255, 255)</td> + <td align="left">#F0FFFF</td> + + </tr> + + <tr> + <td align="right">LightCyan</td> + <td align="center" style="background-color:rgb(224, 255, 255)">LightCyan</td> + <td align="left">rgb(224, 255, 255)</td> + <td align="left">#E0FFFF</td> + + </tr> + + <tr> + <td align="right">LightCyan1</td> + <td align="center" style="background-color:rgb(224, 255, 255)">LightCyan1</td> + <td align="left">rgb(224, 255, 255)</td> + <td align="left">#E0FFFF</td> + + </tr> + + <tr> + <td align="right">azure2</td> + <td align="center" style="background-color:rgb(224, 238, 238)">azure2</td> + <td align="left">rgb(224, 238, 238)</td> + <td align="left">#E0EEEE</td> + + </tr> + + <tr> + <td align="right">LightCyan2</td> + <td align="center" style="background-color:rgb(209, 238, 238)">LightCyan2</td> + <td align="left">rgb(209, 238, 238)</td> + <td align="left">#D1EEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise1</td> + <td align="center" style="background-color:rgb(187, 255, 255)">PaleTurquoise1</td> + <td align="left">rgb(187, 255, 255)</td> + <td align="left">#BBFFFF</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise</td> + <td align="center" style="background-color:rgb(175, 238, 238)">PaleTurquoise</td> + <td align="left">rgb(175, 238, 238)</td> + <td align="left">#AFEEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise2</td> + <td align="center" style="background-color:rgb(174, 238, 238)">PaleTurquoise2</td> + <td align="left">rgb(174, 238, 238)</td> + <td align="left">#AEEEEE</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray1</td> + <td align="center" style="background-color:rgb(151, 255, 255)">DarkSlateGray1</td> + <td align="left">rgb(151, 255, 255)</td> + <td align="left">#97FFFF</td> + + </tr> + + <tr> + <td align="right">azure3</td> + <td align="center" style="background-color:rgb(193, 205, 205)">azure3</td> + <td align="left">rgb(193, 205, 205)</td> + <td align="left">#C1CDCD</td> + + </tr> + + <tr> + <td align="right">LightCyan3</td> + <td align="center" style="background-color:rgb(180, 205, 205)">LightCyan3</td> + <td align="left">rgb(180, 205, 205)</td> + <td align="left">#B4CDCD</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray2</td> + <td align="center" style="background-color:rgb(141, 238, 238)">DarkSlateGray2</td> + <td align="left">rgb(141, 238, 238)</td> + <td align="left">#8DEEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise3</td> + <td align="center" style="background-color:rgb(150, 205, 205)">PaleTurquoise3</td> + <td align="left">rgb(150, 205, 205)</td> + <td align="left">#96CDCD</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray3</td> + <td align="center" style="background-color:rgb(121, 205, 205)">DarkSlateGray3</td> + <td align="left">rgb(121, 205, 205)</td> + <td align="left">#79CDCD</td> + + </tr> + + <tr> + <td align="right">azure4</td> + <td align="center" style="background-color:rgb(131, 139, 139)">azure4</td> + <td align="left">rgb(131, 139, 139)</td> + <td align="left">#838B8B</td> + + </tr> + + <tr> + <td align="right">LightCyan4</td> + <td align="center" style="background-color:rgb(122, 139, 139)">LightCyan4</td> + <td align="left">rgb(122, 139, 139)</td> + <td align="left">#7A8B8B</td> + + </tr> + + <tr> + <td align="right">aqua</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">aqua</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">cyan</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">cyan</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">cyan1</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">cyan1</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise4</td> + <td align="center" style="background-color:rgb(102, 139, 139)">PaleTurquoise4</td> + <td align="left">rgb(102, 139, 139)</td> + <td align="left">#668B8B</td> + + </tr> + + <tr> + <td align="right">cyan2</td> + <td align="center" style="background-color:rgb( 0, 238, 238)">cyan2</td> + <td align="left">rgb( 0, 238, 238)</td> + <td align="left">#00EEEE</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray4</td> + <td align="center" style="background-color:rgb( 82, 139, 139)">DarkSlateGray4</td> + <td align="left">rgb( 82, 139, 139)</td> + <td align="left">#528B8B</td> + + </tr> + + <tr> + <td align="right">cyan3</td> + <td align="center" style="background-color:rgb( 0, 205, 205)">cyan3</td> + <td align="left">rgb( 0, 205, 205)</td> + <td align="left">#00CDCD</td> + + </tr> + + <tr> + <td align="right">cyan4</td> + <td align="center" style="background-color:rgb( 0, 139, 139)">cyan4</td> + <td align="left">rgb( 0, 139, 139)</td> + <td align="left">#008B8B</td> + + </tr> + + <tr> + <td align="right">DarkCyan</td> + <td align="center" style="background-color:rgb( 0, 139, 139)">DarkCyan</td> + <td align="left">rgb( 0, 139, 139)</td> + <td align="left">#008B8B</td> + + </tr> + + <tr> + <td align="right">teal</td> + <td align="center" style="background-color:rgb( 0, 128, 128)">teal</td> + <td align="left">rgb( 0, 128, 128)</td> + <td align="left">#008080</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray</td> + <td align="center" style="background-color:rgb( 47, 79, 79)">DarkSlateGray</td> + <td align="left">rgb( 47, 79, 79)</td> + <td align="left">#2F4F4F</td> + + </tr> + + <tr> + <td align="right">DarkSlateGrey</td> + <td align="center" style="background-color:rgb( 47, 79, 79)">DarkSlateGrey</td> + <td align="left">rgb( 47, 79, 79)</td> + <td align="left">#2F4F4F</td> + + </tr> + + <tr> + <td align="right">MediumTurquoise</td> + <td align="center" style="background-color:rgb( 72, 209, 204)">MediumTurquoise</td> + <td align="left">rgb( 72, 209, 204)</td> + <td align="left">#48D1CC</td> + + </tr> + + <tr> + <td align="right">LightSeaGreen</td> + <td align="center" style="background-color:rgb( 32, 178, 170)">LightSeaGreen</td> + <td align="left">rgb( 32, 178, 170)</td> + <td align="left">#20B2AA</td> + + </tr> + + <tr> + <td align="right">turquoise</td> + <td align="center" style="background-color:rgb( 64, 224, 208)">turquoise</td> + <td align="left">rgb( 64, 224, 208)</td> + <td align="left">#40E0D0</td> + + </tr> + + <tr> + <td align="right">aquamarine4</td> + <td align="center" style="background-color:rgb( 69, 139, 116)">aquamarine4</td> + <td align="left">rgb( 69, 139, 116)</td> + <td align="left">#458B74</td> + + </tr> + + <tr> + <td align="right">aquamarine</td> + <td align="center" style="background-color:rgb(127, 255, 212)">aquamarine</td> + <td align="left">rgb(127, 255, 212)</td> + <td align="left">#7FFFD4</td> + + </tr> + + <tr> + <td align="right">aquamarine1</td> + <td align="center" style="background-color:rgb(127, 255, 212)">aquamarine1</td> + <td align="left">rgb(127, 255, 212)</td> + <td align="left">#7FFFD4</td> + + </tr> + + <tr> + <td align="right">aquamarine2</td> + <td align="center" style="background-color:rgb(118, 238, 198)">aquamarine2</td> + <td align="left">rgb(118, 238, 198)</td> + <td align="left">#76EEC6</td> + + </tr> + + <tr> + <td align="right">aquamarine3</td> + <td align="center" style="background-color:rgb(102, 205, 170)">aquamarine3</td> + <td align="left">rgb(102, 205, 170)</td> + <td align="left">#66CDAA</td> + + </tr> + + <tr> + <td align="right">MediumAquamarine</td> + <td align="center" style="background-color:rgb(102, 205, 170)">MediumAquamarine</td> + <td align="left">rgb(102, 205, 170)</td> + <td align="left">#66CDAA</td> + + </tr> + + <tr> + <td align="right">MediumSpringGreen</td> + <td align="center" style="background-color:rgb( 0, 250, 154)">MediumSpringGreen</td> + <td align="left">rgb( 0, 250, 154)</td> + <td align="left">#00FA9A</td> + + </tr> + + <tr> + <td align="right">MintCream</td> + <td align="center" style="background-color:rgb(245, 255, 250)">MintCream</td> + <td align="left">rgb(245, 255, 250)</td> + <td align="left">#F5FFFA</td> + + </tr> + + <tr> + <td align="right">SpringGreen</td> + <td align="center" style="background-color:rgb( 0, 255, 127)">SpringGreen</td> + <td align="left">rgb( 0, 255, 127)</td> + <td align="left">#00FF7F</td> + + </tr> + + <tr> + <td align="right">SpringGreen1</td> + <td align="center" style="background-color:rgb( 0, 255, 127)">SpringGreen1</td> + <td align="left">rgb( 0, 255, 127)</td> + <td align="left">#00FF7F</td> + + </tr> + + <tr> + <td align="right">SpringGreen2</td> + <td align="center" style="background-color:rgb( 0, 238, 118)">SpringGreen2</td> + <td align="left">rgb( 0, 238, 118)</td> + <td align="left">#00EE76</td> + + </tr> + + <tr> + <td align="right">SpringGreen3</td> + <td align="center" style="background-color:rgb( 0, 205, 102)">SpringGreen3</td> + <td align="left">rgb( 0, 205, 102)</td> + <td align="left">#00CD66</td> + + </tr> + + <tr> + <td align="right">SpringGreen4</td> + <td align="center" style="background-color:rgb( 0, 139, 69)">SpringGreen4</td> + <td align="left">rgb( 0, 139, 69)</td> + <td align="left">#008B45</td> + + </tr> + + <tr> + <td align="right">MediumSeaGreen</td> + <td align="center" style="background-color:rgb( 60, 179, 113)">MediumSeaGreen</td> + <td align="left">rgb( 60, 179, 113)</td> + <td align="left">#3CB371</td> + + </tr> + + <tr> + <td align="right">SeaGreen</td> + <td align="center" style="background-color:rgb( 46, 139, 87)">SeaGreen</td> + <td align="left">rgb( 46, 139, 87)</td> + <td align="left">#2E8B57</td> + + </tr> + + <tr> + <td align="right">SeaGreen3</td> + <td align="center" style="background-color:rgb( 67, 205, 128)">SeaGreen3</td> + <td align="left">rgb( 67, 205, 128)</td> + <td align="left">#43CD80</td> + + </tr> + + <tr> + <td align="right">SeaGreen1</td> + <td align="center" style="background-color:rgb( 84, 255, 159)">SeaGreen1</td> + <td align="left">rgb( 84, 255, 159)</td> + <td align="left">#54FF9F</td> + + </tr> + + <tr> + <td align="right">SeaGreen4</td> + <td align="center" style="background-color:rgb( 46, 139, 87)">SeaGreen4</td> + <td align="left">rgb( 46, 139, 87)</td> + <td align="left">#2E8B57</td> + + </tr> + + <tr> + <td align="right">SeaGreen2</td> + <td align="center" style="background-color:rgb( 78, 238, 148)">SeaGreen2</td> + <td align="left">rgb( 78, 238, 148)</td> + <td align="left">#4EEE94</td> + + </tr> + + <tr> + <td align="right">MediumForestGreen</td> + <td align="center" style="background-color:rgb( 50, 129, 75)">MediumForestGreen</td> + <td align="left">rgb( 50, 129, 75)</td> + <td align="left">#32814B</td> + + </tr> + + <tr> + <td align="right">honeydew</td> + <td align="center" style="background-color:rgb(240, 255, 240)">honeydew</td> + <td align="left">rgb(240, 255, 240)</td> + <td align="left">#F0FFF0</td> + + </tr> + + <tr> + <td align="right">honeydew1</td> + <td align="center" style="background-color:rgb(240, 255, 240)">honeydew1</td> + <td align="left">rgb(240, 255, 240)</td> + <td align="left">#F0FFF0</td> + + </tr> + + <tr> + <td align="right">honeydew2</td> + <td align="center" style="background-color:rgb(224, 238, 224)">honeydew2</td> + <td align="left">rgb(224, 238, 224)</td> + <td align="left">#E0EEE0</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen1</td> + <td align="center" style="background-color:rgb(193, 255, 193)">DarkSeaGreen1</td> + <td align="left">rgb(193, 255, 193)</td> + <td align="left">#C1FFC1</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen2</td> + <td align="center" style="background-color:rgb(180, 238, 180)">DarkSeaGreen2</td> + <td align="left">rgb(180, 238, 180)</td> + <td align="left">#B4EEB4</td> + + </tr> + + <tr> + <td align="right">PaleGreen1</td> + <td align="center" style="background-color:rgb(154, 255, 154)">PaleGreen1</td> + <td align="left">rgb(154, 255, 154)</td> + <td align="left">#9AFF9A</td> + + </tr> + + <tr> + <td align="right">PaleGreen</td> + <td align="center" style="background-color:rgb(152, 251, 152)">PaleGreen</td> + <td align="left">rgb(152, 251, 152)</td> + <td align="left">#98FB98</td> + + </tr> + + <tr> + <td align="right">honeydew3</td> + <td align="center" style="background-color:rgb(193, 205, 193)">honeydew3</td> + <td align="left">rgb(193, 205, 193)</td> + <td align="left">#C1CDC1</td> + + </tr> + + <tr> + <td align="right">LightGreen</td> + <td align="center" style="background-color:rgb(144, 238, 144)">LightGreen</td> + <td align="left">rgb(144, 238, 144)</td> + <td align="left">#90EE90</td> + + </tr> + + <tr> + <td align="right">PaleGreen2</td> + <td align="center" style="background-color:rgb(144, 238, 144)">PaleGreen2</td> + <td align="left">rgb(144, 238, 144)</td> + <td align="left">#90EE90</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen3</td> + <td align="center" style="background-color:rgb(155, 205, 155)">DarkSeaGreen3</td> + <td align="left">rgb(155, 205, 155)</td> + <td align="left">#9BCD9B</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen</td> + <td align="center" style="background-color:rgb(143, 188, 143)">DarkSeaGreen</td> + <td align="left">rgb(143, 188, 143)</td> + <td align="left">#8FBC8F</td> + + </tr> + + <tr> + <td align="right">PaleGreen3</td> + <td align="center" style="background-color:rgb(124, 205, 124)">PaleGreen3</td> + <td align="left">rgb(124, 205, 124)</td> + <td align="left">#7CCD7C</td> + + </tr> + + <tr> + <td align="right">honeydew4</td> + <td align="center" style="background-color:rgb(131, 139, 131)">honeydew4</td> + <td align="left">rgb(131, 139, 131)</td> + <td align="left">#838B83</td> + + </tr> + + <tr> + <td align="right">green1</td> + <td align="center" style="background-color:rgb( 0, 255, 0)">green1</td> + <td align="left">rgb( 0, 255, 0)</td> + <td align="left">#00FF00</td> + + </tr> + + <tr> + <td align="right">lime</td> + <td align="center" style="background-color:rgb( 0, 255, 0)">lime</td> + <td align="left">rgb( 0, 255, 0)</td> + <td align="left">#00FF00</td> + + </tr> + + <tr> + <td align="right">LimeGreen</td> + <td align="center" style="background-color:rgb( 50, 205, 50)">LimeGreen</td> + <td align="left">rgb( 50, 205, 50)</td> + <td align="left">#32CD32</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen4</td> + <td align="center" style="background-color:rgb(105, 139, 105)">DarkSeaGreen4</td> + <td align="left">rgb(105, 139, 105)</td> + <td align="left">#698B69</td> + + </tr> + + <tr> + <td align="right">green2</td> + <td align="center" style="background-color:rgb( 0, 238, 0)">green2</td> + <td align="left">rgb( 0, 238, 0)</td> + <td align="left">#00EE00</td> + + </tr> + + <tr> + <td align="right">PaleGreen4</td> + <td align="center" style="background-color:rgb( 84, 139, 84)">PaleGreen4</td> + <td align="left">rgb( 84, 139, 84)</td> + <td align="left">#548B54</td> + + </tr> + + <tr> + <td align="right">green3</td> + <td align="center" style="background-color:rgb( 0, 205, 0)">green3</td> + <td align="left">rgb( 0, 205, 0)</td> + <td align="left">#00CD00</td> + + </tr> + + <tr> + <td align="right">ForestGreen</td> + <td align="center" style="background-color:rgb( 34, 139, 34)">ForestGreen</td> + <td align="left">rgb( 34, 139, 34)</td> + <td align="left">#228B22</td> + + </tr> + + <tr> + <td align="right">green4</td> + <td align="center" style="background-color:rgb( 0, 139, 0)">green4</td> + <td align="left">rgb( 0, 139, 0)</td> + <td align="left">#008B00</td> + + </tr> + + <tr> + <td align="right">green</td> + <td align="center" style="background-color:rgb( 0, 128, 0)">green</td> + <td align="left">rgb( 0, 128, 0)</td> + <td align="left">#008000</td> + + </tr> + + <tr> + <td align="right">DarkGreen</td> + <td align="center" style="background-color:rgb( 0, 100, 0)">DarkGreen</td> + <td align="left">rgb( 0, 100, 0)</td> + <td align="left">#006400</td> + + </tr> + + <tr> + <td align="right">LawnGreen</td> + <td align="center" style="background-color:rgb(124, 252, 0)">LawnGreen</td> + <td align="left">rgb(124, 252, 0)</td> + <td align="left">#7CFC00</td> + + </tr> + + <tr> + <td align="right">chartreuse</td> + <td align="center" style="background-color:rgb(127, 255, 0)">chartreuse</td> + <td align="left">rgb(127, 255, 0)</td> + <td align="left">#7FFF00</td> + + </tr> + + <tr> + <td align="right">chartreuse1</td> + <td align="center" style="background-color:rgb(127, 255, 0)">chartreuse1</td> + <td align="left">rgb(127, 255, 0)</td> + <td align="left">#7FFF00</td> + + </tr> + + <tr> + <td align="right">chartreuse2</td> + <td align="center" style="background-color:rgb(118, 238, 0)">chartreuse2</td> + <td align="left">rgb(118, 238, 0)</td> + <td align="left">#76EE00</td> + + </tr> + + <tr> + <td align="right">chartreuse3</td> + <td align="center" style="background-color:rgb(102, 205, 0)">chartreuse3</td> + <td align="left">rgb(102, 205, 0)</td> + <td align="left">#66CD00</td> + + </tr> + + <tr> + <td align="right">chartreuse4</td> + <td align="center" style="background-color:rgb( 69, 139, 0)">chartreuse4</td> + <td align="left">rgb( 69, 139, 0)</td> + <td align="left">#458B00</td> + + </tr> + + <tr> + <td align="right">GreenYellow</td> + <td align="center" style="background-color:rgb(173, 255, 47)">GreenYellow</td> + <td align="left">rgb(173, 255, 47)</td> + <td align="left">#ADFF2F</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen3</td> + <td align="center" style="background-color:rgb(162, 205, 90)">DarkOliveGreen3</td> + <td align="left">rgb(162, 205, 90)</td> + <td align="left">#A2CD5A</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen1</td> + <td align="center" style="background-color:rgb(202, 255, 112)">DarkOliveGreen1</td> + <td align="left">rgb(202, 255, 112)</td> + <td align="left">#CAFF70</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen2</td> + <td align="center" style="background-color:rgb(188, 238, 104)">DarkOliveGreen2</td> + <td align="left">rgb(188, 238, 104)</td> + <td align="left">#BCEE68</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen4</td> + <td align="center" style="background-color:rgb(110, 139, 61)">DarkOliveGreen4</td> + <td align="left">rgb(110, 139, 61)</td> + <td align="left">#6E8B3D</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen</td> + <td align="center" style="background-color:rgb( 85, 107, 47)">DarkOliveGreen</td> + <td align="left">rgb( 85, 107, 47)</td> + <td align="left">#556B2F</td> + + </tr> + + <tr> + <td align="right">OliveDrab</td> + <td align="center" style="background-color:rgb(107, 142, 35)">OliveDrab</td> + <td align="left">rgb(107, 142, 35)</td> + <td align="left">#6B8E23</td> + + </tr> + + <tr> + <td align="right">OliveDrab1</td> + <td align="center" style="background-color:rgb(192, 255, 62)">OliveDrab1</td> + <td align="left">rgb(192, 255, 62)</td> + <td align="left">#C0FF3E</td> + + </tr> + + <tr> + <td align="right">OliveDrab2</td> + <td align="center" style="background-color:rgb(179, 238, 58)">OliveDrab2</td> + <td align="left">rgb(179, 238, 58)</td> + <td align="left">#B3EE3A</td> + + </tr> + + <tr> + <td align="right">OliveDrab3</td> + <td align="center" style="background-color:rgb(154, 205, 50)">OliveDrab3</td> + <td align="left">rgb(154, 205, 50)</td> + <td align="left">#9ACD32</td> + + </tr> + + <tr> + <td align="right">YellowGreen</td> + <td align="center" style="background-color:rgb(154, 205, 50)">YellowGreen</td> + <td align="left">rgb(154, 205, 50)</td> + <td align="left">#9ACD32</td> + + </tr> + + <tr> + <td align="right">OliveDrab4</td> + <td align="center" style="background-color:rgb(105, 139, 34)">OliveDrab4</td> + <td align="left">rgb(105, 139, 34)</td> + <td align="left">#698B22</td> + + </tr> + + <tr> + <td align="right">ivory</td> + <td align="center" style="background-color:rgb(255, 255, 240)">ivory</td> + <td align="left">rgb(255, 255, 240)</td> + <td align="left">#FFFFF0</td> + + </tr> + + <tr> + <td align="right">ivory1</td> + <td align="center" style="background-color:rgb(255, 255, 240)">ivory1</td> + <td align="left">rgb(255, 255, 240)</td> + <td align="left">#FFFFF0</td> + + </tr> + + <tr> + <td align="right">LightYellow</td> + <td align="center" style="background-color:rgb(255, 255, 224)">LightYellow</td> + <td align="left">rgb(255, 255, 224)</td> + <td align="left">#FFFFE0</td> + + </tr> + + <tr> + <td align="right">LightYellow1</td> + <td align="center" style="background-color:rgb(255, 255, 224)">LightYellow1</td> + <td align="left">rgb(255, 255, 224)</td> + <td align="left">#FFFFE0</td> + + </tr> + + <tr> + <td align="right">beige</td> + <td align="center" style="background-color:rgb(245, 245, 220)">beige</td> + <td align="left">rgb(245, 245, 220)</td> + <td align="left">#F5F5DC</td> + + </tr> + + <tr> + <td align="right">ivory2</td> + <td align="center" style="background-color:rgb(238, 238, 224)">ivory2</td> + <td align="left">rgb(238, 238, 224)</td> + <td align="left">#EEEEE0</td> + + </tr> + + <tr> + <td align="right">LightGoldenrodYellow</td> + <td align="center" style="background-color:rgb(250, 250, 210)">LightGoldenrodYellow</td> + <td align="left">rgb(250, 250, 210)</td> + <td align="left">#FAFAD2</td> + + </tr> + + <tr> + <td align="right">LightYellow2</td> + <td align="center" style="background-color:rgb(238, 238, 209)">LightYellow2</td> + <td align="left">rgb(238, 238, 209)</td> + <td align="left">#EEEED1</td> + + </tr> + + <tr> + <td align="right">ivory3</td> + <td align="center" style="background-color:rgb(205, 205, 193)">ivory3</td> + <td align="left">rgb(205, 205, 193)</td> + <td align="left">#CDCDC1</td> + + </tr> + + <tr> + <td align="right">LightYellow3</td> + <td align="center" style="background-color:rgb(205, 205, 180)">LightYellow3</td> + <td align="left">rgb(205, 205, 180)</td> + <td align="left">#CDCDB4</td> + + </tr> + + <tr> + <td align="right">ivory4</td> + <td align="center" style="background-color:rgb(139, 139, 131)">ivory4</td> + <td align="left">rgb(139, 139, 131)</td> + <td align="left">#8B8B83</td> + + </tr> + + <tr> + <td align="right">LightYellow4</td> + <td align="center" style="background-color:rgb(139, 139, 122)">LightYellow4</td> + <td align="left">rgb(139, 139, 122)</td> + <td align="left">#8B8B7A</td> + + </tr> + + <tr> + <td align="right">yellow</td> + <td align="center" style="background-color:rgb(255, 255, 0)">yellow</td> + <td align="left">rgb(255, 255, 0)</td> + <td align="left">#FFFF00</td> + + </tr> + + <tr> + <td align="right">yellow1</td> + <td align="center" style="background-color:rgb(255, 255, 0)">yellow1</td> + <td align="left">rgb(255, 255, 0)</td> + <td align="left">#FFFF00</td> + + </tr> + + <tr> + <td align="right">yellow2</td> + <td align="center" style="background-color:rgb(238, 238, 0)">yellow2</td> + <td align="left">rgb(238, 238, 0)</td> + <td align="left">#EEEE00</td> + + </tr> + + <tr> + <td align="right">yellow3</td> + <td align="center" style="background-color:rgb(205, 205, 0)">yellow3</td> + <td align="left">rgb(205, 205, 0)</td> + <td align="left">#CDCD00</td> + + </tr> + + <tr> + <td align="right">yellow4</td> + <td align="center" style="background-color:rgb(139, 139, 0)">yellow4</td> + <td align="left">rgb(139, 139, 0)</td> + <td align="left">#8B8B00</td> + + </tr> + + <tr> + <td align="right">olive</td> + <td align="center" style="background-color:rgb(128, 128, 0)">olive</td> + <td align="left">rgb(128, 128, 0)</td> + <td align="left">#808000</td> + + </tr> + + <tr> + <td align="right">DarkKhaki</td> + <td align="center" style="background-color:rgb(189, 183, 107)">DarkKhaki</td> + <td align="left">rgb(189, 183, 107)</td> + <td align="left">#BDB76B</td> + + </tr> + + <tr> + <td align="right">khaki2</td> + <td align="center" style="background-color:rgb(238, 230, 133)">khaki2</td> + <td align="left">rgb(238, 230, 133)</td> + <td align="left">#EEE685</td> + + </tr> + + <tr> + <td align="right">LemonChiffon4</td> + <td align="center" style="background-color:rgb(139, 137, 112)">LemonChiffon4</td> + <td align="left">rgb(139, 137, 112)</td> + <td align="left">#8B8970</td> + + </tr> + + <tr> + <td align="right">khaki1</td> + <td align="center" style="background-color:rgb(255, 246, 143)">khaki1</td> + <td align="left">rgb(255, 246, 143)</td> + <td align="left">#FFF68F</td> + + </tr> + + <tr> + <td align="right">khaki3</td> + <td align="center" style="background-color:rgb(205, 198, 115)">khaki3</td> + <td align="left">rgb(205, 198, 115)</td> + <td align="left">#CDC673</td> + + </tr> + + <tr> + <td align="right">khaki4</td> + <td align="center" style="background-color:rgb(139, 134, 78)">khaki4</td> + <td align="left">rgb(139, 134, 78)</td> + <td align="left">#8B864E</td> + + </tr> + + <tr> + <td align="right">PaleGoldenrod</td> + <td align="center" style="background-color:rgb(238, 232, 170)">PaleGoldenrod</td> + <td align="left">rgb(238, 232, 170)</td> + <td align="left">#EEE8AA</td> + + </tr> + + <tr> + <td align="right">LemonChiffon</td> + <td align="center" style="background-color:rgb(255, 250, 205)">LemonChiffon</td> + <td align="left">rgb(255, 250, 205)</td> + <td align="left">#FFFACD</td> + + </tr> + + <tr> + <td align="right">LemonChiffon1</td> + <td align="center" style="background-color:rgb(255, 250, 205)">LemonChiffon1</td> + <td align="left">rgb(255, 250, 205)</td> + <td align="left">#FFFACD</td> + + </tr> + + <tr> + <td align="right">khaki</td> + <td align="center" style="background-color:rgb(240, 230, 140)">khaki</td> + <td align="left">rgb(240, 230, 140)</td> + <td align="left">#F0E68C</td> + + </tr> + + <tr> + <td align="right">LemonChiffon3</td> + <td align="center" style="background-color:rgb(205, 201, 165)">LemonChiffon3</td> + <td align="left">rgb(205, 201, 165)</td> + <td align="left">#CDC9A5</td> + + </tr> + + <tr> + <td align="right">LemonChiffon2</td> + <td align="center" style="background-color:rgb(238, 233, 191)">LemonChiffon2</td> + <td align="left">rgb(238, 233, 191)</td> + <td align="left">#EEE9BF</td> + + </tr> + + <tr> + <td align="right">MediumGoldenRod</td> + <td align="center" style="background-color:rgb(209, 193, 102)">MediumGoldenRod</td> + <td align="left">rgb(209, 193, 102)</td> + <td align="left">#D1C166</td> + + </tr> + + <tr> + <td align="right">cornsilk4</td> + <td align="center" style="background-color:rgb(139, 136, 120)">cornsilk4</td> + <td align="left">rgb(139, 136, 120)</td> + <td align="left">#8B8878</td> + + </tr> + + <tr> + <td align="right">gold</td> + <td align="center" style="background-color:rgb(255, 215, 0)">gold</td> + <td align="left">rgb(255, 215, 0)</td> + <td align="left">#FFD700</td> + + </tr> + + <tr> + <td align="right">gold1</td> + <td align="center" style="background-color:rgb(255, 215, 0)">gold1</td> + <td align="left">rgb(255, 215, 0)</td> + <td align="left">#FFD700</td> + + </tr> + + <tr> + <td align="right">gold2</td> + <td align="center" style="background-color:rgb(238, 201, 0)">gold2</td> + <td align="left">rgb(238, 201, 0)</td> + <td align="left">#EEC900</td> + + </tr> + + <tr> + <td align="right">gold3</td> + <td align="center" style="background-color:rgb(205, 173, 0)">gold3</td> + <td align="left">rgb(205, 173, 0)</td> + <td align="left">#CDAD00</td> + + </tr> + + <tr> + <td align="right">gold4</td> + <td align="center" style="background-color:rgb(139, 117, 0)">gold4</td> + <td align="left">rgb(139, 117, 0)</td> + <td align="left">#8B7500</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod</td> + <td align="center" style="background-color:rgb(238, 221, 130)">LightGoldenrod</td> + <td align="left">rgb(238, 221, 130)</td> + <td align="left">#EEDD82</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod4</td> + <td align="center" style="background-color:rgb(139, 129, 76)">LightGoldenrod4</td> + <td align="left">rgb(139, 129, 76)</td> + <td align="left">#8B814C</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod1</td> + <td align="center" style="background-color:rgb(255, 236, 139)">LightGoldenrod1</td> + <td align="left">rgb(255, 236, 139)</td> + <td align="left">#FFEC8B</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod3</td> + <td align="center" style="background-color:rgb(205, 190, 112)">LightGoldenrod3</td> + <td align="left">rgb(205, 190, 112)</td> + <td align="left">#CDBE70</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod2</td> + <td align="center" style="background-color:rgb(238, 220, 130)">LightGoldenrod2</td> + <td align="left">rgb(238, 220, 130)</td> + <td align="left">#EEDC82</td> + + </tr> + + <tr> + <td align="right">cornsilk3</td> + <td align="center" style="background-color:rgb(205, 200, 177)">cornsilk3</td> + <td align="left">rgb(205, 200, 177)</td> + <td align="left">#CDC8B1</td> + + </tr> + + <tr> + <td align="right">cornsilk2</td> + <td align="center" style="background-color:rgb(238, 232, 205)">cornsilk2</td> + <td align="left">rgb(238, 232, 205)</td> + <td align="left">#EEE8CD</td> + + </tr> + + <tr> + <td align="right">cornsilk</td> + <td align="center" style="background-color:rgb(255, 248, 220)">cornsilk</td> + <td align="left">rgb(255, 248, 220)</td> + <td align="left">#FFF8DC</td> + + </tr> + + <tr> + <td align="right">cornsilk1</td> + <td align="center" style="background-color:rgb(255, 248, 220)">cornsilk1</td> + <td align="left">rgb(255, 248, 220)</td> + <td align="left">#FFF8DC</td> + + </tr> + + <tr> + <td align="right">goldenrod</td> + <td align="center" style="background-color:rgb(218, 165, 32)">goldenrod</td> + <td align="left">rgb(218, 165, 32)</td> + <td align="left">#DAA520</td> + + </tr> + + <tr> + <td align="right">goldenrod1</td> + <td align="center" style="background-color:rgb(255, 193, 37)">goldenrod1</td> + <td align="left">rgb(255, 193, 37)</td> + <td align="left">#FFC125</td> + + </tr> + + <tr> + <td align="right">goldenrod2</td> + <td align="center" style="background-color:rgb(238, 180, 34)">goldenrod2</td> + <td align="left">rgb(238, 180, 34)</td> + <td align="left">#EEB422</td> + + </tr> + + <tr> + <td align="right">goldenrod3</td> + <td align="center" style="background-color:rgb(205, 155, 29)">goldenrod3</td> + <td align="left">rgb(205, 155, 29)</td> + <td align="left">#CD9B1D</td> + + </tr> + + <tr> + <td align="right">goldenrod4</td> + <td align="center" style="background-color:rgb(139, 105, 20)">goldenrod4</td> + <td align="left">rgb(139, 105, 20)</td> + <td align="left">#8B6914</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod</td> + <td align="center" style="background-color:rgb(184, 134, 11)">DarkGoldenrod</td> + <td align="left">rgb(184, 134, 11)</td> + <td align="left">#B8860B</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod1</td> + <td align="center" style="background-color:rgb(255, 185, 15)">DarkGoldenrod1</td> + <td align="left">rgb(255, 185, 15)</td> + <td align="left">#FFB90F</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod2</td> + <td align="center" style="background-color:rgb(238, 173, 14)">DarkGoldenrod2</td> + <td align="left">rgb(238, 173, 14)</td> + <td align="left">#EEAD0E</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod3</td> + <td align="center" style="background-color:rgb(205, 149, 12)">DarkGoldenrod3</td> + <td align="left">rgb(205, 149, 12)</td> + <td align="left">#CD950C</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod4</td> + <td align="center" style="background-color:rgb(139, 101, 8)">DarkGoldenrod4</td> + <td align="left">rgb(139, 101, 8)</td> + <td align="left">#8B6508</td> + + </tr> + + <tr> + <td align="right">FloralWhite</td> + <td align="center" style="background-color:rgb(255, 250, 240)">FloralWhite</td> + <td align="left">rgb(255, 250, 240)</td> + <td align="left">#FFFAF0</td> + + </tr> + + <tr> + <td align="right">wheat2</td> + <td align="center" style="background-color:rgb(238, 216, 174)">wheat2</td> + <td align="left">rgb(238, 216, 174)</td> + <td align="left">#EED8AE</td> + + </tr> + + <tr> + <td align="right">OldLace</td> + <td align="center" style="background-color:rgb(253, 245, 230)">OldLace</td> + <td align="left">rgb(253, 245, 230)</td> + <td align="left">#FDF5E6</td> + + </tr> + + <tr> + <td align="right">wheat</td> + <td align="center" style="background-color:rgb(245, 222, 179)">wheat</td> + <td align="left">rgb(245, 222, 179)</td> + <td align="left">#F5DEB3</td> + + </tr> + + <tr> + <td align="right">wheat1</td> + <td align="center" style="background-color:rgb(255, 231, 186)">wheat1</td> + <td align="left">rgb(255, 231, 186)</td> + <td align="left">#FFE7BA</td> + + </tr> + + <tr> + <td align="right">wheat3</td> + <td align="center" style="background-color:rgb(205, 186, 150)">wheat3</td> + <td align="left">rgb(205, 186, 150)</td> + <td align="left">#CDBA96</td> + + </tr> + + <tr> + <td align="right">orange</td> + <td align="center" style="background-color:rgb(255, 165, 0)">orange</td> + <td align="left">rgb(255, 165, 0)</td> + <td align="left">#FFA500</td> + + </tr> + + <tr> + <td align="right">orange1</td> + <td align="center" style="background-color:rgb(255, 165, 0)">orange1</td> + <td align="left">rgb(255, 165, 0)</td> + <td align="left">#FFA500</td> + + </tr> + + <tr> + <td align="right">orange2</td> + <td align="center" style="background-color:rgb(238, 154, 0)">orange2</td> + <td align="left">rgb(238, 154, 0)</td> + <td align="left">#EE9A00</td> + + </tr> + + <tr> + <td align="right">orange3</td> + <td align="center" style="background-color:rgb(205, 133, 0)">orange3</td> + <td align="left">rgb(205, 133, 0)</td> + <td align="left">#CD8500</td> + + </tr> + + <tr> + <td align="right">orange4</td> + <td align="center" style="background-color:rgb(139, 90, 0)">orange4</td> + <td align="left">rgb(139, 90, 0)</td> + <td align="left">#8B5A00</td> + + </tr> + + <tr> + <td align="right">wheat4</td> + <td align="center" style="background-color:rgb(139, 126, 102)">wheat4</td> + <td align="left">rgb(139, 126, 102)</td> + <td align="left">#8B7E66</td> + + </tr> + + <tr> + <td align="right">moccasin</td> + <td align="center" style="background-color:rgb(255, 228, 181)">moccasin</td> + <td align="left">rgb(255, 228, 181)</td> + <td align="left">#FFE4B5</td> + + </tr> + + <tr> + <td align="right">PapayaWhip</td> + <td align="center" style="background-color:rgb(255, 239, 213)">PapayaWhip</td> + <td align="left">rgb(255, 239, 213)</td> + <td align="left">#FFEFD5</td> + + </tr> + + <tr> + <td align="right">NavajoWhite3</td> + <td align="center" style="background-color:rgb(205, 179, 139)">NavajoWhite3</td> + <td align="left">rgb(205, 179, 139)</td> + <td align="left">#CDB38B</td> + + </tr> + + <tr> + <td align="right">BlanchedAlmond</td> + <td align="center" style="background-color:rgb(255, 235, 205)">BlanchedAlmond</td> + <td align="left">rgb(255, 235, 205)</td> + <td align="left">#FFEBCD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite</td> + <td align="center" style="background-color:rgb(255, 222, 173)">NavajoWhite</td> + <td align="left">rgb(255, 222, 173)</td> + <td align="left">#FFDEAD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite1</td> + <td align="center" style="background-color:rgb(255, 222, 173)">NavajoWhite1</td> + <td align="left">rgb(255, 222, 173)</td> + <td align="left">#FFDEAD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite2</td> + <td align="center" style="background-color:rgb(238, 207, 161)">NavajoWhite2</td> + <td align="left">rgb(238, 207, 161)</td> + <td align="left">#EECFA1</td> + + </tr> + + <tr> + <td align="right">NavajoWhite4</td> + <td align="center" style="background-color:rgb(139, 121, 94)">NavajoWhite4</td> + <td align="left">rgb(139, 121, 94)</td> + <td align="left">#8B795E</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite4</td> + <td align="center" style="background-color:rgb(139, 131, 120)">AntiqueWhite4</td> + <td align="left">rgb(139, 131, 120)</td> + <td align="left">#8B8378</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite</td> + <td align="center" style="background-color:rgb(250, 235, 215)">AntiqueWhite</td> + <td align="left">rgb(250, 235, 215)</td> + <td align="left">#FAEBD7</td> + + </tr> + + <tr> + <td align="right">tan</td> + <td align="center" style="background-color:rgb(210, 180, 140)">tan</td> + <td align="left">rgb(210, 180, 140)</td> + <td align="left">#D2B48C</td> + + </tr> + + <tr> + <td align="right">bisque4</td> + <td align="center" style="background-color:rgb(139, 125, 107)">bisque4</td> + <td align="left">rgb(139, 125, 107)</td> + <td align="left">#8B7D6B</td> + + </tr> + + <tr> + <td align="right">burlywood</td> + <td align="center" style="background-color:rgb(222, 184, 135)">burlywood</td> + <td align="left">rgb(222, 184, 135)</td> + <td align="left">#DEB887</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite2</td> + <td align="center" style="background-color:rgb(238, 223, 204)">AntiqueWhite2</td> + <td align="left">rgb(238, 223, 204)</td> + <td align="left">#EEDFCC</td> + + </tr> + + <tr> + <td align="right">burlywood1</td> + <td align="center" style="background-color:rgb(255, 211, 155)">burlywood1</td> + <td align="left">rgb(255, 211, 155)</td> + <td align="left">#FFD39B</td> + + </tr> + + <tr> + <td align="right">burlywood3</td> + <td align="center" style="background-color:rgb(205, 170, 125)">burlywood3</td> + <td align="left">rgb(205, 170, 125)</td> + <td align="left">#CDAA7D</td> + + </tr> + + <tr> + <td align="right">burlywood2</td> + <td align="center" style="background-color:rgb(238, 197, 145)">burlywood2</td> + <td align="left">rgb(238, 197, 145)</td> + <td align="left">#EEC591</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite1</td> + <td align="center" style="background-color:rgb(255, 239, 219)">AntiqueWhite1</td> + <td align="left">rgb(255, 239, 219)</td> + <td align="left">#FFEFDB</td> + + </tr> + + <tr> + <td align="right">burlywood4</td> + <td align="center" style="background-color:rgb(139, 115, 85)">burlywood4</td> + <td align="left">rgb(139, 115, 85)</td> + <td align="left">#8B7355</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite3</td> + <td align="center" style="background-color:rgb(205, 192, 176)">AntiqueWhite3</td> + <td align="left">rgb(205, 192, 176)</td> + <td align="left">#CDC0B0</td> + + </tr> + + <tr> + <td align="right">DarkOrange</td> + <td align="center" style="background-color:rgb(255, 140, 0)">DarkOrange</td> + <td align="left">rgb(255, 140, 0)</td> + <td align="left">#FF8C00</td> + + </tr> + + <tr> + <td align="right">bisque2</td> + <td align="center" style="background-color:rgb(238, 213, 183)">bisque2</td> + <td align="left">rgb(238, 213, 183)</td> + <td align="left">#EED5B7</td> + + </tr> + + <tr> + <td align="right">bisque</td> + <td align="center" style="background-color:rgb(255, 228, 196)">bisque</td> + <td align="left">rgb(255, 228, 196)</td> + <td align="left">#FFE4C4</td> + + </tr> + + <tr> + <td align="right">bisque1</td> + <td align="center" style="background-color:rgb(255, 228, 196)">bisque1</td> + <td align="left">rgb(255, 228, 196)</td> + <td align="left">#FFE4C4</td> + + </tr> + + <tr> + <td align="right">bisque3</td> + <td align="center" style="background-color:rgb(205, 183, 158)">bisque3</td> + <td align="left">rgb(205, 183, 158)</td> + <td align="left">#CDB79E</td> + + </tr> + + <tr> + <td align="right">DarkOrange1</td> + <td align="center" style="background-color:rgb(255, 127, 0)">DarkOrange1</td> + <td align="left">rgb(255, 127, 0)</td> + <td align="left">#FF7F00</td> + + </tr> + + <tr> + <td align="right">linen</td> + <td align="center" style="background-color:rgb(250, 240, 230)">linen</td> + <td align="left">rgb(250, 240, 230)</td> + <td align="left">#FAF0E6</td> + + </tr> + + <tr> + <td align="right">DarkOrange2</td> + <td align="center" style="background-color:rgb(238, 118, 0)">DarkOrange2</td> + <td align="left">rgb(238, 118, 0)</td> + <td align="left">#EE7600</td> + + </tr> + + <tr> + <td align="right">DarkOrange3</td> + <td align="center" style="background-color:rgb(205, 102, 0)">DarkOrange3</td> + <td align="left">rgb(205, 102, 0)</td> + <td align="left">#CD6600</td> + + </tr> + + <tr> + <td align="right">DarkOrange4</td> + <td align="center" style="background-color:rgb(139, 69, 0)">DarkOrange4</td> + <td align="left">rgb(139, 69, 0)</td> + <td align="left">#8B4500</td> + + </tr> + + <tr> + <td align="right">peru</td> + <td align="center" style="background-color:rgb(205, 133, 63)">peru</td> + <td align="left">rgb(205, 133, 63)</td> + <td align="left">#CD853F</td> + + </tr> + + <tr> + <td align="right">tan1</td> + <td align="center" style="background-color:rgb(255, 165, 79)">tan1</td> + <td align="left">rgb(255, 165, 79)</td> + <td align="left">#FFA54F</td> + + </tr> + + <tr> + <td align="right">tan2</td> + <td align="center" style="background-color:rgb(238, 154, 73)">tan2</td> + <td align="left">rgb(238, 154, 73)</td> + <td align="left">#EE9A49</td> + + </tr> + + <tr> + <td align="right">tan3</td> + <td align="center" style="background-color:rgb(205, 133, 63)">tan3</td> + <td align="left">rgb(205, 133, 63)</td> + <td align="left">#CD853F</td> + + </tr> + + <tr> + <td align="right">tan4</td> + <td align="center" style="background-color:rgb(139, 90, 43)">tan4</td> + <td align="left">rgb(139, 90, 43)</td> + <td align="left">#8B5A2B</td> + + </tr> + + <tr> + <td align="right">PeachPuff</td> + <td align="center" style="background-color:rgb(255, 218, 185)">PeachPuff</td> + <td align="left">rgb(255, 218, 185)</td> + <td align="left">#FFDAB9</td> + + </tr> + + <tr> + <td align="right">PeachPuff1</td> + <td align="center" style="background-color:rgb(255, 218, 185)">PeachPuff1</td> + <td align="left">rgb(255, 218, 185)</td> + <td align="left">#FFDAB9</td> + + </tr> + + <tr> + <td align="right">PeachPuff4</td> + <td align="center" style="background-color:rgb(139, 119, 101)">PeachPuff4</td> + <td align="left">rgb(139, 119, 101)</td> + <td align="left">#8B7765</td> + + </tr> + + <tr> + <td align="right">PeachPuff2</td> + <td align="center" style="background-color:rgb(238, 203, 173)">PeachPuff2</td> + <td align="left">rgb(238, 203, 173)</td> + <td align="left">#EECBAD</td> + + </tr> + + <tr> + <td align="right">PeachPuff3</td> + <td align="center" style="background-color:rgb(205, 175, 149)">PeachPuff3</td> + <td align="left">rgb(205, 175, 149)</td> + <td align="left">#CDAF95</td> + + </tr> + + <tr> + <td align="right">SandyBrown</td> + <td align="center" style="background-color:rgb(244, 164, 96)">SandyBrown</td> + <td align="left">rgb(244, 164, 96)</td> + <td align="left">#F4A460</td> + + </tr> + + <tr> + <td align="right">seashell4</td> + <td align="center" style="background-color:rgb(139, 134, 130)">seashell4</td> + <td align="left">rgb(139, 134, 130)</td> + <td align="left">#8B8682</td> + + </tr> + + <tr> + <td align="right">seashell2</td> + <td align="center" style="background-color:rgb(238, 229, 222)">seashell2</td> + <td align="left">rgb(238, 229, 222)</td> + <td align="left">#EEE5DE</td> + + </tr> + + <tr> + <td align="right">seashell3</td> + <td align="center" style="background-color:rgb(205, 197, 191)">seashell3</td> + <td align="left">rgb(205, 197, 191)</td> + <td align="left">#CDC5BF</td> + + </tr> + + <tr> + <td align="right">chocolate</td> + <td align="center" style="background-color:rgb(210, 105, 30)">chocolate</td> + <td align="left">rgb(210, 105, 30)</td> + <td align="left">#D2691E</td> + + </tr> + + <tr> + <td align="right">chocolate1</td> + <td align="center" style="background-color:rgb(255, 127, 36)">chocolate1</td> + <td align="left">rgb(255, 127, 36)</td> + <td align="left">#FF7F24</td> + + </tr> + + <tr> + <td align="right">chocolate2</td> + <td align="center" style="background-color:rgb(238, 118, 33)">chocolate2</td> + <td align="left">rgb(238, 118, 33)</td> + <td align="left">#EE7621</td> + + </tr> + + <tr> + <td align="right">chocolate3</td> + <td align="center" style="background-color:rgb(205, 102, 29)">chocolate3</td> + <td align="left">rgb(205, 102, 29)</td> + <td align="left">#CD661D</td> + + </tr> + + <tr> + <td align="right">chocolate4</td> + <td align="center" style="background-color:rgb(139, 69, 19)">chocolate4</td> + <td align="left">rgb(139, 69, 19)</td> + <td align="left">#8B4513</td> + + </tr> + + <tr> + <td align="right">SaddleBrown</td> + <td align="center" style="background-color:rgb(139, 69, 19)">SaddleBrown</td> + <td align="left">rgb(139, 69, 19)</td> + <td align="left">#8B4513</td> + + </tr> + + <tr> + <td align="right">seashell</td> + <td align="center" style="background-color:rgb(255, 245, 238)">seashell</td> + <td align="left">rgb(255, 245, 238)</td> + <td align="left">#FFF5EE</td> + + </tr> + + <tr> + <td align="right">seashell1</td> + <td align="center" style="background-color:rgb(255, 245, 238)">seashell1</td> + <td align="left">rgb(255, 245, 238)</td> + <td align="left">#FFF5EE</td> + + </tr> + + <tr> + <td align="right">sienna4</td> + <td align="center" style="background-color:rgb(139, 71, 38)">sienna4</td> + <td align="left">rgb(139, 71, 38)</td> + <td align="left">#8B4726</td> + + </tr> + + <tr> + <td align="right">sienna</td> + <td align="center" style="background-color:rgb(160, 82, 45)">sienna</td> + <td align="left">rgb(160, 82, 45)</td> + <td align="left">#A0522D</td> + + </tr> + + <tr> + <td align="right">sienna1</td> + <td align="center" style="background-color:rgb(255, 130, 71)">sienna1</td> + <td align="left">rgb(255, 130, 71)</td> + <td align="left">#FF8247</td> + + </tr> + + <tr> + <td align="right">sienna2</td> + <td align="center" style="background-color:rgb(238, 121, 66)">sienna2</td> + <td align="left">rgb(238, 121, 66)</td> + <td align="left">#EE7942</td> + + </tr> + + <tr> + <td align="right">sienna3</td> + <td align="center" style="background-color:rgb(205, 104, 57)">sienna3</td> + <td align="left">rgb(205, 104, 57)</td> + <td align="left">#CD6839</td> + + </tr> + + <tr> + <td align="right">LightSalmon3</td> + <td align="center" style="background-color:rgb(205, 129, 98)">LightSalmon3</td> + <td align="left">rgb(205, 129, 98)</td> + <td align="left">#CD8162</td> + + </tr> + + <tr> + <td align="right">LightSalmon</td> + <td align="center" style="background-color:rgb(255, 160, 122)">LightSalmon</td> + <td align="left">rgb(255, 160, 122)</td> + <td align="left">#FFA07A</td> + + </tr> + + <tr> + <td align="right">LightSalmon1</td> + <td align="center" style="background-color:rgb(255, 160, 122)">LightSalmon1</td> + <td align="left">rgb(255, 160, 122)</td> + <td align="left">#FFA07A</td> + + </tr> + + <tr> + <td align="right">LightSalmon4</td> + <td align="center" style="background-color:rgb(139, 87, 66)">LightSalmon4</td> + <td align="left">rgb(139, 87, 66)</td> + <td align="left">#8B5742</td> + + </tr> + + <tr> + <td align="right">LightSalmon2</td> + <td align="center" style="background-color:rgb(238, 149, 114)">LightSalmon2</td> + <td align="left">rgb(238, 149, 114)</td> + <td align="left">#EE9572</td> + + </tr> + + <tr> + <td align="right">coral</td> + <td align="center" style="background-color:rgb(255, 127, 80)">coral</td> + <td align="left">rgb(255, 127, 80)</td> + <td align="left">#FF7F50</td> + + </tr> + + <tr> + <td align="right">OrangeRed</td> + <td align="center" style="background-color:rgb(255, 69, 0)">OrangeRed</td> + <td align="left">rgb(255, 69, 0)</td> + <td align="left">#FF4500</td> + + </tr> + + <tr> + <td align="right">OrangeRed1</td> + <td align="center" style="background-color:rgb(255, 69, 0)">OrangeRed1</td> + <td align="left">rgb(255, 69, 0)</td> + <td align="left">#FF4500</td> + + </tr> + + <tr> + <td align="right">OrangeRed2</td> + <td align="center" style="background-color:rgb(238, 64, 0)">OrangeRed2</td> + <td align="left">rgb(238, 64, 0)</td> + <td align="left">#EE4000</td> + + </tr> + + <tr> + <td align="right">OrangeRed3</td> + <td align="center" style="background-color:rgb(205, 55, 0)">OrangeRed3</td> + <td align="left">rgb(205, 55, 0)</td> + <td align="left">#CD3700</td> + + </tr> + + <tr> + <td align="right">OrangeRed4</td> + <td align="center" style="background-color:rgb(139, 37, 0)">OrangeRed4</td> + <td align="left">rgb(139, 37, 0)</td> + <td align="left">#8B2500</td> + + </tr> + + <tr> + <td align="right">DarkSalmon</td> + <td align="center" style="background-color:rgb(233, 150, 122)">DarkSalmon</td> + <td align="left">rgb(233, 150, 122)</td> + <td align="left">#E9967A</td> + + </tr> + + <tr> + <td align="right">salmon1</td> + <td align="center" style="background-color:rgb(255, 140, 105)">salmon1</td> + <td align="left">rgb(255, 140, 105)</td> + <td align="left">#FF8C69</td> + + </tr> + + <tr> + <td align="right">salmon2</td> + <td align="center" style="background-color:rgb(238, 130, 98)">salmon2</td> + <td align="left">rgb(238, 130, 98)</td> + <td align="left">#EE8262</td> + + </tr> + + <tr> + <td align="right">salmon3</td> + <td align="center" style="background-color:rgb(205, 112, 84)">salmon3</td> + <td align="left">rgb(205, 112, 84)</td> + <td align="left">#CD7054</td> + + </tr> + + <tr> + <td align="right">salmon4</td> + <td align="center" style="background-color:rgb(139, 76, 57)">salmon4</td> + <td align="left">rgb(139, 76, 57)</td> + <td align="left">#8B4C39</td> + + </tr> + + <tr> + <td align="right">coral1</td> + <td align="center" style="background-color:rgb(255, 114, 86)">coral1</td> + <td align="left">rgb(255, 114, 86)</td> + <td align="left">#FF7256</td> + + </tr> + + <tr> + <td align="right">coral2</td> + <td align="center" style="background-color:rgb(238, 106, 80)">coral2</td> + <td align="left">rgb(238, 106, 80)</td> + <td align="left">#EE6A50</td> + + </tr> + + <tr> + <td align="right">coral3</td> + <td align="center" style="background-color:rgb(205, 91, 69)">coral3</td> + <td align="left">rgb(205, 91, 69)</td> + <td align="left">#CD5B45</td> + + </tr> + + <tr> + <td align="right">coral4</td> + <td align="center" style="background-color:rgb(139, 62, 47)">coral4</td> + <td align="left">rgb(139, 62, 47)</td> + <td align="left">#8B3E2F</td> + + </tr> + + <tr> + <td align="right">tomato4</td> + <td align="center" style="background-color:rgb(139, 54, 38)">tomato4</td> + <td align="left">rgb(139, 54, 38)</td> + <td align="left">#8B3626</td> + + </tr> + + <tr> + <td align="right">tomato</td> + <td align="center" style="background-color:rgb(255, 99, 71)">tomato</td> + <td align="left">rgb(255, 99, 71)</td> + <td align="left">#FF6347</td> + + </tr> + + <tr> + <td align="right">tomato1</td> + <td align="center" style="background-color:rgb(255, 99, 71)">tomato1</td> + <td align="left">rgb(255, 99, 71)</td> + <td align="left">#FF6347</td> + + </tr> + + <tr> + <td align="right">tomato2</td> + <td align="center" style="background-color:rgb(238, 92, 66)">tomato2</td> + <td align="left">rgb(238, 92, 66)</td> + <td align="left">#EE5C42</td> + + </tr> + + <tr> + <td align="right">tomato3</td> + <td align="center" style="background-color:rgb(205, 79, 57)">tomato3</td> + <td align="left">rgb(205, 79, 57)</td> + <td align="left">#CD4F39</td> + + </tr> + + <tr> + <td align="right">MistyRose4</td> + <td align="center" style="background-color:rgb(139, 125, 123)">MistyRose4</td> + <td align="left">rgb(139, 125, 123)</td> + <td align="left">#8B7D7B</td> + + </tr> + + <tr> + <td align="right">MistyRose2</td> + <td align="center" style="background-color:rgb(238, 213, 210)">MistyRose2</td> + <td align="left">rgb(238, 213, 210)</td> + <td align="left">#EED5D2</td> + + </tr> + + <tr> + <td align="right">MistyRose</td> + <td align="center" style="background-color:rgb(255, 228, 225)">MistyRose</td> + <td align="left">rgb(255, 228, 225)</td> + <td align="left">#FFE4E1</td> + + </tr> + + <tr> + <td align="right">MistyRose1</td> + <td align="center" style="background-color:rgb(255, 228, 225)">MistyRose1</td> + <td align="left">rgb(255, 228, 225)</td> + <td align="left">#FFE4E1</td> + + </tr> + + <tr> + <td align="right">salmon</td> + <td align="center" style="background-color:rgb(250, 128, 114)">salmon</td> + <td align="left">rgb(250, 128, 114)</td> + <td align="left">#FA8072</td> + + </tr> + + <tr> + <td align="right">MistyRose3</td> + <td align="center" style="background-color:rgb(205, 183, 181)">MistyRose3</td> + <td align="left">rgb(205, 183, 181)</td> + <td align="left">#CDB7B5</td> + + </tr> + + <tr> + <td align="right">white</td> + <td align="center" style="background-color:rgb(255, 255, 255)">white</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">gray100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">gray100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">grey100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">grey100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">grey100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">grey100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">gray99</td> + <td align="center" style="background-color:rgb(252, 252, 252)">gray99</td> + <td align="left">rgb(252, 252, 252)</td> + <td align="left">#FCFCFC</td> + + </tr> + + <tr> + <td align="right">grey99</td> + <td align="center" style="background-color:rgb(252, 252, 252)">grey99</td> + <td align="left">rgb(252, 252, 252)</td> + <td align="left">#FCFCFC</td> + + </tr> + + <tr> + <td align="right">gray98</td> + <td align="center" style="background-color:rgb(250, 250, 250)">gray98</td> + <td align="left">rgb(250, 250, 250)</td> + <td align="left">#FAFAFA</td> + + </tr> + + <tr> + <td align="right">grey98</td> + <td align="center" style="background-color:rgb(250, 250, 250)">grey98</td> + <td align="left">rgb(250, 250, 250)</td> + <td align="left">#FAFAFA</td> + + </tr> + + <tr> + <td align="right">gray97</td> + <td align="center" style="background-color:rgb(247, 247, 247)">gray97</td> + <td align="left">rgb(247, 247, 247)</td> + <td align="left">#F7F7F7</td> + + </tr> + + <tr> + <td align="right">grey97</td> + <td align="center" style="background-color:rgb(247, 247, 247)">grey97</td> + <td align="left">rgb(247, 247, 247)</td> + <td align="left">#F7F7F7</td> + + </tr> + + <tr> + <td align="right">gray96</td> + <td align="center" style="background-color:rgb(245, 245, 245)">gray96</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">grey96</td> + <td align="center" style="background-color:rgb(245, 245, 245)">grey96</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">WhiteSmoke</td> + <td align="center" style="background-color:rgb(245, 245, 245)">WhiteSmoke</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">gray95</td> + <td align="center" style="background-color:rgb(242, 242, 242)">gray95</td> + <td align="left">rgb(242, 242, 242)</td> + <td align="left">#F2F2F2</td> + + </tr> + + <tr> + <td align="right">grey95</td> + <td align="center" style="background-color:rgb(242, 242, 242)">grey95</td> + <td align="left">rgb(242, 242, 242)</td> + <td align="left">#F2F2F2</td> + + </tr> + + <tr> + <td align="right">gray94</td> + <td align="center" style="background-color:rgb(240, 240, 240)">gray94</td> + <td align="left">rgb(240, 240, 240)</td> + <td align="left">#F0F0F0</td> + + </tr> + + <tr> + <td align="right">grey94</td> + <td align="center" style="background-color:rgb(240, 240, 240)">grey94</td> + <td align="left">rgb(240, 240, 240)</td> + <td align="left">#F0F0F0</td> + + </tr> + + <tr> + <td align="right">gray93</td> + <td align="center" style="background-color:rgb(237, 237, 237)">gray93</td> + <td align="left">rgb(237, 237, 237)</td> + <td align="left">#EDEDED</td> + + </tr> + + <tr> + <td align="right">grey93</td> + <td align="center" style="background-color:rgb(237, 237, 237)">grey93</td> + <td align="left">rgb(237, 237, 237)</td> + <td align="left">#EDEDED</td> + + </tr> + + <tr> + <td align="right">gray92</td> + <td align="center" style="background-color:rgb(235, 235, 235)">gray92</td> + <td align="left">rgb(235, 235, 235)</td> + <td align="left">#EBEBEB</td> + + </tr> + + <tr> + <td align="right">grey92</td> + <td align="center" style="background-color:rgb(235, 235, 235)">grey92</td> + <td align="left">rgb(235, 235, 235)</td> + <td align="left">#EBEBEB</td> + + </tr> + + <tr> + <td align="right">gray91</td> + <td align="center" style="background-color:rgb(232, 232, 232)">gray91</td> + <td align="left">rgb(232, 232, 232)</td> + <td align="left">#E8E8E8</td> + + </tr> + + <tr> + <td align="right">grey91</td> + <td align="center" style="background-color:rgb(232, 232, 232)">grey91</td> + <td align="left">rgb(232, 232, 232)</td> + <td align="left">#E8E8E8</td> + + </tr> + + <tr> + <td align="right">gray90</td> + <td align="center" style="background-color:rgb(229, 229, 229)">gray90</td> + <td align="left">rgb(229, 229, 229)</td> + <td align="left">#E5E5E5</td> + + </tr> + + <tr> + <td align="right">grey90</td> + <td align="center" style="background-color:rgb(229, 229, 229)">grey90</td> + <td align="left">rgb(229, 229, 229)</td> + <td align="left">#E5E5E5</td> + + </tr> + + <tr> + <td align="right">gray89</td> + <td align="center" style="background-color:rgb(227, 227, 227)">gray89</td> + <td align="left">rgb(227, 227, 227)</td> + <td align="left">#E3E3E3</td> + + </tr> + + <tr> + <td align="right">grey89</td> + <td align="center" style="background-color:rgb(227, 227, 227)">grey89</td> + <td align="left">rgb(227, 227, 227)</td> + <td align="left">#E3E3E3</td> + + </tr> + + <tr> + <td align="right">gray88</td> + <td align="center" style="background-color:rgb(224, 224, 224)">gray88</td> + <td align="left">rgb(224, 224, 224)</td> + <td align="left">#E0E0E0</td> + + </tr> + + <tr> + <td align="right">grey88</td> + <td align="center" style="background-color:rgb(224, 224, 224)">grey88</td> + <td align="left">rgb(224, 224, 224)</td> + <td align="left">#E0E0E0</td> + + </tr> + + <tr> + <td align="right">gray87</td> + <td align="center" style="background-color:rgb(222, 222, 222)">gray87</td> + <td align="left">rgb(222, 222, 222)</td> + <td align="left">#DEDEDE</td> + + </tr> + + <tr> + <td align="right">grey87</td> + <td align="center" style="background-color:rgb(222, 222, 222)">grey87</td> + <td align="left">rgb(222, 222, 222)</td> + <td align="left">#DEDEDE</td> + + </tr> + + <tr> + <td align="right">gainsboro</td> + <td align="center" style="background-color:rgb(220, 220, 220)">gainsboro</td> + <td align="left">rgb(220, 220, 220)</td> + <td align="left">#DCDCDC</td> + + </tr> + + <tr> + <td align="right">gray86</td> + <td align="center" style="background-color:rgb(219, 219, 219)">gray86</td> + <td align="left">rgb(219, 219, 219)</td> + <td align="left">#DBDBDB</td> + + </tr> + + <tr> + <td align="right">grey86</td> + <td align="center" style="background-color:rgb(219, 219, 219)">grey86</td> + <td align="left">rgb(219, 219, 219)</td> + <td align="left">#DBDBDB</td> + + </tr> + + <tr> + <td align="right">gray85</td> + <td align="center" style="background-color:rgb(217, 217, 217)">gray85</td> + <td align="left">rgb(217, 217, 217)</td> + <td align="left">#D9D9D9</td> + + </tr> + + <tr> + <td align="right">grey85</td> + <td align="center" style="background-color:rgb(217, 217, 217)">grey85</td> + <td align="left">rgb(217, 217, 217)</td> + <td align="left">#D9D9D9</td> + + </tr> + + <tr> + <td align="right">gray84</td> + <td align="center" style="background-color:rgb(214, 214, 214)">gray84</td> + <td align="left">rgb(214, 214, 214)</td> + <td align="left">#D6D6D6</td> + + </tr> + + <tr> + <td align="right">grey84</td> + <td align="center" style="background-color:rgb(214, 214, 214)">grey84</td> + <td align="left">rgb(214, 214, 214)</td> + <td align="left">#D6D6D6</td> + + </tr> + + <tr> + <td align="right">gray83</td> + <td align="center" style="background-color:rgb(212, 212, 212)">gray83</td> + <td align="left">rgb(212, 212, 212)</td> + <td align="left">#D4D4D4</td> + + </tr> + + <tr> + <td align="right">grey83</td> + <td align="center" style="background-color:rgb(212, 212, 212)">grey83</td> + <td align="left">rgb(212, 212, 212)</td> + <td align="left">#D4D4D4</td> + + </tr> + + <tr> + <td align="right">LightGray</td> + <td align="center" style="background-color:rgb(211, 211, 211)">LightGray</td> + <td align="left">rgb(211, 211, 211)</td> + <td align="left">#D3D3D3</td> + + </tr> + + <tr> + <td align="right">LightGrey</td> + <td align="center" style="background-color:rgb(211, 211, 211)">LightGrey</td> + <td align="left">rgb(211, 211, 211)</td> + <td align="left">#D3D3D3</td> + + </tr> + + <tr> + <td align="right">gray82</td> + <td align="center" style="background-color:rgb(209, 209, 209)">gray82</td> + <td align="left">rgb(209, 209, 209)</td> + <td align="left">#D1D1D1</td> + + </tr> + + <tr> + <td align="right">grey82</td> + <td align="center" style="background-color:rgb(209, 209, 209)">grey82</td> + <td align="left">rgb(209, 209, 209)</td> + <td align="left">#D1D1D1</td> + + </tr> + + <tr> + <td align="right">gray81</td> + <td align="center" style="background-color:rgb(207, 207, 207)">gray81</td> + <td align="left">rgb(207, 207, 207)</td> + <td align="left">#CFCFCF</td> + + </tr> + + <tr> + <td align="right">grey81</td> + <td align="center" style="background-color:rgb(207, 207, 207)">grey81</td> + <td align="left">rgb(207, 207, 207)</td> + <td align="left">#CFCFCF</td> + + </tr> + + <tr> + <td align="right">gray80</td> + <td align="center" style="background-color:rgb(204, 204, 204)">gray80</td> + <td align="left">rgb(204, 204, 204)</td> + <td align="left">#CCCCCC</td> + + </tr> + + <tr> + <td align="right">grey80</td> + <td align="center" style="background-color:rgb(204, 204, 204)">grey80</td> + <td align="left">rgb(204, 204, 204)</td> + <td align="left">#CCCCCC</td> + + </tr> + + <tr> + <td align="right">gray79</td> + <td align="center" style="background-color:rgb(201, 201, 201)">gray79</td> + <td align="left">rgb(201, 201, 201)</td> + <td align="left">#C9C9C9</td> + + </tr> + + <tr> + <td align="right">grey79</td> + <td align="center" style="background-color:rgb(201, 201, 201)">grey79</td> + <td align="left">rgb(201, 201, 201)</td> + <td align="left">#C9C9C9</td> + + </tr> + + <tr> + <td align="right">gray78</td> + <td align="center" style="background-color:rgb(199, 199, 199)">gray78</td> + <td align="left">rgb(199, 199, 199)</td> + <td align="left">#C7C7C7</td> + + </tr> + + <tr> + <td align="right">grey78</td> + <td align="center" style="background-color:rgb(199, 199, 199)">grey78</td> + <td align="left">rgb(199, 199, 199)</td> + <td align="left">#C7C7C7</td> + + </tr> + + <tr> + <td align="right">gray77</td> + <td align="center" style="background-color:rgb(196, 196, 196)">gray77</td> + <td align="left">rgb(196, 196, 196)</td> + <td align="left">#C4C4C4</td> + + </tr> + + <tr> + <td align="right">grey77</td> + <td align="center" style="background-color:rgb(196, 196, 196)">grey77</td> + <td align="left">rgb(196, 196, 196)</td> + <td align="left">#C4C4C4</td> + + </tr> + + <tr> + <td align="right">gray76</td> + <td align="center" style="background-color:rgb(194, 194, 194)">gray76</td> + <td align="left">rgb(194, 194, 194)</td> + <td align="left">#C2C2C2</td> + + </tr> + + <tr> + <td align="right">grey76</td> + <td align="center" style="background-color:rgb(194, 194, 194)">grey76</td> + <td align="left">rgb(194, 194, 194)</td> + <td align="left">#C2C2C2</td> + + </tr> + + <tr> + <td align="right">silver</td> + <td align="center" style="background-color:rgb(192, 192, 192)">silver</td> + <td align="left">rgb(192, 192, 192)</td> + <td align="left">#C0C0C0</td> + + </tr> + + <tr> + <td align="right">gray75</td> + <td align="center" style="background-color:rgb(191, 191, 191)">gray75</td> + <td align="left">rgb(191, 191, 191)</td> + <td align="left">#BFBFBF</td> + + </tr> + + <tr> + <td align="right">grey75</td> + <td align="center" style="background-color:rgb(191, 191, 191)">grey75</td> + <td align="left">rgb(191, 191, 191)</td> + <td align="left">#BFBFBF</td> + + </tr> + + <tr> + <td align="right">gray74</td> + <td align="center" style="background-color:rgb(189, 189, 189)">gray74</td> + <td align="left">rgb(189, 189, 189)</td> + <td align="left">#BDBDBD</td> + + </tr> + + <tr> + <td align="right">grey74</td> + <td align="center" style="background-color:rgb(189, 189, 189)">grey74</td> + <td align="left">rgb(189, 189, 189)</td> + <td align="left">#BDBDBD</td> + + </tr> + + <tr> + <td align="right">gray73</td> + <td align="center" style="background-color:rgb(186, 186, 186)">gray73</td> + <td align="left">rgb(186, 186, 186)</td> + <td align="left">#BABABA</td> + + </tr> + + <tr> + <td align="right">grey73</td> + <td align="center" style="background-color:rgb(186, 186, 186)">grey73</td> + <td align="left">rgb(186, 186, 186)</td> + <td align="left">#BABABA</td> + + </tr> + + <tr> + <td align="right">gray72</td> + <td align="center" style="background-color:rgb(184, 184, 184)">gray72</td> + <td align="left">rgb(184, 184, 184)</td> + <td align="left">#B8B8B8</td> + + </tr> + + <tr> + <td align="right">grey72</td> + <td align="center" style="background-color:rgb(184, 184, 184)">grey72</td> + <td align="left">rgb(184, 184, 184)</td> + <td align="left">#B8B8B8</td> + + </tr> + + <tr> + <td align="right">gray71</td> + <td align="center" style="background-color:rgb(181, 181, 181)">gray71</td> + <td align="left">rgb(181, 181, 181)</td> + <td align="left">#B5B5B5</td> + + </tr> + + <tr> + <td align="right">grey71</td> + <td align="center" style="background-color:rgb(181, 181, 181)">grey71</td> + <td align="left">rgb(181, 181, 181)</td> + <td align="left">#B5B5B5</td> + + </tr> + + <tr> + <td align="right">gray70</td> + <td align="center" style="background-color:rgb(179, 179, 179)">gray70</td> + <td align="left">rgb(179, 179, 179)</td> + <td align="left">#B3B3B3</td> + + </tr> + + <tr> + <td align="right">grey70</td> + <td align="center" style="background-color:rgb(179, 179, 179)">grey70</td> + <td align="left">rgb(179, 179, 179)</td> + <td align="left">#B3B3B3</td> + + </tr> + + <tr> + <td align="right">gray69</td> + <td align="center" style="background-color:rgb(176, 176, 176)">gray69</td> + <td align="left">rgb(176, 176, 176)</td> + <td align="left">#B0B0B0</td> + + </tr> + + <tr> + <td align="right">grey69</td> + <td align="center" style="background-color:rgb(176, 176, 176)">grey69</td> + <td align="left">rgb(176, 176, 176)</td> + <td align="left">#B0B0B0</td> + + </tr> + + <tr> + <td align="right">gray68</td> + <td align="center" style="background-color:rgb(173, 173, 173)">gray68</td> + <td align="left">rgb(173, 173, 173)</td> + <td align="left">#ADADAD</td> + + </tr> + + <tr> + <td align="right">grey68</td> + <td align="center" style="background-color:rgb(173, 173, 173)">grey68</td> + <td align="left">rgb(173, 173, 173)</td> + <td align="left">#ADADAD</td> + + </tr> + + <tr> + <td align="right">gray67</td> + <td align="center" style="background-color:rgb(171, 171, 171)">gray67</td> + <td align="left">rgb(171, 171, 171)</td> + <td align="left">#ABABAB</td> + + </tr> + + <tr> + <td align="right">grey67</td> + <td align="center" style="background-color:rgb(171, 171, 171)">grey67</td> + <td align="left">rgb(171, 171, 171)</td> + <td align="left">#ABABAB</td> + + </tr> + + <tr> + <td align="right">DarkGray</td> + <td align="center" style="background-color:rgb(169, 169, 169)">DarkGray</td> + <td align="left">rgb(169, 169, 169)</td> + <td align="left">#A9A9A9</td> + + </tr> + + <tr> + <td align="right">DarkGrey</td> + <td align="center" style="background-color:rgb(169, 169, 169)">DarkGrey</td> + <td align="left">rgb(169, 169, 169)</td> + <td align="left">#A9A9A9</td> + + </tr> + + <tr> + <td align="right">gray66</td> + <td align="center" style="background-color:rgb(168, 168, 168)">gray66</td> + <td align="left">rgb(168, 168, 168)</td> + <td align="left">#A8A8A8</td> + + </tr> + + <tr> + <td align="right">grey66</td> + <td align="center" style="background-color:rgb(168, 168, 168)">grey66</td> + <td align="left">rgb(168, 168, 168)</td> + <td align="left">#A8A8A8</td> + + </tr> + + <tr> + <td align="right">gray65</td> + <td align="center" style="background-color:rgb(166, 166, 166)">gray65</td> + <td align="left">rgb(166, 166, 166)</td> + <td align="left">#A6A6A6</td> + + </tr> + + <tr> + <td align="right">grey65</td> + <td align="center" style="background-color:rgb(166, 166, 166)">grey65</td> + <td align="left">rgb(166, 166, 166)</td> + <td align="left">#A6A6A6</td> + + </tr> + + <tr> + <td align="right">gray64</td> + <td align="center" style="background-color:rgb(163, 163, 163)">gray64</td> + <td align="left">rgb(163, 163, 163)</td> + <td align="left">#A3A3A3</td> + + </tr> + + <tr> + <td align="right">grey64</td> + <td align="center" style="background-color:rgb(163, 163, 163)">grey64</td> + <td align="left">rgb(163, 163, 163)</td> + <td align="left">#A3A3A3</td> + + </tr> + + <tr> + <td align="right">gray63</td> + <td align="center" style="background-color:rgb(161, 161, 161)">gray63</td> + <td align="left">rgb(161, 161, 161)</td> + <td align="left">#A1A1A1</td> + + </tr> + + <tr> + <td align="right">grey63</td> + <td align="center" style="background-color:rgb(161, 161, 161)">grey63</td> + <td align="left">rgb(161, 161, 161)</td> + <td align="left">#A1A1A1</td> + + </tr> + + <tr> + <td align="right">gray62</td> + <td align="center" style="background-color:rgb(158, 158, 158)">gray62</td> + <td align="left">rgb(158, 158, 158)</td> + <td align="left">#9E9E9E</td> + + </tr> + + <tr> + <td align="right">grey62</td> + <td align="center" style="background-color:rgb(158, 158, 158)">grey62</td> + <td align="left">rgb(158, 158, 158)</td> + <td align="left">#9E9E9E</td> + + </tr> + + <tr> + <td align="right">gray61</td> + <td align="center" style="background-color:rgb(156, 156, 156)">gray61</td> + <td align="left">rgb(156, 156, 156)</td> + <td align="left">#9C9C9C</td> + + </tr> + + <tr> + <td align="right">grey61</td> + <td align="center" style="background-color:rgb(156, 156, 156)">grey61</td> + <td align="left">rgb(156, 156, 156)</td> + <td align="left">#9C9C9C</td> + + </tr> + + <tr> + <td align="right">gray60</td> + <td align="center" style="background-color:rgb(153, 153, 153)">gray60</td> + <td align="left">rgb(153, 153, 153)</td> + <td align="left">#999999</td> + + </tr> + + <tr> + <td align="right">grey60</td> + <td align="center" style="background-color:rgb(153, 153, 153)">grey60</td> + <td align="left">rgb(153, 153, 153)</td> + <td align="left">#999999</td> + + </tr> + + <tr> + <td align="right">gray59</td> + <td align="center" style="background-color:rgb(150, 150, 150)">gray59</td> + <td align="left">rgb(150, 150, 150)</td> + <td align="left">#969696</td> + + </tr> + + <tr> + <td align="right">grey59</td> + <td align="center" style="background-color:rgb(150, 150, 150)">grey59</td> + <td align="left">rgb(150, 150, 150)</td> + <td align="left">#969696</td> + + </tr> + + <tr> + <td align="right">gray58</td> + <td align="center" style="background-color:rgb(148, 148, 148)">gray58</td> + <td align="left">rgb(148, 148, 148)</td> + <td align="left">#949494</td> + + </tr> + + <tr> + <td align="right">grey58</td> + <td align="center" style="background-color:rgb(148, 148, 148)">grey58</td> + <td align="left">rgb(148, 148, 148)</td> + <td align="left">#949494</td> + + </tr> + + <tr> + <td align="right">gray57</td> + <td align="center" style="background-color:rgb(145, 145, 145)">gray57</td> + <td align="left">rgb(145, 145, 145)</td> + <td align="left">#919191</td> + + </tr> + + <tr> + <td align="right">grey57</td> + <td align="center" style="background-color:rgb(145, 145, 145)">grey57</td> + <td align="left">rgb(145, 145, 145)</td> + <td align="left">#919191</td> + + </tr> + + <tr> + <td align="right">gray56</td> + <td align="center" style="background-color:rgb(143, 143, 143)">gray56</td> + <td align="left">rgb(143, 143, 143)</td> + <td align="left">#8F8F8F</td> + + </tr> + + <tr> + <td align="right">grey56</td> + <td align="center" style="background-color:rgb(143, 143, 143)">grey56</td> + <td align="left">rgb(143, 143, 143)</td> + <td align="left">#8F8F8F</td> + + </tr> + + <tr> + <td align="right">gray55</td> + <td align="center" style="background-color:rgb(140, 140, 140)">gray55</td> + <td align="left">rgb(140, 140, 140)</td> + <td align="left">#8C8C8C</td> + + </tr> + + <tr> + <td align="right">grey55</td> + <td align="center" style="background-color:rgb(140, 140, 140)">grey55</td> + <td align="left">rgb(140, 140, 140)</td> + <td align="left">#8C8C8C</td> + + </tr> + + <tr> + <td align="right">gray54</td> + <td align="center" style="background-color:rgb(138, 138, 138)">gray54</td> + <td align="left">rgb(138, 138, 138)</td> + <td align="left">#8A8A8A</td> + + </tr> + + <tr> + <td align="right">grey54</td> + <td align="center" style="background-color:rgb(138, 138, 138)">grey54</td> + <td align="left">rgb(138, 138, 138)</td> + <td align="left">#8A8A8A</td> + + </tr> + + <tr> + <td align="right">gray53</td> + <td align="center" style="background-color:rgb(135, 135, 135)">gray53</td> + <td align="left">rgb(135, 135, 135)</td> + <td align="left">#878787</td> + + </tr> + + <tr> + <td align="right">grey53</td> + <td align="center" style="background-color:rgb(135, 135, 135)">grey53</td> + <td align="left">rgb(135, 135, 135)</td> + <td align="left">#878787</td> + + </tr> + + <tr> + <td align="right">gray52</td> + <td align="center" style="background-color:rgb(133, 133, 133)">gray52</td> + <td align="left">rgb(133, 133, 133)</td> + <td align="left">#858585</td> + + </tr> + + <tr> + <td align="right">grey52</td> + <td align="center" style="background-color:rgb(133, 133, 133)">grey52</td> + <td align="left">rgb(133, 133, 133)</td> + <td align="left">#858585</td> + + </tr> + + <tr> + <td align="right">gray51</td> + <td align="center" style="background-color:rgb(130, 130, 130)">gray51</td> + <td align="left">rgb(130, 130, 130)</td> + <td align="left">#828282</td> + + </tr> + + <tr> + <td align="right">grey51</td> + <td align="center" style="background-color:rgb(130, 130, 130)">grey51</td> + <td align="left">rgb(130, 130, 130)</td> + <td align="left">#828282</td> + + </tr> + + <tr> + <td align="right">fractal</td> + <td align="center" style="background-color:rgb(128, 128, 128)">fractal</td> + <td align="left">rgb(128, 128, 128)</td> + <td align="left">#808080</td> + + </tr> + + <tr> + <td align="right">gray50</td> + <td align="center" style="background-color:rgb(127, 127, 127)">gray50</td> + <td align="left">rgb(127, 127, 127)</td> + <td align="left">#7F7F7F</td> + + </tr> + + <tr> + <td align="right">grey50</td> + <td align="center" style="background-color:rgb(127, 127, 127)">grey50</td> + <td align="left">rgb(127, 127, 127)</td> + <td align="left">#7F7F7F</td> + + </tr> + + <tr> + <td align="right">gray</td> + <td align="center" style="background-color:rgb(126, 126, 126)">gray</td> + <td align="left">rgb(126, 126, 126)</td> + <td align="left">#7E7E7E</td> + + </tr> + + <tr> + <td align="right">gray49</td> + <td align="center" style="background-color:rgb(125, 125, 125)">gray49</td> + <td align="left">rgb(125, 125, 125)</td> + <td align="left">#7D7D7D</td> + + </tr> + + <tr> + <td align="right">grey49</td> + <td align="center" style="background-color:rgb(125, 125, 125)">grey49</td> + <td align="left">rgb(125, 125, 125)</td> + <td align="left">#7D7D7D</td> + + </tr> + + <tr> + <td align="right">gray48</td> + <td align="center" style="background-color:rgb(122, 122, 122)">gray48</td> + <td align="left">rgb(122, 122, 122)</td> + <td align="left">#7A7A7A</td> + + </tr> + + <tr> + <td align="right">grey48</td> + <td align="center" style="background-color:rgb(122, 122, 122)">grey48</td> + <td align="left">rgb(122, 122, 122)</td> + <td align="left">#7A7A7A</td> + + </tr> + + <tr> + <td align="right">gray47</td> + <td align="center" style="background-color:rgb(120, 120, 120)">gray47</td> + <td align="left">rgb(120, 120, 120)</td> + <td align="left">#787878</td> + + </tr> + + <tr> + <td align="right">grey47</td> + <td align="center" style="background-color:rgb(120, 120, 120)">grey47</td> + <td align="left">rgb(120, 120, 120)</td> + <td align="left">#787878</td> + + </tr> + + <tr> + <td align="right">gray46</td> + <td align="center" style="background-color:rgb(117, 117, 117)">gray46</td> + <td align="left">rgb(117, 117, 117)</td> + <td align="left">#757575</td> + + </tr> + + <tr> + <td align="right">grey46</td> + <td align="center" style="background-color:rgb(117, 117, 117)">grey46</td> + <td align="left">rgb(117, 117, 117)</td> + <td align="left">#757575</td> + + </tr> + + <tr> + <td align="right">gray45</td> + <td align="center" style="background-color:rgb(115, 115, 115)">gray45</td> + <td align="left">rgb(115, 115, 115)</td> + <td align="left">#737373</td> + + </tr> + + <tr> + <td align="right">grey45</td> + <td align="center" style="background-color:rgb(115, 115, 115)">grey45</td> + <td align="left">rgb(115, 115, 115)</td> + <td align="left">#737373</td> + + </tr> + + <tr> + <td align="right">gray44</td> + <td align="center" style="background-color:rgb(112, 112, 112)">gray44</td> + <td align="left">rgb(112, 112, 112)</td> + <td align="left">#707070</td> + + </tr> + + <tr> + <td align="right">grey44</td> + <td align="center" style="background-color:rgb(112, 112, 112)">grey44</td> + <td align="left">rgb(112, 112, 112)</td> + <td align="left">#707070</td> + + </tr> + + <tr> + <td align="right">gray43</td> + <td align="center" style="background-color:rgb(110, 110, 110)">gray43</td> + <td align="left">rgb(110, 110, 110)</td> + <td align="left">#6E6E6E</td> + + </tr> + + <tr> + <td align="right">grey43</td> + <td align="center" style="background-color:rgb(110, 110, 110)">grey43</td> + <td align="left">rgb(110, 110, 110)</td> + <td align="left">#6E6E6E</td> + + </tr> + + <tr> + <td align="right">gray42</td> + <td align="center" style="background-color:rgb(107, 107, 107)">gray42</td> + <td align="left">rgb(107, 107, 107)</td> + <td align="left">#6B6B6B</td> + + </tr> + + <tr> + <td align="right">grey42</td> + <td align="center" style="background-color:rgb(107, 107, 107)">grey42</td> + <td align="left">rgb(107, 107, 107)</td> + <td align="left">#6B6B6B</td> + + </tr> + + <tr> + <td align="right">DimGray</td> + <td align="center" style="background-color:rgb(105, 105, 105)">DimGray</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">DimGrey</td> + <td align="center" style="background-color:rgb(105, 105, 105)">DimGrey</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">gray41</td> + <td align="center" style="background-color:rgb(105, 105, 105)">gray41</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">grey41</td> + <td align="center" style="background-color:rgb(105, 105, 105)">grey41</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">gray40</td> + <td align="center" style="background-color:rgb(102, 102, 102)">gray40</td> + <td align="left">rgb(102, 102, 102)</td> + <td align="left">#666666</td> + + </tr> + + <tr> + <td align="right">grey40</td> + <td align="center" style="background-color:rgb(102, 102, 102)">grey40</td> + <td align="left">rgb(102, 102, 102)</td> + <td align="left">#666666</td> + + </tr> + + <tr> + <td align="right">gray39</td> + <td align="center" style="background-color:rgb( 99, 99, 99)">gray39</td> + <td align="left">rgb( 99, 99, 99)</td> + <td align="left">#636363</td> + + </tr> + + <tr> + <td align="right">grey39</td> + <td align="center" style="background-color:rgb( 99, 99, 99)">grey39</td> + <td align="left">rgb( 99, 99, 99)</td> + <td align="left">#636363</td> + + </tr> + + <tr> + <td align="right">gray38</td> + <td align="center" style="background-color:rgb( 97, 97, 97)">gray38</td> + <td align="left">rgb( 97, 97, 97)</td> + <td align="left">#616161</td> + + </tr> + + <tr> + <td align="right">grey38</td> + <td align="center" style="background-color:rgb( 97, 97, 97)">grey38</td> + <td align="left">rgb( 97, 97, 97)</td> + <td align="left">#616161</td> + + </tr> + + <tr> + <td align="right">gray37</td> + <td align="center" style="background-color:rgb( 94, 94, 94)">gray37</td> + <td align="left">rgb( 94, 94, 94)</td> + <td align="left">#5E5E5E</td> + + </tr> + + <tr> + <td align="right">grey37</td> + <td align="center" style="background-color:rgb( 94, 94, 94)">grey37</td> + <td align="left">rgb( 94, 94, 94)</td> + <td align="left">#5E5E5E</td> + + </tr> + + <tr> + <td align="right">gray36</td> + <td align="center" style="background-color:rgb( 92, 92, 92)">gray36</td> + <td align="left">rgb( 92, 92, 92)</td> + <td align="left">#5C5C5C</td> + + </tr> + + <tr> + <td align="right">grey36</td> + <td align="center" style="background-color:rgb( 92, 92, 92)">grey36</td> + <td align="left">rgb( 92, 92, 92)</td> + <td align="left">#5C5C5C</td> + + </tr> + + <tr> + <td align="right">gray35</td> + <td align="center" style="background-color:rgb( 89, 89, 89)">gray35</td> + <td align="left">rgb( 89, 89, 89)</td> + <td align="left">#595959</td> + + </tr> + + <tr> + <td align="right">grey35</td> + <td align="center" style="background-color:rgb( 89, 89, 89)">grey35</td> + <td align="left">rgb( 89, 89, 89)</td> + <td align="left">#595959</td> + + </tr> + + <tr> + <td align="right">gray34</td> + <td align="center" style="background-color:rgb( 87, 87, 87)">gray34</td> + <td align="left">rgb( 87, 87, 87)</td> + <td align="left">#575757</td> + + </tr> + + <tr> + <td align="right">grey34</td> + <td align="center" style="background-color:rgb( 87, 87, 87)">grey34</td> + <td align="left">rgb( 87, 87, 87)</td> + <td align="left">#575757</td> + + </tr> + + <tr> + <td align="right">gray33</td> + <td align="center" style="background-color:rgb( 84, 84, 84)">gray33</td> + <td align="left">rgb( 84, 84, 84)</td> + <td align="left">#545454</td> + + </tr> + + <tr> + <td align="right">grey33</td> + <td align="center" style="background-color:rgb( 84, 84, 84)">grey33</td> + <td align="left">rgb( 84, 84, 84)</td> + <td align="left">#545454</td> + + </tr> + + <tr> + <td align="right">gray32</td> + <td align="center" style="background-color:rgb( 82, 82, 82)">gray32</td> + <td align="left">rgb( 82, 82, 82)</td> + <td align="left">#525252</td> + + </tr> + + <tr> + <td align="right">grey32</td> + <td align="center" style="background-color:rgb( 82, 82, 82)">grey32</td> + <td align="left">rgb( 82, 82, 82)</td> + <td align="left">#525252</td> + + </tr> + + <tr> + <td align="right">gray31</td> + <td align="center" style="background-color:rgb( 79, 79, 79)">gray31</td> + <td align="left">rgb( 79, 79, 79)</td> + <td align="left">#4F4F4F</td> + + </tr> + + <tr> + <td align="right">grey31</td> + <td align="center" style="background-color:rgb( 79, 79, 79)">grey31</td> + <td align="left">rgb( 79, 79, 79)</td> + <td align="left">#4F4F4F</td> + + </tr> + + <tr> + <td align="right">gray30</td> + <td align="center" style="background-color:rgb( 77, 77, 77)">gray30</td> + <td align="left">rgb( 77, 77, 77)</td> + <td align="left">#4D4D4D</td> + + </tr> + + <tr> + <td align="right">grey30</td> + <td align="center" style="background-color:rgb( 77, 77, 77)">grey30</td> + <td align="left">rgb( 77, 77, 77)</td> + <td align="left">#4D4D4D</td> + + </tr> + + <tr> + <td align="right">gray29</td> + <td align="center" style="background-color:rgb( 74, 74, 74)">gray29</td> + <td align="left">rgb( 74, 74, 74)</td> + <td align="left">#4A4A4A</td> + + </tr> + + <tr> + <td align="right">grey29</td> + <td align="center" style="background-color:rgb( 74, 74, 74)">grey29</td> + <td align="left">rgb( 74, 74, 74)</td> + <td align="left">#4A4A4A</td> + + </tr> + + <tr> + <td align="right">gray28</td> + <td align="center" style="background-color:rgb( 71, 71, 71)">gray28</td> + <td align="left">rgb( 71, 71, 71)</td> + <td align="left">#474747</td> + + </tr> + + <tr> + <td align="right">grey28</td> + <td align="center" style="background-color:rgb( 71, 71, 71)">grey28</td> + <td align="left">rgb( 71, 71, 71)</td> + <td align="left">#474747</td> + + </tr> + + <tr> + <td align="right">gray27</td> + <td align="center" style="background-color:rgb( 69, 69, 69)">gray27</td> + <td align="left">rgb( 69, 69, 69)</td> + <td align="left">#454545</td> + + </tr> + + <tr> + <td align="right">grey27</td> + <td align="center" style="background-color:rgb( 69, 69, 69)">grey27</td> + <td align="left">rgb( 69, 69, 69)</td> + <td align="left">#454545</td> + + </tr> + + <tr> + <td align="right">gray26</td> + <td align="center" style="background-color:rgb( 66, 66, 66)">gray26</td> + <td align="left">rgb( 66, 66, 66)</td> + <td align="left">#424242</td> + + </tr> + + <tr> + <td align="right">grey26</td> + <td align="center" style="background-color:rgb( 66, 66, 66)">grey26</td> + <td align="left">rgb( 66, 66, 66)</td> + <td align="left">#424242</td> + + </tr> + + <tr> + <td align="right">gray25</td> + <td align="center" style="background-color:rgb( 64, 64, 64)">gray25</td> + <td align="left">rgb( 64, 64, 64)</td> + <td align="left">#404040</td> + + </tr> + + <tr> + <td align="right">grey25</td> + <td align="center" style="background-color:rgb( 64, 64, 64)">grey25</td> + <td align="left">rgb( 64, 64, 64)</td> + <td align="left">#404040</td> + + </tr> + + <tr> + <td align="right">gray24</td> + <td align="center" style="background-color:rgb( 61, 61, 61)">gray24</td> + <td align="left">rgb( 61, 61, 61)</td> + <td align="left">#3D3D3D</td> + + </tr> + + <tr> + <td align="right">grey24</td> + <td align="center" style="background-color:rgb( 61, 61, 61)">grey24</td> + <td align="left">rgb( 61, 61, 61)</td> + <td align="left">#3D3D3D</td> + + </tr> + + <tr> + <td align="right">gray23</td> + <td align="center" style="background-color:rgb( 59, 59, 59)">gray23</td> + <td align="left">rgb( 59, 59, 59)</td> + <td align="left">#3B3B3B</td> + + </tr> + + <tr> + <td align="right">grey23</td> + <td align="center" style="background-color:rgb( 59, 59, 59)">grey23</td> + <td align="left">rgb( 59, 59, 59)</td> + <td align="left">#3B3B3B</td> + + </tr> + + <tr> + <td align="right">gray22</td> + <td align="center" style="background-color:rgb( 56, 56, 56)">gray22</td> + <td align="left">rgb( 56, 56, 56)</td> + <td align="left">#383838</td> + + </tr> + + <tr> + <td align="right">grey22</td> + <td align="center" style="background-color:rgb( 56, 56, 56)">grey22</td> + <td align="left">rgb( 56, 56, 56)</td> + <td align="left">#383838</td> + + </tr> + + <tr> + <td align="right">gray21</td> + <td align="center" style="background-color:rgb( 54, 54, 54)">gray21</td> + <td align="left">rgb( 54, 54, 54)</td> + <td align="left">#363636</td> + + </tr> + + <tr> + <td align="right">grey21</td> + <td align="center" style="background-color:rgb( 54, 54, 54)">grey21</td> + <td align="left">rgb( 54, 54, 54)</td> + <td align="left">#363636</td> + + </tr> + + <tr> + <td align="right">gray20</td> + <td align="center" style="background-color:rgb( 51, 51, 51)">gray20</td> + <td align="left">rgb( 51, 51, 51)</td> + <td align="left">#333333</td> + + </tr> + + <tr> + <td align="right">grey20</td> + <td align="center" style="background-color:rgb( 51, 51, 51)">grey20</td> + <td align="left">rgb( 51, 51, 51)</td> + <td align="left">#333333</td> + + </tr> + + <tr> + <td align="right">gray19</td> + <td align="center" style="background-color:rgb( 48, 48, 48)">gray19</td> + <td align="left">rgb( 48, 48, 48)</td> + <td align="left">#303030</td> + + </tr> + + <tr> + <td align="right">grey19</td> + <td align="center" style="background-color:rgb( 48, 48, 48)">grey19</td> + <td align="left">rgb( 48, 48, 48)</td> + <td align="left">#303030</td> + + </tr> + + <tr> + <td align="right">gray18</td> + <td align="center" style="background-color:rgb( 46, 46, 46)">gray18</td> + <td align="left">rgb( 46, 46, 46)</td> + <td align="left">#2E2E2E</td> + + </tr> + + <tr> + <td align="right">grey18</td> + <td align="center" style="background-color:rgb( 46, 46, 46)">grey18</td> + <td align="left">rgb( 46, 46, 46)</td> + <td align="left">#2E2E2E</td> + + </tr> + + <tr> + <td align="right">gray17</td> + <td align="center" style="background-color:rgb( 43, 43, 43)">gray17</td> + <td align="left">rgb( 43, 43, 43)</td> + <td align="left">#2B2B2B</td> + + </tr> + + <tr> + <td align="right">grey17</td> + <td align="center" style="background-color:rgb( 43, 43, 43)">grey17</td> + <td align="left">rgb( 43, 43, 43)</td> + <td align="left">#2B2B2B</td> + + </tr> + + <tr> + <td align="right">gray16</td> + <td align="center" style="background-color:rgb( 41, 41, 41)">gray16</td> + <td align="left">rgb( 41, 41, 41)</td> + <td align="left">#292929</td> + + </tr> + + <tr> + <td align="right">grey16</td> + <td align="center" style="background-color:rgb( 41, 41, 41)">grey16</td> + <td align="left">rgb( 41, 41, 41)</td> + <td align="left">#292929</td> + + </tr> + + <tr> + <td align="right">gray15</td> + <td align="center" style="background-color:rgb( 38, 38, 38)">gray15</td> + <td align="left">rgb( 38, 38, 38)</td> + <td align="left">#262626</td> + + </tr> + + <tr> + <td align="right">grey15</td> + <td align="center" style="background-color:rgb( 38, 38, 38)">grey15</td> + <td align="left">rgb( 38, 38, 38)</td> + <td align="left">#262626</td> + + </tr> + + <tr> + <td align="right">gray14</td> + <td align="center" style="background-color:rgb( 36, 36, 36)">gray14</td> + <td align="left">rgb( 36, 36, 36)</td> + <td align="left">#242424</td> + + </tr> + + <tr> + <td align="right">grey14</td> + <td align="center" style="background-color:rgb( 36, 36, 36)">grey14</td> + <td align="left">rgb( 36, 36, 36)</td> + <td align="left">#242424</td> + + </tr> + + <tr> + <td align="right">gray13</td> + <td align="center" style="background-color:rgb( 33, 33, 33)">gray13</td> + <td align="left">rgb( 33, 33, 33)</td> + <td align="left">#212121</td> + + </tr> + + <tr> + <td align="right">grey13</td> + <td align="center" style="background-color:rgb( 33, 33, 33)">grey13</td> + <td align="left">rgb( 33, 33, 33)</td> + <td align="left">#212121</td> + + </tr> + + <tr> + <td align="right">gray12</td> + <td align="center" style="background-color:rgb( 31, 31, 31)">gray12</td> + <td align="left">rgb( 31, 31, 31)</td> + <td align="left">#1F1F1F</td> + + </tr> + + <tr> + <td align="right">grey12</td> + <td align="center" style="background-color:rgb( 31, 31, 31)">grey12</td> + <td align="left">rgb( 31, 31, 31)</td> + <td align="left">#1F1F1F</td> + + </tr> + + <tr> + <td align="right">gray11</td> + <td align="center" style="background-color:rgb( 28, 28, 28)">gray11</td> + <td align="left">rgb( 28, 28, 28)</td> + <td align="left">#1C1C1C</td> + + </tr> + + <tr> + <td align="right">grey11</td> + <td align="center" style="background-color:rgb( 28, 28, 28)">grey11</td> + <td align="left">rgb( 28, 28, 28)</td> + <td align="left">#1C1C1C</td> + + </tr> + + <tr> + <td align="right">gray10</td> + <td align="center" style="background-color:rgb( 26, 26, 26)">gray10</td> + <td align="left">rgb( 26, 26, 26)</td> + <td align="left">#1A1A1A</td> + + </tr> + + <tr> + <td align="right">grey10</td> + <td align="center" style="background-color:rgb( 26, 26, 26)">grey10</td> + <td align="left">rgb( 26, 26, 26)</td> + <td align="left">#1A1A1A</td> + + </tr> + + <tr> + <td align="right">gray9</td> + <td align="center" style="background-color:rgb( 23, 23, 23)">gray9</td> + <td align="left">rgb( 23, 23, 23)</td> + <td align="left">#171717</td> + + </tr> + + <tr> + <td align="right">grey9</td> + <td align="center" style="background-color:rgb( 23, 23, 23)">grey9</td> + <td align="left">rgb( 23, 23, 23)</td> + <td align="left">#171717</td> + + </tr> + + <tr> + <td align="right">gray8</td> + <td align="center" style="background-color:rgb( 20, 20, 20)">gray8</td> + <td align="left">rgb( 20, 20, 20)</td> + <td align="left">#141414</td> + + </tr> + + <tr> + <td align="right">grey8</td> + <td align="center" style="background-color:rgb( 20, 20, 20)">grey8</td> + <td align="left">rgb( 20, 20, 20)</td> + <td align="left">#141414</td> + + </tr> + + <tr> + <td align="right">gray7</td> + <td align="center" style="background-color:rgb( 18, 18, 18)">gray7</td> + <td align="left">rgb( 18, 18, 18)</td> + <td align="left">#121212</td> + + </tr> + + <tr> + <td align="right">grey7</td> + <td align="center" style="background-color:rgb( 18, 18, 18)">grey7</td> + <td align="left">rgb( 18, 18, 18)</td> + <td align="left">#121212</td> + + </tr> + + <tr> + <td align="right">gray6</td> + <td align="center" style="background-color:rgb( 15, 15, 15)">gray6</td> + <td align="left">rgb( 15, 15, 15)</td> + <td align="left">#0F0F0F</td> + + </tr> + + <tr> + <td align="right">grey6</td> + <td align="center" style="background-color:rgb( 15, 15, 15)">grey6</td> + <td align="left">rgb( 15, 15, 15)</td> + <td align="left">#0F0F0F</td> + + </tr> + + <tr> + <td align="right">gray5</td> + <td align="center" style="background-color:rgb( 13, 13, 13)">gray5</td> + <td align="left">rgb( 13, 13, 13)</td> + <td align="left">#0D0D0D</td> + + </tr> + + <tr> + <td align="right">grey5</td> + <td align="center" style="background-color:rgb( 13, 13, 13)">grey5</td> + <td align="left">rgb( 13, 13, 13)</td> + <td align="left">#0D0D0D</td> + + </tr> + + <tr> + <td align="right">gray4</td> + <td align="center" style="background-color:rgb( 10, 10, 10)">gray4</td> + <td align="left">rgb( 10, 10, 10)</td> + <td align="left">#0A0A0A</td> + + </tr> + + <tr> + <td align="right">grey4</td> + <td align="center" style="background-color:rgb( 10, 10, 10)">grey4</td> + <td align="left">rgb( 10, 10, 10)</td> + <td align="left">#0A0A0A</td> + + </tr> + + <tr> + <td align="right">gray3</td> + <td align="center" style="background-color:rgb( 8, 8, 8)">gray3</td> + <td align="left">rgb( 8, 8, 8)</td> + <td align="left">#080808</td> + + </tr> + + <tr> + <td align="right">grey3</td> + <td align="center" style="background-color:rgb( 8, 8, 8)">grey3</td> + <td align="left">rgb( 8, 8, 8)</td> + <td align="left">#080808</td> + + </tr> + + <tr> + <td align="right">gray2</td> + <td align="center" style="background-color:rgb( 5, 5, 5)">gray2</td> + <td align="left">rgb( 5, 5, 5)</td> + <td align="left">#050505</td> + + </tr> + + <tr> + <td align="right">grey2</td> + <td align="center" style="background-color:rgb( 5, 5, 5)">grey2</td> + <td align="left">rgb( 5, 5, 5)</td> + <td align="left">#050505</td> + + </tr> + + <tr> + <td align="right">gray1</td> + <td align="center" style="background-color:rgb( 3, 3, 3)">gray1</td> + <td align="left">rgb( 3, 3, 3)</td> + <td align="left">#030303</td> + + </tr> + + <tr> + <td align="right">grey1</td> + <td align="center" style="background-color:rgb( 3, 3, 3)">grey1</td> + <td align="left">rgb( 3, 3, 3)</td> + <td align="left">#030303</td> + + </tr> + + <tr> + <td align="right">black</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">black</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">gray0</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">gray0</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">grey0</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">grey0</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">opaque</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">opaque</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">none</td> + <td align="center" style="background-color:white">none</td> + <td align="left">rgba( 0, 0, 0, 0.0)</td> + <td align="left">#00000000</td> + + </tr> + + <tr> + <td align="right">transparent</td> + <td align="center" style="background-color:white">transparent</td> + <td align="left">rgba( 0, 0, 0, 0.0)</td> + <td align="left">#00000000</td> + + </tr> + + </tbody> +</table> + +</div> + +</div> + +</body></html> diff --git a/frontend/imgradient/colors_iframe.js b/frontend/imgradient/colors_iframe.js new file mode 100644 index 0000000..0a1e728 --- /dev/null +++ b/frontend/imgradient/colors_iframe.js @@ -0,0 +1,82 @@ +//but I tool a procedural approach, and I wanted to make something more like OOP. just didn't know +//how do deal with the fact that $.fancybox is a class...a singleton class is totally fine. +//like colorpicker_iframe. just need to know what it would look like +//well in this case you might not need oop approach, as it doesn't solve any issues here. its fine to use procedural code then you +//don't need oop. also js is sort of using procedural way then asking to provide onclick code and other methods like .click() in jquery, +//so it's kind of callback\procedural oriented, and oop doesn't fit in very well. you can wrap it in oop if really want, it will look like: +// +//function ColorPicker(){ +// this.element = $(".something"); +// this.init = function(){ +// this.options = options +// this.element.click(this.onclick); +// this.myfancybox = $.fancybox; +// this.myfancybox_iframe = ".fancybox-iframe"; +// } +// this.onclick = function(){ +// this.myfancybox.open( +// do I do something like this +// _.extend({ autoDimensions: false, +// autoDimensions: false, +// beforeShow: this.fancybox_cb_1, //something like this? yes ok I think that it's the right thing for methods +// to reach for these classes for trivial things for a while, so that I can used to thinking this way. +// I understand that there are no real benefits performance/readability-wise here, but it's a different paradigm, +// right? yes ok cool. Well +// }, options) //? yep +// +// this.options +// ... +// callback: funciton(){ this.color_picked = ...from fancybox .. } +// callback: this.callback, +// ); +// } +// this.color_picked = function() +// this.color_picked_as_hex = function() +// this.color_picked_as_rgb = function() +// this.callback = function(){ +// $(this.myfancybox_iframe). .... +// } +//} +//and so on yeah good +// +function launch_iframe(input_target){ + $.fancybox.open({ + href : '/im/colors/index.html', + width : 1100, // set the width + height : 710, + fitToView : true, + autoDimensions:false, + autoSize:false, + type : 'iframe', + closeBtn : false, + padding : 5, + beforeShow : function(){ + $('.fancybox-iframe').contents().find('#submitvalue').click(function(){ + $('.fancybox-iframe').contents().find('form').submit(); + $.fancybox.close(); + }); + }, + beforeClose : function(){ + x = $('.fancybox-iframe').contents().find('#namespace').val(); + }, + afterClose: function(){ + $(input_target).val(x); + } + }); +} +$(document).ready(function(){ + if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) { + return; + } + var element_list = [".color1", ".color2"] + element_list.forEach( + function(l){ + console.log("a"+l) + $("a"+l).click(function(event){ + event.preventDefault(); + launch_iframe("input"+l) + }); + } + ) + +}) diff --git a/frontend/imgradient/css/custom-theme/images/ui-bg_diagonal-maze_75_ffffff_10x10.png b/frontend/imgradient/css/custom-theme/images/ui-bg_diagonal-maze_75_ffffff_10x10.png Binary files differnew file mode 100755 index 0000000..b5db23a --- /dev/null +++ b/frontend/imgradient/css/custom-theme/images/ui-bg_diagonal-maze_75_ffffff_10x10.png diff --git a/frontend/imgradient/css/custom-theme/images/ui-bg_diagonals-medium_75_cccccc_40x40.png b/frontend/imgradient/css/custom-theme/images/ui-bg_diagonals-medium_75_cccccc_40x40.png Binary files differnew file mode 100755 index 0000000..907d9da --- /dev/null +++ b/frontend/imgradient/css/custom-theme/images/ui-bg_diagonals-medium_75_cccccc_40x40.png diff --git a/frontend/imgradient/css/custom-theme/images/ui-bg_glass_65_ffffff_1x400.png b/frontend/imgradient/css/custom-theme/images/ui-bg_glass_65_ffffff_1x400.png Binary files differnew file mode 100755 index 0000000..42ccba2 --- /dev/null +++ b/frontend/imgradient/css/custom-theme/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/frontend/imgradient/css/custom-theme/images/ui-bg_glass_75_dadada_1x400.png b/frontend/imgradient/css/custom-theme/images/ui-bg_glass_75_dadada_1x400.png Binary files differnew file mode 100755 index 0000000..5a46b47 --- /dev/null +++ b/frontend/imgradient/css/custom-theme/images/ui-bg_glass_75_dadada_1x400.png diff --git a/frontend/imgradient/css/custom-theme/images/ui-bg_glass_75_e6e6e6_1x400.png b/frontend/imgradient/css/custom-theme/images/ui-bg_glass_75_e6e6e6_1x400.png Binary files differnew file mode 100755 index 0000000..86c2baa --- /dev/null +++ b/frontend/imgradient/css/custom-theme/images/ui-bg_glass_75_e6e6e6_1x400.png diff --git a/frontend/imgradient/css/custom-theme/images/ui-bg_gloss-wave_0_aaaaaa_500x100.png b/frontend/imgradient/css/custom-theme/images/ui-bg_gloss-wave_0_aaaaaa_500x100.png Binary files differnew file mode 100755 index 0000000..1a21c4f --- /dev/null +++ b/frontend/imgradient/css/custom-theme/images/ui-bg_gloss-wave_0_aaaaaa_500x100.png diff --git a/frontend/imgradient/css/custom-theme/images/ui-bg_inset-hard_55_fbf9ee_1x100.png b/frontend/imgradient/css/custom-theme/images/ui-bg_inset-hard_55_fbf9ee_1x100.png Binary files differnew file mode 100755 index 0000000..481bf22 --- /dev/null +++ b/frontend/imgradient/css/custom-theme/images/ui-bg_inset-hard_55_fbf9ee_1x100.png diff --git a/frontend/imgradient/css/custom-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png b/frontend/imgradient/css/custom-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png Binary files differnew file mode 100755 index 0000000..0e05810 --- /dev/null +++ b/frontend/imgradient/css/custom-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png diff --git a/frontend/imgradient/css/custom-theme/images/ui-icons_222222_256x240.png b/frontend/imgradient/css/custom-theme/images/ui-icons_222222_256x240.png Binary files differnew file mode 100755 index 0000000..b273ff1 --- /dev/null +++ b/frontend/imgradient/css/custom-theme/images/ui-icons_222222_256x240.png diff --git a/frontend/imgradient/css/custom-theme/images/ui-icons_2e83ff_256x240.png b/frontend/imgradient/css/custom-theme/images/ui-icons_2e83ff_256x240.png Binary files differnew file mode 100755 index 0000000..09d1cdc --- /dev/null +++ b/frontend/imgradient/css/custom-theme/images/ui-icons_2e83ff_256x240.png diff --git a/frontend/imgradient/css/custom-theme/images/ui-icons_454545_256x240.png b/frontend/imgradient/css/custom-theme/images/ui-icons_454545_256x240.png Binary files differnew file mode 100755 index 0000000..59bd45b --- /dev/null +++ b/frontend/imgradient/css/custom-theme/images/ui-icons_454545_256x240.png diff --git a/frontend/imgradient/css/custom-theme/images/ui-icons_888888_256x240.png b/frontend/imgradient/css/custom-theme/images/ui-icons_888888_256x240.png Binary files differnew file mode 100755 index 0000000..6d02426 --- /dev/null +++ b/frontend/imgradient/css/custom-theme/images/ui-icons_888888_256x240.png diff --git a/frontend/imgradient/css/custom-theme/images/ui-icons_cd0a0a_256x240.png b/frontend/imgradient/css/custom-theme/images/ui-icons_cd0a0a_256x240.png Binary files differnew file mode 100755 index 0000000..2ab019b --- /dev/null +++ b/frontend/imgradient/css/custom-theme/images/ui-icons_cd0a0a_256x240.png diff --git a/frontend/imgradient/css/custom-theme/jquery-ui-1.8.16.custom.css b/frontend/imgradient/css/custom-theme/jquery-ui-1.8.16.custom.css new file mode 100755 index 0000000..9e3cc66 --- /dev/null +++ b/frontend/imgradient/css/custom-theme/jquery-ui-1.8.16.custom.css @@ -0,0 +1,313 @@ +/* + * jQuery UI CSS Framework 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* + * jQuery UI CSS Framework 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=1px&bgColorHeader=cccccc&bgTextureHeader=07_diagonals_medium.png&bgImgOpacityHeader=75&borderColorHeader=ffffff&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=16_diagonal_maze.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=06_inset_hard.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=05_inset_soft.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=12_gloss_wave.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=12_gloss_wave.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=20px&offsetTopShadow=-90px&offsetLeftShadow=-30px&cornerRadiusShadow=8px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #aaaaaa; color: #DCDCDC; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border: 1px solid #ffffff; background: #cccccc url(images/ui-bg_diagonals-medium_75_cccccc_40x40.png) 50% 50% repeat; color: #DCDCDC; font-weight: bold; } +.ui-widget-header a { color: #DCDCDC; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_inset-hard_55_fbf9ee_1x100.png) 50% bottom repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_inset-soft_95_fef1ec_1x100.png) 50% bottom repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 1px; -webkit-border-top-left-radius: 1px; -khtml-border-top-left-radius: 1px; border-top-left-radius: 1px; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 1px; -webkit-border-top-right-radius: 1px; -khtml-border-top-right-radius: 1px; border-top-right-radius: 1px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 1px; -webkit-border-bottom-left-radius: 1px; -khtml-border-bottom-left-radius: 1px; border-bottom-left-radius: 1px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 1px; -webkit-border-bottom-right-radius: 1px; -khtml-border-bottom-right-radius: 1px; border-bottom-right-radius: 1px; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_gloss-wave_0_aaaaaa_500x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -90px 0 0 -30px; padding: 20px; background: #aaaaaa url(images/ui-bg_gloss-wave_0_aaaaaa_500x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* + * jQuery UI Slider 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; } diff --git a/frontend/imgradient/dirs.html b/frontend/imgradient/dirs.html new file mode 100755 index 0000000..afe2db7 --- /dev/null +++ b/frontend/imgradient/dirs.html @@ -0,0 +1,256 @@ +0000 00 +0001 01 +0002 02 +0003 03 +0004 04 +0005 05 +0006 06 +0007 07 +0008 08 +0009 09 +0010 0a +0011 0b +0012 0c +0013 0d +0014 0e +0015 0f +0016 10 +0017 11 +0018 12 +0019 13 +0020 14 +0021 15 +0022 16 +0023 17 +0024 18 +0025 19 +0026 1a +0027 1b +0028 1c +0029 1d +0030 1e +0031 1f +0032 20 +0033 21 +0034 22 +0035 23 +0036 24 +0037 25 +0038 26 +0039 27 +0040 28 +0041 29 +0042 2a +0043 2b +0044 2c +0045 2d +0046 2e +0047 2f +0048 30 +0049 31 +0050 32 +0051 33 +0052 34 +0053 35 +0054 36 +0055 37 +0056 38 +0057 39 +0058 3a +0059 3b +0060 3c +0061 3d +0062 3e +0063 3f +0064 40 +0065 41 +0066 42 +0067 43 +0068 44 +0069 45 +0070 46 +0071 47 +0072 48 +0073 49 +0074 4a +0075 4b +0076 4c +0077 4d +0078 4e +0079 4f +0080 50 +0081 51 +0082 52 +0083 53 +0084 54 +0085 55 +0086 56 +0087 57 +0088 58 +0089 59 +0090 5a +0091 5b +0092 5c +0093 5d +0094 5e +0095 5f +0096 60 +0097 61 +0098 62 +0099 63 +0100 64 +0101 65 +0102 66 +0103 67 +0104 68 +0105 69 +0106 6a +0107 6b +0108 6c +0109 6d +0110 6e +0111 6f +0112 70 +0113 71 +0114 72 +0115 73 +0116 74 +0117 75 +0118 76 +0119 77 +0120 78 +0121 79 +0122 7a +0123 7b +0124 7c +0125 7d +0126 7e +0127 7f +0128 80 +0129 81 +0130 82 +0131 83 +0132 84 +0133 85 +0134 86 +0135 87 +0136 88 +0137 89 +0138 8a +0139 8b +0140 8c +0141 8d +0142 8e +0143 8f +0144 90 +0145 91 +0146 92 +0147 93 +0148 94 +0149 95 +0150 96 +0151 97 +0152 98 +0153 99 +0154 9a +0155 9b +0156 9c +0157 9d +0158 9e +0159 9f +0160 a0 +0161 a1 +0162 a2 +0163 a3 +0164 a4 +0165 a5 +0166 a6 +0167 a7 +0168 a8 +0169 a9 +0170 aa +0171 ab +0172 ac +0173 ad +0174 ae +0175 af +0176 b0 +0177 b1 +0178 b2 +0179 b3 +0180 b4 +0181 b5 +0182 b6 +0183 b7 +0184 b8 +0185 b9 +0186 ba +0187 bb +0188 bc +0189 bd +0190 be +0191 bf +0192 c0 +0193 c1 +0194 c2 +0195 c3 +0196 c4 +0197 c5 +0198 c6 +0199 c7 +0200 c8 +0201 c9 +0202 ca +0203 cb +0204 cc +0205 cd +0206 ce +0207 cf +0208 d0 +0209 d1 +0210 d2 +0211 d3 +0212 d4 +0213 d5 +0214 d6 +0215 d7 +0216 d8 +0217 d9 +0218 da +0219 db +0220 dc +0221 dd +0222 de +0223 df +0224 e0 +0225 e1 +0226 e2 +0227 e3 +0228 e4 +0229 e5 +0230 e6 +0231 e7 +0232 e8 +0233 e9 +0234 ea +0235 eb +0236 ec +0237 ed +0238 ee +0239 ef +0240 f0 +0241 f1 +0242 f2 +0243 f3 +0244 f4 +0245 f5 +0246 f6 +0247 f7 +0248 f8 +0249 f9 +0250 fa +0251 fb +0252 fc +0253 fd +0254 fe +0255 ff diff --git a/frontend/imgradient/dirs.py b/frontend/imgradient/dirs.py new file mode 100755 index 0000000..1cb9fa5 --- /dev/null +++ b/frontend/imgradient/dirs.py @@ -0,0 +1,7 @@ +#!/usr/bin/python2.7 + +import os + +for i in xrange(256): + print "%04d %02x" % (i,i) +# os.mkdir ("%02x" % i) diff --git a/frontend/imgradient/firstrun/blue-turquoise_1315104576.gif b/frontend/imgradient/firstrun/blue-turquoise_1315104576.gif Binary files differnew file mode 100755 index 0000000..ebaaa1c --- /dev/null +++ b/frontend/imgradient/firstrun/blue-turquoise_1315104576.gif diff --git a/frontend/imgradient/firstrun/blue-turquoise_1315104586.gif b/frontend/imgradient/firstrun/blue-turquoise_1315104586.gif Binary files differnew file mode 100755 index 0000000..1bd11e4 --- /dev/null +++ b/frontend/imgradient/firstrun/blue-turquoise_1315104586.gif diff --git a/frontend/imgradient/firstrun/blue-turquoise_1315104592.gif b/frontend/imgradient/firstrun/blue-turquoise_1315104592.gif Binary files differnew file mode 100755 index 0000000..1bd11e4 --- /dev/null +++ b/frontend/imgradient/firstrun/blue-turquoise_1315104592.gif diff --git a/frontend/imgradient/firstrun/blue-turquoise_1315104597.gif b/frontend/imgradient/firstrun/blue-turquoise_1315104597.gif Binary files differnew file mode 100755 index 0000000..1bd11e4 --- /dev/null +++ b/frontend/imgradient/firstrun/blue-turquoise_1315104597.gif diff --git a/frontend/imgradient/firstrun/blue-turquoise_1315104604.gif b/frontend/imgradient/firstrun/blue-turquoise_1315104604.gif Binary files differnew file mode 100755 index 0000000..e27009e --- /dev/null +++ b/frontend/imgradient/firstrun/blue-turquoise_1315104604.gif diff --git a/frontend/imgradient/firstrun/blue-turquoise_1315104609.gif b/frontend/imgradient/firstrun/blue-turquoise_1315104609.gif Binary files differnew file mode 100755 index 0000000..1bd11e4 --- /dev/null +++ b/frontend/imgradient/firstrun/blue-turquoise_1315104609.gif diff --git a/frontend/imgradient/firstrun/green-black_1315122389.gif b/frontend/imgradient/firstrun/green-black_1315122389.gif Binary files differnew file mode 100755 index 0000000..6b82eb8 --- /dev/null +++ b/frontend/imgradient/firstrun/green-black_1315122389.gif diff --git a/frontend/imgradient/firstrun/green-black_1315122400.gif b/frontend/imgradient/firstrun/green-black_1315122400.gif Binary files differnew file mode 100755 index 0000000..62bbeef --- /dev/null +++ b/frontend/imgradient/firstrun/green-black_1315122400.gif diff --git a/frontend/imgradient/firstrun/green-black_1315122410.gif b/frontend/imgradient/firstrun/green-black_1315122410.gif Binary files differnew file mode 100755 index 0000000..632996c --- /dev/null +++ b/frontend/imgradient/firstrun/green-black_1315122410.gif diff --git a/frontend/imgradient/firstrun/green-black_1315122420.gif b/frontend/imgradient/firstrun/green-black_1315122420.gif Binary files differnew file mode 100755 index 0000000..5358fbe --- /dev/null +++ b/frontend/imgradient/firstrun/green-black_1315122420.gif diff --git a/frontend/imgradient/firstrun/green-black_1315122433.gif b/frontend/imgradient/firstrun/green-black_1315122433.gif Binary files differnew file mode 100755 index 0000000..148f3de --- /dev/null +++ b/frontend/imgradient/firstrun/green-black_1315122433.gif diff --git a/frontend/imgradient/firstrun/green-black_1315122439.gif b/frontend/imgradient/firstrun/green-black_1315122439.gif Binary files differnew file mode 100755 index 0000000..124ddea --- /dev/null +++ b/frontend/imgradient/firstrun/green-black_1315122439.gif diff --git a/frontend/imgradient/firstrun/green-black_1315122450.gif b/frontend/imgradient/firstrun/green-black_1315122450.gif Binary files differnew file mode 100755 index 0000000..fd32367 --- /dev/null +++ b/frontend/imgradient/firstrun/green-black_1315122450.gif diff --git a/frontend/imgradient/firstrun/green-darkorchid_1315122486.gif b/frontend/imgradient/firstrun/green-darkorchid_1315122486.gif Binary files differnew file mode 100755 index 0000000..4537a2d --- /dev/null +++ b/frontend/imgradient/firstrun/green-darkorchid_1315122486.gif diff --git a/frontend/imgradient/firstrun/pink-brown_1315117256_pepper.gif b/frontend/imgradient/firstrun/pink-brown_1315117256_pepper.gif Binary files differnew file mode 100755 index 0000000..6af4c65 --- /dev/null +++ b/frontend/imgradient/firstrun/pink-brown_1315117256_pepper.gif diff --git a/frontend/imgradient/firstrun/pink-brown_1315117275_pepper.gif b/frontend/imgradient/firstrun/pink-brown_1315117275_pepper.gif Binary files differnew file mode 100755 index 0000000..aaebf53 --- /dev/null +++ b/frontend/imgradient/firstrun/pink-brown_1315117275_pepper.gif diff --git a/frontend/imgradient/firstrun/pink-brown_1315117282_pepper.gif b/frontend/imgradient/firstrun/pink-brown_1315117282_pepper.gif Binary files differnew file mode 100755 index 0000000..bdab6d8 --- /dev/null +++ b/frontend/imgradient/firstrun/pink-brown_1315117282_pepper.gif diff --git a/frontend/imgradient/firstrun/pink-brown_1315117337_pepper.gif b/frontend/imgradient/firstrun/pink-brown_1315117337_pepper.gif Binary files differnew file mode 100755 index 0000000..b919dd4 --- /dev/null +++ b/frontend/imgradient/firstrun/pink-brown_1315117337_pepper.gif diff --git a/frontend/imgradient/firstrun/pink-brown_1315117344_pepper.gif b/frontend/imgradient/firstrun/pink-brown_1315117344_pepper.gif Binary files differnew file mode 100755 index 0000000..44aa4bb --- /dev/null +++ b/frontend/imgradient/firstrun/pink-brown_1315117344_pepper.gif diff --git a/frontend/imgradient/firstrun/red-black_1315104452_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104452_pepper.gif Binary files differnew file mode 100755 index 0000000..0c5e456 --- /dev/null +++ b/frontend/imgradient/firstrun/red-black_1315104452_pepper.gif diff --git a/frontend/imgradient/firstrun/red-black_1315104469_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104469_pepper.gif Binary files differnew file mode 100755 index 0000000..0c5e456 --- /dev/null +++ b/frontend/imgradient/firstrun/red-black_1315104469_pepper.gif diff --git a/frontend/imgradient/firstrun/red-black_1315104474_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104474_pepper.gif Binary files differnew file mode 100755 index 0000000..60c971c --- /dev/null +++ b/frontend/imgradient/firstrun/red-black_1315104474_pepper.gif diff --git a/frontend/imgradient/firstrun/red-black_1315104486_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104486_pepper.gif Binary files differnew file mode 100755 index 0000000..56a4573 --- /dev/null +++ b/frontend/imgradient/firstrun/red-black_1315104486_pepper.gif diff --git a/frontend/imgradient/firstrun/red-black_1315104496_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104496_pepper.gif Binary files differnew file mode 100755 index 0000000..d7077e0 --- /dev/null +++ b/frontend/imgradient/firstrun/red-black_1315104496_pepper.gif diff --git a/frontend/imgradient/firstrun/red-black_1315104503_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104503_pepper.gif Binary files differnew file mode 100755 index 0000000..d7077e0 --- /dev/null +++ b/frontend/imgradient/firstrun/red-black_1315104503_pepper.gif diff --git a/frontend/imgradient/firstrun/red-black_1315104513_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104513_pepper.gif Binary files differnew file mode 100755 index 0000000..7a0b613 --- /dev/null +++ b/frontend/imgradient/firstrun/red-black_1315104513_pepper.gif diff --git a/frontend/imgradient/firstrun/red-black_1315104557_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104557_pepper.gif Binary files differnew file mode 100755 index 0000000..ecbe32a --- /dev/null +++ b/frontend/imgradient/firstrun/red-black_1315104557_pepper.gif diff --git a/frontend/imgradient/firstrun/red-black_1315104564_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104564_pepper.gif Binary files differnew file mode 100755 index 0000000..bf2c16a --- /dev/null +++ b/frontend/imgradient/firstrun/red-black_1315104564_pepper.gif diff --git a/frontend/imgradient/firstrun/red-black_1315104570_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104570_pepper.gif Binary files differnew file mode 100755 index 0000000..ecbe32a --- /dev/null +++ b/frontend/imgradient/firstrun/red-black_1315104570_pepper.gif diff --git a/frontend/imgradient/firstrun/red-black_1315104579_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104579_pepper.gif Binary files differnew file mode 100755 index 0000000..ecbe32a --- /dev/null +++ b/frontend/imgradient/firstrun/red-black_1315104579_pepper.gif diff --git a/frontend/imgradient/firstrun/red-black_1315104583_pepper.gif b/frontend/imgradient/firstrun/red-black_1315104583_pepper.gif Binary files differnew file mode 100755 index 0000000..ecbe32a --- /dev/null +++ b/frontend/imgradient/firstrun/red-black_1315104583_pepper.gif diff --git a/frontend/imgradient/firstrun/red-black_1315105326_pepper.gif b/frontend/imgradient/firstrun/red-black_1315105326_pepper.gif Binary files differnew file mode 100755 index 0000000..6644b29 --- /dev/null +++ b/frontend/imgradient/firstrun/red-black_1315105326_pepper.gif diff --git a/frontend/imgradient/firstrun/snow2-orange_1315118700.gif b/frontend/imgradient/firstrun/snow2-orange_1315118700.gif Binary files differnew file mode 100755 index 0000000..6f6d7ad --- /dev/null +++ b/frontend/imgradient/firstrun/snow2-orange_1315118700.gif diff --git a/frontend/imgradient/firstrun/snow2-rosybrown1_1315117026_pepper.gif b/frontend/imgradient/firstrun/snow2-rosybrown1_1315117026_pepper.gif Binary files differnew file mode 100755 index 0000000..b38750f --- /dev/null +++ b/frontend/imgradient/firstrun/snow2-rosybrown1_1315117026_pepper.gif diff --git a/frontend/imgradient/firstrun/turquoise-black_1315109992.gif b/frontend/imgradient/firstrun/turquoise-black_1315109992.gif Binary files differnew file mode 100755 index 0000000..9cf70fd --- /dev/null +++ b/frontend/imgradient/firstrun/turquoise-black_1315109992.gif diff --git a/frontend/imgradient/firstrun/turquoise-black_1315109999.gif b/frontend/imgradient/firstrun/turquoise-black_1315109999.gif Binary files differnew file mode 100755 index 0000000..483e674 --- /dev/null +++ b/frontend/imgradient/firstrun/turquoise-black_1315109999.gif diff --git a/frontend/imgradient/firstrun/turquoise-black_1315110014.gif b/frontend/imgradient/firstrun/turquoise-black_1315110014.gif Binary files differnew file mode 100755 index 0000000..9cf70fd --- /dev/null +++ b/frontend/imgradient/firstrun/turquoise-black_1315110014.gif diff --git a/frontend/imgradient/firstrun/turquoise-black_1315110018.gif b/frontend/imgradient/firstrun/turquoise-black_1315110018.gif Binary files differnew file mode 100755 index 0000000..6f38016 --- /dev/null +++ b/frontend/imgradient/firstrun/turquoise-black_1315110018.gif diff --git a/frontend/imgradient/firstrun/turquoise-black_1315116328_pepper.gif b/frontend/imgradient/firstrun/turquoise-black_1315116328_pepper.gif Binary files differnew file mode 100755 index 0000000..9cf70fd --- /dev/null +++ b/frontend/imgradient/firstrun/turquoise-black_1315116328_pepper.gif diff --git a/frontend/imgradient/firstrun/turquoise-indianred_1315106124_pepper.gif b/frontend/imgradient/firstrun/turquoise-indianred_1315106124_pepper.gif Binary files differnew file mode 100755 index 0000000..81b90d7 --- /dev/null +++ b/frontend/imgradient/firstrun/turquoise-indianred_1315106124_pepper.gif diff --git a/frontend/imgradient/firstrun/turquoise-indianred_1315106162_pepper.gif b/frontend/imgradient/firstrun/turquoise-indianred_1315106162_pepper.gif Binary files differnew file mode 100755 index 0000000..71e6c54 --- /dev/null +++ b/frontend/imgradient/firstrun/turquoise-indianred_1315106162_pepper.gif diff --git a/frontend/imgradient/firstrun/turquoise-indianred_1315106185_pepper.gif b/frontend/imgradient/firstrun/turquoise-indianred_1315106185_pepper.gif Binary files differnew file mode 100755 index 0000000..301981e --- /dev/null +++ b/frontend/imgradient/firstrun/turquoise-indianred_1315106185_pepper.gif diff --git a/frontend/imgradient/firstrun/turquoise-indianred_1315106200_pepper.gif b/frontend/imgradient/firstrun/turquoise-indianred_1315106200_pepper.gif Binary files differnew file mode 100755 index 0000000..8944689 --- /dev/null +++ b/frontend/imgradient/firstrun/turquoise-indianred_1315106200_pepper.gif diff --git a/frontend/imgradient/firstrun/turquoise-turquoise1_1315165837_pepper.gif b/frontend/imgradient/firstrun/turquoise-turquoise1_1315165837_pepper.gif Binary files differnew file mode 100755 index 0000000..99091ca --- /dev/null +++ b/frontend/imgradient/firstrun/turquoise-turquoise1_1315165837_pepper.gif diff --git a/frontend/imgradient/firstrun/turquoise-turquoise1_1315165849_pepper.gif b/frontend/imgradient/firstrun/turquoise-turquoise1_1315165849_pepper.gif Binary files differnew file mode 100755 index 0000000..76d760e --- /dev/null +++ b/frontend/imgradient/firstrun/turquoise-turquoise1_1315165849_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315090214.gif b/frontend/imgradient/firstrun/white-black_1315090214.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315090214.gif diff --git a/frontend/imgradient/firstrun/white-black_1315090397.gif b/frontend/imgradient/firstrun/white-black_1315090397.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315090397.gif diff --git a/frontend/imgradient/firstrun/white-black_1315104253_pepper.gif b/frontend/imgradient/firstrun/white-black_1315104253_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315104253_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315104262_pepper.gif b/frontend/imgradient/firstrun/white-black_1315104262_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315104262_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315104264_pepper.gif b/frontend/imgradient/firstrun/white-black_1315104264_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315104264_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315104276_pepper.gif b/frontend/imgradient/firstrun/white-black_1315104276_pepper.gif Binary files differnew file mode 100755 index 0000000..77b98c8 --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315104276_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315104281_pepper.gif b/frontend/imgradient/firstrun/white-black_1315104281_pepper.gif Binary files differnew file mode 100755 index 0000000..1a840f7 --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315104281_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315104287_pepper.gif b/frontend/imgradient/firstrun/white-black_1315104287_pepper.gif Binary files differnew file mode 100755 index 0000000..77b98c8 --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315104287_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315104447_pepper.gif b/frontend/imgradient/firstrun/white-black_1315104447_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315104447_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315106725_pepper.gif b/frontend/imgradient/firstrun/white-black_1315106725_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315106725_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315113027.gif b/frontend/imgradient/firstrun/white-black_1315113027.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315113027.gif diff --git a/frontend/imgradient/firstrun/white-black_1315113031.gif b/frontend/imgradient/firstrun/white-black_1315113031.gif Binary files differnew file mode 100755 index 0000000..8174625 --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315113031.gif diff --git a/frontend/imgradient/firstrun/white-black_1315113039.gif b/frontend/imgradient/firstrun/white-black_1315113039.gif Binary files differnew file mode 100755 index 0000000..05df7ec --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315113039.gif diff --git a/frontend/imgradient/firstrun/white-black_1315113043.gif b/frontend/imgradient/firstrun/white-black_1315113043.gif Binary files differnew file mode 100755 index 0000000..f3fc060 --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315113043.gif diff --git a/frontend/imgradient/firstrun/white-black_1315113054.gif b/frontend/imgradient/firstrun/white-black_1315113054.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315113054.gif diff --git a/frontend/imgradient/firstrun/white-black_1315113059.gif b/frontend/imgradient/firstrun/white-black_1315113059.gif Binary files differnew file mode 100755 index 0000000..b4efc24 --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315113059.gif diff --git a/frontend/imgradient/firstrun/white-black_1315113066.gif b/frontend/imgradient/firstrun/white-black_1315113066.gif Binary files differnew file mode 100755 index 0000000..05df7ec --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315113066.gif diff --git a/frontend/imgradient/firstrun/white-black_1315113070.gif b/frontend/imgradient/firstrun/white-black_1315113070.gif Binary files differnew file mode 100755 index 0000000..f3fc060 --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315113070.gif diff --git a/frontend/imgradient/firstrun/white-black_1315113080.gif b/frontend/imgradient/firstrun/white-black_1315113080.gif Binary files differnew file mode 100755 index 0000000..d3d895d --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315113080.gif diff --git a/frontend/imgradient/firstrun/white-black_1315113215.gif b/frontend/imgradient/firstrun/white-black_1315113215.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315113215.gif diff --git a/frontend/imgradient/firstrun/white-black_1315113231_pepper.gif b/frontend/imgradient/firstrun/white-black_1315113231_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315113231_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315113240_pepper.gif b/frontend/imgradient/firstrun/white-black_1315113240_pepper.gif Binary files differnew file mode 100755 index 0000000..05df7ec --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315113240_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315113554_pepper.gif b/frontend/imgradient/firstrun/white-black_1315113554_pepper.gif Binary files differnew file mode 100755 index 0000000..05df7ec --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315113554_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315113558_pepper.gif b/frontend/imgradient/firstrun/white-black_1315113558_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315113558_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315114146_pepper.gif b/frontend/imgradient/firstrun/white-black_1315114146_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315114146_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315114150_pepper.gif b/frontend/imgradient/firstrun/white-black_1315114150_pepper.gif Binary files differnew file mode 100755 index 0000000..a460627 --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315114150_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315114156_pepper.gif b/frontend/imgradient/firstrun/white-black_1315114156_pepper.gif Binary files differnew file mode 100755 index 0000000..05df7ec --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315114156_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315114160_pepper.gif b/frontend/imgradient/firstrun/white-black_1315114160_pepper.gif Binary files differnew file mode 100755 index 0000000..f3fc060 --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315114160_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315115826_pepper.gif b/frontend/imgradient/firstrun/white-black_1315115826_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315115826_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315115828_pepper.gif b/frontend/imgradient/firstrun/white-black_1315115828_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315115828_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315115830_pepper.gif b/frontend/imgradient/firstrun/white-black_1315115830_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315115830_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315115831_pepper.gif b/frontend/imgradient/firstrun/white-black_1315115831_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315115831_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315116319_pepper.gif b/frontend/imgradient/firstrun/white-black_1315116319_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315116319_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315117463_pepper.gif b/frontend/imgradient/firstrun/white-black_1315117463_pepper.gif Binary files differnew file mode 100755 index 0000000..a4cb01c --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315117463_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315118264_pepper.gif b/frontend/imgradient/firstrun/white-black_1315118264_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315118264_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315118293_pepper.gif b/frontend/imgradient/firstrun/white-black_1315118293_pepper.gif Binary files differnew file mode 100755 index 0000000..2870694 --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315118293_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315118571_pepper.gif b/frontend/imgradient/firstrun/white-black_1315118571_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315118571_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315119305_pepper.gif b/frontend/imgradient/firstrun/white-black_1315119305_pepper.gif Binary files differnew file mode 100755 index 0000000..4604f76 --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315119305_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315119637_pepper.gif b/frontend/imgradient/firstrun/white-black_1315119637_pepper.gif Binary files differnew file mode 100755 index 0000000..f3fc060 --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315119637_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315120513_pepper.gif b/frontend/imgradient/firstrun/white-black_1315120513_pepper.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315120513_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315121913_pepper.gif b/frontend/imgradient/firstrun/white-black_1315121913_pepper.gif Binary files differnew file mode 100755 index 0000000..05df7ec --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315121913_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315121922_pepper.gif b/frontend/imgradient/firstrun/white-black_1315121922_pepper.gif Binary files differnew file mode 100755 index 0000000..f3fc060 --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315121922_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315121930_pepper.gif b/frontend/imgradient/firstrun/white-black_1315121930_pepper.gif Binary files differnew file mode 100755 index 0000000..9a0f7d9 --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315121930_pepper.gif diff --git a/frontend/imgradient/firstrun/white-black_1315122356.gif b/frontend/imgradient/firstrun/white-black_1315122356.gif Binary files differnew file mode 100755 index 0000000..9d68cfd --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315122356.gif diff --git a/frontend/imgradient/firstrun/white-black_1315122405.gif b/frontend/imgradient/firstrun/white-black_1315122405.gif Binary files differnew file mode 100755 index 0000000..ca9c9fe --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315122405.gif diff --git a/frontend/imgradient/firstrun/white-black_1315159828_pepper.gif b/frontend/imgradient/firstrun/white-black_1315159828_pepper.gif Binary files differnew file mode 100755 index 0000000..ebae0c0 --- /dev/null +++ b/frontend/imgradient/firstrun/white-black_1315159828_pepper.gif diff --git a/frontend/imgradient/firstrun/white-turquoise_1315113096.gif b/frontend/imgradient/firstrun/white-turquoise_1315113096.gif Binary files differnew file mode 100755 index 0000000..3ae9b16 --- /dev/null +++ b/frontend/imgradient/firstrun/white-turquoise_1315113096.gif diff --git a/frontend/imgradient/firstrun/white-turquoise_1315113100.gif b/frontend/imgradient/firstrun/white-turquoise_1315113100.gif Binary files differnew file mode 100755 index 0000000..3ae9b16 --- /dev/null +++ b/frontend/imgradient/firstrun/white-turquoise_1315113100.gif diff --git a/frontend/imgradient/firstrun/white-turquoise_1315113101.gif b/frontend/imgradient/firstrun/white-turquoise_1315113101.gif Binary files differnew file mode 100755 index 0000000..3ae9b16 --- /dev/null +++ b/frontend/imgradient/firstrun/white-turquoise_1315113101.gif diff --git a/frontend/imgradient/index.html b/frontend/imgradient/index.html new file mode 100755 index 0000000..dd4c8f4 --- /dev/null +++ b/frontend/imgradient/index.html @@ -0,0 +1,541 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<!-- + __ __ __ __ __ __ __ +/_/\/\ /_/\/\ /_/\/\ /_/\/\ /_/\/\ /_/\/\ /_/\/\ +\_\ / \_\ / \_\ / \_\ / \_\ / \_\ / \_\ / +/_/ \ /_/ \ /_/ \ /_/ \ /_/ \ /_/ \ /_/ \ +\_\/\ \ \_\/\ \ \_\/\ \ \_\/\ \ \_\/\ \ \_\/\ \ \_\/\ \ + \_\/ \_\/ \_\/ \_\/ \_\/ \_\/ \_\/ +--> + +<html> +<head> +<title>GRADIENT PHOTOBLASTER</title> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta property="og:title" content="GRADIENT PHOTOBLASTER"/> +<meta property="og:type" content="website"/> +<meta name=Author content="Pepper .... with help from Jules Welter/LaPlace"/> +<meta property="og:url" content="http://asdf.us/imgradient/"/> +<meta property="og:image" content="http://asdf.us/g/experiment/whitegreencrazy.jpg" /> +<meta property="og:site_name" content="asdf.us"/> +<meta property="og:description" content="choose colors and options, let it flow out of you."/> +<meta property="fb:admins" content="100001923956223,1709246"/> +<link href="css/custom-theme/jquery-ui-1.8.16.custom.css" rel="stylesheet" type="text/css" /> +<link rel="stylesheet" type="text/css" href="/im/colors/css/jquery.fancybox.css?v=2.1.5" media="screen" /> +<style type="text/css"> +* + { + padding: 0; + margin: 0; + font-family: times; + } +body + { + background-color: #e6e0e0; + color: #696969; + overflow-x:hidden; + } +h1 + { + font-size: 40px; + } +#brightness-slider,#hue-slider,#saturation-slider,#blur-slider + { + margin-top:10px; + margin-bottom:10px; + background-color:#B3B3B3; + } +#stripenumber,#stripeintensity,#percentbeveled + { + height:10px; + width :25px; + font-size:9; + } +#controls,#result + { + padding: 10px; + width: 460px; + } +#controls + { + display:block; + font-size: 14px; + top: 10px; left: 10px; + z-index: 5; + background-color: #fff; + -moz-box-shadow: 0px 0px 9px 3px mediumseagreen; + -webkit-box-shadow: 0px 0px 9px 3px mediumseagreen; + box-shadow: 0px 0px 9px 3px mediumseagreen; + border: 60px outset #777; + } +#result + { + background-color: #d6d0d0; + top: 10px; left: 580px; + z-index: 5; + display: none; + position: fixed; + } +#instructions + { + position: absolute; + bottom: 10px; + left: 10px; + line-height: 18px; + z-index: 1; + } +p + { + background-color: #fff; + padding: 10px; + font-size: 14px; + width: 430px; + display: block; + } +#gallery-link + { + background-color: #fff; + position: absolute; + top: 10px; + right: 10px; + padding: 10px; + z-index: 10; + } +.error + { + color: red; + font-size: 20px; + } +a + { + color: #b4d; + font-weight: bold; + } +label + + { + display: inline-block; + width: 300px; + padding-right: 10px; + text-align: center; + } +input[type=text] + { + width: 50px; + } +#img-url,#output-url,#img-background + { + width: 200px; + } +#img-width,#img-height,#img-brightness,#img-saturation,#img-contrast,#img-hue,#img-rotate,#img-blur,#img-tilt + { + width: 50px; + text-align: right; + } +button + { + padding: 2px 5px; + font-size: 16px; + width:200px; + float:right; + font-weight:bold; + color:#222222; + } +#result img + { + max-width: 400px; + max-height: 400px; + } +#output-cmd + { + font-size: 12px; + white-space: pre; + } +.shim + { + height: 10px; + clear: both; + display: block; + } +#output-url + { + width: 320px; + } +#likebutton + { + position: fixed; + bottom: 10px; + right: 10px; + width: 350px; + background-color: #fff; + padding: 10px; + color: #ddd; + font-family: times; + text-transform: uppercase; + } +.arrow + { + float:right; + white-space:inherit; + display:inline; + } + +</style> +<body> +<div id="error"></div> +<div id="controls"> +<form id="reset" onsubmit="return false"> +<h1> + GRADIENT GENERATOR FOR PHOTOBLASTER + <img src="http://i.asdf.us/im/4e/angreekcolumnshowcaselg_1315115918_pepper.gif"/> + <img src="http://i.asdf.us/im/4e/angreekcolumnshowcaselg_1315115933_pepper.gif"/> + <img src="http://i.asdf.us/im/4e/angreekcolumnshowcaselg_1315115941_pepper.gif"/> + <img src="http://i.asdf.us/im/4e/angreekcolumnshowcaselg_1315115946_pepper.gif"/> + <img src="http://i.asdf.us/im/4e/angreekcolumnshowcaselg_1315115946_pepper.gif"/> + <img src="http://i.asdf.us/im/4e/angreekcolumnshowcaselg_1315115946_pepper.gif"/> + <img src="http://i.asdf.us/im/4e/angreekcolumnshowcaselg_1315115946_pepper.gif"/> + <img src="http://i.asdf.us/im/4e/angreekcolumnshowcaselg_1315115946_pepper.gif"/> +</h1> + + <span class="shim"></span> + + + <label><span style="font-weight:bold; color:black;">CHOOSE A GRADIENT TYPE<span class="arrow">→</span></span></label> + <select id="gradient-type"> + <option selected="selected" value="gradient">STRAIGHT FADE</option> + <option value="plasma">PLASMA</option> + <!-- <option value="-function sinusoid 4,-90 gradient:">bands</option>--> + <option value="canvas">JUST A FLAT COLOR</option> + <option value="radial">RADIAL GRADIENT</option> + <option value="colorspace">GRAYSCALE PLASMA</option> + <option value="plasmawash">PLASMA WASH</option> + <option value="gradientwash">GRADIENT WASH</option> + <option value="mirrored">MIRRORED PLASMA</option> + <option value="noise">RANDOM NOISE</option> + </select> + + <span class="shim"></span> + + <label><span style="font-weight:bold">ADJUST THE WIDTH</span><span class="arrow">→</span></label> + <input type="text" id="img-width" value="400" /><small>px</small> + <br/> + + <span class="shim"></span> + + <label><span style="font-weight:bold">ADJUST THE HEIGHT</span><span class="arrow">→</span></label> + <input type="text" id="img-height" value="400" /><small>px</small> + <br/> + + <span class="shim"></span> + + <label>CHOOSE SOME COLORS<span class="arrow">→</span></label> + <span class="shim"></span> + + <label><span style="font-weight:bold; color:black;">COLOR 1</span><span class="arrow">→</span></label> + <input type="text" id="img-color1" value="white" class="color1" /> <a href="http://asdf.us/im/colors" target="_blank" class="color1">color list</a> + <br/> + + <span class="shim"></span> + + <label><span style="font-weight:bold; color:black;">COLOR 2</span><span class="arrow">→</span></label> + <input type="text" id="img-color2" value="black" class="color2"/> <a href="http://asdf.us/im/colors" target="_blank" class="color2">color list</a> + <br/> + + <span class="shim"></span> + + <span style="font-size:11px"> + <label>BANDS(also called stripes)?<span class="arrow">→</span></label> + <input type="checkbox" id="stripes" value="1" /> + <small>if yes...</small><label>NUMBER:</label><input value="" type="text" id="stripenumber"></input><small>0-400</small><label>INTENSITY:</label><input value="" type="text" id="stripeintensity"></input><small>0-2000</small> + </span> + + <span class="shim"></span> + <span class="shim"></span> + + <label>BLURRINESS <small>(0-20)</small><span class="arrow">→</span></label> + <input type="text" id="img-blur" value="" /> + <br/> + + <div class="slider" id="blur-slider"></div> + + <label>HUE <small>(0-200)</small><span class="arrow">→</span></label> + <input type="text" id="img-hue" value="" /> + <br/> + + <div class="slider" id="hue-slider"></div> + + <label>SATURATION <small>(0-200)</small><span class="arrow">→</span></label> + <input type="text" id="img-saturation" value="" /> + <br/> + + <div class="slider" id="saturation-slider"></div> + + <label>BRIGHTNESS <small>(0-200)</small><span class="arrow">→</span></label> + <input type="text" id="img-brightness" value="" /> + <br/> + + <div class="slider" id="brightness-slider"></div> + + <span class="shim"></span> + + + <label><span style="font-size:11px">CHOOSE A HALFTONE FILTER</span><span class="arrow">→</span></label> + <select id="halftone-type"> + <option selected="selected" value="">None</option> + <option value="checkeredfade">checkered-fade</option> + <option value="etchedtransition">etched-transition</option> + <option value="bendaydots">benday dots</option> + <option value="smallerdots1">smaller dots 1</option> + <option value="smallerdots2">smaller dots 2</option> + <option value="flatstripes">flat stripes</option> + </select> + + + <span class="shim"></span> + + <label><span style="font-size:11px">ADD A BEVELED BORDER</span><span class="arrow">→</span></label> + + <select id="bevel-type"> + <option selected="selected" value="">None</option> + <option value="flatout">flat out</option> + <option value="flatinner">flat inner</option> + <option value="evenlyframed">evely framed</option> + <option value="biginner">big inner</option> + <option value="bigouter">big outer</option> + <option value="dramaticflatout">dramatic flat out</option> + <option value="dramaticflatinner">dramatic flat inner</option> + </select> + + <span style="font-size:11px"><label>PERCENT BEVELED?</label></span> <input val="" type="text" id="percentbeveled"><small>%</small> + + + <span class="shim"></span> + <span class="shim"></span> + <label>FLIP HORIZONTALLY? + <span class="arrow">→</span></label> + <input type="checkbox" id="img-flop" value="1" /> + <br/> + + <label>FLIP VERTICALLY?<span class="arrow">→</span></label> + <input type="checkbox" id="img-flip" value="1" /> + <br/> + <label>TILT<small>(0-360)</small><span class="arrow">→</span></label> + <input type="text" id="img-tilt" value="" />° + <br/> + <span class="shim"></span> + + <label>ROTATE THE CANVAS<small>(0-360)</small><span class="arrow">→</span></label> + <input type="text" id="img-rotate" value="" />° + <br/> + + <span class="shim"></span> + + <span class="shim"></span> + + <label>output format:</label> + <select id="img-format"> + <option selected="selected">png</option> + <option>jpg</option> + <option>gif</option> + </select> + + <span class="shim"></span> + + <label>PUT YOUR NAME HERE >>></label> + <input type="text" id="img-name" value="" /> + <br/> + + <span class="shim"></span> + + <label> </label> + <button id="img-generate">GENERATE</button> + + <span class="shim"></span> + <br> + VIEW AND ARRANGE THE PHOTOBLASTS → <a href="/im/gallery/" target="_blank">Image Gallery</a><br/> + <span class="shim"></span> + OPEN THE PHOTOBLASTER EDITOR → <a href="/im" target="_blank">PHOTOBLASTER</a> + <span class="shim"></span> + TOP PHOTOBLASTS GO TO THE TUMBLR → <a href="http://photoblaster.tumblr.com/">Photoblaster Tumblr</a> + </p> + +</div> + +<div id="result"> + → <input type="text" id="output-url"/><br/> + <span id="output-cmd"></span><br/> + + <img id="output-img" /> +</div> +</form> +</div> + +<div id="likebutton"> +<div id="fb-root" style="background-color: transparent;"></div><script src="http://connect.facebook.net/en_US/all.js#appId=236917449658413&xfbml=1"></script><fb:like href="http://asdf.us/im/" send="false" width="347" show_faces="true" colorscheme="light" font="" style="background-color: transparent;"></fb:like> +</div> + +<script type="text/javascript" src="/js/jquery.js"></script> +<script type="text/javascript" src="/js/jquery-ui-1.8.16.custom.min.js"></script> +<script type="text/javascript" src="/im/colors/js/jquery.remember-state.js"></script> +<script type="text/javascript" src="/im/colors/js/jquery.fancybox.js?v=2.1.5"></script> +<script type="text/javascript" src="/js/colors_iframe.js"></script> +<script type="text/javascript"> + + $(function() { + $( "#blur-slider" ).slider({ + value:0, + min: 0, + max: 20, + step: 1, + slide: function( event, ui ) { + $( "#img-blur" ).val(ui.value); + } + }); + $( "#img-blur" ).val( $( "#blur-slider" ).slider( "value" ) ); + + $( "#brightness-slider" ).slider({ + value:100, + min: 0, + max: 200, + step: 1, + slide: function( event, ui ) { + $( "#img-brightness" ).val(ui.value); + } + }); + $( "#img-brightness" ).val( $( "#brightness-slider" ).slider( "value" ) ); + + $( "#hue-slider" ).slider({ + value:100, + min: 0, + max: 200, + step: 1, + slide: function( event, ui ) { + $( "#img-hue" ).val(ui.value); + } + }); + $( "#img-hue" ).val($( "#hue-slider" ).slider( "value" ) ); + + $( "#saturation-slider" ).slider({ + value:100, + min: 0, + max: 200, + step: 1, + slide: function( event, ui ) { + $( "#img-saturation" ).val(ui.value); + } + }); + $( "#img-saturation" ).val($( "#saturation-slider" ).slider( "value" ) ); + }); + +var Main = + { + API_HEADER: "#@imgradient", + enter: function (e) + { +// console.log("calling enter") + if (e.keyCode === 13){ + Main.go() + } + }, + go: function () + { + $("#output-cmd").html('generating...').show() + $("#result").show() + var data = + { + flip: $('#img-flip:checked').val() !== undefined ? "true" : "false", + flop: $('#img-flop:checked').val() !== undefined ? "true" : "false", + tilt: $('#img-tilt').val(), + rotate: $("#img-rotate").val(), + subtract: $("#img-subtract").val(), + width: $("#img-width").val(), + height: $("#img-height").val(), + color2: $("#img-color2").val(), + color1: $("#img-color1").val(), + brightness: $("#img-brightness").val(), + saturation: $("#img-saturation").val(), + blurriness: $("#img-blur").val(), + hue: $("#img-hue").val(), + contrast: $("#img-contrast").val(), + gradienttype: $('#gradient-type :selected').val(), + bevel: $('#bevel-type :selected').val(), + percentbeveled: $('#percentbeveled').val(), + halftone: $('#halftone-type :selected').val(), + stripes: $('#stripes:checked').val() !== undefined ? "true" : "false", + stripenumber: $('#stripenumber').val(), + stripeintensity: $('#stripeintensity').val(), + format: $('#img-format :selected').text(), + name: $("#img-name").val(), + } + if (data.name.length > 0){ + document.cookie = "imname="+data.name+";path=/;domain=.asdf.us;max-age=1086400" + } + $.post("/im/api/imgradient", data, Main.callback) + $("#controls").css('margin',"") + }, + error: function (s) + { + $("#output-cmd").html("<span class='error'>ERROR: " + s + "</span>").show() + $("#output-url").hide() + $("#output-img").hide() + }, + callback: function (data) + { + data = JSON.parse(data) + if (data.error){ + return Main.error(data.error) + } + $("#output-cmd").html("size: "+Main.filesize(data.size)+"<br/>"+data.height + " x " + data.width) + $("#output-url").val(data.url) + $("#output-img").hide().attr("src", data.url).fadeIn(700) + }, + filesize: function (size) + { + if (size < 1024) + return size + " bytes" + if (size < 1024 * 1024) + return Math.floor (size/1024) + " KB" + else + return Math.floor (size/(1024*1024)) + " MB" + }, + cookie: function () + { + if (document.cookie) + { + var cookies = document.cookie.split(";") + for (i in cookies) + { + var cookie = cookies[i].split("=") + if (cookie[0].indexOf("imname") !== -1) + { + if (cookie[1] !== 'false' && cookie[1] !== 'undefined' && cookie[1].length) + { + return cookie[1] + } + } + } + } + return "" + }, + init: function () + { + var name = Main.cookie () + $("#img-name").val(name) + }, +} + +$(document).ready(function(){ + Main.init () + $('form').submit(function() { + return false; + }); + $(document).keydown(Main.enter) + $("#img-generate").click(Main.go) + document.getElementById("reset").reset() +}) +</script> +<!--<script type="text/javascript" src="http://asdf.us/js/pbembed.js"></script>--> +</body> +</html> + diff --git a/frontend/imgradient/jquery-ui-1.8.16.custom.min.js b/frontend/imgradient/jquery-ui-1.8.16.custom.min.js new file mode 100755 index 0000000..3042d0b --- /dev/null +++ b/frontend/imgradient/jquery-ui-1.8.16.custom.min.js @@ -0,0 +1,84 @@ +/*! + * jQuery UI 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.16", +keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({propAttr:c.fn.prop||c.fn.attr,_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d= +this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this, +"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart": +"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight, +outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a, +"tabindex"),d=isNaN(b);return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&& +a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&& +c.ui.isOverAxis(b,e,i)}})}})(jQuery); +;/*! + * jQuery UI Widget 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)try{b(d).triggerHandler("remove")}catch(e){}k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(d){}});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]= +function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)): +d;if(e&&d.charAt(0)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options= +b.extend(true,{},this.options,this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+ +"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled", +c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery); +;/*! + * jQuery UI Mouse 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b){var d=false;b(document).mouseup(function(){d=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+ +this.widgetName)},_mouseDown:function(a){if(!d){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,f=a.which==1,g=typeof this.options.cancel=="string"&&a.target.nodeName?b(a.target).closest(this.options.cancel).length:false;if(!f||g||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted= +this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(e){return c._mouseMove(e)};this._mouseUpDelegate=function(e){return c._mouseUp(e)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return d=true}},_mouseMove:function(a){if(b.browser.msie&& +!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted= +false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +;/* + * jQuery UI Slider 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var a=this,b=this.options,c=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f=b.values&&b.values.length||1,e=[];this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+ +this.orientation+" ui-widget ui-widget-content ui-corner-all"+(b.disabled?" ui-slider-disabled ui-disabled":""));this.range=d([]);if(b.range){if(b.range===true){if(!b.values)b.values=[this._valueMin(),this._valueMin()];if(b.values.length&&b.values.length!==2)b.values=[b.values[0],b.values[0]]}this.range=d("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(b.range==="min"||b.range==="max"?" ui-slider-range-"+b.range:""))}for(var j=c.length;j<f;j+=1)e.push("<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>"); +this.handles=c.add(d(e.join("")).appendTo(a.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle", +g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!a.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");i=a._start(g,l);if(i===false)return}break}m=a.options.step;i=a.options.values&&a.options.values.length? +(h=a.values(l)):(h=a.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=a._valueMin();break;case d.ui.keyCode.END:h=a._valueMax();break;case d.ui.keyCode.PAGE_UP:h=a._trimAlignValue(i+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=a._trimAlignValue(i-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===a._valueMax())return;h=a._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===a._valueMin())return;h=a._trimAlignValue(i- +m);break}a._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(g,k);a._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy(); +return this},_mouseCapture:function(a){var b=this.options,c,f,e,j,g;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:a.pageX,y:a.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(b.range===true&&this.values(1)===b.min){g+=1;e=d(this.handles[g])}if(this._start(a,g)===false)return false; +this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();b=e.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-e.width()/2,top:a.pageY-b.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(a,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(a){var b= +this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b;if(this.orientation==="horizontal"){b= +this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b); +c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var f;if(this.options.values&&this.options.values.length){f=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>f||b===1&&c<f))c=f;if(c!==this.values(b)){f=this.values();f[b]=c;a=this._trigger("slide",a,{handle:this.handles[b],value:c,values:f});this.values(b?0:1);a!==false&&this.values(b,c,true)}}else if(c!==this.value()){a=this._trigger("slide",a,{handle:this.handles[b],value:c}); +a!==false&&this.value(c)}},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value= +this._trimAlignValue(a);this._refreshValue();this._change(null,0)}else return this._value()},values:function(a,b){var c,f,e;if(arguments.length>1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e<c.length;e+=1){c[e]=this._trimAlignValue(f[e]);this._change(null,e)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(a): +this.value();else return this._values()},_setOption:function(a,b){var c,f=0;if(d.isArray(this.options.values))f=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(a){case "disabled":if(b){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.propAttr("disabled",true);this.element.addClass("ui-disabled")}else{this.handles.propAttr("disabled",false);this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation(); +this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<f;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c;if(arguments.length){b=this.options.values[a]; +return b=this._trimAlignValue(b)}else{b=this.options.values.slice();for(c=0;c<b.length;c+=1)b[c]=this._trimAlignValue(b[c]);return b}},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a= +this.options.range,b=this.options,c=this,f=!this._animateOff?b.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({width:e- +g+"%"},{queue:false,duration:b.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:b.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[f?"animate":"css"]({width:e+"%"}, +b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.16"})})(jQuery); +;
\ No newline at end of file diff --git a/frontend/imgrid/3ddirs.txt b/frontend/imgrid/3ddirs.txt new file mode 100755 index 0000000..5c00c34 --- /dev/null +++ b/frontend/imgrid/3ddirs.txt @@ -0,0 +1,256 @@ +00 +01 +02 +03 +04 +05 +06 +07 +08 +09 +0a +0b +0c +0d +0e +0f +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +1a +1b +1c +1d +1e +1f +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +2a +2b +2c +2d +2e +2f +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +3a +3b +3c +3d +3e +3f +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +4a +4b +4c +4d +4e +4f +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +5a +5b +5c +5d +5e +5f +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +6a +6b +6c +6d +6e +6f +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +7a +7b +7c +7d +7e +7f +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +8a +8b +8c +8d +8e +8f +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +9a +9b +9c +9d +9e +9f +a0 +a1 +a2 +a3 +a4 +a5 +a6 +a7 +a8 +a9 +aa +ab +ac +ad +ae +af +b0 +b1 +b2 +b3 +b4 +b5 +b6 +b7 +b8 +b9 +ba +bb +bc +bd +be +bf +c0 +c1 +c2 +c3 +c4 +c5 +c6 +c7 +c8 +c9 +ca +cb +cc +cd +ce +cf +d0 +d1 +d2 +d3 +d4 +d5 +d6 +d7 +d8 +d9 +da +db +dc +dd +de +df +e0 +e1 +e2 +e3 +e4 +e5 +e6 +e7 +e8 +e9 +ea +eb +ec +ed +ee +ef +f0 +f1 +f2 +f3 +f4 +f5 +f6 +f7 +f8 +f9 +fa +fb +fc +fd +fe +ff diff --git a/frontend/imgrid/backup.html b/frontend/imgrid/backup.html new file mode 100755 index 0000000..86ee325 --- /dev/null +++ b/frontend/imgrid/backup.html @@ -0,0 +1,466 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> +<html> +<!-- + * pepper * + *** and *** + **** JMD **** + * ****** internet CHAMPIONS ****** * + * *************************************** * + ** * ______*______ * ** + ***** * ______*______ * ***** + ******* ______*______ ******* + *** **** * **** *** + ****** *oo******* *** *******oo* ****** + * *o********* *********o* * + * * * * + * * _ _ * * + * * -_ _- * * + * * -_ _- * * + * * -___- * * + * * + ********************* + * ** ** * + * ** ** * + * _-----_ * + ********* + +--> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta name="description" content="IMGRID A 3D GRID-PLANE GENERATOR" > + <meta name="keywords" content="photoblaster, 3D" > + <meta name=Author content="Pepper Dreamteamer - 2011 www.facebook.com/AAAFFF"> + <link rel="shortcut icon" href="http://asdf.us/imgrid/favicon.ico"> + <link rel="image_src" href="http://vfile.com/public/img/1.png" > + <html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml"> + <meta property="og:title" content="imgrid" /> + <meta property="og:type" content="website" /> + <meta property="og:url" content="http://asdf.us/imgrid" /> + <meta property="og:site_name" content="IMGRID - A 3D-GRID-PLANE GENERATOR" /> + <meta property="og:image" content="http://asdf.us/imgrid/greatgrids/images/gg7.png"/> + <title>IMGRID - a 3D GRID-PLANE GENERATOR</title> + + <link rel="stylesheet" href="general.css" type="text/css" media="screen" /> + <link href='jquery-ui-1.8.16.custom.css' rel='stylesheet' type='text/css' /> + <link href='cssreset.css' rel='stylesheet' type='text/css'/> + <link href='http://fonts.googleapis.com/css?family=Varela+Round' rel='stylesheet' type='text/css'> + <style type='text/css'> + body + { + font-family: 'Varela Round', sans-serif; + font-size:10pt; + } + h1 + { + font-size:18px; + width:50%; + margin:10px; + padding:10px; + } + #flatcontrols + { + width:40%; + margin:10px; + padding:10px; + } + .gridadj,.background,.dimensions,.links + { + display:none; + } + #thegrid,#thedimensions,#thebackground,#links + { + background-color:whitesmoke; + margin-left:20px; + -moz-box-shadow: 0px 0px 9px 3px #8B7D7B; + -webkit-box-shadow: 0px 0px 9px 3px #8B7D7B; + box-shadow: 0px 0px 9px 3px #8B7D7B; + } + #links + { + line-height:2; + padding:10px; + } + .results + { + display:none; + position:relative; + } + #result + { + position:fixed; + left:50%; + top:20px; + padding-right:15px; + } + #output-img img + { + max-height:70%; + max-width:100%; + } + #output-url + { + width:100%; + } + .slider + { + background-color:#eee5de; + display:inline-block; + width:50%; + } + #opacity-slider, #spacing-slider + { + width:100%; + display:inline-block; + margin-right:0; + margin-left:0; + } + input + { + width:70px; + } + .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default + { + background-color:#555; + } + .urlinput + { + width:60%; + } + a + { + background-color:white; + max-width:100px; + } + a:link + { + color: black; + } + a:visited + { + COLOR: black; + } + a:hover + { + COLOR: black; + } + a:active + { + COLOR: black; + } + table td + { + padding:4px; + } + table tr + { +// border: solid 2px; + } + .gridmore, .backgroundmore, .dimensionsmore, .linksmore + { + cursor:pointer; + } + #gridplug,#backgroundplug,#dimensionsplug,#linksplug + { + font-size:20px; + text-align:center; + } +button { + background: white; + color: #000000; + font-size: 18px; + font-family: Georgia, serif; + text-decoration: none; + vertical-align: middle; + } +.button:hover { + border-top-color: #78e072; + background: #78e072; + color: #000000; + } +table + { + empty-cells:show; + } +.generate + { + position:absolute; + left:320px; + top:240px; + -moz-box-shadow: 0px 0px 9px 3px pink; + -webkit-box-shadow: 0px 0px 9px 3px pink; + box-shadow: 0px 0px 9px 3px pink; + } + </style> +</head> +<body> + <div id='intro' style='position:absolute;top:0px;left:0px;width:100%;height:100%;background-image:url(background.gif);'><div style="background-image:url(background.gif); z-index:1000; height:inherit; width:inherit; position:fixed; left:50%; top:20px"> + <img src="athenafinal.gif"></img> + </div></div> + +<a href="http://asdf.us/imgrid/index.html" style:'cursor:pointer'><img src='http://asdf.us/im/8d/imgrid_1324285217_imgrid_1324210455_imgrid_1324210353_gradient_darkseagreencyan_1317343959___.png' style='position:fixed; top:-200px; z-index:-100;'></img> +<div style='font-size:30px;'><img style="width:500px" src="http://asdf.us/im/42/imgrid_1324542588_.png"></img></div></a> +<div style="font-size:12px;margin-left:20px;margin-bottom:20px;">3D-GRID-PLANE GENERATOR +<br> +hit enter or click GENERATE to get your 2D plane + +<span id='genbutton'><button id='generate'>GENERATE</button></span> +</div> + +<form id='theform'> + <div id="flatcontrols"> +<table> +<tr><td class='dimensionsmore'>DIMENSIONS</td> + + <td> <div id='dimensionsplug' class='dimensionsmore'>+</div></td></tr> + </table> + <div id='thedimensions'> + <table class='dimensions'> + <tr><td>HEIGHT</td> + <td> <input id='img-height' type='text' value='500'><span style="font-size:12px">PX</span></input></td></td> + <tr><td>WIDTH</td> + <td><input id='img-width' type='text' value='700'><span style="font-size:12px">PX</span></input></td></td> + <tr style="line-height:10px"><td> </tr><td> + </table> +<table style="width:100%" class="dimensions"> + <tr><td>SWING <input id='swing' type='text' value='0'></input></td></tr> + <tr id="swingslider" class="slider"></tr> + <tr><td>TILT <input id='tilt' type='text' value='0'></input></td></tr> + <tr id="tiltslider" class="slider"></tr> + <tr><td>ROLL <input id='roll' type='text' value='0'></input></td></tr> + <tr id="rollslider" class="slider"></tr> + <tr><td>ZOOM  (in/out)  <input id='zoom' type='text' value='0'></input></td></tr> + <tr id="zoomslider" class="slider" value='0'></tr> + +</table> +<table class="dimensions"> + <tr><td> </td></tr> + <tr><td>CROP WHITESPACE</td><td><input type="checkbox" id="trim" value="false"></input></td></tr> + <tr><td> </td></tr> + </table> +<table class='dimensions'> + <tr><td>IMAGE FORMAT</td><td> + <select id='format'> + <option selected='selected' value='png'>PNG</option> + <option value='gif'>GIF</option> + <option value='jpg'>JPG</option> + </select></td></tr></table> + </div> +<table> +<tr><td class='gridmore'>GRID AND IMAGE</td> + + <td> <div id='gridplug' class='gridmore'>+</div></td></tr> + </table> + + <div id='thegrid'> +<table class='gridadj'> + <tr><td>USE IMAGE INSTEAD OF GRID</td> + <td><input type="text" class="urlinput" type="text" id="imageinstead" value="">IMG URL eg:http://ww...</input></td> + </tr></table> + <table class='gridadj'> + <tr><td>GRID THICKNESS:</td> + <td><input id='line-thickness' type='text' value='1'></td><td><span style="font-size:12px">PX  </span></input></td></tr> + + <tr class='gridadj'><td>GRID COLOR:</td> + <td><input id='line-color' type='text' value='BLACK'></input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></td> + </tr> + + </table> + <table> + <tr class='gridadj'> + <td>GRID OPACITY: </td> + <td><input id='line-opacity' type='text' value='1'></input></td> + <td style="width:140px; height: .8em; margin:0; padding:0;" class="slider" style="margin:0;padding:0;"id="opacity-slider"></td> + </tr> + + <tr class='gridadj'> + <td>GRID SPACING: </td> + <td><input id='line-spacing' type='text' value='0'></input></td> + <td class="slider" style="margin:0;padding:0;" id="spacing-slider"></td></tr> + + <tr class='gridadj'><td>USE ONLY VERTICAL LINES</td><td><input type="checkbox" id="v-lines" value="false"></input></td></tr> + + <tr class='gridadj'><td>USE ONLY HORIZONTAL LINES</td><td><input type="checkbox" id="h-lines" value="false" ></input></td></tr> + </table> +<table class='gridadj'><td>GRID BACKGROUND COLOR <input type="text" id="bg-color" value="transparent"></td><td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></input></td> + + </table> + <table class='gridadj'> + <tr><td>OR GRID BACKGROUND IMAGE</td> + <td><input class="urlinput" type="text" id="bg-image" value="">IMG URL eg:http://ww...</input></td></tr> + </table> + +<table class='gridadj'> + <tr><td>GRID-TRANSITION</td> + <td><select id="transition"> + <option selected="selected" value='background'>none</option> + <option value="dither">dithered</option> + <option value="random">noise</option> + <option value="tile">infinite</option> + <option value="edge">extended-edge</option> + </select></td></tr> + +</table> + <table class='gridadj'> + <tr><td>DROP SHADOW</td><td><input type='checkbox' id='shadow' value='false'</input></td></tr> + + +</table> +</div> + + + <table style='width:150px;'> + <tr><td class="backgroundmore">BACKGROUND</td> + <td><div id="backgroundplug" class="backgroundmore">+</div></td> + </tr> + </table> +<div id='thebackground'> + <table class='background'><td>BACKGROUND COLOR</td><td><input type="text" value="transparent" id="planebgcolor"></input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></td> </table> + <table class="background"> + + <tr><td>OR BACKGROUND IMAGE</td><td><input class='urlinput' type="text" value="" id="planebgimage">IMG URL eg:http://ww...</input></td></tr> + </table> + + <table class='background'><tr><td>SKYCOLOR</td><td><input type="text" value="none" id="skycolor">for the area above the horizon-line</input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></td> + </tr> +</table> + +</div> +<table> + <tr><td> </td></tr> + <tr><td>USERNAME</td><td><input type=text value="" id='username'></input></td><td><div class='linksmore' id='linksplug'>+</div></td> +<td> <div id='links' class='links'> + <a class='links' href="http://asdf.us/im/gallery">PHOTOBLASTER GALLERY</a><br> + <a class='links' href="http://asdf.us/imgrid/greatgrids/">THE GREAT GRIDS GALLERY</a><br> + <a class='links' href="http://asdf.us/im">MAIN PHOTOBLASTER EDITOR</a></br> +<div id="fb-root" style="position:fixed; bottom:10px; right:10px;background-color: transparent;"></div><script src="http://connect.facebook.net/en_US/all.js#appId=236917449658413&xfbml=1"></script><fb:like href="http://asdf.us/im/" send="false" width="347" show_faces="false" colorscheme="light" font="" style="background-color: transparent;"></fb:like> + + </div> + +</td></tr></table> + +<br> + + +</div> + +</div> + +</form> +<div id='result'> + <span id="output-cmd" class='results'> +</span> + <span id="output-img" class='results'></span> + <input id="output-url" class='results'></input> + <div id="output-info" class='results'></div> +</div> + + + + +<span class='copyright' style="position:fixed; bottom:10px; left:10px;">COPYRIGHT 2011 PEPPER DREAMTEAMER</span><a href='http://asdf.us/imgrid/greatgrids/index.html'><img class='copyright' style='display:inline; position:fixed; bottom:10px; left:290px; width:100px' src="blackplant.png"></img></a> +<script type="text/javascript" src="jquery-1.6.4.min.js"></script> +<script type="text/javascript" src="jquery-ui-1.8.16.custom.min.js"></script> +<script type='text/javascript'> +$(document).ready(function() + { + $('#intro').fadeOut(1000,function() + { + $('#intro').remove() + }) + }); +</script> +<script type="text/javascript" src="sliders.js"></script> +<script type="text/javascript" src="main.js"></script> +<!--<script src="popup.js" type="text/javascript"></script>--> +<!--<script type="text/javascript" src="picker.js"></script>--> +<script type='text/javascript'> + linksclicked = 'false'; + $('#linksplug').click(function(){ + $('.links').toggle('300') + + if(linksclicked === 'false'){ + $('#linksplug').html('-') + $('.links').css({'min-width':'275px','word-space':'nowrap','min-height':'100px'}) + linksclicked = 'true' + } + else{ + $('#linksplug').html('+') + $('#links').css('padding','0px'); + linksclicked = 'false' + } + $('.copyright').hide() + $("body,html").scrollTop(5000); + }) + + gridmoreclicked = 'false'; + $('.gridmore').click(function(){ + $('.gridadj').toggle('300') + + if(gridmoreclicked === 'false'){ + $('#gridplug').html('-') + $('#thegrid').css('padding','5px'); + gridmoreclicked = 'true' + $("html,body").scrollTop(1000); + } + else{ + $('#gridplug').html('+') + $('#thegrid').css('padding','0px'); + gridmoreclicked = 'false' + } + $('.copyright').hide() + }) + + + + backgroundmoreclicked = 'false'; + $('#backgroundplug').html('+'); + $('.backgroundmore').click(function(){ + $('.background').toggle('300') + if(backgroundmoreclicked === 'false'){ + $('#thebackground').css('padding','5px'); + $('#backgroundplug').html('-') + $("html,body").scrollTop(1000); + backgroundmoreclicked = 'true' + } + else{ + $('#backgroundplug').html('+') + $('#thebackground').css('padding','0px'); + backgroundmoreclicked = 'false' + } + $('.copyright').hide() + }); + + + dimensionsmoreclicked = 'false'; + $('#dimensionsplug').html('+'); + $('.dimensionsmore').click(function(){ + $('.dimensions').toggle('300') + if(dimensionsmoreclicked === 'false'){ + $('#dimensionsplug').html('-') + $('#thedimensions').css('padding','5px'); + $("html,body").scrollTop(1000); + dimensionsmoreclicked = 'true' + } + else{ + $('#dimensionsplug').html('+') + $('#thedimensions').css('padding','0px'); + dimensionsmoreclicked = 'false' + } + $('.copyright').hide() + }); + + + $('#bg-color').click(function(){ + nonecheck = $('#bg-color').val() + if(nonecheck === 'none') + { + $('#bg-color').val('') + } + }); +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/1.html b/frontend/imgrid/colors/1.html new file mode 100755 index 0000000..284b791 --- /dev/null +++ b/frontend/imgrid/colors/1.html @@ -0,0 +1,59 @@ +<html> +<!--<link rel="stylesheet" href="css/normalize.css">--> +<head> + <style type='text/css'> + html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0;} + body + { + margin-bottom:0px; + margin-left:0px; + margin-right:0px; + margin-top:0px; + } + #master + { + width:404px; + } + .slaves + { + width:100px; + background-color:gray; + height:40px; + display:inline-block; + } + </style> + + +</head> +<body> +<div id='master'> +<div class='slaves' style='background-color:pink'></div> +<div class='slaves' style='background-color:blue'></div> +<div class='slaves' style='background-color:dodgerblue'></div> +<div class='slaves' style='background-color:red'></div> + +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> + +</div> +<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> +<script type='text/javascript'> +$('.slaves').mouseover(function() + { + $(this).css('width','120px') + $('#master').css('width','500') + }).mouseout(function() + { + $(this).css({'width':'100px','position':'static'}) + $('#master').css('width','440') + + }); +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/blackshim.png b/frontend/imgrid/colors/blackshim.png Binary files differnew file mode 100755 index 0000000..a122193 --- /dev/null +++ b/frontend/imgrid/colors/blackshim.png diff --git a/frontend/imgrid/colors/colors/1.html b/frontend/imgrid/colors/colors/1.html new file mode 100755 index 0000000..284b791 --- /dev/null +++ b/frontend/imgrid/colors/colors/1.html @@ -0,0 +1,59 @@ +<html> +<!--<link rel="stylesheet" href="css/normalize.css">--> +<head> + <style type='text/css'> + html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0;} + body + { + margin-bottom:0px; + margin-left:0px; + margin-right:0px; + margin-top:0px; + } + #master + { + width:404px; + } + .slaves + { + width:100px; + background-color:gray; + height:40px; + display:inline-block; + } + </style> + + +</head> +<body> +<div id='master'> +<div class='slaves' style='background-color:pink'></div> +<div class='slaves' style='background-color:blue'></div> +<div class='slaves' style='background-color:dodgerblue'></div> +<div class='slaves' style='background-color:red'></div> + +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> + +</div> +<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> +<script type='text/javascript'> +$('.slaves').mouseover(function() + { + $(this).css('width','120px') + $('#master').css('width','500') + }).mouseout(function() + { + $(this).css({'width':'100px','position':'static'}) + $('#master').css('width','440') + + }); +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/colors/blackshim.png b/frontend/imgrid/colors/colors/blackshim.png Binary files differnew file mode 100755 index 0000000..a122193 --- /dev/null +++ b/frontend/imgrid/colors/colors/blackshim.png diff --git a/frontend/imgrid/colors/colors/grayshim.png b/frontend/imgrid/colors/colors/grayshim.png Binary files differnew file mode 100755 index 0000000..6f71223 --- /dev/null +++ b/frontend/imgrid/colors/colors/grayshim.png diff --git a/frontend/imgrid/colors/colors/hoverbutton.png b/frontend/imgrid/colors/colors/hoverbutton.png Binary files differnew file mode 100755 index 0000000..b14281e --- /dev/null +++ b/frontend/imgrid/colors/colors/hoverbutton.png diff --git a/frontend/imgrid/colors/colors/index.html b/frontend/imgrid/colors/colors/index.html new file mode 100755 index 0000000..93b1a9b --- /dev/null +++ b/frontend/imgrid/colors/colors/index.html @@ -0,0 +1,3507 @@ +<html> +<head> + +<style type='text/css'> + +body +{ +margin:0; +} + +#colorpicker +{ + +width:100%; +font-family:helvetica; +font-size:10px; +//background-color: gray; +//background-image: url("http://asdf.us/im/6f/gradient_bgdither_1321255670_pepper.gif"); +background-color: black; +background-image: url("http://dump.fm/static/img/bg.dither.gif") + +} + +#container div +{ +text-align:left; +display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +min-height: 30px; +zoom: 1; +word-wrap: break-word; +*display: inline; +cursor:pointer; +} + +#container +{ +margin:0 auto; +width:31%; +padding-top:100px; +padding-right:10px; +padding-left:10px; +text-align:center; +} + +#colornames +{ +color:white; +position:fixed; +font-size:50px; +top:50px; +left:2%; +width:400px; +} + +#switches + { + position:fixed; + top:20px; + right:1%; + height:400px; + width:300px; + font-size:20px; + border-style: groove; + border-width: 4px; + background-color:gray; + padding:2px; + box-shadow: 10px 10px 5px #141414; + } + +#infoswitch, #hexswitch, #backgroundswitch + { + background-image:url(http://asdf.us/im/58/gradient_whitegray80_1321305183_1321305241_pepper.jpg); + cursor:pointer; + } +#preview + { + height:150px; + } + + +#holder + { + float:bottom; + } + +#transparent + { + font-size:12px; + } +#namespace + { + width:inherit; + } +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{ +height:30; +width:10px; +} +</style></head><body> +<div id='colorpicker'> +<div id='container'> +<div id='d0' class='colors'> +snow</div> +<div id='d1' class='colors'> +snow1</div> +<div id='d2' class='colors'> +snow2</div> +<div id='d3' class='colors'> +RosyBrown1</div> +<div id='d4' class='colors'> +RosyBrown2</div> +<div id='d5' class='colors'> +snow3</div> +<div id='d6' class='colors'> +LightCoral</div> +<div id='d7' class='colors'> +IndianRed1</div> +<div id='d8' class='colors'> +RosyBrown3</div> +<div id='d9' class='colors'> +IndianRed2</div> +<div id='d10' class='colors'> +RosyBrown</div> +<div id='d11' class='colors'> +brown1</div> +<div id='d12' class='colors'> +firebrick1</div> +<div id='d13' class='colors'> +brown2</div> +<div id='d14' class='colors'> +IndianRed</div> +<div id='d15' class='colors'> +IndianRed3</div> +<div id='d16' class='colors'> +firebrick2</div> +<div id='d17' class='colors'> +snow4</div> +<div id='d18' class='colors'> +brown3</div> +<div id='d19' class='colors'> +red</div> +<div id='d20' class='colors'> +red1</div> +<div id='d21' class='colors'> +RosyBrown4</div> +<div id='d22' class='colors'> +firebrick3</div> +<div id='d23' class='colors'> +red2</div> +<div id='d24' class='colors'> +firebrick</div> +<div id='d25' class='colors'> +brown</div> +<div id='d26' class='colors'> +red3</div> +<div id='d27' class='colors'> +IndianRed4</div> +<div id='d28' class='colors'> +brown4</div> +<div id='d29' class='colors'> +firebrick4</div> +<div id='d30' class='colors'> +DarkRed</div> +<div id='d31' class='colors'> +red4</div> +<div id='d32' class='colors'> +maroon</div> +<div id='d33' class='colors'> +LightPink1</div> +<div id='d34' class='colors'> +LightPink3</div> +<div id='d35' class='colors'> +LightPink4</div> +<div id='d36' class='colors'> +LightPink2</div> +<div id='d37' class='colors'> +LightPink</div> +<div id='d38' class='colors'> +pink</div> +<div id='d39' class='colors'> +crimson</div> +<div id='d40' class='colors'> +pink1</div> +<div id='d41' class='colors'> +pink2</div> +<div id='d42' class='colors'> +pink3</div> +<div id='d43' class='colors'> +pink4</div> +<div id='d44' class='colors'> +PaleVioletRed4</div> +<div id='d45' class='colors'> +PaleVioletRed</div> +<div id='d46' class='colors'> +PaleVioletRed2</div> +<div id='d47' class='colors'> +PaleVioletRed1</div> +<div id='d48' class='colors'> +PaleVioletRed3</div> +<div id='d49' class='colors'> +LavenderBlush</div> +<div id='d50' class='colors'> +LavenderBlush1</div> +<div id='d51' class='colors'> +LavenderBlush3</div> +<div id='d52' class='colors'> +LavenderBlush2</div> +<div id='d53' class='colors'> +LavenderBlush4</div> +<div id='d54' class='colors'> +maroon</div> +<div id='d55' class='colors'> +HotPink3</div> +<div id='d56' class='colors'> +VioletRed3</div> +<div id='d57' class='colors'> +VioletRed1</div> +<div id='d58' class='colors'> +VioletRed2</div> +<div id='d59' class='colors'> +VioletRed4</div> +<div id='d60' class='colors'> +HotPink2</div> +<div id='d61' class='colors'> +HotPink1</div> +<div id='d62' class='colors'> +HotPink4</div> +<div id='d63' class='colors'> +HotPink</div> +<div id='d64' class='colors'> +DeepPink</div> +<div id='d65' class='colors'> +DeepPink1</div> +<div id='d66' class='colors'> +DeepPink2</div> +<div id='d67' class='colors'> +DeepPink3</div> +<div id='d68' class='colors'> +DeepPink4</div> +<div id='d69' class='colors'> +maroon1</div> +<div id='d70' class='colors'> +maroon2</div> +<div id='d71' class='colors'> +maroon3</div> +<div id='d72' class='colors'> +maroon4</div> +<div id='d73' class='colors'> +MediumVioletRed</div> +<div id='d74' class='colors'> +VioletRed</div> +<div id='d75' class='colors'> +orchid2</div> +<div id='d76' class='colors'> +orchid</div> +<div id='d77' class='colors'> +orchid1</div> +<div id='d78' class='colors'> +orchid3</div> +<div id='d79' class='colors'> +orchid4</div> +<div id='d80' class='colors'> +thistle1</div> +<div id='d81' class='colors'> +thistle2</div> +<div id='d82' class='colors'> +plum1</div> +<div id='d83' class='colors'> +plum2</div> +<div id='d84' class='colors'> +thistle</div> +<div id='d85' class='colors'> +thistle3</div> +<div id='d86' class='colors'> +plum</div> +<div id='d87' class='colors'> +violet</div> +<div id='d88' class='colors'> +plum3</div> +<div id='d89' class='colors'> +thistle4</div> +<div id='d90' class='colors'> +fuchsia</div> +<div id='d91' class='colors'> +magenta</div> +<div id='d92' class='colors'> +magenta1</div> +<div id='d93' class='colors'> +plum4</div> +<div id='d94' class='colors'> +magenta2</div> +<div id='d95' class='colors'> +magenta3</div> +<div id='d96' class='colors'> +DarkMagenta</div> +<div id='d97' class='colors'> +magenta4</div> +<div id='d98' class='colors'> +purple</div> +<div id='d99' class='colors'> +MediumOrchid</div> +<div id='d100' class='colors'> +MediumOrchid1</div> +<div id='d101' class='colors'> +MediumOrchid2</div> +<div id='d102' class='colors'> +MediumOrchid3</div> +<div id='d103' class='colors'> +MediumOrchid4</div> +<div id='d104' class='colors'> +DarkViolet</div> +<div id='d105' class='colors'> +DarkOrchid</div> +<div id='d106' class='colors'> +DarkOrchid1</div> +<div id='d107' class='colors'> +DarkOrchid3</div> +<div id='d108' class='colors'> +DarkOrchid2</div> +<div id='d109' class='colors'> +DarkOrchid4</div> +<div id='d110' class='colors'> +purple</div> +<div id='d111' class='colors'> +indigo</div> +<div id='d112' class='colors'> +BlueViolet</div> +<div id='d113' class='colors'> +purple2</div> +<div id='d114' class='colors'> +purple3</div> +<div id='d115' class='colors'> +purple4</div> +<div id='d116' class='colors'> +purple1</div> +<div id='d117' class='colors'> +MediumPurple</div> +<div id='d118' class='colors'> +MediumPurple1</div> +<div id='d119' class='colors'> +MediumPurple2</div> +<div id='d120' class='colors'> +MediumPurple3</div> +<div id='d121' class='colors'> +MediumPurple4</div> +<div id='d122' class='colors'> +DarkSlateBlue</div> +<div id='d123' class='colors'> +LightSlateBlue</div> +<div id='d124' class='colors'> +MediumSlateBlue</div> +<div id='d125' class='colors'> +SlateBlue</div> +<div id='d126' class='colors'> +SlateBlue1</div> +<div id='d127' class='colors'> +SlateBlue2</div> +<div id='d128' class='colors'> +SlateBlue3</div> +<div id='d129' class='colors'> +SlateBlue4</div> +<div id='d130' class='colors'> +GhostWhite</div> +<div id='d131' class='colors'> +lavender</div> +<div id='d132' class='colors'> +blue</div> +<div id='d133' class='colors'> +blue1</div> +<div id='d134' class='colors'> +blue2</div> +<div id='d135' class='colors'> +blue3</div> +<div id='d136' class='colors'> +MediumBlue</div> +<div id='d137' class='colors'> +blue4</div> +<div id='d138' class='colors'> +DarkBlue</div> +<div id='d139' class='colors'> +MidnightBlue</div> +<div id='d140' class='colors'> +navy</div> +<div id='d141' class='colors'> +NavyBlue</div> +<div id='d142' class='colors'> +RoyalBlue</div> +<div id='d143' class='colors'> +RoyalBlue1</div> +<div id='d144' class='colors'> +RoyalBlue2</div> +<div id='d145' class='colors'> +RoyalBlue3</div> +<div id='d146' class='colors'> +RoyalBlue4</div> +<div id='d147' class='colors'> +CornflowerBlue</div> +<div id='d148' class='colors'> +LightSteelBlue</div> +<div id='d149' class='colors'> +LightSteelBlue1</div> +<div id='d150' class='colors'> +LightSteelBlue2</div> +<div id='d151' class='colors'> +LightSteelBlue3</div> +<div id='d152' class='colors'> +LightSteelBlue4</div> +<div id='d153' class='colors'> +SlateGray4</div> +<div id='d154' class='colors'> +SlateGray1</div> +<div id='d155' class='colors'> +SlateGray2</div> +<div id='d156' class='colors'> +SlateGray3</div> +<div id='d157' class='colors'> +LightSlateGray</div> +<div id='d158' class='colors'> +LightSlateGrey</div> +<div id='d159' class='colors'> +SlateGray</div> +<div id='d160' class='colors'> +SlateGrey</div> +<div id='d161' class='colors'> +DodgerBlue</div> +<div id='d162' class='colors'> +DodgerBlue1</div> +<div id='d163' class='colors'> +DodgerBlue2</div> +<div id='d164' class='colors'> +DodgerBlue4</div> +<div id='d165' class='colors'> +DodgerBlue3</div> +<div id='d166' class='colors'> +AliceBlue</div> +<div id='d167' class='colors'> +SteelBlue4</div> +<div id='d168' class='colors'> +SteelBlue</div> +<div id='d169' class='colors'> +SteelBlue1</div> +<div id='d170' class='colors'> +SteelBlue2</div> +<div id='d171' class='colors'> +SteelBlue3</div> +<div id='d172' class='colors'> +SkyBlue4</div> +<div id='d173' class='colors'> +SkyBlue1</div> +<div id='d174' class='colors'> +SkyBlue2</div> +<div id='d175' class='colors'> +SkyBlue3</div> +<div id='d176' class='colors'> +LightSkyBlue</div> +<div id='d177' class='colors'> +LightSkyBlue4</div> +<div id='d178' class='colors'> +LightSkyBlue1</div> +<div id='d179' class='colors'> +LightSkyBlue2</div> +<div id='d180' class='colors'> +LightSkyBlue3</div> +<div id='d181' class='colors'> +SkyBlue</div> +<div id='d182' class='colors'> +LightBlue3</div> +<div id='d183' class='colors'> +DeepSkyBlue</div> +<div id='d184' class='colors'> +DeepSkyBlue1</div> +<div id='d185' class='colors'> +DeepSkyBlue2</div> +<div id='d186' class='colors'> +DeepSkyBlue4</div> +<div id='d187' class='colors'> +DeepSkyBlue3</div> +<div id='d188' class='colors'> +LightBlue1</div> +<div id='d189' class='colors'> +LightBlue2</div> +<div id='d190' class='colors'> +LightBlue</div> +<div id='d191' class='colors'> +LightBlue4</div> +<div id='d192' class='colors'> +PowderBlue</div> +<div id='d193' class='colors'> +CadetBlue1</div> +<div id='d194' class='colors'> +CadetBlue2</div> +<div id='d195' class='colors'> +CadetBlue3</div> +<div id='d196' class='colors'> +CadetBlue4</div> +<div id='d197' class='colors'> +turquoise1</div> +<div id='d198' class='colors'> +turquoise2</div> +<div id='d199' class='colors'> +turquoise3</div> +<div id='d200' class='colors'> +turquoise4</div> +<div id='d201' class='colors'> +cadet blue</div> +<div id='d202' class='colors'> +CadetBlue</div> +<div id='d203' class='colors'> +DarkTurquoise</div> +<div id='d204' class='colors'> +azure</div> +<div id='d205' class='colors'> +azure1</div> +<div id='d206' class='colors'> +LightCyan</div> +<div id='d207' class='colors'> +LightCyan1</div> +<div id='d208' class='colors'> +azure2</div> +<div id='d209' class='colors'> +LightCyan2</div> +<div id='d210' class='colors'> +PaleTurquoise1</div> +<div id='d211' class='colors'> +PaleTurquoise</div> +<div id='d212' class='colors'> +PaleTurquoise2</div> +<div id='d213' class='colors'> +DarkSlateGray1</div> +<div id='d214' class='colors'> +azure3</div> +<div id='d215' class='colors'> +LightCyan3</div> +<div id='d216' class='colors'> +DarkSlateGray2</div> +<div id='d217' class='colors'> +PaleTurquoise3</div> +<div id='d218' class='colors'> +DarkSlateGray3</div> +<div id='d219' class='colors'> +azure4</div> +<div id='d220' class='colors'> +LightCyan4</div> +<div id='d221' class='colors'> +aqua</div> +<div id='d222' class='colors'> +cyan</div> +<div id='d223' class='colors'> +cyan1</div> +<div id='d224' class='colors'> +PaleTurquoise4</div> +<div id='d225' class='colors'> +cyan2</div> +<div id='d226' class='colors'> +DarkSlateGray4</div> +<div id='d227' class='colors'> +cyan3</div> +<div id='d228' class='colors'> +cyan4</div> +<div id='d229' class='colors'> +DarkCyan</div> +<div id='d230' class='colors'> +teal</div> +<div id='d231' class='colors'> +DarkSlateGray</div> +<div id='d232' class='colors'> +DarkSlateGrey</div> +<div id='d233' class='colors'> +MediumTurquoise</div> +<div id='d234' class='colors'> +LightSeaGreen</div> +<div id='d235' class='colors'> +turquoise</div> +<div id='d236' class='colors'> +aquamarine4</div> +<div id='d237' class='colors'> +aquamarine</div> +<div id='d238' class='colors'> +aquamarine1</div> +<div id='d239' class='colors'> +aquamarine2</div> +<div id='d240' class='colors'> +aquamarine3</div> +<div id='d241' class='colors'> +MediumAquamarine</div> +<div id='d242' class='colors'> +MediumSpringGreen</div> +<div id='d243' class='colors'> +MintCream</div> +<div id='d244' class='colors'> +SpringGreen</div> +<div id='d245' class='colors'> +SpringGreen1</div> +<div id='d246' class='colors'> +SpringGreen2</div> +<div id='d247' class='colors'> +SpringGreen3</div> +<div id='d248' class='colors'> +SpringGreen4</div> +<div id='d249' class='colors'> +MediumSeaGreen</div> +<div id='d250' class='colors'> +SeaGreen</div> +<div id='d251' class='colors'> +SeaGreen3</div> +<div id='d252' class='colors'> +SeaGreen1</div> +<div id='d253' class='colors'> +SeaGreen4</div> +<div id='d254' class='colors'> +SeaGreen2</div> +<div id='d255' class='colors'> +MediumForestGreen</div> +<div id='d256' class='colors'> +honeydew</div> +<div id='d257' class='colors'> +honeydew1</div> +<div id='d258' class='colors'> +honeydew2</div> +<div id='d259' class='colors'> +DarkSeaGreen1</div> +<div id='d260' class='colors'> +DarkSeaGreen2</div> +<div id='d261' class='colors'> +PaleGreen1</div> +<div id='d262' class='colors'> +PaleGreen</div> +<div id='d263' class='colors'> +honeydew3</div> +<div id='d264' class='colors'> +LightGreen</div> +<div id='d265' class='colors'> +PaleGreen2</div> +<div id='d266' class='colors'> +DarkSeaGreen3</div> +<div id='d267' class='colors'> +DarkSeaGreen</div> +<div id='d268' class='colors'> +PaleGreen3</div> +<div id='d269' class='colors'> +honeydew4</div> +<div id='d270' class='colors'> +green1</div> +<div id='d271' class='colors'> +lime</div> +<div id='d272' class='colors'> +LimeGreen</div> +<div id='d273' class='colors'> +DarkSeaGreen4</div> +<div id='d274' class='colors'> +green2</div> +<div id='d275' class='colors'> +PaleGreen4</div> +<div id='d276' class='colors'> +green3</div> +<div id='d277' class='colors'> +ForestGreen</div> +<div id='d278' class='colors'> +green4</div> +<div id='d279' class='colors'> +green</div> +<div id='d280' class='colors'> +DarkGreen</div> +<div id='d281' class='colors'> +LawnGreen</div> +<div id='d282' class='colors'> +chartreuse</div> +<div id='d283' class='colors'> +chartreuse1</div> +<div id='d284' class='colors'> +chartreuse2</div> +<div id='d285' class='colors'> +chartreuse3</div> +<div id='d286' class='colors'> +chartreuse4</div> +<div id='d287' class='colors'> +GreenYellow</div> +<div id='d288' class='colors'> +DarkOliveGreen3</div> +<div id='d289' class='colors'> +DarkOliveGreen1</div> +<div id='d290' class='colors'> +DarkOliveGreen2</div> +<div id='d291' class='colors'> +DarkOliveGreen4</div> +<div id='d292' class='colors'> +DarkOliveGreen</div> +<div id='d293' class='colors'> +OliveDrab</div> +<div id='d294' class='colors'> +OliveDrab1</div> +<div id='d295' class='colors'> +OliveDrab2</div> +<div id='d296' class='colors'> +OliveDrab3</div> +<div id='d297' class='colors'> +YellowGreen</div> +<div id='d298' class='colors'> +OliveDrab4</div> +<div id='d299' class='colors'> +ivory</div> +<div id='d300' class='colors'> +ivory1</div> +<div id='d301' class='colors'> +LightYellow</div> +<div id='d302' class='colors'> +LightYellow1</div> +<div id='d303' class='colors'> +beige</div> +<div id='d304' class='colors'> +ivory2</div> +<div id='d305' class='colors'> +LightGoldenrodYellow</div> +<div id='d306' class='colors'> +LightYellow2</div> +<div id='d307' class='colors'> +ivory3</div> +<div id='d308' class='colors'> +LightYellow3</div> +<div id='d309' class='colors'> +ivory4</div> +<div id='d310' class='colors'> +LightYellow4</div> +<div id='d311' class='colors'> +yellow</div> +<div id='d312' class='colors'> +yellow1</div> +<div id='d313' class='colors'> +yellow2</div> +<div id='d314' class='colors'> +yellow3</div> +<div id='d315' class='colors'> +yellow4</div> +<div id='d316' class='colors'> +olive</div> +<div id='d317' class='colors'> +DarkKhaki</div> +<div id='d318' class='colors'> +khaki2</div> +<div id='d319' class='colors'> +LemonChiffon4</div> +<div id='d320' class='colors'> +khaki1</div> +<div id='d321' class='colors'> +khaki3</div> +<div id='d322' class='colors'> +khaki4</div> +<div id='d323' class='colors'> +PaleGoldenrod</div> +<div id='d324' class='colors'> +LemonChiffon</div> +<div id='d325' class='colors'> +LemonChiffon1</div> +<div id='d326' class='colors'> +khaki</div> +<div id='d327' class='colors'> +LemonChiffon3</div> +<div id='d328' class='colors'> +LemonChiffon2</div> +<div id='d329' class='colors'> +MediumGoldenRod</div> +<div id='d330' class='colors'> +cornsilk4</div> +<div id='d331' class='colors'> +gold</div> +<div id='d332' class='colors'> +gold1</div> +<div id='d333' class='colors'> +gold2</div> +<div id='d334' class='colors'> +gold3</div> +<div id='d335' class='colors'> +gold4</div> +<div id='d336' class='colors'> +LightGoldenrod</div> +<div id='d337' class='colors'> +LightGoldenrod4</div> +<div id='d338' class='colors'> +LightGoldenrod1</div> +<div id='d339' class='colors'> +LightGoldenrod3</div> +<div id='d340' class='colors'> +LightGoldenrod2</div> +<div id='d341' class='colors'> +cornsilk3</div> +<div id='d342' class='colors'> +cornsilk2</div> +<div id='d343' class='colors'> +cornsilk</div> +<div id='d344' class='colors'> +cornsilk1</div> +<div id='d345' class='colors'> +goldenrod</div> +<div id='d346' class='colors'> +goldenrod1</div> +<div id='d347' class='colors'> +goldenrod2</div> +<div id='d348' class='colors'> +goldenrod3</div> +<div id='d349' class='colors'> +goldenrod4</div> +<div id='d350' class='colors'> +DarkGoldenrod</div> +<div id='d351' class='colors'> +DarkGoldenrod1</div> +<div id='d352' class='colors'> +DarkGoldenrod2</div> +<div id='d353' class='colors'> +DarkGoldenrod3</div> +<div id='d354' class='colors'> +DarkGoldenrod4</div> +<div id='d355' class='colors'> +FloralWhite</div> +<div id='d356' class='colors'> +wheat2</div> +<div id='d357' class='colors'> +OldLace</div> +<div id='d358' class='colors'> +wheat</div> +<div id='d359' class='colors'> +wheat1</div> +<div id='d360' class='colors'> +wheat3</div> +<div id='d361' class='colors'> +orange</div> +<div id='d362' class='colors'> +orange1</div> +<div id='d363' class='colors'> +orange2</div> +<div id='d364' class='colors'> +orange3</div> +<div id='d365' class='colors'> +orange4</div> +<div id='d366' class='colors'> +wheat4</div> +<div id='d367' class='colors'> +moccasin</div> +<div id='d368' class='colors'> +PapayaWhip</div> +<div id='d369' class='colors'> +NavajoWhite3</div> +<div id='d370' class='colors'> +BlanchedAlmond</div> +<div id='d371' class='colors'> +NavajoWhite</div> +<div id='d372' class='colors'> +NavajoWhite1</div> +<div id='d373' class='colors'> +NavajoWhite2</div> +<div id='d374' class='colors'> +NavajoWhite4</div> +<div id='d375' class='colors'> +AntiqueWhite4</div> +<div id='d376' class='colors'> +AntiqueWhite</div> +<div id='d377' class='colors'> +tan</div> +<div id='d378' class='colors'> +bisque4</div> +<div id='d379' class='colors'> +burlywood</div> +<div id='d380' class='colors'> +AntiqueWhite2</div> +<div id='d381' class='colors'> +burlywood1</div> +<div id='d382' class='colors'> +burlywood3</div> +<div id='d383' class='colors'> +burlywood2</div> +<div id='d384' class='colors'> +AntiqueWhite1</div> +<div id='d385' class='colors'> +burlywood4</div> +<div id='d386' class='colors'> +AntiqueWhite3</div> +<div id='d387' class='colors'> +DarkOrange</div> +<div id='d388' class='colors'> +bisque2</div> +<div id='d389' class='colors'> +bisque</div> +<div id='d390' class='colors'> +bisque1</div> +<div id='d391' class='colors'> +bisque3</div> +<div id='d392' class='colors'> +DarkOrange1</div> +<div id='d393' class='colors'> +linen</div> +<div id='d394' class='colors'> +DarkOrange2</div> +<div id='d395' class='colors'> +DarkOrange3</div> +<div id='d396' class='colors'> +DarkOrange4</div> +<div id='d397' class='colors'> +peru</div> +<div id='d398' class='colors'> +tan1</div> +<div id='d399' class='colors'> +tan2</div> +<div id='d400' class='colors'> +tan3</div> +<div id='d401' class='colors'> +tan4</div> +<div id='d402' class='colors'> +PeachPuff</div> +<div id='d403' class='colors'> +PeachPuff1</div> +<div id='d404' class='colors'> +PeachPuff4</div> +<div id='d405' class='colors'> +PeachPuff2</div> +<div id='d406' class='colors'> +PeachPuff3</div> +<div id='d407' class='colors'> +SandyBrown</div> +<div id='d408' class='colors'> +seashell4</div> +<div id='d409' class='colors'> +seashell2</div> +<div id='d410' class='colors'> +seashell3</div> +<div id='d411' class='colors'> +chocolate</div> +<div id='d412' class='colors'> +chocolate1</div> +<div id='d413' class='colors'> +chocolate2</div> +<div id='d414' class='colors'> +chocolate3</div> +<div id='d415' class='colors'> +chocolate4</div> +<div id='d416' class='colors'> +SaddleBrown</div> +<div id='d417' class='colors'> +seashell</div> +<div id='d418' class='colors'> +seashell1</div> +<div id='d419' class='colors'> +sienna4</div> +<div id='d420' class='colors'> +sienna</div> +<div id='d421' class='colors'> +sienna1</div> +<div id='d422' class='colors'> +sienna2</div> +<div id='d423' class='colors'> +sienna3</div> +<div id='d424' class='colors'> +LightSalmon3</div> +<div id='d425' class='colors'> +LightSalmon</div> +<div id='d426' class='colors'> +LightSalmon1</div> +<div id='d427' class='colors'> +LightSalmon4</div> +<div id='d428' class='colors'> +LightSalmon2</div> +<div id='d429' class='colors'> +coral</div> +<div id='d430' class='colors'> +OrangeRed</div> +<div id='d431' class='colors'> +OrangeRed1</div> +<div id='d432' class='colors'> +OrangeRed2</div> +<div id='d433' class='colors'> +OrangeRed3</div> +<div id='d434' class='colors'> +OrangeRed4</div> +<div id='d435' class='colors'> +DarkSalmon</div> +<div id='d436' class='colors'> +salmon1</div> +<div id='d437' class='colors'> +salmon2</div> +<div id='d438' class='colors'> +salmon3</div> +<div id='d439' class='colors'> +salmon4</div> +<div id='d440' class='colors'> +coral1</div> +<div id='d441' class='colors'> +coral2</div> +<div id='d442' class='colors'> +coral3</div> +<div id='d443' class='colors'> +coral4</div> +<div id='d444' class='colors'> +tomato4</div> +<div id='d445' class='colors'> +tomato</div> +<div id='d446' class='colors'> +tomato1</div> +<div id='d447' class='colors'> +tomato2</div> +<div id='d448' class='colors'> +tomato3</div> +<div id='d449' class='colors'> +MistyRose4</div> +<div id='d450' class='colors'> +MistyRose2</div> +<div id='d451' class='colors'> +MistyRose</div> +<div id='d452' class='colors'> +MistyRose1</div> +<div id='d453' class='colors'> +salmon</div> +<div id='d454' class='colors'> +MistyRose3</div> +<div id='d455' class='colors'> +white</div> +<div id='d456' class='colors'> +gray100</div> +<div id='d457' class='colors'> +grey100</div> +<div id='d458' class='colors'> +grey100</div> +<div id='d459' class='colors'> +gray99</div> +<div id='d460' class='colors'> +grey99</div> +<div id='d461' class='colors'> +gray98</div> +<div id='d462' class='colors'> +grey98</div> +<div id='d463' class='colors'> +gray97</div> +<div id='d464' class='colors'> +grey97</div> +<div id='d465' class='colors'> +gray96</div> +<div id='d466' class='colors'> +grey96</div> +<div id='d467' class='colors'> +WhiteSmoke</div> +<div id='d468' class='colors'> +gray95</div> +<div id='d469' class='colors'> +grey95</div> +<div id='d470' class='colors'> +gray94</div> +<div id='d471' class='colors'> +grey94</div> +<div id='d472' class='colors'> +gray93</div> +<div id='d473' class='colors'> +grey93</div> +<div id='d474' class='colors'> +gray92</div> +<div id='d475' class='colors'> +grey92</div> +<div id='d476' class='colors'> +gray91</div> +<div id='d477' class='colors'> +grey91</div> +<div id='d478' class='colors'> +gray90</div> +<div id='d479' class='colors'> +grey90</div> +<div id='d480' class='colors'> +gray89</div> +<div id='d481' class='colors'> +grey89</div> +<div id='d482' class='colors'> +gray88</div> +<div id='d483' class='colors'> +grey88</div> +<div id='d484' class='colors'> +gray87</div> +<div id='d485' class='colors'> +grey87</div> +<div id='d486' class='colors'> +gainsboro</div> +<div id='d487' class='colors'> +gray86</div> +<div id='d488' class='colors'> +grey86</div> +<div id='d489' class='colors'> +gray85</div> +<div id='d490' class='colors'> +grey85</div> +<div id='d491' class='colors'> +gray84</div> +<div id='d492' class='colors'> +grey84</div> +<div id='d493' class='colors'> +gray83</div> +<div id='d494' class='colors'> +grey83</div> +<div id='d495' class='colors'> +LightGray</div> +<div id='d496' class='colors'> +LightGrey</div> +<div id='d497' class='colors'> +gray82</div> +<div id='d498' class='colors'> +grey82</div> +<div id='d499' class='colors'> +gray81</div> +<div id='d500' class='colors'> +grey81</div> +<div id='d501' class='colors'> +gray80</div> +<div id='d502' class='colors'> +grey80</div> +<div id='d503' class='colors'> +gray79</div> +<div id='d504' class='colors'> +grey79</div> +<div id='d505' class='colors'> +gray78</div> +<div id='d506' class='colors'> +grey78</div> +<div id='d507' class='colors'> +gray77</div> +<div id='d508' class='colors'> +grey77</div> +<div id='d509' class='colors'> +gray76</div> +<div id='d510' class='colors'> +grey76</div> +<div id='d511' class='colors'> +silver</div> +<div id='d512' class='colors'> +gray75</div> +<div id='d513' class='colors'> +grey75</div> +<div id='d514' class='colors'> +gray74</div> +<div id='d515' class='colors'> +grey74</div> +<div id='d516' class='colors'> +gray73</div> +<div id='d517' class='colors'> +grey73</div> +<div id='d518' class='colors'> +gray72</div> +<div id='d519' class='colors'> +grey72</div> +<div id='d520' class='colors'> +gray71</div> +<div id='d521' class='colors'> +grey71</div> +<div id='d522' class='colors'> +gray70</div> +<div id='d523' class='colors'> +grey70</div> +<div id='d524' class='colors'> +gray69</div> +<div id='d525' class='colors'> +grey69</div> +<div id='d526' class='colors'> +gray68</div> +<div id='d527' class='colors'> +grey68</div> +<div id='d528' class='colors'> +gray67</div> +<div id='d529' class='colors'> +grey67</div> +<div id='d530' class='colors'> +DarkGray</div> +<div id='d531' class='colors'> +DarkGrey</div> +<div id='d532' class='colors'> +gray66</div> +<div id='d533' class='colors'> +grey66</div> +<div id='d534' class='colors'> +gray65</div> +<div id='d535' class='colors'> +grey65</div> +<div id='d536' class='colors'> +gray64</div> +<div id='d537' class='colors'> +grey64</div> +<div id='d538' class='colors'> +gray63</div> +<div id='d539' class='colors'> +grey63</div> +<div id='d540' class='colors'> +gray62</div> +<div id='d541' class='colors'> +grey62</div> +<div id='d542' class='colors'> +gray61</div> +<div id='d543' class='colors'> +grey61</div> +<div id='d544' class='colors'> +gray60</div> +<div id='d545' class='colors'> +grey60</div> +<div id='d546' class='colors'> +gray59</div> +<div id='d547' class='colors'> +grey59</div> +<div id='d548' class='colors'> +gray58</div> +<div id='d549' class='colors'> +grey58</div> +<div id='d550' class='colors'> +gray57</div> +<div id='d551' class='colors'> +grey57</div> +<div id='d552' class='colors'> +gray56</div> +<div id='d553' class='colors'> +grey56</div> +<div id='d554' class='colors'> +gray55</div> +<div id='d555' class='colors'> +grey55</div> +<div id='d556' class='colors'> +gray54</div> +<div id='d557' class='colors'> +grey54</div> +<div id='d558' class='colors'> +gray53</div> +<div id='d559' class='colors'> +grey53</div> +<div id='d560' class='colors'> +gray52</div> +<div id='d561' class='colors'> +grey52</div> +<div id='d562' class='colors'> +gray51</div> +<div id='d563' class='colors'> +grey51</div> +<div id='d564' class='colors'> +fractal</div> +<div id='d565' class='colors'> +gray50</div> +<div id='d566' class='colors'> +grey50</div> +<div id='d567' class='colors'> +gray</div> +<div id='d568' class='colors'> +gray49</div> +<div id='d569' class='colors'> +grey49</div> +<div id='d570' class='colors'> +gray48</div> +<div id='d571' class='colors'> +grey48</div> +<div id='d572' class='colors'> +gray47</div> +<div id='d573' class='colors'> +grey47</div> +<div id='d574' class='colors'> +gray46</div> +<div id='d575' class='colors'> +grey46</div> +<div id='d576' class='colors'> +gray45</div> +<div id='d577' class='colors'> +grey45</div> +<div id='d578' class='colors'> +gray44</div> +<div id='d579' class='colors'> +grey44</div> +<div id='d580' class='colors'> +gray43</div> +<div id='d581' class='colors'> +grey43</div> +<div id='d582' class='colors'> +gray42</div> +<div id='d583' class='colors'> +grey42</div> +<div id='d584' class='colors'> +DimGray</div> +<div id='d585' class='colors'> +DimGrey</div> +<div id='d586' class='colors'> +gray41</div> +<div id='d587' class='colors'> +grey41</div> +<div id='d588' class='colors'> +gray40</div> +<div id='d589' class='colors'> +grey40</div> +<div id='d590' class='colors'> +gray39</div> +<div id='d591' class='colors'> +grey39</div> +<div id='d592' class='colors'> +gray38</div> +<div id='d593' class='colors'> +grey38</div> +<div id='d594' class='colors'> +gray37</div> +<div id='d595' class='colors'> +grey37</div> +<div id='d596' class='colors'> +gray36</div> +<div id='d597' class='colors'> +grey36</div> +<div id='d598' class='colors'> +gray35</div> +<div id='d599' class='colors'> +grey35</div> +<div id='d600' class='colors'> +gray34</div> +<div id='d601' class='colors'> +grey34</div> +<div id='d602' class='colors'> +gray33</div> +<div id='d603' class='colors'> +grey33</div> +<div id='d604' class='colors'> +gray32</div> +<div id='d605' class='colors'> +grey32</div> +<div id='d606' class='colors'> +gray31</div> +<div id='d607' class='colors'> +grey31</div> +<div id='d608' class='colors'> +gray30</div> +<div id='d609' class='colors'> +grey30</div> +<div id='d610' class='colors'> +gray29</div> +<div id='d611' class='colors'> +grey29</div> +<div id='d612' class='colors'> +gray28</div> +<div id='d613' class='colors'> +grey28</div> +<div id='d614' class='colors'> +gray27</div> +<div id='d615' class='colors'> +grey27</div> +<div id='d616' class='colors'> +gray26</div> +<div id='d617' class='colors'> +grey26</div> +<div id='d618' class='colors'> +gray25</div> +<div id='d619' class='colors'> +grey25</div> +<div id='d620' class='colors'> +gray24</div> +<div id='d621' class='colors'> +grey24</div> +<div id='d622' class='colors'> +gray23</div> +<div id='d623' class='colors'> +grey23</div> +<div id='d624' class='colors'> +gray22</div> +<div id='d625' class='colors'> +grey22</div> +<div id='d626' class='colors'> +gray21</div> +<div id='d627' class='colors'> +grey21</div> +<div id='d628' class='colors'> +gray20</div> +<div id='d629' class='colors'> +grey20</div> +<div id='d630' class='colors'> +gray19</div> +<div id='d631' class='colors'> +grey19</div> +<div id='d632' class='colors'> +gray18</div> +<div id='d633' class='colors'> +grey18</div> +<div id='d634' class='colors'> +gray17</div> +<div id='d635' class='colors'> +grey17</div> +<div id='d636' class='colors'> +gray16</div> +<div id='d637' class='colors'> +grey16</div> +<div id='d638' class='colors'> +gray15</div> +<div id='d639' class='colors'> +grey15</div> +<div id='d640' class='colors'> +gray14</div> +<div id='d641' class='colors'> +grey14</div> +<div id='d642' class='colors'> +gray13</div> +<div id='d643' class='colors'> +grey13</div> +<div id='d644' class='colors'> +gray12</div> +<div id='d645' class='colors'> +grey12</div> +<div id='d646' class='colors'> +gray11</div> +<div id='d647' class='colors'> +grey11</div> +<div id='d648' class='colors'> +gray10</div> +<div id='d649' class='colors'> +grey10</div> +<div id='d650' class='colors'> +gray9</div> +<div id='d651' class='colors'> +grey9</div> +<div id='d652' class='colors'> +gray8</div> +<div id='d653' class='colors'> +grey8</div> +<div id='d654' class='colors'> +gray7</div> +<div id='d655' class='colors'> +grey7</div> +<div id='d656' class='colors'> +gray6</div> +<div id='d657' class='colors'> +grey6</div> +<div id='d658' class='colors'> +gray5</div> +<div id='d659' class='colors'> +grey5</div> +<div id='d660' class='colors'> +gray4</div> +<div id='d661' class='colors'> +grey4</div> +<div id='d662' class='colors'> +gray3</div> +<div id='d663' class='colors'> +grey3</div> +<div id='d664' class='colors'> +gray2</div> +<div id='d665' class='colors'> +grey2</div> +<div id='d666' class='colors'> +gray1</div> +<div id='d667' class='colors'> +grey1</div> +<div id='d668' class='colors'> +black</div> +<div id='d669' class='colors'> +gray0</div> +<div id='d670' class='colors'> +grey0</div> +<div id='d671' class='colors'> +opaque</div> +<div id='d672' class='colors'> +none</div> +<div id='d673' class='colors'> +transparent</div> +</div> + +<div id='colornames'> +CLICK TO CHOOSE THE COLOR +</div> + +<div id='switches'> + <span id='title'>OPTIONS</span> + <div id='hexswitch' class='theswitches'> </div> + <br> + <div id='infoswitch' class='theswitches'>CLICK TO TOGGLE PALATE INFO<span id='infospace'></span></div> + <br> + <div id='backgroundswitch' class='theswitches'>CLICK TO TOGGLE BACKGROUNDS</div> + <br> + <div id='preview'></div> + <div id='nameholder'>YOU WILL CHOOSE:<br><input id='namespace' style='width:inherit' type='text'></input></div> + <br> + <span id='transparent'>to choose transparent as a color, click <span id='transbutton'>HERE</span><span id='extra'></span></span> +</div> +<div id='vasebackground' style='position:fixed; z-index:2; height:120px; width:69px; top:2px; right:30px;'></div> + +<div id='vase' style='position:fixed; z-index:3; height:120px; width:69px; top:2px; right:30px; background-image:url(vase.png)'></div> +<div id='vaseshim' style='position:fixed; z-index:4; height:120px; width:69px; top:2px; right:30px; background-image:url(vaseshim.png)'></div> +<script type='text/javascript' src='js/jquery-1.6.4.min.js'></script> +<script type='text/javascript' src='js/colordict.js'></script> +<script type='text/javascript' src='js/colordictionaries2.js'></script> + +<script type='text/javascript' src='js/goldenfunctions.js'></script> +<script type='text/javascript' src='js/hovercss.js'></script> +<script type='text/javascript' src='js/iftransparentcss.js'></script> +<script type='text/javascript' src='js/backgroundswitcher.js'></script> +<script type='text/javascript' src='js/hexrgbnametoggle.js'></script> +<script type='text/javascript' src='js/setupdimensions.js'></script> +</body> +</html> diff --git a/frontend/imgrid/colors/colors/js/backgroundswitcher.js b/frontend/imgrid/colors/colors/js/backgroundswitcher.js new file mode 100755 index 0000000..74e8367 --- /dev/null +++ b/frontend/imgrid/colors/colors/js/backgroundswitcher.js @@ -0,0 +1,38 @@ +backgroundstate = 2; +function switchbackground() + { + if(backgroundstate == 1) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image','url(js/ditherbackground.gif)') + backgroundstate = 2; + $('#colornames').css('color', 'white') + $('#colornames').css('text-shadow', 'black 1px 2px') + $('#vaseshim').css('background-image','url(vaseshim.png)') + } + else if(backgroundstate == 2) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image', 'none') + $('#vaseshim').css('background-image','url(blackshim.png)') + backgroundstate = 3; + } + else if(backgroundstate == 3) + { + $('#colorpicker').css('background-color','gray') + $('#colorpicker').css('background-image','none') + $('#vaseshim').css('background-image','url(grayshim.png)') + backgroundstate = 0; + } + else if(backgroundstate == 0) + { + $('#colorpicker').css('background-color', 'white') + $('#colorpicker').css('background-image', 'none') + $('#colornames').css('color', '#7F7F7F') + $('#vaseshim').css('background-image','url(whiteshim.png)') + backgroundstate = 1 + } + } + +$('#backgroundswitch').click(function(){switchbackground()}) + diff --git a/frontend/imgrid/colors/colors/js/colordict.js b/frontend/imgrid/colors/colors/js/colordict.js new file mode 100755 index 0000000..5c69bc8 --- /dev/null +++ b/frontend/imgrid/colors/colors/js/colordict.js @@ -0,0 +1,3 @@ +var nametohex = {'grey21': '#363636', 'yellow': '#FFFF00', 'grey61': '#9C9C9C', 'HotPink3': '#CD6090', 'grey63': '#A1A1A1', 'grey62': '#9E9E9E', 'grey65': '#A6A6A6', 'AliceBlue': '#F0F8FF', 'grey67': '#ABABAB', 'grey66': '#A8A8A8', 'LightCyan1': '#E0FFFF', 'grey68': '#ADADAD', 'LightCyan3': '#B4CDCD', 'LightCyan2': '#D1EEEE', 'LightCyan4': '#7A8B8B', 'gray32': '#525252', 'gray33': '#545454', 'DarkTurquoise': '#00CED1', 'gray31': '#4F4F4F', 'gray36': '#5C5C5C', 'gray37': '#5E5E5E', 'gray34': '#575757', 'gray35': '#595959', 'aquamarine4': '#458B74', 'gray38': '#616161', 'gray39': '#636363', 'aquamarine1': '#7FFFD4', 'aquamarine3': '#66CDAA', 'aquamarine2': '#76EEC6', 'CadetBlue4': '#53868B', 'CadetBlue3': '#7AC5CD', 'CadetBlue2': '#8EE5EE', 'CadetBlue1': '#98F5FF', 'crimson': '#DC143C', 'VioletRed1': '#FF3E96', 'VioletRed2': '#EE3A8C', 'VioletRed3': '#CD3278', 'VioletRed4': '#8B2252', 'brown': '#A52A2A', 'DarkGoldenrod': '#B8860B', 'gray8': '#141414', 'SlateGrey': '#708090', 'NavajoWhite2': '#EECFA1', 'gray2': '#050505', 'cyan': '#00FFFF', 'gray0': '#000000', 'gray1': '#030303', 'fractal': '#808080', 'gray7': '#121212', 'gray4': '#0A0A0A', 'gray5': '#0D0D0D', 'grey60': '#999999', 'DarkBlue': '#00008B', 'gray98': '#FAFAFA', 'DarkKhaki': '#BDB76B', 'gray99': '#FCFCFC', 'teal': '#008080', 'grey11': '#1C1C1C', 'coral4': '#8B3E2F', 'grey12': '#1F1F1F', 'grey64': '#A3A3A3', 'PaleGreen1': '#9AFF9A', 'PaleGreen3': '#7CCD7C', 'PaleGreen2': '#90EE90', 'PaleGreen4': '#548B54', 'grey14': '#242424', 'lavender': '#E6E6FA', 'grey15': '#262626', 'chartreuse3': '#66CD00', 'chartreuse2': '#76EE00', 'chartreuse1': '#7FFF00', 'chartreuse4': '#458B00', 'RosyBrown': '#BC8F8F', 'blue': '#0000FF', 'NavajoWhite': '#FFDEAD', 'opaque': '#000000', 'maroon4': '#8B1C62', 'maroon3': '#CD2990', 'maroon2': '#EE30A7', 'maroon1': '#FF34B3', 'gold3': '#CDAD00', 'gold2': '#EEC900', 'gold1': '#FFD700', 'gold4': '#8B7500', 'LightSlateGrey': '#778899', 'gray30': '#4D4D4D', 'DarkGreen': '#006400', 'SkyBlue': '#87CEEB', 'GhostWhite': '#F8F8FF', 'LavenderBlush': '#FFF0F5', 'SeaGreen': '#2E8B57', 'BlanchedAlmond': '#FFEBCD', 'gray60': '#999999', 'DarkOliveGreen': '#556B2F', 'firebrick2': '#EE2C2C', 'firebrick1': '#FF3030', 'firebrick4': '#8B1A1A', 'sienna': '#A0522D', 'blue1': '#0000FF', 'lime': '#00FF00', 'gray55': '#8C8C8C', 'blue2': '#0000EE', 'DarkViolet': '#9400D3', 'blue4': '#00008B', 'peru': '#CD853F', 'DarkMagenta': '#8B008B', 'LightBlue2': '#B2DFEE', 'red2': '#EE0000', 'red1': '#FF0000', 'LightBlue1': '#BFEFFF', 'LightBlue4': '#68838B', 'red4': '#8B0000', 'MediumSpringGreen': '#00FA9A', 'chocolate': '#D2691E', 'ForestGreen': '#228B22', 'DarkRed': '#8B0000', 'olive': '#808000', 'HotPink2': '#EE6AA7', 'HotPink1': '#FF6EB4', 'HotPink4': '#8B3A62', 'grey18': '#2E2E2E', 'grey19': '#303030', 'none': '#000000', 'PeachPuff': '#FFDAB9', 'MediumGoldenRod': '#D1C166', 'moccasin': '#FFE4B5', 'grey10': '#1A1A1A', 'chocolate1': '#FF7F24', 'chocolate2': '#EE7621', 'chocolate3': '#CD661D', 'chocolate4': '#8B4513', 'wheat2': '#EED8AE', 'grey16': '#292929', 'grey17': '#2B2B2B', 'gray69': '#B0B0B0', 'gray68': '#ADADAD', 'gray65': '#A6A6A6', 'gray64': '#A3A3A3', 'gray67': '#ABABAB', 'gray66': '#A8A8A8', 'gray61': '#9C9C9C', 'coral': '#FF7F50', 'gray63': '#A1A1A1', 'gray62': '#9E9E9E', 'LightGoldenrod': '#EEDD82', 'turquoise4': '#00868B', 'seashell2': '#EEE5DE', 'seashell3': '#CDC5BF', 'magenta': '#FF00FF', 'seashell1': '#FFF5EE', 'tan': '#D2B48C', 'seashell4': '#8B8682', 'pink': '#FFC0CB', 'LightSlateBlue': '#8470FF', 'SteelBlue1': '#63B8FF', 'SteelBlue3': '#4F94CD', 'SteelBlue2': '#5CACEE', 'SteelBlue4': '#36648B', 'grey89': '#E3E3E3', 'grey88': '#E0E0E0', 'grey87': '#DEDEDE', 'grey86': '#DBDBDB', 'grey85': '#D9D9D9', 'grey84': '#D6D6D6', 'grey83': '#D4D4D4', 'grey82': '#D1D1D1', 'grey81': '#CFCFCF', 'grey80': '#CCCCCC', 'ivory2': '#EEEEE0', 'khaki4': '#8B864E', 'khaki1': '#FFF68F', 'khaki2': '#EEE685', 'khaki3': '#CDC673', 'salmon1': '#FF8C69', 'salmon3': '#CD7054', 'salmon2': '#EE8262', 'salmon4': '#8B4C39', 'LightPink': '#FFB6C1', 'gray9': '#171717', 'green': '#008000', 'brown2': '#EE3B3B', 'brown3': '#CD3333', 'brown1': '#FF4040', 'brown4': '#8B2323', 'cadet blue': '#5F9EA0', 'orange4': '#8B5A00', 'orange1': '#FFA500', 'orange3': '#CD8500', 'orange2': '#EE9A00', 'gray3': '#080808', 'gray6': '#0F0F0F', 'yellow4': '#8B8B00', 'yellow3': '#CDCD00', 'yellow2': '#EEEE00', 'yellow1': '#FFFF00', 'PapayaWhip': '#FFEFD5', 'bisque2': '#EED5B7', 'OliveDrab4': '#698B22', 'bisque3': '#CDB79E', 'OliveDrab1': '#C0FF3E', 'OliveDrab2': '#B3EE3A', 'OliveDrab3': '#9ACD32', 'SkyBlue4': '#4A708B', 'SkyBlue1': '#87CEFF', 'SkyBlue3': '#6CA6CD', 'SkyBlue2': '#7EC0EE', 'grey58': '#949494', 'grey59': '#969696', 'grey54': '#8A8A8A', 'grey55': '#8C8C8C', 'grey56': '#8F8F8F', 'grey57': '#919191', 'grey50': '#7F7F7F', 'silver': '#C0C0C0', 'grey52': '#858585', 'grey53': '#878787', 'cyan2': '#00EEEE', 'cyan3': '#00CDCD', 'gray23': '#3B3B3B', 'RosyBrown4': '#8B6969', 'gray25': '#404040', 'CornflowerBlue': '#6495ED', 'cyan4': '#008B8B', 'gray26': '#424242', 'gray29': '#4A4A4A', 'LimeGreen': '#32CD32', 'MistyRose': '#FFE4E1', 'navy': '#000080', 'gray94': '#F0F0F0', 'gray95': '#F2F2F2', 'gray96': '#F5F5F5', 'gray97': '#F7F7F7', 'gray90': '#E5E5E5', 'gray91': '#E8E8E8', 'gray92': '#EBEBEB', 'gray93': '#EDEDED', 'MediumPurple': '#9370DB', 'MidnightBlue': '#191970', 'cornsilk': '#FFF8DC', 'red': '#FF0000', 'grey69': '#B0B0B0', 'DarkOrchid4': '#68228B', 'blue3': '#0000CD', 'LightSteelBlue': '#B0C4DE', 'DarkOrchid1': '#BF3EFF', 'DarkOrchid2': '#B23AEE', 'DarkOrchid3': '#9A32CD', 'grey72': '#B8B8B8', 'FloralWhite': '#FFFAF0', 'grey70': '#B3B3B3', 'DarkSeaGreen': '#8FBC8F', 'grey71': '#B5B5B5', 'gray17': '#2B2B2B', 'grey77': '#C4C4C4', 'tomato4': '#8B3626', 'tomato1': '#FF6347', 'tomato3': '#CD4F39', 'tomato2': '#EE5C42', 'DarkSlateGray1': '#97FFFF', 'DarkSlateGray2': '#8DEEEE', 'DarkSlateGray3': '#79CDCD', 'DarkSlateGray4': '#528B8B', 'SteelBlue': '#4682B4', 'MediumSlateBlue': '#7B68EE', 'OrangeRed': '#FF4500', 'grey79': '#C9C9C9', 'MediumVioletRed': '#C71585', 'burlywood': '#DEB887', 'white': '#FFFFFF', 'tomato': '#FF6347', 'DodgerBlue': '#1E90FF', 'RoyalBlue4': '#27408B', 'RoyalBlue1': '#4876FF', 'RoyalBlue3': '#3A5FCD', 'RoyalBlue2': '#436EEE', 'MistyRose1': '#FFE4E1', 'MistyRose3': '#CDB7B5', 'MistyRose2': '#EED5D2', 'MistyRose4': '#8B7D7B', 'LightGray': '#D3D3D3', 'LightYellow': '#FFFFE0', 'DarkOrange': '#FF8C00', 'DarkGray': '#A9A9A9', 'SlateGray': '#708090', 'turquoise3': '#00C5CD', 'turquoise2': '#00E5EE', 'turquoise1': '#00F5FF', 'burlywood2': '#EEC591', 'burlywood4': '#8B7355', 'DarkSlateGray': '#2F4F4F', 'linen': '#FAF0E6', 'grey47': '#787878', 'snow': '#FFFAFA', 'grey46': '#757575', 'gray58': '#949494', 'gray59': '#969696', 'IndianRed4': '#8B3A3A', 'purple4': '#551A8B', 'gray52': '#858585', 'gray53': '#878787', 'purple1': '#9B30FF', 'IndianRed1': '#FF6A6A', 'purple3': '#7D26CD', 'purple2': '#912CEE', 'thistle3': '#CDB5CD', 'thistle2': '#EED2EE', 'SpringGreen2': '#00EE76', 'SpringGreen3': '#00CD66', 'SpringGreen4': '#008B45', 'thistle4': '#8B7B8B', 'LightPink2': '#EEA2AD', 'LightPink3': '#CD8C95', 'LightPink1': '#FFAEB9', 'LightPink4': '#8B5F65', 'MediumPurple1': '#AB82FF', 'MediumPurple2': '#9F79EE', 'MediumPurple3': '#8968CD', 'MediumPurple4': '#5D478B', 'MediumTurquoise': '#48D1CC', 'DimGray': '#696969', 'gray14': '#242424', 'grey100': '#FFFFFF', 'OrangeRed3': '#CD3700', 'OrangeRed2': '#EE4000', 'OrangeRed1': '#FF4500', 'LightSeaGreen': '#20B2AA', 'gold': '#FFD700', 'OrangeRed4': '#8B2500', 'NavajoWhite4': '#8B795E', 'NavajoWhite1': '#FFDEAD', 'LawnGreen': '#7CFC00', 'NavajoWhite3': '#CDB38B', 'LightGoldenrod4': '#8B814C', 'LightGoldenrod1': '#FFEC8B', 'LightGoldenrod3': '#CDBE70', 'LightGoldenrod2': '#EEDC82', 'gray21': '#363636', 'PaleGreen': '#98FB98', 'green4': '#008B00', 'green1': '#00FF00', 'green3': '#00CD00', 'green2': '#00EE00', 'MediumOrchid': '#BA55D3', 'black': '#000000', 'gray20': '#333333', 'orchid4': '#8B4789', 'DodgerBlue1': '#1E90FF', 'DodgerBlue2': '#1C86EE', 'DodgerBlue3': '#1874CD', 'DodgerBlue4': '#104E8B', 'orchid1': '#FF83FA', 'orchid2': '#EE7AE9', 'orchid3': '#CD69C9', 'DarkSeaGreen4': '#698B69', 'DarkSeaGreen3': '#9BCD9B', 'DarkSeaGreen2': '#B4EEB4', 'DarkSeaGreen1': '#C1FFC1', 'gray100': '#FFFFFF', 'BlueViolet': '#8A2BE2', 'bisque4': '#8B7D6B', 'MediumOrchid4': '#7A378B', 'MintCream': '#F5FFFA', 'MediumOrchid1': '#E066FF', 'bisque1': '#FFE4C4', 'MediumOrchid3': '#B452CD', 'MediumOrchid2': '#D15FEE', 'gray': '#7E7E7E', 'DeepSkyBlue': '#00BFFF', 'LightGrey': '#D3D3D3', 'grey78': '#C7C7C7', 'gray22': '#383838', 'plum4': '#8B668B', 'plum3': '#CD96CD', 'plum2': '#EEAEEE', 'plum1': '#FFBBFF', 'DarkSlateGrey': '#2F4F4F', 'DarkOrchid': '#9932CC', 'OliveDrab': '#6B8E23', 'gray83': '#D4D4D4', 'grey49': '#7D7D7D', 'grey48': '#7A7A7A', 'thistle': '#D8BFD8', 'violet': '#EE82EE', 'grey43': '#6E6E6E', 'grey42': '#6B6B6B', 'LightSalmon4': '#8B5742', 'grey40': '#666666', 'LightSalmon2': '#EE9572', 'LightSalmon3': '#CD8162', 'grey45': '#737373', 'LightSalmon1': '#FFA07A', 'honeydew': '#F0FFF0', 'gray18': '#2E2E2E', 'gray19': '#303030', 'LightCyan': '#E0FFFF', 'gray15': '#262626', 'gray16': '#292929', 'gray82': '#D1D1D1', 'gray10': '#1A1A1A', 'gray11': '#1C1C1C', 'gray12': '#1F1F1F', 'gray13': '#212121', 'grey93': '#EDEDED', 'PaleGoldenrod': '#EEE8AA', 'gainsboro': '#DCDCDC', 'AntiqueWhite3': '#CDC0B0', 'AntiqueWhite2': '#EEDFCC', 'AntiqueWhite1': '#FFEFDB', 'gray27': '#454545', 'SlateBlue': '#6A5ACD', 'AntiqueWhite4': '#8B8378', 'DimGrey': '#696969', 'VioletRed': '#D02090', 'WhiteSmoke': '#F5F5F5', 'grey38': '#616161', 'grey39': '#636363', 'grey36': '#5C5C5C', 'grey37': '#5E5E5E', 'grey34': '#575757', 'grey35': '#595959', 'aqua': '#00FFFF', 'grey33': '#545454', 'grey30': '#4D4D4D', 'grey31': '#4F4F4F', 'NavyBlue': '#000080', 'sienna4': '#8B4726', 'gray81': '#CFCFCF', 'gray80': '#CCCCCC', 'sienna1': '#FF8247', 'gray86': '#DBDBDB', 'sienna3': '#CD6839', 'sienna2': '#EE7942', 'gray89': '#E3E3E3', 'gray88': '#E0E0E0', 'SlateBlue4': '#473C8B', 'gray87': '#DEDEDE', 'LightSteelBlue1': '#CAE1FF', 'magenta3': '#CD00CD', 'IndianRed': '#CD5C5C', 'SlateBlue2': '#7A67EE', 'SlateBlue1': '#836FFF', 'LightBlue': '#ADD8E6', 'PeachPuff4': '#8B7765', 'seashell': '#FFF5EE', 'SaddleBrown': '#8B4513', 'PeachPuff1': '#FFDAB9', 'PeachPuff2': '#EECBAD', 'PeachPuff3': '#CDAF95', 'aquamarine': '#7FFFD4', 'LemonChiffon2': '#EEE9BF', 'LemonChiffon1': '#FFFACD', 'tan4': '#8B5A2B', 'tan3': '#CD853F', 'tan2': '#EE9A49', 'tan1': '#FFA54F', 'LemonChiffon4': '#8B8970', 'orange': '#FFA500', 'OldLace': '#FDF5E6', 'PowderBlue': '#B0E0E6', 'RosyBrown3': '#CD9B9B', 'RoyalBlue': '#4169E1', 'LightSkyBlue4': '#607B8B', 'LightSkyBlue1': '#B0E2FF', 'LightSkyBlue2': '#A4D3EE', 'LightSkyBlue3': '#8DB6CD', 'LightYellow1': '#FFFFE0', 'LightYellow2': '#EEEED1', 'LightYellow3': '#CDCDB4', 'LightYellow4': '#8B8B7A', 'goldenrod4': '#8B6914', 'goldenrod1': '#FFC125', 'goldenrod2': '#EEB422', 'goldenrod3': '#CD9B1D', 'grey32': '#525252', 'LemonChiffon': '#FFFACD', 'burlywood1': '#FFD39B', 'YellowGreen': '#9ACD32', 'LightCoral': '#F08080', 'burlywood3': '#CDAA7D', 'ivory3': '#CDCDC1', 'firebrick3': '#CD2626', 'ivory1': '#FFFFF0', 'grey8': '#141414', 'ivory4': '#8B8B83', 'grey9': '#171717', 'DarkSalmon': '#E9967A', 'SlateGray1': '#C6E2FF', 'SlateGray2': '#B9D3EE', 'SlateGray3': '#9FB6CD', 'SlateGray4': '#6C7B8B', 'RosyBrown2': '#EEB4B4', 'RosyBrown1': '#FFC1C1', 'gray85': '#D9D9D9', 'gray84': '#D6D6D6', 'LightGreen': '#90EE90', 'LavenderBlush1': '#FFF0F5', 'grey73': '#BABABA', 'LavenderBlush3': '#CDC1C5', 'LavenderBlush2': '#EEE0E5', 'grey76': '#C2C2C2', 'LavenderBlush4': '#8B8386', 'grey74': '#BDBDBD', 'grey75': '#BFBFBF', 'pink1': '#FFB5C5', 'pink3': '#CD919E', 'pink2': '#EEA9B8', 'pink4': '#8B636C', 'gray47': '#787878', 'gray46': '#757575', 'gray45': '#737373', 'gray44': '#707070', 'gray43': '#6E6E6E', 'gray42': '#6B6B6B', 'gray41': '#696969', 'gray40': '#666666', 'gray49': '#7D7D7D', 'gray48': '#7A7A7A', 'MediumAquamarine': '#66CDAA', 'MediumForestGreen': '#32814B', 'azure1': '#F0FFFF', 'azure3': '#C1CDCD', 'azure2': '#E0EEEE', 'indigo': '#4B0082', 'azure4': '#838B8B', 'firebrick': '#B22222', 'DarkGrey': '#A9A9A9', 'magenta4': '#8B008B', 'SlateBlue3': '#6959CD', 'magenta2': '#EE00EE', 'magenta1': '#FF00FF', 'grey51': '#828282', 'chartreuse': '#7FFF00', 'grey41': '#696969', 'DarkOliveGreen4': '#6E8B3D', 'turquoise': '#40E0D0', 'DarkOliveGreen1': '#CAFF70', 'DarkOliveGreen3': '#A2CD5A', 'DarkOliveGreen2': '#BCEE68', 'grey6': '#0F0F0F', 'grey7': '#121212', 'grey4': '#0A0A0A', 'grey5': '#0D0D0D', 'grey2': '#050505', 'grey3': '#080808', 'grey0': '#000000', 'grey1': '#030303', 'gray50': '#7F7F7F', 'cyan1': '#00FFFF', 'gray51': '#828282', 'gray24': '#3D3D3D', 'HotPink': '#FF69B4', 'DarkGoldenrod4': '#8B6508', 'gray54': '#8A8A8A', 'DarkGoldenrod1': '#FFB90F', 'DarkGoldenrod2': '#EEAD0E', 'DarkGoldenrod3': '#CD950C', 'IndianRed2': '#EE6363', 'DeepPink': '#FF1493', 'gray28': '#474747', 'IndianRed3': '#CD5555', 'DarkCyan': '#008B8B', 'GreenYellow': '#ADFF2F', 'LightSalmon': '#FFA07A', 'DarkOrange4': '#8B4500', 'DarkOrange1': '#FF7F00', 'transparent': '#000000', 'DarkOrange3': '#CD6600', 'orchid': '#DA70D6', 'purple': '#800080', 'wheat4': '#8B7E66', 'wheat1': '#FFE7BA', 'wheat3': '#CDBA96', 'SpringGreen1': '#00FF7F', 'coral3': '#CD5B45', 'coral2': '#EE6A50', 'coral1': '#FF7256', 'thistle1': '#FFE1FF', 'PaleTurquoise': '#AFEEEE', 'bisque': '#FFE4C4', 'DeepPink3': '#CD1076', 'DeepPink2': '#EE1289', 'DeepPink1': '#FF1493', 'khaki': '#F0E68C', 'wheat': '#F5DEB3', 'MediumSeaGreen': '#3CB371', 'DeepPink4': '#8B0A50', 'salmon': '#FA8072', 'grey44': '#707070', 'DarkSlateBlue': '#483D8B', 'PaleVioletRed4': '#8B475D', 'PaleVioletRed1': '#FF82AB', 'PaleVioletRed2': '#EE799F', 'PaleVioletRed3': '#CD6889', 'AntiqueWhite': '#FAEBD7', 'PaleTurquoise4': '#668B8B', 'PaleTurquoise3': '#96CDCD', 'PaleTurquoise2': '#AEEEEE', 'PaleTurquoise1': '#BBFFFF', 'gray56': '#8F8F8F', 'plum': '#DDA0DD', 'beige': '#F5F5DC', 'SpringGreen': '#00FF7F', 'azure': '#F0FFFF', 'honeydew1': '#F0FFF0', 'honeydew2': '#E0EEE0', 'honeydew3': '#C1CDC1', 'honeydew4': '#838B83', 'gray57': '#919191', 'snow4': '#8B8989', 'snow2': '#EEE9E9', 'snow3': '#CDC9C9', 'snow1': '#FFFAFA', 'SandyBrown': '#F4A460', 'grey13': '#212121', 'SeaGreen4': '#2E8B57', 'SeaGreen3': '#43CD80', 'SeaGreen2': '#4EEE94', 'SeaGreen1': '#54FF9F', 'grey29': '#4A4A4A', 'grey28': '#474747', 'grey25': '#404040', 'grey24': '#3D3D3D', 'grey27': '#454545', 'grey26': '#424242', 'fuchsia': '#FF00FF', 'grey20': '#333333', 'grey23': '#3B3B3B', 'grey22': '#383838', 'gray78': '#C7C7C7', 'gray79': '#C9C9C9', 'gray76': '#C2C2C2', 'gray77': '#C4C4C4', 'gray74': '#BDBDBD', 'gray75': '#BFBFBF', 'gray72': '#B8B8B8', 'gray73': '#BABABA', 'gray70': '#B3B3B3', 'gray71': '#B5B5B5', 'ivory': '#FFFFF0', 'LemonChiffon3': '#CDC9A5', 'DeepSkyBlue4': '#00688B', 'DeepSkyBlue3': '#009ACD', 'DeepSkyBlue2': '#00B2EE', 'DeepSkyBlue1': '#00BFFF', 'cornsilk4': '#8B8878', 'cornsilk2': '#EEE8CD', 'cornsilk3': '#CDC8B1', 'CadetBlue': '#5F9EA0', 'cornsilk1': '#FFF8DC', 'grey90': '#E5E5E5', 'grey91': '#E8E8E8', 'grey92': '#EBEBEB', 'goldenrod': '#DAA520', 'grey94': '#F0F0F0', 'grey95': '#F2F2F2', 'grey96': '#F5F5F5', 'grey97': '#F7F7F7', 'grey98': '#FAFAFA', 'grey99': '#FCFCFC', 'red3': '#CD0000', 'LightSteelBlue2': '#BCD2EE', 'LightSteelBlue3': '#A2B5CD', 'LightSteelBlue4': '#6E7B8B', 'LightBlue3': '#9AC0CD', 'maroon': '#800000', 'LightSkyBlue': '#87CEFA', 'LightGoldenrodYellow': '#FAFAD2', 'MediumBlue': '#0000CD', 'LightSlateGray': '#778899', 'DarkOrange2': '#EE7600', 'PaleVioletRed': '#DB7093'} +var divlist = ['#d0', '#d1', '#d2', '#d3', '#d4', '#d5', '#d6', '#d7', '#d8', '#d9', '#d10', '#d11', '#d12', '#d13', '#d14', '#d15', '#d16', '#d17', '#d18', '#d19', '#d20', '#d21', '#d22', '#d23', '#d24', '#d25', '#d26', '#d27', '#d28', '#d29', '#d30', '#d31', '#d32', '#d33', '#d34', '#d35', '#d36', '#d37', '#d38', '#d39', '#d40', '#d41', '#d42', '#d43', '#d44', '#d45', '#d46', '#d47', '#d48', '#d49', '#d50', '#d51', '#d52', '#d53', '#d54', '#d55', '#d56', '#d57', '#d58', '#d59', '#d60', '#d61', '#d62', '#d63', '#d64', '#d65', '#d66', '#d67', '#d68', '#d69', '#d70', '#d71', '#d72', '#d73', '#d74', '#d75', '#d76', '#d77', '#d78', '#d79', '#d80', '#d81', '#d82', '#d83', '#d84', '#d85', '#d86', '#d87', '#d88', '#d89', '#d90', '#d91', '#d92', '#d93', '#d94', '#d95', '#d96', '#d97', '#d98', '#d99', '#d100', '#d101', '#d102', '#d103', '#d104', '#d105', '#d106', '#d107', '#d108', '#d109', '#d110', '#d111', '#d112', '#d113', '#d114', '#d115', '#d116', '#d117', '#d118', '#d119', '#d120', '#d121', '#d122', '#d123', '#d124', '#d125', '#d126', '#d127', '#d128', '#d129', '#d130', '#d131', '#d132', '#d133', '#d134', '#d135', '#d136', '#d137', '#d138', '#d139', '#d140', '#d141', '#d142', '#d143', '#d144', '#d145', '#d146', '#d147', '#d148', '#d149', '#d150', '#d151', '#d152', '#d153', '#d154', '#d155', '#d156', '#d157', '#d158', '#d159', '#d160', '#d161', '#d162', '#d163', '#d164', '#d165', '#d166', '#d167', '#d168', '#d169', '#d170', '#d171', '#d172', '#d173', '#d174', '#d175', '#d176', '#d177', '#d178', '#d179', '#d180', '#d181', '#d182', '#d183', '#d184', '#d185', '#d186', '#d187', '#d188', '#d189', '#d190', '#d191', '#d192', '#d193', '#d194', '#d195', '#d196', '#d197', '#d198', '#d199', '#d200', '#d201', '#d202', '#d203', '#d204', '#d205', '#d206', '#d207', '#d208', '#d209', '#d210', '#d211', '#d212', '#d213', '#d214', '#d215', '#d216', '#d217', '#d218', '#d219', '#d220', '#d221', '#d222', '#d223', '#d224', '#d225', '#d226', '#d227', '#d228', '#d229', '#d230', '#d231', '#d232', '#d233', '#d234', '#d235', '#d236', '#d237', '#d238', '#d239', '#d240', '#d241', '#d242', '#d243', '#d244', '#d245', '#d246', '#d247', '#d248', '#d249', '#d250', '#d251', '#d252', '#d253', '#d254', '#d255', '#d256', '#d257', '#d258', '#d259', '#d260', '#d261', '#d262', '#d263', '#d264', '#d265', '#d266', '#d267', '#d268', '#d269', '#d270', '#d271', '#d272', '#d273', '#d274', '#d275', '#d276', '#d277', '#d278', '#d279', '#d280', '#d281', '#d282', '#d283', '#d284', '#d285', '#d286', '#d287', '#d288', '#d289', '#d290', '#d291', '#d292', '#d293', '#d294', '#d295', '#d296', '#d297', '#d298', '#d299', '#d300', '#d301', '#d302', '#d303', '#d304', '#d305', '#d306', '#d307', '#d308', '#d309', '#d310', '#d311', '#d312', '#d313', '#d314', '#d315', '#d316', '#d317', '#d318', '#d319', '#d320', '#d321', '#d322', '#d323', '#d324', '#d325', '#d326', '#d327', '#d328', '#d329', '#d330', '#d331', '#d332', '#d333', '#d334', '#d335', '#d336', '#d337', '#d338', '#d339', '#d340', '#d341', '#d342', '#d343', '#d344', '#d345', '#d346', '#d347', '#d348', '#d349', '#d350', '#d351', '#d352', '#d353', '#d354', '#d355', '#d356', '#d357', '#d358', '#d359', '#d360', '#d361', '#d362', '#d363', '#d364', '#d365', '#d366', '#d367', '#d368', '#d369', '#d370', '#d371', '#d372', '#d373', '#d374', '#d375', '#d376', '#d377', '#d378', '#d379', '#d380', '#d381', '#d382', '#d383', '#d384', '#d385', '#d386', '#d387', '#d388', '#d389', '#d390', '#d391', '#d392', '#d393', '#d394', '#d395', '#d396', '#d397', '#d398', '#d399', '#d400', '#d401', '#d402', '#d403', '#d404', '#d405', '#d406', '#d407', '#d408', '#d409', '#d410', '#d411', '#d412', '#d413', '#d414', '#d415', '#d416', '#d417', '#d418', '#d419', '#d420', '#d421', '#d422', '#d423', '#d424', '#d425', '#d426', '#d427', '#d428', '#d429', '#d430', '#d431', '#d432', '#d433', '#d434', '#d435', '#d436', '#d437', '#d438', '#d439', '#d440', '#d441', '#d442', '#d443', '#d444', '#d445', '#d446', '#d447', '#d448', '#d449', '#d450', '#d451', '#d452', '#d453', '#d454', '#d455', '#d456', '#d457', '#d458', '#d459', '#d460', '#d461', '#d462', '#d463', '#d464', '#d465', '#d466', '#d467', '#d468', '#d469', '#d470', '#d471', '#d472', '#d473', '#d474', '#d475', '#d476', '#d477', '#d478', '#d479', '#d480', '#d481', '#d482', '#d483', '#d484', '#d485', '#d486', '#d487', '#d488', '#d489', '#d490', '#d491', '#d492', '#d493', '#d494', '#d495', '#d496', '#d497', '#d498', '#d499', '#d500', '#d501', '#d502', '#d503', '#d504', '#d505', '#d506', '#d507', '#d508', '#d509', '#d510', '#d511', '#d512', '#d513', '#d514', '#d515', '#d516', '#d517', '#d518', '#d519', '#d520', '#d521', '#d522', '#d523', '#d524', '#d525', '#d526', '#d527', '#d528', '#d529', '#d530', '#d531', '#d532', '#d533', '#d534', '#d535', '#d536', '#d537', '#d538', '#d539', '#d540', '#d541', '#d542', '#d543', '#d544', '#d545', '#d546', '#d547', '#d548', '#d549', '#d550', '#d551', '#d552', '#d553', '#d554', '#d555', '#d556', '#d557', '#d558', '#d559', '#d560', '#d561', '#d562', '#d563', '#d564', '#d565', '#d566', '#d567', '#d568', '#d569', '#d570', '#d571', '#d572', '#d573', '#d574', '#d575', '#d576', '#d577', '#d578', '#d579', '#d580', '#d581', '#d582', '#d583', '#d584', '#d585', '#d586', '#d587', '#d588', '#d589', '#d590', '#d591', '#d592', '#d593', '#d594', '#d595', '#d596', '#d597', '#d598', '#d599', '#d600', '#d601', '#d602', '#d603', '#d604', '#d605', '#d606', '#d607', '#d608', '#d609', '#d610', '#d611', '#d612', '#d613', '#d614', '#d615', '#d616', '#d617', '#d618', '#d619', '#d620', '#d621', '#d622', '#d623', '#d624', '#d625', '#d626', '#d627', '#d628', '#d629', '#d630', '#d631', '#d632', '#d633', '#d634', '#d635', '#d636', '#d637', '#d638', '#d639', '#d640', '#d641', '#d642', '#d643', '#d644', '#d645', '#d646', '#d647', '#d648', '#d649', '#d650', '#d651', '#d652', '#d653', '#d654', '#d655', '#d656', '#d657', '#d658', '#d659', '#d660', '#d661', '#d662', '#d663', '#d664', '#d665', '#d666', '#d667', '#d668', '#d669', '#d670', '#d671', '#d672', '#d673'] +var divtoname = {'#d322': 'khaki4', '#d600': 'gray34', '#d118': 'MediumPurple1', '#d119': 'MediumPurple2', '#d114': 'purple3', '#d115': 'purple4', '#d116': 'purple1', '#d117': 'MediumPurple', '#d110': 'purple', '#d111': 'indigo', '#d112': 'BlueViolet', '#d113': 'purple2', '#d529': 'grey67', '#d231': 'DarkSlateGray', '#d339': 'LightGoldenrod3', '#d233': 'MediumTurquoise', '#d232': 'DarkSlateGrey', '#d235': 'turquoise', '#d234': 'LightSeaGreen', '#d237': 'aquamarine', '#d236': 'aquamarine4', '#d239': 'aquamarine2', '#d238': 'aquamarine1', '#d332': 'gold1', '#d333': 'gold2', '#d334': 'gold3', '#d335': 'gold4', '#d336': 'LightGoldenrod', '#d337': 'LightGoldenrod4', '#d424': 'LightSalmon3', '#d425': 'LightSalmon', '#d426': 'LightSalmon1', '#d427': 'LightSalmon4', '#d420': 'sienna', '#d421': 'sienna1', '#d422': 'sienna2', '#d423': 'sienna3', '#d587': 'grey41', '#d586': 'gray41', '#d585': 'DimGrey', '#d584': 'DimGray', '#d428': 'LightSalmon2', '#d429': 'coral', '#d581': 'grey43', '#d580': 'gray43', '#d89': 'thistle4', '#d88': 'plum3', '#d349': 'goldenrod4', '#d348': 'goldenrod3', '#d81': 'thistle2', '#d80': 'thistle1', '#d83': 'plum2', '#d82': 'plum1', '#d85': 'thistle3', '#d84': 'thistle', '#d87': 'violet', '#d86': 'plum', '#d601': 'grey34', '#d67': 'DeepPink3', '#d66': 'DeepPink2', '#d65': 'DeepPink1', '#d64': 'DeepPink', '#d63': 'HotPink', '#d62': 'HotPink4', '#d61': 'HotPink1', '#d60': 'HotPink2', '#d69': 'maroon1', '#d68': 'DeepPink4', '#d510': 'grey76', '#d511': 'silver', '#d512': 'gray75', '#d513': 'grey75', '#d514': 'gray74', '#d515': 'grey74', '#d516': 'gray73', '#d517': 'grey73', '#d518': 'gray72', '#d519': 'grey72', '#d150': 'LightSteelBlue2', '#d151': 'LightSteelBlue3', '#d152': 'LightSteelBlue4', '#d153': 'SlateGray4', '#d154': 'SlateGray1', '#d155': 'SlateGray2', '#d156': 'SlateGray3', '#d157': 'LightSlateGray', '#d158': 'LightSlateGrey', '#d159': 'SlateGray', '#d565': 'gray50', '#d564': 'fractal', '#d567': 'gray', '#d566': 'grey50', '#d561': 'grey52', '#d560': 'gray52', '#d563': 'grey51', '#d562': 'gray51', '#d604': 'gray32', '#d605': 'grey32', '#d606': 'gray31', '#d607': 'grey31', '#d569': 'grey49', '#d568': 'gray49', '#d602': 'gray33', '#d603': 'grey33', '#d125': 'SlateBlue', '#d124': 'MediumSlateBlue', '#d127': 'SlateBlue2', '#d126': 'SlateBlue1', '#d121': 'MediumPurple4', '#d120': 'MediumPurple3', '#d123': 'LightSlateBlue', '#d122': 'DarkSlateBlue', '#d359': 'wheat1', '#d129': 'SlateBlue4', '#d128': 'SlateBlue3', '#d301': 'LightYellow', '#d300': 'ivory1', '#d303': 'beige', '#d302': 'LightYellow1', '#d305': 'LightGoldenrodYellow', '#d304': 'ivory2', '#d307': 'ivory3', '#d306': 'LightYellow2', '#d309': 'ivory4', '#d308': 'LightYellow3', '#d462': 'grey98', '#d351': 'DarkGoldenrod1', '#d464': 'grey97', '#d465': 'gray96', '#d466': 'grey96', '#d467': 'WhiteSmoke', '#d463': 'gray97', '#d268': 'PaleGreen3', '#d269': 'honeydew4', '#d266': 'DarkSeaGreen3', '#d267': 'DarkSeaGreen', '#d264': 'LightGreen', '#d265': 'PaleGreen2', '#d262': 'PaleGreen', '#d263': 'honeydew3', '#d260': 'DarkSeaGreen2', '#d261': 'PaleGreen1', '#d598': 'gray35', '#d29': 'firebrick4', '#d28': 'brown4', '#d23': 'red2', '#d22': 'firebrick3', '#d21': 'RosyBrown4', '#d20': 'red1', '#d27': 'IndianRed4', '#d26': 'red3', '#d25': 'brown', '#d24': 'firebrick', '#d599': 'grey35', '#d338': 'LightGoldenrod1', '#d419': 'sienna4', '#d418': 'seashell1', '#d230': 'teal', '#d415': 'chocolate4', '#d414': 'chocolate3', '#d417': 'seashell', '#d416': 'SaddleBrown', '#d411': 'chocolate', '#d410': 'seashell3', '#d413': 'chocolate2', '#d412': 'chocolate1', '#d398': 'tan1', '#d399': 'tan2', '#d392': 'DarkOrange1', '#d393': 'linen', '#d390': 'bisque1', '#d391': 'bisque3', '#d396': 'DarkOrange4', '#d397': 'peru', '#d394': 'DarkOrange2', '#d395': 'DarkOrange3', '#d194': 'CadetBlue2', '#d195': 'CadetBlue3', '#d196': 'CadetBlue4', '#d197': 'turquoise1', '#d190': 'LightBlue', '#d191': 'LightBlue4', '#d192': 'PowderBlue', '#d193': 'CadetBlue1', '#d198': 'turquoise2', '#d199': 'turquoise3', '#d330': 'cornsilk4', '#d331': 'gold', '#d640': 'gray14', '#d641': 'grey14', '#d642': 'gray13', '#d643': 'grey13', '#d644': 'gray12', '#d645': 'grey12', '#d646': 'gray11', '#d647': 'grey11', '#d648': 'gray10', '#d649': 'grey10', '#d668': 'black', '#d486': 'gainsboro', '#d487': 'gray86', '#d484': 'gray87', '#d485': 'grey87', '#d482': 'gray88', '#d483': 'grey88', '#d480': 'gray89', '#d481': 'grey89', '#d521': 'grey71', '#d520': 'gray71', '#d523': 'grey70', '#d522': 'gray70', '#d525': 'grey69', '#d524': 'gray69', '#d488': 'grey86', '#d489': 'gray85', '#d430': 'OrangeRed', '#d660': 'gray4', '#d169': 'SteelBlue1', '#d168': 'SteelBlue', '#d661': 'grey4', '#d161': 'DodgerBlue', '#d160': 'SlateGrey', '#d163': 'DodgerBlue2', '#d162': 'DodgerBlue1', '#d165': 'DodgerBlue3', '#d164': 'DodgerBlue4', '#d167': 'SteelBlue4', '#d166': 'AliceBlue', '#d635': 'grey17', '#d634': 'gray17', '#d637': 'grey16', '#d636': 'gray16', '#d631': 'grey19', '#d630': 'gray19', '#d633': 'grey18', '#d632': 'gray18', '#d639': 'grey15', '#d638': 'gray15', '#d368': 'PapayaWhip', '#d222': 'cyan', '#d223': 'cyan1', '#d220': 'LightCyan4', '#d221': 'aqua', '#d226': 'DarkSlateGray4', '#d227': 'cyan3', '#d224': 'PaleTurquoise4', '#d225': 'cyan2', '#d228': 'cyan4', '#d229': 'DarkCyan', '#d590': 'gray39', '#d538': 'gray63', '#d539': 'grey63', '#d591': 'grey39', '#d451': 'MistyRose', '#d450': 'MistyRose2', '#d453': 'salmon', '#d452': 'MistyRose1', '#d455': 'white', '#d454': 'MistyRose3', '#d457': 'grey100', '#d456': 'gray100', '#d459': 'gray99', '#d458': 'grey100', '#d592': 'gray38', '#d593': 'grey38', '#d594': 'gray37', '#d595': 'grey37', '#d596': 'gray36', '#d597': 'grey36', '#d297': 'YellowGreen', '#d296': 'OliveDrab3', '#d295': 'OliveDrab2', '#d294': 'OliveDrab1', '#d293': 'OliveDrab', '#d292': 'DarkOliveGreen', '#d291': 'DarkOliveGreen4', '#d290': 'DarkOliveGreen2', '#d356': 'wheat2', '#d357': 'OldLace', '#d354': 'DarkGoldenrod4', '#d355': 'FloralWhite', '#d352': 'DarkGoldenrod2', '#d353': 'DarkGoldenrod3', '#d299': 'ivory', '#d298': 'OliveDrab4', '#d468': 'gray95', '#d534': 'gray65', '#d535': 'grey65', '#d52': 'LavenderBlush2', '#d53': 'LavenderBlush4', '#d50': 'LavenderBlush1', '#d51': 'LavenderBlush3', '#d56': 'VioletRed3', '#d57': 'VioletRed1', '#d54': 'maroon', '#d55': 'HotPink3', '#d58': 'VioletRed2', '#d59': 'VioletRed4', '#d469': 'grey95', '#d558': 'gray53', '#d559': 'grey53', '#d576': 'gray45', '#d577': 'grey45', '#d574': 'gray46', '#d575': 'grey46', '#d572': 'gray47', '#d573': 'grey47', '#d570': 'gray48', '#d571': 'grey48', '#d671': 'opaque', '#d670': 'grey0', '#d673': 'transparent', '#d672': 'none', '#d578': 'gray44', '#d579': 'grey44', '#d589': 'grey40', '#d588': 'gray40', '#d4': 'RosyBrown2', '#d5': 'snow3', '#d6': 'LightCoral', '#d7': 'IndianRed1', '#d0': 'snow', '#d1': 'snow1', '#d2': 'snow2', '#d3': 'RosyBrown1', '#d8': 'RosyBrown3', '#d9': 'IndianRed2', '#d136': 'MediumBlue', '#d137': 'blue4', '#d134': 'blue2', '#d135': 'blue3', '#d132': 'blue', '#d133': 'blue1', '#d130': 'GhostWhite', '#d131': 'lavender', '#d583': 'grey42', '#d138': 'DarkBlue', '#d139': 'MidnightBlue', '#d312': 'yellow1', '#d313': 'yellow2', '#d310': 'LightYellow4', '#d311': 'yellow', '#d316': 'olive', '#d317': 'DarkKhaki', '#d314': 'yellow3', '#d315': 'yellow4', '#d318': 'khaki2', '#d319': 'LemonChiffon4', '#d259': 'DarkSeaGreen1', '#d258': 'honeydew2', '#d253': 'SeaGreen4', '#d252': 'SeaGreen1', '#d251': 'SeaGreen3', '#d250': 'SeaGreen', '#d257': 'honeydew1', '#d256': 'honeydew', '#d255': 'MediumForestGreen', '#d254': 'SeaGreen2', '#d345': 'goldenrod', '#d344': 'cornsilk1', '#d612': 'gray28', '#d347': 'goldenrod2', '#d461': 'gray98', '#d346': 'goldenrod1', '#d479': 'grey90', '#d341': 'cornsilk3', '#d478': 'gray90', '#d340': 'LightGoldenrod2', '#d343': 'cornsilk', '#d342': 'cornsilk2', '#d528': 'gray67', '#d408': 'seashell4', '#d409': 'seashell2', '#d406': 'PeachPuff3', '#d407': 'SandyBrown', '#d404': 'PeachPuff4', '#d405': 'PeachPuff2', '#d402': 'PeachPuff', '#d403': 'PeachPuff1', '#d400': 'tan3', '#d401': 'tan4', '#d552': 'gray56', '#d460': 'grey99', '#d16': 'firebrick2', '#d17': 'snow4', '#d14': 'IndianRed', '#d15': 'IndianRed3', '#d12': 'firebrick1', '#d13': 'brown2', '#d10': 'RosyBrown', '#d11': 'brown1', '#d532': 'gray66', '#d533': 'grey66', '#d530': 'DarkGray', '#d531': 'DarkGrey', '#d536': 'gray64', '#d537': 'grey64', '#d18': 'brown3', '#d19': 'red', '#d329': 'MediumGoldenRod', '#d328': 'LemonChiffon2', '#d178': 'LightSkyBlue1', '#d179': 'LightSkyBlue2', '#d172': 'SkyBlue4', '#d173': 'SkyBlue1', '#d170': 'SteelBlue2', '#d171': 'SteelBlue3', '#d176': 'LightSkyBlue', '#d177': 'LightSkyBlue4', '#d174': 'SkyBlue2', '#d175': 'SkyBlue3', '#d626': 'gray21', '#d627': 'grey21', '#d624': 'gray22', '#d625': 'grey22', '#d622': 'gray23', '#d623': 'grey23', '#d620': 'gray24', '#d621': 'grey24', '#d628': 'gray20', '#d629': 'grey20', '#d219': 'azure4', '#d218': 'DarkSlateGray3', '#d217': 'PaleTurquoise3', '#d216': 'DarkSlateGray2', '#d215': 'LightCyan3', '#d214': 'azure3', '#d213': 'DarkSlateGray1', '#d212': 'PaleTurquoise2', '#d211': 'PaleTurquoise', '#d210': 'PaleTurquoise1', '#d669': 'gray0', '#d582': 'gray42', '#d442': 'coral3', '#d443': 'coral4', '#d440': 'coral1', '#d441': 'coral2', '#d446': 'tomato1', '#d447': 'tomato2', '#d444': 'tomato4', '#d445': 'tomato', '#d448': 'tomato3', '#d449': 'MistyRose4', '#d280': 'DarkGreen', '#d281': 'LawnGreen', '#d282': 'chartreuse', '#d283': 'chartreuse1', '#d284': 'chartreuse2', '#d285': 'chartreuse3', '#d286': 'chartreuse4', '#d287': 'GreenYellow', '#d288': 'DarkOliveGreen3', '#d289': 'DarkOliveGreen1', '#d361': 'orange', '#d360': 'wheat3', '#d367': 'moccasin', '#d366': 'wheat4', '#d365': 'orange4', '#d364': 'orange3', '#d49': 'LavenderBlush', '#d48': 'PaleVioletRed3', '#d45': 'PaleVioletRed', '#d44': 'PaleVioletRed4', '#d47': 'PaleVioletRed1', '#d46': 'PaleVioletRed2', '#d41': 'pink2', '#d40': 'pink1', '#d43': 'pink4', '#d42': 'pink3', '#d358': 'wheat', '#d527': 'grey68', '#d526': 'gray68', '#d614': 'gray27', '#d543': 'grey61', '#d542': 'gray61', '#d541': 'grey62', '#d540': 'gray62', '#d547': 'grey59', '#d546': 'gray59', '#d545': 'grey60', '#d544': 'gray60', '#d662': 'gray3', '#d663': 'grey3', '#d549': 'grey58', '#d548': 'gray58', '#d666': 'gray1', '#d667': 'grey1', '#d664': 'gray2', '#d665': 'grey2', '#d103': 'MediumOrchid4', '#d102': 'MediumOrchid3', '#d101': 'MediumOrchid2', '#d100': 'MediumOrchid1', '#d107': 'DarkOrchid3', '#d106': 'DarkOrchid1', '#d105': 'DarkOrchid', '#d104': 'DarkViolet', '#d109': 'DarkOrchid4', '#d108': 'DarkOrchid2', '#d244': 'SpringGreen', '#d245': 'SpringGreen1', '#d246': 'SpringGreen2', '#d247': 'SpringGreen3', '#d240': 'aquamarine3', '#d241': 'MediumAquamarine', '#d242': 'MediumSpringGreen', '#d243': 'MintCream', '#d327': 'LemonChiffon3', '#d326': 'khaki', '#d325': 'LemonChiffon1', '#d324': 'LemonChiffon', '#d248': 'SpringGreen4', '#d249': 'MediumSeaGreen', '#d321': 'khaki3', '#d320': 'khaki1', '#d350': 'DarkGoldenrod', '#d439': 'salmon4', '#d438': 'salmon3', '#d98': 'purple', '#d99': 'MediumOrchid', '#d96': 'DarkMagenta', '#d97': 'magenta4', '#d94': 'magenta2', '#d95': 'magenta3', '#d92': 'magenta1', '#d93': 'plum4', '#d90': 'fuchsia', '#d91': 'magenta', '#d433': 'OrangeRed3', '#d432': 'OrangeRed2', '#d431': 'OrangeRed1', '#d74': 'VioletRed', '#d75': 'orchid2', '#d76': 'orchid', '#d77': 'orchid1', '#d70': 'maroon2', '#d71': 'maroon3', '#d72': 'maroon4', '#d73': 'MediumVioletRed', '#d437': 'salmon2', '#d78': 'orchid3', '#d79': 'orchid4', '#d436': 'salmon1', '#d435': 'DarkSalmon', '#d434': 'OrangeRed4', '#d507': 'gray77', '#d506': 'grey78', '#d505': 'gray78', '#d504': 'grey79', '#d503': 'gray79', '#d502': 'grey80', '#d501': 'gray80', '#d500': 'grey81', '#d509': 'gray76', '#d508': 'grey77', '#d473': 'grey93', '#d369': 'NavajoWhite3', '#d147': 'CornflowerBlue', '#d146': 'RoyalBlue4', '#d145': 'RoyalBlue3', '#d144': 'RoyalBlue2', '#d143': 'RoyalBlue1', '#d142': 'RoyalBlue', '#d141': 'NavyBlue', '#d140': 'navy', '#d149': 'LightSteelBlue1', '#d148': 'LightSteelBlue', '#d472': 'gray93', '#d613': 'grey28', '#d363': 'orange2', '#d611': 'grey29', '#d610': 'gray29', '#d617': 'grey26', '#d616': 'gray26', '#d615': 'grey27', '#d362': 'orange1', '#d619': 'grey25', '#d618': 'gray25', '#d208': 'azure2', '#d209': 'LightCyan2', '#d200': 'turquoise4', '#d201': 'cadet blue', '#d202': 'CadetBlue', '#d203': 'DarkTurquoise', '#d204': 'azure', '#d205': 'azure1', '#d206': 'LightCyan', '#d207': 'LightCyan1', '#d608': 'gray30', '#d609': 'grey30', '#d374': 'NavajoWhite4', '#d375': 'AntiqueWhite4', '#d376': 'AntiqueWhite', '#d377': 'tan', '#d370': 'BlanchedAlmond', '#d371': 'NavajoWhite', '#d372': 'NavajoWhite1', '#d373': 'NavajoWhite2', '#d477': 'grey91', '#d476': 'gray91', '#d475': 'grey92', '#d474': 'gray92', '#d378': 'bisque4', '#d379': 'burlywood', '#d471': 'grey94', '#d470': 'gray94', '#d279': 'green', '#d278': 'green4', '#d275': 'PaleGreen4', '#d274': 'green2', '#d277': 'ForestGreen', '#d276': 'green3', '#d271': 'lime', '#d270': 'green1', '#d273': 'DarkSeaGreen4', '#d272': 'LimeGreen', '#d38': 'pink', '#d39': 'crimson', '#d30': 'DarkRed', '#d31': 'red4', '#d32': 'maroon', '#d33': 'LightPink1', '#d34': 'LightPink3', '#d35': 'LightPink4', '#d36': 'LightPink2', '#d37': 'LightPink', '#d658': 'gray5', '#d389': 'bisque', '#d388': 'bisque2', '#d381': 'burlywood1', '#d380': 'AntiqueWhite2', '#d383': 'burlywood2', '#d382': 'burlywood3', '#d385': 'burlywood4', '#d384': 'AntiqueWhite1', '#d387': 'DarkOrange', '#d386': 'AntiqueWhite3', '#d189': 'LightBlue2', '#d188': 'LightBlue1', '#d183': 'DeepSkyBlue', '#d182': 'LightBlue3', '#d181': 'SkyBlue', '#d180': 'LightSkyBlue3', '#d187': 'DeepSkyBlue3', '#d186': 'DeepSkyBlue4', '#d185': 'DeepSkyBlue2', '#d184': 'DeepSkyBlue1', '#d657': 'grey6', '#d656': 'gray6', '#d655': 'grey7', '#d654': 'gray7', '#d653': 'grey8', '#d652': 'gray8', '#d651': 'grey9', '#d650': 'gray9', '#d550': 'gray57', '#d659': 'grey5', '#d551': 'grey57', '#d495': 'LightGray', '#d494': 'grey83', '#d497': 'gray82', '#d496': 'LightGrey', '#d491': 'gray84', '#d490': 'grey85', '#d493': 'gray83', '#d492': 'grey84', '#d554': 'gray55', '#d555': 'grey55', '#d556': 'gray54', '#d557': 'grey54', '#d499': 'gray81', '#d498': 'grey82', '#d323': 'PaleGoldenrod', '#d553': 'grey56'} diff --git a/frontend/imgrid/colors/colors/js/colordictionaries2.js b/frontend/imgrid/colors/colors/js/colordictionaries2.js new file mode 100755 index 0000000..a4acbf2 --- /dev/null +++ b/frontend/imgrid/colors/colors/js/colordictionaries2.js @@ -0,0 +1,3 @@ +rgbtohex = {'rgb(255, 235, 205)': '#FFEBCD', 'rgb(205, 155, 155)': '#CD9B9B', 'rgb(0, 0, 128)': '#000080', 'rgb(179, 238, 58)': '#B3EE3A', 'rgb(205, 51, 51)': '#CD3333', 'rgb(118, 238, 198)': '#76EEC6', 'rgb(214, 214, 214)': '#D6D6D6', 'rgb(189, 189, 189)': '#BDBDBD', 'rgb(139, 131, 120)': '#8B8378', 'rgb(0, 238, 238)': '#00EEEE', 'rgb(137, 104, 205)': '#8968CD', 'rgb(85, 107, 47)': '#556B2F', 'rgb(107, 107, 107)': '#6B6B6B', 'rgb(205, 205, 180)': '#CDCDB4', 'rgb(218, 112, 214)': '#DA70D6', 'rgb(34, 139, 34)': '#228B22', 'rgb(245, 222, 179)': '#F5DEB3', 'rgb(139, 90, 43)': '#8B5A2B', 'rgb(255, 246, 143)': '#FFF68F', 'rgb(205, 91, 69)': '#CD5B45', 'rgb(255, 187, 255)': '#FFBBFF', 'rgb(162, 181, 205)': '#A2B5CD', 'rgb(238, 118, 0)': '#EE7600', 'rgb(238, 154, 73)': '#EE9A49', 'rgb(194, 194, 194)': '#C2C2C2', 'rgb(184, 134, 11)': '#B8860B', 'rgb(93, 71, 139)': '#5D478B', 'rgb(255, 182, 193)': '#FFB6C1', 'rgb(139, 69, 0)': '#8B4500', 'rgb(105, 89, 205)': '#6959CD', 'rgb(238, 173, 14)': '#EEAD0E', 'rgb(151, 255, 255)': '#97FFFF', 'rgb(205, 150, 205)': '#CD96CD', 'rgb(255, 69, 0)': '#FF4500', 'rgb(0, 134, 139)': '#00868B', 'rgb(0, 238, 0)': '#00EE00', 'rgb(255, 106, 106)': '#FF6A6A', 'rgb(186, 186, 186)': '#BABABA', 'rgb(143, 188, 143)': '#8FBC8F', 'rgb(139, 99, 108)': '#8B636C', 'rgb(224, 102, 255)': '#E066FF', 'rgb(100, 149, 237)': '#6495ED', 'rgb(0, 139, 69)': '#008B45', 'rgb(178, 223, 238)': '#B2DFEE', 'rgb(205, 192, 176)': '#CDC0B0', 'rgb(0, 206, 209)': '#00CED1', 'rgb(104, 131, 139)': '#68838B', 'rgb(155, 205, 155)': '#9BCD9B', 'rgb(139, 76, 57)': '#8B4C39', 'rgb(205, 149, 12)': '#CD950C', 'rgb(67, 205, 128)': '#43CD80', 'rgb(54, 54, 54)': '#363636', 'rgb(0, 205, 205)': '#00CDCD', 'rgb(99, 184, 255)': '#63B8FF', 'rgb(238, 233, 233)': '#EEE9E9', 'rgb(205, 201, 201)': '#CDC9C9', 'rgb(156, 156, 156)': '#9C9C9C', 'rgb(139, 125, 123)': '#8B7D7B', 'rgb(148, 148, 148)': '#949494', 'rgb(102, 205, 170)': '#66CDAA', 'rgb(139, 54, 38)': '#8B3626', 'rgb(255, 181, 197)': '#FFB5C5', 'rgb(173, 216, 230)': '#ADD8E6', 'rgb(46, 46, 46)': '#2E2E2E', 'rgb(164, 211, 238)': '#A4D3EE', 'rgb(232, 232, 232)': '#E8E8E8', 'rgb(105, 105, 105)': '#696969', 'rgb(205, 193, 197)': '#CDC1C5', 'rgb(20, 20, 20)': '#141414', 'rgb(139, 139, 131)': '#8B8B83', 'rgb(255, 114, 86)': '#FF7256', 'rgb(0, 104, 139)': '#00688B', 'rgb(205, 41, 144)': '#CD2990', 'rgb(127, 127, 127)': '#7F7F7F', 'rgb(255, 239, 213)': '#FFEFD5', 'rgb(238, 238, 209)': '#EEEED1', 'rgb(242, 242, 242)': '#F2F2F2', 'rgb(240, 230, 140)': '#F0E68C', 'rgb(238, 207, 161)': '#EECFA1', 'rgb(25, 25, 112)': '#191970', 'rgb(205, 79, 57)': '#CD4F39', 'rgb(84, 84, 84)': '#545454', 'rgb(110, 139, 61)': '#6E8B3D', 'rgb(255, 215, 0)': '#FFD700', 'rgb(143, 143, 143)': '#8F8F8F', 'rgb(238, 59, 59)': '#EE3B3B', 'rgb(166, 166, 166)': '#A6A6A6', 'rgb(255, 160, 122)': '#FFA07A', 'rgb(51, 51, 51)': '#333333', 'rgb(224, 238, 224)': '#E0EEE0', 'rgb(139, 121, 94)': '#8B795E', 'rgb(110, 123, 139)': '#6E7B8B', 'rgb(26, 26, 26)': '#1A1A1A', 'rgb(238, 99, 99)': '#EE6363', 'rgb(178, 58, 238)': '#B23AEE', 'rgb(238, 197, 145)': '#EEC591', 'rgb(171, 171, 171)': '#ABABAB', 'rgb(237, 237, 237)': '#EDEDED', 'rgb(238, 0, 0)': '#EE0000', 'rgb(139, 71, 38)': '#8B4726', 'rgb(82, 139, 139)': '#528B8B', 'rgb(139, 105, 105)': '#8B6969', 'rgb(160, 32, 240)': '#A020F0', 'rgb(78, 238, 148)': '#4EEE94', 'rgb(205, 85, 85)': '#CD5555', 'rgb(205, 181, 205)': '#CDB5CD', 'rgb(184, 184, 184)': '#B8B8B8', 'rgb(255, 222, 173)': '#FFDEAD', 'rgb(8, 8, 8)': '#080808', 'rgb(255, 248, 220)': '#FFF8DC', 'rgb(175, 238, 238)': '#AFEEEE', 'rgb(255, 130, 71)': '#FF8247', 'rgb(13, 13, 13)': '#0D0D0D', 'rgb(0, 139, 139)': '#008B8B', 'rgb(187, 255, 255)': '#BBFFFF', 'rgb(147, 112, 219)': '#9370DB', 'rgb(0, 128, 0)': '#008000', 'rgb(238, 64, 0)': '#EE4000', 'rgb(238, 18, 137)': '#EE1289', 'rgb(54, 100, 139)': '#36648B', 'rgb(176, 176, 176)': '#B0B0B0', 'rgb(0, 0, 238)': '#0000EE', 'rgb(238, 154, 0)': '#EE9A00', 'rgb(188, 143, 143)': '#BC8F8F', 'rgb(240, 255, 255)': '#F0FFFF', 'rgb(191, 62, 255)': '#BF3EFF', 'rgb(171, 130, 255)': '#AB82FF', 'rgb(205, 173, 0)': '#CDAD00', 'rgb(255, 48, 48)': '#FF3030', 'rgb(122, 197, 205)': '#7AC5CD', 'rgb(139, 87, 66)': '#8B5742', 'rgb(204, 204, 204)': '#CCCCCC', 'rgb(205, 129, 98)': '#CD8162', 'rgb(224, 224, 224)': '#E0E0E0', 'rgb(218, 165, 32)': '#DAA520', 'rgb(205, 145, 158)': '#CD919E', 'rgb(139, 62, 47)': '#8B3E2F', 'rgb(238, 122, 233)': '#EE7AE9', 'rgb(152, 251, 152)': '#98FB98', 'rgb(240, 128, 128)': '#F08080', 'rgb(162, 205, 90)': '#A2CD5A', 'rgb(79, 79, 79)': '#4F4F4F', 'rgb(169, 169, 169)': '#A9A9A9', 'rgb(255, 127, 0)': '#FF7F00', 'rgb(139, 28, 98)': '#8B1C62', 'rgb(253, 245, 230)': '#FDF5E6', 'rgb(141, 238, 238)': '#8DEEEE', 'rgb(238, 213, 210)': '#EED5D2', 'rgb(208, 32, 144)': '#D02090', 'rgb(0, 205, 0)': '#00CD00', 'rgb(139, 71, 137)': '#8B4789', 'rgb(205, 201, 165)': '#CDC9A5', 'rgb(0, 229, 238)': '#00E5EE', 'rgb(205, 140, 149)': '#CD8C95', 'rgb(124, 205, 124)': '#7CCD7C', 'rgb(220, 220, 220)': '#DCDCDC', 'rgb(238, 229, 222)': '#EEE5DE', 'rgb(87, 87, 87)': '#575757', 'rgb(70, 130, 180)': '#4682B4', 'rgb(205, 104, 137)': '#CD6889', 'rgb(15, 15, 15)': '#0F0F0F', 'rgb(38, 38, 38)': '#262626', 'rgb(238, 180, 34)': '#EEB422', 'rgb(205, 200, 177)': '#CDC8B1', 'rgb(238, 210, 238)': '#EED2EE', 'rgb(150, 150, 150)': '#969696', 'rgb(0, 255, 127)': '#00FF7F', 'rgb(139, 126, 102)': '#8B7E66', 'rgb(205, 175, 149)': '#CDAF95', 'rgb(152, 245, 255)': '#98F5FF', 'rgb(0, 250, 154)': '#00FA9A', 'rgb(120, 120, 120)': '#787878', 'rgb(238, 118, 33)': '#EE7621', 'rgb(128, 128, 0)': '#808000', 'rgb(139, 137, 112)': '#8B8970', 'rgb(107, 142, 35)': '#6B8E23', 'rgb(219, 219, 219)': '#DBDBDB', 'rgb(205, 205, 0)': '#CDCD00', 'rgb(180, 205, 205)': '#B4CDCD', 'rgb(115, 115, 115)': '#737373', 'rgb(131, 139, 139)': '#838B8B', 'rgb(0, 178, 238)': '#00B2EE', 'rgb(94, 94, 94)': '#5E5E5E', 'rgb(135, 135, 135)': '#878787', 'rgb(145, 145, 145)': '#919191', 'rgb(205, 0, 0)': '#CD0000', 'rgb(16, 78, 139)': '#104E8B', 'rgb(133, 133, 133)': '#858585', 'rgb(205, 38, 38)': '#CD2626', 'rgb(255, 193, 193)': '#FFC1C1', 'rgb(205, 183, 181)': '#CDB7B5', 'rgb(122, 55, 139)': '#7A378B', 'rgb(154, 192, 205)': '#9AC0CD', 'rgb(191, 239, 255)': '#BFEFFF', 'rgb(219, 112, 147)': '#DB7093', 'rgb(121, 205, 205)': '#79CDCD', 'rgb(238, 232, 170)': '#EEE8AA', 'rgb(102, 205, 0)': '#66CD00', 'rgb(255, 185, 15)': '#FFB90F', 'rgb(176, 196, 222)': '#B0C4DE', 'rgb(255, 236, 139)': '#FFEC8B', 'rgb(205, 105, 201)': '#CD69C9', 'rgb(250, 250, 250)': '#FAFAFA', 'rgb(245, 245, 220)': '#F5F5DC', 'rgb(238, 106, 80)': '#EE6A50', 'rgb(64, 64, 64)': '#404040', 'rgb(238, 220, 130)': '#EEDC82', 'white': '#000000', 'rgb(125, 38, 205)': '#7D26CD', 'rgb(205, 133, 63)': '#CD853F', 'rgb(139, 102, 139)': '#8B668B', 'rgb(71, 71, 71)': '#474747', 'rgb(118, 238, 0)': '#76EE00', 'rgb(192, 255, 62)': '#C0FF3E', 'rgb(0, 0, 139)': '#00008B', 'rgb(248, 248, 255)': '#F8F8FF', 'rgb(3, 3, 3)': '#030303', 'rgb(176, 226, 255)': '#B0E2FF', 'rgb(139, 105, 20)': '#8B6914', 'rgb(255, 105, 180)': '#FF69B4', 'rgb(124, 252, 0)': '#7CFC00', 'rgb(238, 238, 224)': '#EEEEE0', 'rgb(139, 69, 19)': '#8B4513', 'rgb(139, 0, 139)': '#8B008B', 'rgb(31, 31, 31)': '#1F1F1F', 'rgb(159, 182, 205)': '#9FB6CD', 'rgb(181, 181, 181)': '#B5B5B5', 'rgb(0, 245, 255)': '#00F5FF', 'rgb(105, 139, 105)': '#698B69', 'rgb(159, 121, 238)': '#9F79EE', 'rgb(205, 198, 115)': '#CDC673', 'rgb(77, 77, 77)': '#4D4D4D', 'rgb(139, 90, 0)': '#8B5A00', 'rgb(122, 122, 122)': '#7A7A7A', 'rgb(224, 238, 238)': '#E0EEEE', 'rgb(50, 129, 75)': '#32814B', 'rgb(202, 225, 255)': '#CAE1FF', 'rgb(255, 110, 180)': '#FF6EB4', 'rgb(238, 48, 167)': '#EE30A7', 'rgb(220, 20, 60)': '#DC143C', 'rgb(127, 255, 212)': '#7FFFD4', 'rgb(205, 179, 139)': '#CDB38B', 'rgb(28, 28, 28)': '#1C1C1C', 'rgb(229, 229, 229)': '#E5E5E5', 'rgb(47, 79, 79)': '#2F4F4F', 'rgb(59, 59, 59)': '#3B3B3B', 'rgb(69, 139, 116)': '#458B74', 'rgb(255, 211, 155)': '#FFD39B', 'rgb(139, 119, 101)': '#8B7765', 'rgb(238, 230, 133)': '#EEE685', 'rgb(10, 10, 10)': '#0A0A0A', 'rgb(144, 238, 144)': '#90EE90', 'rgb(99, 99, 99)': '#636363', 'rgb(188, 238, 104)': '#BCEE68', 'rgb(255, 231, 186)': '#FFE7BA', 'rgb(154, 50, 205)': '#9A32CD', 'rgb(46, 139, 87)': '#2E8B57', 'rgb(145, 44, 238)': '#912CEE', 'rgb(255, 240, 245)': '#FFF0F5', 'rgb(67, 110, 238)': '#436EEE', 'rgb(238, 180, 180)': '#EEB4B4', 'rgb(108, 166, 205)': '#6CA6CD', 'rgb(173, 173, 173)': '#ADADAD', 'rgb(176, 48, 96)': '#B03060', 'rgb(23, 23, 23)': '#171717', 'rgb(138, 138, 138)': '#8A8A8A', 'rgb(139, 137, 137)': '#8B8989', 'rgb(209, 193, 102)': '#D1C166', 'rgb(139, 123, 139)': '#8B7B8B', 'rgb(154, 255, 154)': '#9AFF9A', 'rgb(130, 130, 130)': '#828282', 'rgb(255, 99, 71)': '#FF6347', 'rgb(205, 183, 158)': '#CDB79E', 'rgb(205, 102, 29)': '#CD661D', 'rgb(128, 0, 0)': '#800000', 'rgb(0, 0, 255)': '#0000FF', 'rgb(255, 52, 179)': '#FF34B3', 'rgb(250, 235, 215)': '#FAEBD7', 'rgb(163, 163, 163)': '#A3A3A3', 'rgb(56, 56, 56)': '#383838', 'rgb(85, 26, 139)': '#551A8B', 'rgb(139, 58, 58)': '#8B3A3A', 'rgb(168, 168, 168)': '#A8A8A8', 'rgb(255, 225, 255)': '#FFE1FF', 'rgb(125, 125, 125)': '#7D7D7D', 'rgb(131, 111, 255)': '#836FFF', 'rgb(95, 158, 160)': '#5F9EA0', 'rgb(165, 42, 42)': '#A52A2A', 'rgb(245, 255, 250)': '#F5FFFA', 'rgb(255, 218, 185)': '#FFDAB9', 'rgb(255, 228, 225)': '#FFE4E1', 'rgb(216, 191, 216)': '#D8BFD8', 'rgb(139, 101, 8)': '#8B6508', 'rgb(205, 104, 57)': '#CD6839', 'rgb(255, 131, 250)': '#FF83FA', 'rgb(82, 82, 82)': '#525252', 'rgb(117, 117, 117)': '#757575', 'rgb(255, 165, 0)': '#FFA500', 'rgb(255, 64, 64)': '#FF4040', 'rgb(255, 165, 79)': '#FFA54F', 'rgb(205, 55, 0)': '#CD3700', 'rgb(188, 210, 238)': '#BCD2EE', 'rgb(238, 121, 159)': '#EE799F', 'rgb(5, 5, 5)': '#050505', 'rgb(217, 217, 217)': '#D9D9D9', 'rgb(205, 186, 150)': '#CDBA96', 'rgb(139, 131, 134)': '#8B8386', 'rgb(185, 211, 238)': '#B9D3EE', 'rgb(235, 235, 235)': '#EBEBEB', 'rgb(230, 230, 250)': '#E6E6FA', 'rgb(41, 41, 41)': '#292929', 'rgb(205, 92, 92)': '#CD5C5C', 'rgb(131, 139, 131)': '#838B83', 'rgb(123, 104, 238)': '#7B68EE', 'rgb(128, 0, 128)': '#800080', 'rgb(139, 26, 26)': '#8B1A1A', 'rgb(141, 182, 205)': '#8DB6CD', 'rgb(212, 212, 212)': '#D4D4D4', 'rgb(238, 162, 173)': '#EEA2AD', 'rgb(255, 255, 0)': '#FFFF00', 'rgb(192, 192, 192)': '#C0C0C0', 'rgb(139, 71, 93)': '#8B475D', 'rgb(0, 100, 0)': '#006400', 'rgb(139, 37, 0)': '#8B2500', 'rgb(198, 226, 255)': '#C6E2FF', 'rgb(24, 116, 205)': '#1874CD', 'rgb(178, 34, 34)': '#B22222', 'rgb(28, 134, 238)': '#1C86EE', 'rgb(255, 0, 255)': '#FF00FF', 'rgb(33, 33, 33)': '#212121', 'rgb(209, 238, 238)': '#D1EEEE', 'rgb(255, 127, 80)': '#FF7F50', 'rgb(0, 154, 205)': '#009ACD', 'rgb(255, 255, 224)': '#FFFFE0', 'rgb(75, 0, 130)': '#4B0082', 'rgb(160, 82, 45)': '#A0522D', 'rgb(138, 43, 226)': '#8A2BE2', 'rgb(238, 224, 229)': '#EEE0E5', 'rgb(106, 90, 205)': '#6A5ACD', 'rgb(227, 227, 227)': '#E3E3E3', 'rgb(255, 250, 250)': '#FFFAFA', 'rgb(255, 174, 185)': '#FFAEB9', 'rgb(205, 0, 205)': '#CD00CD', 'rgb(126, 126, 126)': '#7E7E7E', 'rgb(139, 10, 80)': '#8B0A50', 'rgb(186, 85, 211)': '#BA55D3', 'rgb(205, 133, 0)': '#CD8500', 'rgb(211, 211, 211)': '#D3D3D3', 'rgb(69, 69, 69)': '#454545', 'rgb(222, 222, 222)': '#DEDEDE', 'rgb(221, 160, 221)': '#DDA0DD', 'rgb(255, 255, 240)': '#FFFFF0', 'rgb(112, 112, 112)': '#707070', 'rgb(209, 95, 238)': '#D15FEE', 'rgb(0, 255, 0)': '#00FF00', 'rgb(238, 233, 191)': '#EEE9BF', 'rgb(92, 92, 92)': '#5C5C5C', 'rgb(205, 112, 84)': '#CD7054', 'rgb(255, 228, 196)': '#FFE4C4', 'rgb(255, 192, 203)': '#FFC0CB', 'rgb(238, 130, 238)': '#EE82EE', 'rgb(122, 103, 238)': '#7A67EE', 'rgb(238, 121, 66)': '#EE7942', 'rgb(102, 139, 139)': '#668B8B', 'rgb(250, 240, 230)': '#FAF0E6', 'rgb(247, 247, 247)': '#F7F7F7', 'rgb(32, 178, 170)': '#20B2AA', 'rgb(97, 97, 97)': '#616161', 'rgb(150, 205, 205)': '#96CDCD', 'rgb(158, 158, 158)': '#9E9E9E', 'rgb(238, 58, 140)': '#EE3A8C', 'rgb(255, 228, 181)': '#FFE4B5', 'rgb(0, 197, 205)': '#00C5CD', 'rgb(205, 96, 144)': '#CD6090', 'rgb(205, 16, 118)': '#CD1076', 'rgb(240, 240, 240)': '#F0F0F0', 'rgb(176, 224, 230)': '#B0E0E6', 'rgb(199, 21, 133)': '#C71585', 'rgb(238, 203, 173)': '#EECBAD', 'rgb(173, 255, 47)': '#ADFF2F', 'rgb(238, 174, 238)': '#EEAEEE', 'rgb(191, 191, 191)': '#BFBFBF', 'rgb(222, 184, 135)': '#DEB887', 'rgb(18, 18, 18)': '#121212', 'rgb(83, 134, 139)': '#53868B', 'rgb(139, 134, 130)': '#8B8682', 'rgb(142, 229, 238)': '#8EE5EE', 'rgb(0, 139, 0)': '#008B00', 'rgb(240, 255, 240)': '#F0FFF0', 'rgb(104, 34, 139)': '#68228B', 'rgb(193, 255, 193)': '#C1FFC1', 'rgb(0, 0, 0)': '#000000', 'rgb(139, 58, 98)': '#8B3A62', 'rgb(89, 89, 89)': '#595959', 'rgb(72, 118, 255)': '#4876FF', 'rgb(108, 123, 139)': '#6C7B8B', 'rgb(255, 20, 147)': '#FF1493', 'rgb(255, 250, 240)': '#FFFAF0', 'rgb(132, 112, 255)': '#8470FF', 'rgb(255, 62, 150)': '#FF3E96', 'rgb(139, 125, 107)': '#8B7D6B', 'rgb(64, 224, 208)': '#40E0D0', 'rgb(148, 0, 211)': '#9400D3', 'rgb(238, 106, 167)': '#EE6AA7', 'rgb(238, 44, 44)': '#EE2C2C', 'rgb(72, 209, 204)': '#48D1CC', 'rgb(205, 155, 29)': '#CD9B1D', 'rgb(139, 0, 0)': '#8B0000', 'rgb(238, 92, 66)': '#EE5C42', 'rgb(238, 216, 174)': '#EED8AE', 'rgb(65, 105, 225)': '#4169E1', 'rgb(0, 205, 102)': '#00CD66', 'rgb(96, 123, 139)': '#607B8B', 'rgb(210, 180, 140)': '#D2B48C', 'rgb(135, 206, 255)': '#87CEFF', 'rgb(252, 252, 252)': '#FCFCFC', 'rgb(61, 61, 61)': '#3D3D3D', 'rgb(205, 102, 0)': '#CD6600', 'rgb(58, 95, 205)': '#3A5FCD', 'rgb(30, 144, 255)': '#1E90FF', 'rgb(245, 245, 245)': '#F5F5F5', 'rgb(255, 130, 171)': '#FF82AB', 'rgb(60, 179, 113)': '#3CB371', 'rgb(139, 139, 122)': '#8B8B7A', 'rgb(139, 136, 120)': '#8B8878', 'rgb(139, 34, 82)': '#8B2252', 'rgb(238, 223, 204)': '#EEDFCC', 'rgb(238, 213, 183)': '#EED5B7', 'rgb(250, 250, 210)': '#FAFAD2', 'rgb(255, 250, 205)': '#FFFACD', 'rgb(39, 64, 139)': '#27408B', 'rgb(84, 139, 84)': '#548B54', 'rgb(238, 221, 130)': '#EEDD82', 'rgb(139, 95, 101)': '#8B5F65', 'rgb(210, 105, 30)': '#D2691E', 'rgb(139, 139, 0)': '#8B8B00', 'rgb(238, 149, 114)': '#EE9572', 'rgb(0, 255, 255)': '#00FFFF', 'rgb(71, 60, 139)': '#473C8B', 'rgb(207, 207, 207)': '#CFCFCF', 'rgb(153, 50, 204)': '#9932CC', 'rgb(36, 36, 36)': '#242424', 'rgb(153, 153, 153)': '#999999', 'rgb(250, 128, 114)': '#FA8072', 'rgb(174, 238, 238)': '#AEEEEE', 'rgb(139, 117, 0)': '#8B7500', 'rgb(139, 35, 35)': '#8B2323', 'rgb(92, 172, 238)': '#5CACEE', 'rgb(48, 48, 48)': '#303030', 'rgb(139, 129, 76)': '#8B814C', 'rgb(72, 61, 139)': '#483D8B', 'rgb(238, 169, 184)': '#EEA9B8', 'rgb(69, 139, 0)': '#458B00', 'rgb(0, 128, 128)': '#008080', 'rgb(255, 255, 255)': '#FFFFFF', 'rgb(244, 164, 96)': '#F4A460', 'rgb(154, 205, 50)': '#9ACD32', 'rgb(126, 192, 238)': '#7EC0EE', 'rgb(209, 209, 209)': '#D1D1D1', 'rgb(74, 112, 139)': '#4A708B', 'rgb(112, 128, 144)': '#708090', 'rgb(105, 139, 34)': '#698B22', 'rgb(110, 110, 110)': '#6E6E6E', 'rgb(179, 179, 179)': '#B3B3B3', 'rgb(205, 50, 120)': '#CD3278', 'rgb(119, 136, 153)': '#778899', 'rgb(139, 115, 85)': '#8B7355', 'rgb(255, 193, 37)': '#FFC125', 'rgb(224, 255, 255)': '#E0FFFF', 'rgb(66, 66, 66)': '#424242', 'rgb(193, 205, 193)': '#C1CDC1', 'rgb(0, 191, 255)': '#00BFFF', 'rgb(205, 205, 193)': '#CDCDC1', 'rgb(238, 238, 0)': '#EEEE00', 'rgb(255, 140, 105)': '#FF8C69', 'rgb(135, 206, 235)': '#87CEEB', 'rgb(238, 201, 0)': '#EEC900', 'rgb(238, 232, 205)': '#EEE8CD', 'rgb(0, 0, 205)': '#0000CD', 'rgb(238, 130, 98)': '#EE8262', 'rgb(155, 48, 255)': '#9B30FF', 'rgb(43, 43, 43)': '#2B2B2B', 'rgb(240, 248, 255)': '#F0F8FF', 'rgb(238, 0, 238)': '#EE00EE', 'rgb(128, 128, 128)': '#808080', 'rgb(193, 205, 205)': '#C1CDCD', 'rgb(50, 205, 50)': '#32CD32', 'rgb(201, 201, 201)': '#C9C9C9', 'rgb(255, 239, 219)': '#FFEFDB', 'rgb(196, 196, 196)': '#C4C4C4', 'rgb(135, 206, 250)': '#87CEFA', 'rgb(139, 134, 78)': '#8B864E', 'rgb(79, 148, 205)': '#4F94CD', 'rgb(74, 74, 74)': '#4A4A4A', 'rgb(255, 0, 0)': '#FF0000', 'rgb(233, 150, 122)': '#E9967A', 'rgb(205, 190, 112)': '#CDBE70', 'rgb(84, 255, 159)': '#54FF9F', 'rgb(205, 170, 125)': '#CDAA7D', 'rgb(127, 255, 0)': '#7FFF00', 'rgb(102, 102, 102)': '#666666', 'rgb(180, 238, 180)': '#B4EEB4', 'rgb(122, 139, 139)': '#7A8B8B', 'rgb(255, 140, 0)': '#FF8C00', 'rgb(205, 197, 191)': '#CDC5BF', 'rgb(140, 140, 140)': '#8C8C8C', 'rgb(199, 199, 199)': '#C7C7C7', 'rgb(202, 255, 112)': '#CAFF70', 'rgb(255, 245, 238)': '#FFF5EE', 'rgb(189, 183, 107)': '#BDB76B', 'rgb(0, 238, 118)': '#00EE76', 'rgb(180, 82, 205)': '#B452CD', 'rgb(255, 127, 36)': '#FF7F24', 'rgb(161, 161, 161)': '#A1A1A1'} +rgbtoname = {'rgb(255, 235, 205)': 'BlanchedAlmond', 'rgb(205, 155, 155)': 'RosyBrown3', 'rgb(0, 0, 128)': 'NavyBlue', 'rgb(179, 238, 58)': 'OliveDrab2', 'rgb(205, 51, 51)': 'brown3', 'rgb(118, 238, 198)': 'aquamarine2', 'rgb(214, 214, 214)': 'grey84', 'rgb(189, 189, 189)': 'grey74', 'rgb(139, 131, 120)': 'AntiqueWhite4', 'rgb(0, 238, 238)': 'cyan2', 'rgb(137, 104, 205)': 'MediumPurple3', 'rgb(85, 107, 47)': 'DarkOliveGreen', 'rgb(107, 107, 107)': 'grey42', 'rgb(205, 205, 180)': 'LightYellow3', 'rgb(218, 112, 214)': 'orchid', 'rgb(34, 139, 34)': 'ForestGreen', 'rgb(245, 222, 179)': 'wheat', 'rgb(139, 90, 43)': 'tan4', 'rgb(255, 246, 143)': 'khaki1', 'rgb(205, 91, 69)': 'coral3', 'rgb(255, 187, 255)': 'plum1', 'rgb(162, 181, 205)': 'LightSteelBlue3', 'rgb(238, 118, 0)': 'DarkOrange2', 'rgb(238, 154, 73)': 'tan2', 'rgb(194, 194, 194)': 'grey76', 'rgb(184, 134, 11)': 'DarkGoldenrod', 'rgb(93, 71, 139)': 'MediumPurple4', 'rgb(255, 182, 193)': 'LightPink', 'rgb(139, 69, 0)': 'DarkOrange4', 'rgb(105, 89, 205)': 'SlateBlue3', 'rgb(238, 173, 14)': 'DarkGoldenrod2', 'rgb(151, 255, 255)': 'DarkSlateGray1', 'rgb(205, 150, 205)': 'plum3', 'rgb(255, 69, 0)': 'OrangeRed1', 'rgb(0, 134, 139)': 'turquoise4', 'rgb(0, 238, 0)': 'green2', 'rgb(255, 106, 106)': 'IndianRed1', 'rgb(186, 186, 186)': 'grey73', 'rgb(143, 188, 143)': 'DarkSeaGreen', 'rgb(139, 99, 108)': 'pink4', 'rgb(224, 102, 255)': 'MediumOrchid1', 'rgb(100, 149, 237)': 'CornflowerBlue', 'rgb(0, 139, 69)': 'SpringGreen4', 'rgb(178, 223, 238)': 'LightBlue2', 'rgb(205, 192, 176)': 'AntiqueWhite3', 'rgb(0, 206, 209)': 'DarkTurquoise', 'rgb(104, 131, 139)': 'LightBlue4', 'rgb(155, 205, 155)': 'DarkSeaGreen3', 'rgb(139, 76, 57)': 'salmon4', 'rgb(205, 149, 12)': 'DarkGoldenrod3', 'rgb(67, 205, 128)': 'SeaGreen3', 'rgb(54, 54, 54)': 'grey21', 'rgb(0, 205, 205)': 'cyan3', 'rgb(99, 184, 255)': 'SteelBlue1', 'rgb(238, 233, 233)': 'snow2', 'rgb(205, 201, 201)': 'snow3', 'rgb(156, 156, 156)': 'grey61', 'rgb(139, 125, 123)': 'MistyRose4', 'rgb(148, 148, 148)': 'grey58', 'rgb(102, 205, 170)': 'MediumAquamarine', 'rgb(139, 54, 38)': 'tomato4', 'rgb(255, 181, 197)': 'pink1', 'rgb(173, 216, 230)': 'LightBlue', 'rgb(46, 46, 46)': 'grey18', 'rgb(164, 211, 238)': 'LightSkyBlue2', 'rgb(232, 232, 232)': 'grey91', 'rgb(105, 105, 105)': 'grey41', 'rgb(205, 193, 197)': 'LavenderBlush3', 'rgb(20, 20, 20)': 'grey8', 'rgb(139, 139, 131)': 'ivory4', 'rgb(255, 114, 86)': 'coral1', 'rgb(0, 104, 139)': 'DeepSkyBlue4', 'rgb(205, 41, 144)': 'maroon3', 'rgb(127, 127, 127)': 'grey50', 'rgb(255, 239, 213)': 'PapayaWhip', 'rgb(238, 238, 209)': 'LightYellow2', 'rgb(242, 242, 242)': 'grey95', 'rgb(240, 230, 140)': 'khaki', 'rgb(238, 207, 161)': 'NavajoWhite2', 'rgb(25, 25, 112)': 'MidnightBlue', 'rgb(205, 79, 57)': 'tomato3', 'rgb(84, 84, 84)': 'grey33', 'rgb(110, 139, 61)': 'DarkOliveGreen4', 'rgb(255, 215, 0)': 'gold1', 'rgb(143, 143, 143)': 'grey56', 'rgb(238, 59, 59)': 'brown2', 'rgb(166, 166, 166)': 'grey65', 'rgb(255, 160, 122)': 'LightSalmon1', 'rgb(51, 51, 51)': 'grey20', 'rgb(224, 238, 224)': 'honeydew2', 'rgb(139, 121, 94)': 'NavajoWhite4', 'rgb(110, 123, 139)': 'LightSteelBlue4', 'rgb(26, 26, 26)': 'grey10', 'rgb(238, 99, 99)': 'IndianRed2', 'rgb(178, 58, 238)': 'DarkOrchid2', 'rgb(238, 197, 145)': 'burlywood2', 'rgb(171, 171, 171)': 'grey67', 'rgb(237, 237, 237)': 'grey93', 'rgb(238, 0, 0)': 'red2', 'rgb(139, 71, 38)': 'sienna4', 'rgb(82, 139, 139)': 'DarkSlateGray4', 'rgb(139, 105, 105)': 'RosyBrown4', 'rgb(160, 32, 240)': 'purple', 'rgb(78, 238, 148)': 'SeaGreen2', 'rgb(205, 85, 85)': 'IndianRed3', 'rgb(205, 181, 205)': 'thistle3', 'rgb(184, 184, 184)': 'grey72', 'rgb(255, 222, 173)': 'NavajoWhite1', 'rgb(8, 8, 8)': 'grey3', 'rgb(255, 248, 220)': 'cornsilk1', 'rgb(175, 238, 238)': 'PaleTurquoise', 'rgb(255, 130, 71)': 'sienna1', 'rgb(13, 13, 13)': 'grey5', 'rgb(0, 139, 139)': 'DarkCyan', 'rgb(187, 255, 255)': 'PaleTurquoise1', 'rgb(147, 112, 219)': 'MediumPurple', 'rgb(0, 128, 0)': 'green', 'rgb(238, 64, 0)': 'OrangeRed2', 'rgb(238, 18, 137)': 'DeepPink2', 'rgb(54, 100, 139)': 'SteelBlue4', 'rgb(176, 176, 176)': 'grey69', 'rgb(0, 0, 238)': 'blue2', 'rgb(238, 154, 0)': 'orange2', 'rgb(188, 143, 143)': 'RosyBrown', 'rgb(240, 255, 255)': 'azure1', 'rgb(191, 62, 255)': 'DarkOrchid1', 'rgb(171, 130, 255)': 'MediumPurple1', 'rgb(205, 173, 0)': 'gold3', 'rgb(255, 48, 48)': 'firebrick1', 'rgb(122, 197, 205)': 'CadetBlue3', 'rgb(139, 87, 66)': 'LightSalmon4', 'rgb(204, 204, 204)': 'grey80', 'rgb(205, 129, 98)': 'LightSalmon3', 'rgb(224, 224, 224)': 'grey88', 'rgb(218, 165, 32)': 'goldenrod', 'rgb(205, 145, 158)': 'pink3', 'rgb(139, 62, 47)': 'coral4', 'rgb(238, 122, 233)': 'orchid2', 'rgb(152, 251, 152)': 'PaleGreen', 'rgb(240, 128, 128)': 'LightCoral', 'rgb(162, 205, 90)': 'DarkOliveGreen3', 'rgb(79, 79, 79)': 'grey31', 'rgb(169, 169, 169)': 'DarkGrey', 'rgb(255, 127, 0)': 'DarkOrange1', 'rgb(139, 28, 98)': 'maroon4', 'rgb(253, 245, 230)': 'OldLace', 'rgb(141, 238, 238)': 'DarkSlateGray2', 'rgb(238, 213, 210)': 'MistyRose2', 'rgb(208, 32, 144)': 'VioletRed', 'rgb(0, 205, 0)': 'green3', 'rgb(139, 71, 137)': 'orchid4', 'rgb(205, 201, 165)': 'LemonChiffon3', 'rgb(0, 229, 238)': 'turquoise2', 'rgb(205, 140, 149)': 'LightPink3', 'rgb(124, 205, 124)': 'PaleGreen3', 'rgb(220, 220, 220)': 'gainsboro', 'rgb(238, 229, 222)': 'seashell2', 'rgb(87, 87, 87)': 'grey34', 'rgb(70, 130, 180)': 'SteelBlue', 'rgb(205, 104, 137)': 'PaleVioletRed3', 'rgb(15, 15, 15)': 'grey6', 'rgb(38, 38, 38)': 'grey15', 'rgb(238, 180, 34)': 'goldenrod2', 'rgb(205, 200, 177)': 'cornsilk3', 'rgb(238, 210, 238)': 'thistle2', 'rgb(150, 150, 150)': 'grey59', 'rgb(0, 255, 127)': 'SpringGreen1', 'rgb(139, 126, 102)': 'wheat4', 'rgb(205, 175, 149)': 'PeachPuff3', 'rgb(152, 245, 255)': 'CadetBlue1', 'rgb(0, 250, 154)': 'MediumSpringGreen', 'rgb(120, 120, 120)': 'grey47', 'rgb(238, 118, 33)': 'chocolate2', 'rgb(128, 128, 0)': 'olive', 'rgb(139, 137, 112)': 'LemonChiffon4', 'rgb(107, 142, 35)': 'OliveDrab', 'rgb(219, 219, 219)': 'grey86', 'rgb(205, 205, 0)': 'yellow3', 'rgb(180, 205, 205)': 'LightCyan3', 'rgb(115, 115, 115)': 'grey45', 'rgb(131, 139, 139)': 'azure4', 'rgb(0, 178, 238)': 'DeepSkyBlue2', 'rgb(94, 94, 94)': 'grey37', 'rgb(135, 135, 135)': 'grey53', 'rgb(145, 145, 145)': 'grey57', 'rgb(205, 0, 0)': 'red3', 'rgb(16, 78, 139)': 'DodgerBlue4', 'rgb(133, 133, 133)': 'grey52', 'rgb(205, 38, 38)': 'firebrick3', 'rgb(255, 193, 193)': 'RosyBrown1', 'rgb(205, 183, 181)': 'MistyRose3', 'rgb(122, 55, 139)': 'MediumOrchid4', 'rgb(154, 192, 205)': 'LightBlue3', 'rgb(191, 239, 255)': 'LightBlue1', 'rgb(219, 112, 147)': 'PaleVioletRed', 'rgb(121, 205, 205)': 'DarkSlateGray3', 'rgb(238, 232, 170)': 'PaleGoldenrod', 'rgb(102, 205, 0)': 'chartreuse3', 'rgb(255, 185, 15)': 'DarkGoldenrod1', 'rgb(176, 196, 222)': 'LightSteelBlue', 'rgb(255, 236, 139)': 'LightGoldenrod1', 'rgb(205, 105, 201)': 'orchid3', 'rgb(250, 250, 250)': 'grey98', 'rgb(245, 245, 220)': 'beige', 'rgb(238, 106, 80)': 'coral2', 'rgb(64, 64, 64)': 'grey25', 'rgb(238, 220, 130)': 'LightGoldenrod2', 'white': 'none', 'rgb(125, 38, 205)': 'purple3', 'rgb(205, 133, 63)': 'tan3', 'rgb(139, 102, 139)': 'plum4', 'rgb(71, 71, 71)': 'grey28', 'rgb(118, 238, 0)': 'chartreuse2', 'rgb(192, 255, 62)': 'OliveDrab1', 'rgb(0, 0, 139)': 'DarkBlue', 'rgb(248, 248, 255)': 'GhostWhite', 'rgb(3, 3, 3)': 'grey1', 'rgb(176, 226, 255)': 'LightSkyBlue1', 'rgb(139, 105, 20)': 'goldenrod4', 'rgb(255, 105, 180)': 'HotPink', 'rgb(124, 252, 0)': 'LawnGreen', 'rgb(238, 238, 224)': 'ivory2', 'rgb(139, 69, 19)': 'SaddleBrown', 'rgb(139, 0, 139)': 'magenta4', 'rgb(31, 31, 31)': 'grey12', 'rgb(159, 182, 205)': 'SlateGray3', 'rgb(181, 181, 181)': 'grey71', 'rgb(0, 245, 255)': 'turquoise1', 'rgb(105, 139, 105)': 'DarkSeaGreen4', 'rgb(159, 121, 238)': 'MediumPurple2', 'rgb(205, 198, 115)': 'khaki3', 'rgb(77, 77, 77)': 'grey30', 'rgb(139, 90, 0)': 'orange4', 'rgb(122, 122, 122)': 'grey48', 'rgb(224, 238, 238)': 'azure2', 'rgb(50, 129, 75)': 'MediumForestGreen', 'rgb(202, 225, 255)': 'LightSteelBlue1', 'rgb(255, 110, 180)': 'HotPink1', 'rgb(238, 48, 167)': 'maroon2', 'rgb(220, 20, 60)': 'crimson', 'rgb(127, 255, 212)': 'aquamarine1', 'rgb(205, 179, 139)': 'NavajoWhite3', 'rgb(28, 28, 28)': 'grey11', 'rgb(229, 229, 229)': 'grey90', 'rgb(47, 79, 79)': 'DarkSlateGrey', 'rgb(59, 59, 59)': 'grey23', 'rgb(69, 139, 116)': 'aquamarine4', 'rgb(255, 211, 155)': 'burlywood1', 'rgb(139, 119, 101)': 'PeachPuff4', 'rgb(238, 230, 133)': 'khaki2', 'rgb(10, 10, 10)': 'grey4', 'rgb(144, 238, 144)': 'PaleGreen2', 'rgb(99, 99, 99)': 'grey39', 'rgb(188, 238, 104)': 'DarkOliveGreen2', 'rgb(255, 231, 186)': 'wheat1', 'rgb(154, 50, 205)': 'DarkOrchid3', 'rgb(46, 139, 87)': 'SeaGreen4', 'rgb(145, 44, 238)': 'purple2', 'rgb(255, 240, 245)': 'LavenderBlush1', 'rgb(67, 110, 238)': 'RoyalBlue2', 'rgb(238, 180, 180)': 'RosyBrown2', 'rgb(108, 166, 205)': 'SkyBlue3', 'rgb(173, 173, 173)': 'grey68', 'rgb(176, 48, 96)': 'maroon', 'rgb(23, 23, 23)': 'grey9', 'rgb(138, 138, 138)': 'grey54', 'rgb(139, 137, 137)': 'snow4', 'rgb(209, 193, 102)': 'MediumGoldenRod', 'rgb(139, 123, 139)': 'thistle4', 'rgb(154, 255, 154)': 'PaleGreen1', 'rgb(130, 130, 130)': 'grey51', 'rgb(255, 99, 71)': 'tomato1', 'rgb(205, 183, 158)': 'bisque3', 'rgb(205, 102, 29)': 'chocolate3', 'rgb(128, 0, 0)': 'maroon', 'rgb(0, 0, 255)': 'blue1', 'rgb(255, 52, 179)': 'maroon1', 'rgb(250, 235, 215)': 'AntiqueWhite', 'rgb(163, 163, 163)': 'grey64', 'rgb(56, 56, 56)': 'grey22', 'rgb(85, 26, 139)': 'purple4', 'rgb(139, 58, 58)': 'IndianRed4', 'rgb(168, 168, 168)': 'grey66', 'rgb(255, 225, 255)': 'thistle1', 'rgb(125, 125, 125)': 'grey49', 'rgb(131, 111, 255)': 'SlateBlue1', 'rgb(95, 158, 160)': 'CadetBlue', 'rgb(165, 42, 42)': 'brown', 'rgb(245, 255, 250)': 'MintCream', 'rgb(255, 218, 185)': 'PeachPuff1', 'rgb(255, 228, 225)': 'MistyRose1', 'rgb(216, 191, 216)': 'thistle', 'rgb(139, 101, 8)': 'DarkGoldenrod4', 'rgb(205, 104, 57)': 'sienna3', 'rgb(255, 131, 250)': 'orchid1', 'rgb(82, 82, 82)': 'grey32', 'rgb(117, 117, 117)': 'grey46', 'rgb(255, 165, 0)': 'orange1', 'rgb(255, 64, 64)': 'brown1', 'rgb(255, 165, 79)': 'tan1', 'rgb(205, 55, 0)': 'OrangeRed3', 'rgb(188, 210, 238)': 'LightSteelBlue2', 'rgb(238, 121, 159)': 'PaleVioletRed2', 'rgb(5, 5, 5)': 'grey2', 'rgb(217, 217, 217)': 'grey85', 'rgb(205, 186, 150)': 'wheat3', 'rgb(139, 131, 134)': 'LavenderBlush4', 'rgb(185, 211, 238)': 'SlateGray2', 'rgb(235, 235, 235)': 'grey92', 'rgb(230, 230, 250)': 'lavender', 'rgb(41, 41, 41)': 'grey16', 'rgb(205, 92, 92)': 'IndianRed', 'rgb(131, 139, 131)': 'honeydew4', 'rgb(123, 104, 238)': 'MediumSlateBlue', 'rgb(128, 0, 128)': 'purple', 'rgb(139, 26, 26)': 'firebrick4', 'rgb(141, 182, 205)': 'LightSkyBlue3', 'rgb(212, 212, 212)': 'grey83', 'rgb(238, 162, 173)': 'LightPink2', 'rgb(255, 255, 0)': 'yellow1', 'rgb(192, 192, 192)': 'silver', 'rgb(139, 71, 93)': 'PaleVioletRed4', 'rgb(0, 100, 0)': 'DarkGreen', 'rgb(139, 37, 0)': 'OrangeRed4', 'rgb(198, 226, 255)': 'SlateGray1', 'rgb(24, 116, 205)': 'DodgerBlue3', 'rgb(178, 34, 34)': 'firebrick', 'rgb(28, 134, 238)': 'DodgerBlue2', 'rgb(255, 0, 255)': 'magenta1', 'rgb(33, 33, 33)': 'grey13', 'rgb(209, 238, 238)': 'LightCyan2', 'rgb(255, 127, 80)': 'coral', 'rgb(0, 154, 205)': 'DeepSkyBlue3', 'rgb(255, 255, 224)': 'LightYellow1', 'rgb(75, 0, 130)': 'indigo', 'rgb(160, 82, 45)': 'sienna', 'rgb(138, 43, 226)': 'BlueViolet', 'rgb(238, 224, 229)': 'LavenderBlush2', 'rgb(106, 90, 205)': 'SlateBlue', 'rgb(227, 227, 227)': 'grey89', 'rgb(255, 250, 250)': 'snow1', 'rgb(255, 174, 185)': 'LightPink1', 'rgb(205, 0, 205)': 'magenta3', 'rgb(126, 126, 126)': 'gray', 'rgb(139, 10, 80)': 'DeepPink4', 'rgb(186, 85, 211)': 'MediumOrchid', 'rgb(205, 133, 0)': 'orange3', 'rgb(211, 211, 211)': 'LightGrey', 'rgb(69, 69, 69)': 'grey27', 'rgb(222, 222, 222)': 'grey87', 'rgb(221, 160, 221)': 'plum', 'rgb(255, 255, 240)': 'ivory1', 'rgb(112, 112, 112)': 'grey44', 'rgb(209, 95, 238)': 'MediumOrchid2', 'rgb(0, 255, 0)': 'lime', 'rgb(238, 233, 191)': 'LemonChiffon2', 'rgb(92, 92, 92)': 'grey36', 'rgb(205, 112, 84)': 'salmon3', 'rgb(255, 228, 196)': 'bisque1', 'rgb(255, 192, 203)': 'pink', 'rgb(238, 130, 238)': 'violet', 'rgb(122, 103, 238)': 'SlateBlue2', 'rgb(238, 121, 66)': 'sienna2', 'rgb(102, 139, 139)': 'PaleTurquoise4', 'rgb(250, 240, 230)': 'linen', 'rgb(247, 247, 247)': 'grey97', 'rgb(32, 178, 170)': 'LightSeaGreen', 'rgb(97, 97, 97)': 'grey38', 'rgb(150, 205, 205)': 'PaleTurquoise3', 'rgb(158, 158, 158)': 'grey62', 'rgb(238, 58, 140)': 'VioletRed2', 'rgb(255, 228, 181)': 'moccasin', 'rgb(0, 197, 205)': 'turquoise3', 'rgb(205, 96, 144)': 'HotPink3', 'rgb(205, 16, 118)': 'DeepPink3', 'rgb(240, 240, 240)': 'grey94', 'rgb(176, 224, 230)': 'PowderBlue', 'rgb(199, 21, 133)': 'MediumVioletRed', 'rgb(238, 203, 173)': 'PeachPuff2', 'rgb(173, 255, 47)': 'GreenYellow', 'rgb(238, 174, 238)': 'plum2', 'rgb(191, 191, 191)': 'grey75', 'rgb(222, 184, 135)': 'burlywood', 'rgb(18, 18, 18)': 'grey7', 'rgb(83, 134, 139)': 'CadetBlue4', 'rgb(139, 134, 130)': 'seashell4', 'rgb(142, 229, 238)': 'CadetBlue2', 'rgb(0, 139, 0)': 'green4', 'rgb(240, 255, 240)': 'honeydew1', 'rgb(104, 34, 139)': 'DarkOrchid4', 'rgb(193, 255, 193)': 'DarkSeaGreen1', 'rgb(0, 0, 0)': 'opaque', 'rgb(139, 58, 98)': 'HotPink4', 'rgb(89, 89, 89)': 'grey35', 'rgb(72, 118, 255)': 'RoyalBlue1', 'rgb(108, 123, 139)': 'SlateGray4', 'rgb(255, 20, 147)': 'DeepPink1', 'rgb(255, 250, 240)': 'FloralWhite', 'rgb(132, 112, 255)': 'LightSlateBlue', 'rgb(255, 62, 150)': 'VioletRed1', 'rgb(139, 125, 107)': 'bisque4', 'rgb(64, 224, 208)': 'turquoise', 'rgb(148, 0, 211)': 'DarkViolet', 'rgb(238, 106, 167)': 'HotPink2', 'rgb(238, 44, 44)': 'firebrick2', 'rgb(72, 209, 204)': 'MediumTurquoise', 'rgb(205, 155, 29)': 'goldenrod3', 'rgb(139, 0, 0)': 'red4', 'rgb(238, 92, 66)': 'tomato2', 'rgb(238, 216, 174)': 'wheat2', 'rgb(65, 105, 225)': 'RoyalBlue', 'rgb(0, 205, 102)': 'SpringGreen3', 'rgb(96, 123, 139)': 'LightSkyBlue4', 'rgb(210, 180, 140)': 'tan', 'rgb(135, 206, 255)': 'SkyBlue1', 'rgb(252, 252, 252)': 'grey99', 'rgb(61, 61, 61)': 'grey24', 'rgb(205, 102, 0)': 'DarkOrange3', 'rgb(58, 95, 205)': 'RoyalBlue3', 'rgb(30, 144, 255)': 'DodgerBlue1', 'rgb(245, 245, 245)': 'WhiteSmoke', 'rgb(255, 130, 171)': 'PaleVioletRed1', 'rgb(60, 179, 113)': 'MediumSeaGreen', 'rgb(139, 139, 122)': 'LightYellow4', 'rgb(139, 136, 120)': 'cornsilk4', 'rgb(139, 34, 82)': 'VioletRed4', 'rgb(238, 223, 204)': 'AntiqueWhite2', 'rgb(238, 213, 183)': 'bisque2', 'rgb(250, 250, 210)': 'LightGoldenrodYellow', 'rgb(255, 250, 205)': 'LemonChiffon1', 'rgb(39, 64, 139)': 'RoyalBlue4', 'rgb(84, 139, 84)': 'PaleGreen4', 'rgb(238, 221, 130)': 'LightGoldenrod', 'rgb(139, 95, 101)': 'LightPink4', 'rgb(210, 105, 30)': 'chocolate', 'rgb(139, 139, 0)': 'yellow4', 'rgb(238, 149, 114)': 'LightSalmon2', 'rgb(0, 255, 255)': 'cyan1', 'rgb(71, 60, 139)': 'SlateBlue4', 'rgb(207, 207, 207)': 'grey81', 'rgb(153, 50, 204)': 'DarkOrchid', 'rgb(36, 36, 36)': 'grey14', 'rgb(153, 153, 153)': 'grey60', 'rgb(250, 128, 114)': 'salmon', 'rgb(174, 238, 238)': 'PaleTurquoise2', 'rgb(139, 117, 0)': 'gold4', 'rgb(139, 35, 35)': 'brown4', 'rgb(92, 172, 238)': 'SteelBlue2', 'rgb(48, 48, 48)': 'grey19', 'rgb(139, 129, 76)': 'LightGoldenrod4', 'rgb(72, 61, 139)': 'DarkSlateBlue', 'rgb(238, 169, 184)': 'pink2', 'rgb(69, 139, 0)': 'chartreuse4', 'rgb(0, 128, 128)': 'teal', 'rgb(255, 255, 255)': 'grey100', 'rgb(244, 164, 96)': 'SandyBrown', 'rgb(154, 205, 50)': 'YellowGreen', 'rgb(126, 192, 238)': 'SkyBlue2', 'rgb(209, 209, 209)': 'grey82', 'rgb(74, 112, 139)': 'SkyBlue4', 'rgb(112, 128, 144)': 'SlateGrey', 'rgb(105, 139, 34)': 'OliveDrab4', 'rgb(110, 110, 110)': 'grey43', 'rgb(179, 179, 179)': 'grey70', 'rgb(205, 50, 120)': 'VioletRed3', 'rgb(119, 136, 153)': 'LightSlateGrey', 'rgb(139, 115, 85)': 'burlywood4', 'rgb(255, 193, 37)': 'goldenrod1', 'rgb(224, 255, 255)': 'LightCyan1', 'rgb(66, 66, 66)': 'grey26', 'rgb(193, 205, 193)': 'honeydew3', 'rgb(0, 191, 255)': 'DeepSkyBlue1', 'rgb(205, 205, 193)': 'ivory3', 'rgb(238, 238, 0)': 'yellow2', 'rgb(255, 140, 105)': 'salmon1', 'rgb(135, 206, 235)': 'SkyBlue', 'rgb(238, 201, 0)': 'gold2', 'rgb(238, 232, 205)': 'cornsilk2', 'rgb(0, 0, 205)': 'MediumBlue', 'rgb(238, 130, 98)': 'salmon2', 'rgb(155, 48, 255)': 'purple1', 'rgb(43, 43, 43)': 'grey17', 'rgb(240, 248, 255)': 'AliceBlue', 'rgb(238, 0, 238)': 'magenta2', 'rgb(128, 128, 128)': 'fractal', 'rgb(193, 205, 205)': 'azure3', 'rgb(50, 205, 50)': 'LimeGreen', 'rgb(201, 201, 201)': 'grey79', 'rgb(255, 239, 219)': 'AntiqueWhite1', 'rgb(196, 196, 196)': 'grey77', 'rgb(135, 206, 250)': 'LightSkyBlue', 'rgb(139, 134, 78)': 'khaki4', 'rgb(79, 148, 205)': 'SteelBlue3', 'rgb(74, 74, 74)': 'grey29', 'rgb(255, 0, 0)': 'red1', 'rgb(233, 150, 122)': 'DarkSalmon', 'rgb(205, 190, 112)': 'LightGoldenrod3', 'rgb(84, 255, 159)': 'SeaGreen1', 'rgb(205, 170, 125)': 'burlywood3', 'rgb(127, 255, 0)': 'chartreuse1', 'rgb(102, 102, 102)': 'grey40', 'rgb(180, 238, 180)': 'DarkSeaGreen2', 'rgb(122, 139, 139)': 'LightCyan4', 'rgb(255, 140, 0)': 'DarkOrange', 'rgb(205, 197, 191)': 'seashell3', 'rgb(140, 140, 140)': 'grey55', 'rgb(199, 199, 199)': 'grey78', 'rgb(202, 255, 112)': 'DarkOliveGreen1', 'rgb(255, 245, 238)': 'seashell1', 'rgb(189, 183, 107)': 'DarkKhaki', 'rgb(0, 238, 118)': 'SpringGreen2', 'rgb(180, 82, 205)': 'MediumOrchid3', 'rgb(255, 127, 36)': 'chocolate1', 'rgb(161, 161, 161)': 'grey63'} +hextorgb = {'#EE1289': 'rgb(238, 18, 137)', '#EE8262': 'rgb(238, 130, 98)', '#C4C4C4': 'rgb(196, 196, 196)', '#556B2F': 'rgb(85, 107, 47)', '#FF8C00': 'rgb(255, 140, 0)', '#8B7B8B': 'rgb(139, 123, 139)', '#0000EE': 'rgb(0, 0, 238)', '#EED5D2': 'rgb(238, 213, 210)', '#BA55D3': 'rgb(186, 85, 211)', '#FFF5EE': 'rgb(255, 245, 238)', '#912CEE': 'rgb(145, 44, 238)', '#2F4F4F': 'rgb(47, 79, 79)', '#32814B': 'rgb(50, 129, 75)', '#D15FEE': 'rgb(209, 95, 238)', '#F0FFF0': 'rgb(240, 255, 240)', '#B23AEE': 'rgb(178, 58, 238)', '#8B7765': 'rgb(139, 119, 101)', '#3D3D3D': 'rgb(61, 61, 61)', '#54FF9F': 'rgb(84, 255, 159)', '#636363': 'rgb(99, 99, 99)', '#8B8386': 'rgb(139, 131, 134)', '#FF4040': 'rgb(255, 64, 64)', '#EEA9B8': 'rgb(238, 169, 184)', '#C2C2C2': 'rgb(194, 194, 194)', '#800080': 'rgb(128, 0, 128)', '#545454': 'rgb(84, 84, 84)', '#EE3A8C': 'rgb(238, 58, 140)', '#8A8A8A': 'rgb(138, 138, 138)', '#FF00FF': 'rgb(255, 0, 255)', '#436EEE': 'rgb(67, 110, 238)', '#8B864E': 'rgb(139, 134, 78)', '#0A0A0A': 'rgb(10, 10, 10)', '#808000': 'rgb(128, 128, 0)', '#E3E3E3': 'rgb(227, 227, 227)', '#1874CD': 'rgb(24, 116, 205)', '#BCD2EE': 'rgb(188, 210, 238)', '#A9A9A9': 'rgb(169, 169, 169)', '#F4A460': 'rgb(244, 164, 96)', '#FF3030': 'rgb(255, 48, 48)', '#FFEBCD': 'rgb(255, 235, 205)', '#B0C4DE': 'rgb(176, 196, 222)', '#00CDCD': 'rgb(0, 205, 205)', '#C0FF3E': 'rgb(192, 255, 62)', '#FFD700': 'rgb(255, 215, 0)', '#242424': 'rgb(36, 36, 36)', '#8B2252': 'rgb(139, 34, 82)', '#4EEE94': 'rgb(78, 238, 148)', '#CD3278': 'rgb(205, 50, 120)', '#00E5EE': 'rgb(0, 229, 238)', '#CD853F': 'rgb(205, 133, 63)', '#ADD8E6': 'rgb(173, 216, 230)', '#C7C7C7': 'rgb(199, 199, 199)', '#CD2990': 'rgb(205, 41, 144)', '#EEE5DE': 'rgb(238, 229, 222)', '#66CD00': 'rgb(102, 205, 0)', '#878787': 'rgb(135, 135, 135)', '#FFA54F': 'rgb(255, 165, 79)', '#A2B5CD': 'rgb(162, 181, 205)', '#BC8F8F': 'rgb(188, 143, 143)', '#C9C9C9': 'rgb(201, 201, 201)', '#D1C166': 'rgb(209, 193, 102)', '#8B2323': 'rgb(139, 35, 35)', '#B3EE3A': 'rgb(179, 238, 58)', '#EEEED1': 'rgb(238, 238, 209)', '#AEEEEE': 'rgb(174, 238, 238)', '#BDBDBD': 'rgb(189, 189, 189)', '#FF7F00': 'rgb(255, 127, 0)', '#FFC0CB': 'rgb(255, 192, 203)', '#EE3B3B': 'rgb(238, 59, 59)', '#CDC8B1': 'rgb(205, 200, 177)', '#CDB38B': 'rgb(205, 179, 139)', '#CDBA96': 'rgb(205, 186, 150)', '#B4EEB4': 'rgb(180, 238, 180)', '#40E0D0': 'rgb(64, 224, 208)', '#8B795E': 'rgb(139, 121, 94)', '#27408B': 'rgb(39, 64, 139)', '#424242': 'rgb(66, 66, 66)', '#CDB7B5': 'rgb(205, 183, 181)', '#CAE1FF': 'rgb(202, 225, 255)', '#F0FFFF': 'rgb(240, 255, 255)', '#2E8B57': 'rgb(46, 139, 87)', '#87CEEB': 'rgb(135, 206, 235)', '#CD00CD': 'rgb(205, 0, 205)', '#CDAA7D': 'rgb(205, 170, 125)', '#836FFF': 'rgb(131, 111, 255)', '#ABABAB': 'rgb(171, 171, 171)', '#EEB4B4': 'rgb(238, 180, 180)', '#8B7355': 'rgb(139, 115, 85)', '#F0E68C': 'rgb(240, 230, 140)', '#CDCDB4': 'rgb(205, 205, 180)', '#4D4D4D': 'rgb(77, 77, 77)', '#B8B8B8': 'rgb(184, 184, 184)', '#B4CDCD': 'rgb(180, 205, 205)', '#008B8B': 'rgb(0, 139, 139)', '#828282': 'rgb(130, 130, 130)', '#00EEEE': 'rgb(0, 238, 238)', '#708090': 'rgb(112, 128, 144)', '#9AFF9A': 'rgb(154, 255, 154)', '#FFA07A': 'rgb(255, 160, 122)', '#EBEBEB': 'rgb(235, 235, 235)', '#FFB5C5': 'rgb(255, 181, 197)', '#00688B': 'rgb(0, 104, 139)', '#DBDBDB': 'rgb(219, 219, 219)', '#191970': 'rgb(25, 25, 112)', '#FF83FA': 'rgb(255, 131, 250)', '#A1A1A1': 'rgb(161, 161, 161)', '#838B8B': 'rgb(131, 139, 139)', '#FFA500': 'rgb(255, 165, 0)', '#00FF7F': 'rgb(0, 255, 127)', '#EEAD0E': 'rgb(238, 173, 14)', '#B03060': 'rgb(176, 48, 96)', '#96CDCD': 'rgb(150, 205, 205)', '#CD3333': 'rgb(205, 51, 51)', '#CDBE70': 'rgb(205, 190, 112)', '#7CCD7C': 'rgb(124, 205, 124)', '#97FFFF': 'rgb(151, 255, 255)', '#DAA520': 'rgb(218, 165, 32)', '#8B3A3A': 'rgb(139, 58, 58)', '#6B6B6B': 'rgb(107, 107, 107)', '#FFFAF0': 'rgb(255, 250, 240)', '#757575': 'rgb(117, 117, 117)', '#BFBFBF': 'rgb(191, 191, 191)', '#00EE76': 'rgb(0, 238, 118)', '#FFFAFA': 'rgb(255, 250, 250)', '#6E8B3D': 'rgb(110, 139, 61)', '#EEE685': 'rgb(238, 230, 133)', '#FF3E96': 'rgb(255, 62, 150)', '#EE0000': 'rgb(238, 0, 0)', '#FDF5E6': 'rgb(253, 245, 230)', '#E066FF': 'rgb(224, 102, 255)', '#8DB6CD': 'rgb(141, 182, 205)', '#FF7256': 'rgb(255, 114, 86)', '#7CFC00': 'rgb(124, 252, 0)', '#838B83': 'rgb(131, 139, 131)', '#BF3EFF': 'rgb(191, 62, 255)', '#8B6914': 'rgb(139, 105, 20)', '#00CD66': 'rgb(0, 205, 102)', '#525252': 'rgb(82, 82, 82)', '#A4D3EE': 'rgb(164, 211, 238)', '#00868B': 'rgb(0, 134, 139)', '#8DEEEE': 'rgb(141, 238, 238)', '#787878': 'rgb(120, 120, 120)', '#8B1C62': 'rgb(139, 28, 98)', '#616161': 'rgb(97, 97, 97)', '#4876FF': 'rgb(72, 118, 255)', '#9F79EE': 'rgb(159, 121, 238)', '#212121': 'rgb(33, 33, 33)', '#C1CDC1': 'rgb(193, 205, 193)', '#CD69C9': 'rgb(205, 105, 201)', '#E0EEEE': 'rgb(224, 238, 238)', '#8B7E66': 'rgb(139, 126, 102)', '#8A2BE2': 'rgb(138, 43, 226)', '#CDCD00': 'rgb(205, 205, 0)', '#EE5C42': 'rgb(238, 92, 66)', '#6E6E6E': 'rgb(110, 110, 110)', '#EEAEEE': 'rgb(238, 174, 238)', '#DC143C': 'rgb(220, 20, 60)', '#CD919E': 'rgb(205, 145, 158)', '#528B8B': 'rgb(82, 139, 139)', '#AFEEEE': 'rgb(175, 238, 238)', '#CD6889': 'rgb(205, 104, 137)', '#E6E6FA': 'rgb(230, 230, 250)', '#EE00EE': 'rgb(238, 0, 238)', '#999999': 'rgb(153, 153, 153)', '#F0F8FF': 'rgb(240, 248, 255)', '#595959': 'rgb(89, 89, 89)', '#FF7F50': 'rgb(255, 127, 80)', '#A6A6A6': 'rgb(166, 166, 166)', '#DEDEDE': 'rgb(222, 222, 222)', '#262626': 'rgb(38, 38, 38)', '#6CA6CD': 'rgb(108, 166, 205)', '#8B8B83': 'rgb(139, 139, 131)', '#474747': 'rgb(71, 71, 71)', '#F7F7F7': 'rgb(247, 247, 247)', '#548B54': 'rgb(84, 139, 84)', '#48D1CC': 'rgb(72, 209, 204)', '#C1CDCD': 'rgb(193, 205, 205)', '#E0EEE0': 'rgb(224, 238, 224)', '#FFB90F': 'rgb(255, 185, 15)', '#FFD39B': 'rgb(255, 211, 155)', '#8B5A2B': 'rgb(139, 90, 43)', '#EEE9BF': 'rgb(238, 233, 191)', '#BCEE68': 'rgb(188, 238, 104)', '#8470FF': 'rgb(132, 112, 255)', '#8B0A50': 'rgb(139, 10, 80)', '#FFF68F': 'rgb(255, 246, 143)', '#EEA2AD': 'rgb(238, 162, 173)', '#CD5B45': 'rgb(205, 91, 69)', '#7FFF00': 'rgb(127, 255, 0)', '#8B8378': 'rgb(139, 131, 120)', '#9BCD9B': 'rgb(155, 205, 155)', '#454545': 'rgb(69, 69, 69)', '#D1D1D1': 'rgb(209, 209, 209)', '#EEE8AA': 'rgb(238, 232, 170)', '#668B8B': 'rgb(102, 139, 139)', '#EE30A7': 'rgb(238, 48, 167)', '#FFC125': 'rgb(255, 193, 37)', '#8B475D': 'rgb(139, 71, 93)', '#D8BFD8': 'rgb(216, 191, 216)', '#404040': 'rgb(64, 64, 64)', '#EEEE00': 'rgb(238, 238, 0)', '#CDB5CD': 'rgb(205, 181, 205)', '#00C5CD': 'rgb(0, 197, 205)', '#00CED1': 'rgb(0, 206, 209)', '#CFCFCF': 'rgb(207, 207, 207)', '#008B00': 'rgb(0, 139, 0)', '#7A7A7A': 'rgb(122, 122, 122)', '#B8860B': 'rgb(184, 134, 11)', '#1C86EE': 'rgb(28, 134, 238)', '#8B5742': 'rgb(139, 87, 66)', '#1A1A1A': 'rgb(26, 26, 26)', '#8B008B': 'rgb(139, 0, 139)', '#0F0F0F': 'rgb(15, 15, 15)', '#CD3700': 'rgb(205, 55, 0)', '#7F7F7F': 'rgb(127, 127, 127)', '#FF6EB4': 'rgb(255, 110, 180)', '#6959CD': 'rgb(105, 89, 205)', '#90EE90': 'rgb(144, 238, 144)', '#8B4789': 'rgb(139, 71, 137)', '#EE7AE9': 'rgb(238, 122, 233)', '#8968CD': 'rgb(137, 104, 205)', '#080808': 'rgb(8, 8, 8)', '#CDC9C9': 'rgb(205, 201, 201)', '#BDB76B': 'rgb(189, 183, 107)', '#9370DB': 'rgb(147, 112, 219)', '#EEDC82': 'rgb(238, 220, 130)', '#3CB371': 'rgb(60, 179, 113)', '#F5FFFA': 'rgb(245, 255, 250)', '#303030': 'rgb(48, 48, 48)', '#B9D3EE': 'rgb(185, 211, 238)', '#575757': 'rgb(87, 87, 87)', '#F5F5DC': 'rgb(245, 245, 220)', '#BABABA': 'rgb(186, 186, 186)', '#0000CD': 'rgb(0, 0, 205)', '#FF8247': 'rgb(255, 130, 71)', '#F2F2F2': 'rgb(242, 242, 242)', '#EED5B7': 'rgb(238, 213, 183)', '#FFEC8B': 'rgb(255, 236, 139)', '#EE7600': 'rgb(238, 118, 0)', '#8B636C': 'rgb(139, 99, 108)', '#8B814C': 'rgb(139, 129, 76)', '#FFE4B5': 'rgb(255, 228, 181)', '#4F94CD': 'rgb(79, 148, 205)', '#CDAD00': 'rgb(205, 173, 0)', '#CD5555': 'rgb(205, 85, 85)', '#8B7500': 'rgb(139, 117, 0)', '#473C8B': 'rgb(71, 60, 139)', '#B0E0E6': 'rgb(176, 224, 230)', '#FFFF00': 'rgb(255, 255, 0)', '#CD96CD': 'rgb(205, 150, 205)', '#006400': 'rgb(0, 100, 0)', '#FAFAFA': 'rgb(250, 250, 250)', '#53868B': 'rgb(83, 134, 139)', '#8B4513': 'rgb(139, 69, 19)', '#98FB98': 'rgb(152, 251, 152)', '#63B8FF': 'rgb(99, 184, 255)', '#FFAEB9': 'rgb(255, 174, 185)', '#EE6A50': 'rgb(238, 106, 80)', '#87CEFF': 'rgb(135, 206, 255)', '#87CEFA': 'rgb(135, 206, 250)', '#ADFF2F': 'rgb(173, 255, 47)', '#008B45': 'rgb(0, 139, 69)', '#EE4000': 'rgb(238, 64, 0)', '#8B6969': 'rgb(139, 105, 105)', '#00008B': 'rgb(0, 0, 139)', '#DB7093': 'rgb(219, 112, 147)', '#7EC0EE': 'rgb(126, 192, 238)', '#3B3B3B': 'rgb(59, 59, 59)', '#8C8C8C': 'rgb(140, 140, 140)', '#5F9EA0': 'rgb(95, 158, 160)', '#EE799F': 'rgb(238, 121, 159)', '#CD6090': 'rgb(205, 96, 144)', '#8B8682': 'rgb(139, 134, 130)', '#458B74': 'rgb(69, 139, 116)', '#EECFA1': 'rgb(238, 207, 161)', '#76EE00': 'rgb(118, 238, 0)', '#000080': 'rgb(0, 0, 128)', '#228B22': 'rgb(34, 139, 34)', '#8B8B00': 'rgb(139, 139, 0)', '#B5B5B5': 'rgb(181, 181, 181)', '#CD950C': 'rgb(205, 149, 12)', '#EE82EE': 'rgb(238, 130, 238)', '#EDEDED': 'rgb(237, 237, 237)', '#F5DEB3': 'rgb(245, 222, 179)', '#3A5FCD': 'rgb(58, 95, 205)', '#00FA9A': 'rgb(0, 250, 154)', '#F0F0F0': 'rgb(240, 240, 240)', '#D1EEEE': 'rgb(209, 238, 238)', '#2E2E2E': 'rgb(46, 46, 46)', '#EEC591': 'rgb(238, 197, 145)', '#8B3E2F': 'rgb(139, 62, 47)', '#CD8162': 'rgb(205, 129, 98)', '#9AC0CD': 'rgb(154, 192, 205)', '#8B8989': 'rgb(139, 137, 137)', '#EED8AE': 'rgb(238, 216, 174)', '#551A8B': 'rgb(85, 26, 139)', '#919191': 'rgb(145, 145, 145)', '#949494': 'rgb(148, 148, 148)', '#778899': 'rgb(119, 136, 153)', '#FFFACD': 'rgb(255, 250, 205)', '#458B00': 'rgb(69, 139, 0)', '#008000': 'rgb(0, 128, 0)', '#FFFFF0': 'rgb(255, 255, 240)', '#E0E0E0': 'rgb(224, 224, 224)', '#EEB422': 'rgb(238, 180, 34)', '#A020F0': 'rgb(160, 32, 240)', '#5CACEE': 'rgb(92, 172, 238)', '#CD4F39': 'rgb(205, 79, 57)', '#CDC0B0': 'rgb(205, 192, 176)', '#6E7B8B': 'rgb(110, 123, 139)', '#9E9E9E': 'rgb(158, 158, 158)', '#CDC673': 'rgb(205, 198, 115)', '#104E8B': 'rgb(16, 78, 139)', '#E0FFFF': 'rgb(224, 255, 255)', '#FFFFFF': 'rgb(255, 255, 255)', '#6C7B8B': 'rgb(108, 123, 139)', '#FFC1C1': 'rgb(255, 193, 193)', '#D6D6D6': 'rgb(214, 214, 214)', '#8B4726': 'rgb(139, 71, 38)', '#CD9B1D': 'rgb(205, 155, 29)', '#FF6347': 'rgb(255, 99, 71)', '#FF34B3': 'rgb(255, 52, 179)', '#7D7D7D': 'rgb(125, 125, 125)', '#121212': 'rgb(18, 18, 18)', '#B0E2FF': 'rgb(176, 226, 255)', '#8B3A62': 'rgb(139, 58, 98)', '#CD5C5C': 'rgb(205, 92, 92)', '#4A4A4A': 'rgb(74, 74, 74)', '#B0B0B0': 'rgb(176, 176, 176)', '#D9D9D9': 'rgb(217, 217, 217)', '#A2CD5A': 'rgb(162, 205, 90)', '#8B0000': 'rgb(139, 0, 0)', '#FF6A6A': 'rgb(255, 106, 106)', '#CD6600': 'rgb(205, 102, 0)', '#FFEFDB': 'rgb(255, 239, 219)', '#E9967A': 'rgb(233, 150, 122)', '#EEE9E9': 'rgb(238, 233, 233)', '#D4D4D4': 'rgb(212, 212, 212)', '#383838': 'rgb(56, 56, 56)', '#7A67EE': 'rgb(122, 103, 238)', '#4169E1': 'rgb(65, 105, 225)', '#5E5E5E': 'rgb(94, 94, 94)', '#00F5FF': 'rgb(0, 245, 255)', '#FFEFD5': 'rgb(255, 239, 213)', '#CDAF95': 'rgb(205, 175, 149)', '#CCCCCC': 'rgb(204, 204, 204)', '#00BFFF': 'rgb(0, 191, 255)', '#CDB79E': 'rgb(205, 183, 158)', '#969696': 'rgb(150, 150, 150)', '#4F4F4F': 'rgb(79, 79, 79)', '#1E90FF': 'rgb(30, 144, 255)', '#FCFCFC': 'rgb(252, 252, 252)', '#EE2C2C': 'rgb(238, 44, 44)', '#8B6508': 'rgb(139, 101, 8)', '#696969': 'rgb(105, 105, 105)', '#FF7F24': 'rgb(255, 127, 36)', '#8FBC8F': 'rgb(143, 188, 143)', '#66CDAA': 'rgb(102, 205, 170)', '#6495ED': 'rgb(100, 149, 237)', '#0D0D0D': 'rgb(13, 13, 13)', '#EEE0E5': 'rgb(238, 224, 229)', '#666666': 'rgb(102, 102, 102)', '#B2DFEE': 'rgb(178, 223, 238)', '#B22222': 'rgb(178, 34, 34)', '#4B0082': 'rgb(75, 0, 130)', '#FF82AB': 'rgb(255, 130, 171)', '#AB82FF': 'rgb(171, 130, 255)', '#79CDCD': 'rgb(121, 205, 205)', '#FFE4C4': 'rgb(255, 228, 196)', '#DEB887': 'rgb(222, 184, 135)', '#5D478B': 'rgb(93, 71, 139)', '#8B3626': 'rgb(139, 54, 38)', '#FFFFE0': 'rgb(255, 255, 224)', '#FFE4E1': 'rgb(255, 228, 225)', '#171717': 'rgb(23, 23, 23)', '#EEDFCC': 'rgb(238, 223, 204)', '#9400D3': 'rgb(148, 0, 211)', '#BFEFFF': 'rgb(191, 239, 255)', '#8B7D6B': 'rgb(139, 125, 107)', '#FF8C69': 'rgb(255, 140, 105)', '#C6E2FF': 'rgb(198, 226, 255)', '#1C1C1C': 'rgb(28, 28, 28)', '#FF4500': 'rgb(255, 69, 0)', '#FFE7BA': 'rgb(255, 231, 186)', '#808080': 'rgb(128, 128, 128)', '#EE9572': 'rgb(238, 149, 114)', '#CD8500': 'rgb(205, 133, 0)', '#8B5A00': 'rgb(139, 90, 0)', '#9932CC': 'rgb(153, 50, 204)', '#EECBAD': 'rgb(238, 203, 173)', '#CD8C95': 'rgb(205, 140, 149)', '#292929': 'rgb(41, 41, 41)', '#CD1076': 'rgb(205, 16, 118)', '#7A378B': 'rgb(122, 55, 139)', '#FF0000': 'rgb(255, 0, 0)', '#698B22': 'rgb(105, 139, 34)', '#ADADAD': 'rgb(173, 173, 173)', '#EEE8CD': 'rgb(238, 232, 205)', '#DDA0DD': 'rgb(221, 160, 221)', '#7D26CD': 'rgb(125, 38, 205)', '#DA70D6': 'rgb(218, 112, 214)', '#DCDCDC': 'rgb(220, 220, 220)', '#68228B': 'rgb(104, 34, 139)', '#7B68EE': 'rgb(123, 104, 238)', '#000000': 'white', '#6B8E23': 'rgb(107, 142, 35)', '#FF69B4': 'rgb(255, 105, 180)', '#800000': 'rgb(128, 0, 0)', '#8B668B': 'rgb(139, 102, 139)', '#363636': 'rgb(54, 54, 54)', '#8B4500': 'rgb(139, 69, 0)', '#D3D3D3': 'rgb(211, 211, 211)', '#607B8B': 'rgb(96, 123, 139)', '#F08080': 'rgb(240, 128, 128)', '#CD9B9B': 'rgb(205, 155, 155)', '#76EEC6': 'rgb(118, 238, 198)', '#FAEBD7': 'rgb(250, 235, 215)', '#68838B': 'rgb(104, 131, 139)', '#7FFFD4': 'rgb(127, 255, 212)', '#C0C0C0': 'rgb(192, 192, 192)', '#EEDD82': 'rgb(238, 221, 130)', '#EE9A49': 'rgb(238, 154, 73)', '#4A708B': 'rgb(74, 112, 139)', '#008080': 'rgb(0, 128, 128)', '#7AC5CD': 'rgb(122, 197, 205)', '#98F5FF': 'rgb(152, 245, 255)', '#8B2500': 'rgb(139, 37, 0)', '#8F8F8F': 'rgb(143, 143, 143)', '#FFF0F5': 'rgb(255, 240, 245)', '#8B8970': 'rgb(139, 137, 112)', '#8B8878': 'rgb(139, 136, 120)', '#6A5ACD': 'rgb(106, 90, 205)', '#4682B4': 'rgb(70, 130, 180)', '#EEEEE0': 'rgb(238, 238, 224)', '#B3B3B3': 'rgb(179, 179, 179)', '#00FF00': 'rgb(0, 255, 0)', '#FFDEAD': 'rgb(255, 222, 173)', '#CD2626': 'rgb(205, 38, 38)', '#8B4C39': 'rgb(139, 76, 57)', '#9B30FF': 'rgb(155, 48, 255)', '#E5E5E5': 'rgb(229, 229, 229)', '#36648B': 'rgb(54, 100, 139)', '#9C9C9C': 'rgb(156, 156, 156)', '#F8F8FF': 'rgb(248, 248, 255)', '#333333': 'rgb(51, 51, 51)', '#5C5C5C': 'rgb(92, 92, 92)', '#737373': 'rgb(115, 115, 115)', '#EEC900': 'rgb(238, 201, 0)', '#FFE1FF': 'rgb(255, 225, 255)', '#C1FFC1': 'rgb(193, 255, 193)', '#CDC5BF': 'rgb(205, 197, 191)', '#A0522D': 'rgb(160, 82, 45)', '#8B5F65': 'rgb(139, 95, 101)', '#CDC1C5': 'rgb(205, 193, 197)', '#EE7621': 'rgb(238, 118, 33)', '#FFBBFF': 'rgb(255, 187, 255)', '#CD6839': 'rgb(205, 104, 57)', '#698B69': 'rgb(105, 139, 105)', '#050505': 'rgb(5, 5, 5)', '#CD661D': 'rgb(205, 102, 29)', '#FAFAD2': 'rgb(250, 250, 210)', '#CDCDC1': 'rgb(205, 205, 193)', '#FFF8DC': 'rgb(255, 248, 220)', '#A8A8A8': 'rgb(168, 168, 168)', '#B452CD': 'rgb(180, 82, 205)', '#D2B48C': 'rgb(210, 180, 140)', '#8EE5EE': 'rgb(142, 229, 238)', '#483D8B': 'rgb(72, 61, 139)', '#BBFFFF': 'rgb(187, 255, 255)', '#0000FF': 'rgb(0, 0, 255)', '#EE6AA7': 'rgb(238, 106, 167)', '#EE7942': 'rgb(238, 121, 66)', '#00CD00': 'rgb(0, 205, 0)', '#141414': 'rgb(20, 20, 20)', '#9ACD32': 'rgb(154, 205, 50)', '#C71585': 'rgb(199, 21, 133)', '#EE9A00': 'rgb(238, 154, 0)', '#CAFF70': 'rgb(202, 255, 112)', '#F5F5F5': 'rgb(245, 245, 245)', '#32CD32': 'rgb(50, 205, 50)', '#00EE00': 'rgb(0, 238, 0)', '#FFB6C1': 'rgb(255, 182, 193)', '#8B1A1A': 'rgb(139, 26, 26)', '#00B2EE': 'rgb(0, 178, 238)', '#20B2AA': 'rgb(32, 178, 170)', '#707070': 'rgb(112, 112, 112)', '#009ACD': 'rgb(0, 154, 205)', '#A52A2A': 'rgb(165, 42, 42)', '#EE6363': 'rgb(238, 99, 99)', '#FAF0E6': 'rgb(250, 240, 230)', '#8B7D7B': 'rgb(139, 125, 123)', '#9A32CD': 'rgb(154, 50, 205)', '#1F1F1F': 'rgb(31, 31, 31)', '#E8E8E8': 'rgb(232, 232, 232)', '#7E7E7E': 'rgb(126, 126, 126)', '#7A8B8B': 'rgb(122, 139, 139)', '#CD7054': 'rgb(205, 112, 84)', '#9FB6CD': 'rgb(159, 182, 205)', '#CDC9A5': 'rgb(205, 201, 165)', '#D02090': 'rgb(208, 32, 144)', '#00FFFF': 'rgb(0, 255, 255)', '#2B2B2B': 'rgb(43, 43, 43)', '#858585': 'rgb(133, 133, 133)', '#A3A3A3': 'rgb(163, 163, 163)', '#CD0000': 'rgb(205, 0, 0)', '#43CD80': 'rgb(67, 205, 128)', '#FA8072': 'rgb(250, 128, 114)', '#FFDAB9': 'rgb(255, 218, 185)', '#D2691E': 'rgb(210, 105, 30)', '#FF1493': 'rgb(255, 20, 147)', '#EED2EE': 'rgb(238, 210, 238)', '#030303': 'rgb(3, 3, 3)', '#8B8B7A': 'rgb(139, 139, 122)'} diff --git a/frontend/imgrid/colors/colors/js/ditherbackground.gif b/frontend/imgrid/colors/colors/js/ditherbackground.gif Binary files differnew file mode 100755 index 0000000..670df08 --- /dev/null +++ b/frontend/imgrid/colors/colors/js/ditherbackground.gif diff --git a/frontend/imgrid/colors/colors/js/goldenfunctions.js b/frontend/imgrid/colors/colors/js/goldenfunctions.js new file mode 100755 index 0000000..ab39533 --- /dev/null +++ b/frontend/imgrid/colors/colors/js/goldenfunctions.js @@ -0,0 +1,33 @@ +function regolden(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num/ratio) + return newnum + } +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newval = goldenize(result) + propval = newval.toString()+'px' + if(propertystr == 'height'){ + $(idandselectr).css('width', propval) + } + else if(propertystr == 'width'){ + $(idandselectr).css('height', propval) + } + } + diff --git a/frontend/imgrid/colors/colors/js/hexrgbnametoggle.js b/frontend/imgrid/colors/colors/js/hexrgbnametoggle.js new file mode 100755 index 0000000..60567a5 --- /dev/null +++ b/frontend/imgrid/colors/colors/js/hexrgbnametoggle.js @@ -0,0 +1,148 @@ +///threewayselector for what goes in the divs///////////////////// +///MUST SWITCH TO FOUR WAY WITH RGB/////////////////////////////// +var infostate = 0 +var stringvalue = "CLICK TO CHOOSE THE COLOR" +function switchinfo() + { + if(infostate == 1) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(divtoname[divlist[i]]) + }; + infostate = 2 + $('#infospace').html('(NAMES)'); + } + else if(infostate == 0) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html("") + }; + infostate = 1 + $('#infospace').html('(NONE)'); + } + else if(infostate == 2) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(nametohex[divtoname[divlist[i]]]) + }; + infostate = 3 + $('#infospace').html('(HEXES)'); + } + else if(infostate == 3) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(hextorgb[nametohex[divtoname[divlist[i]]]]); + // $(divlist[i]).html($(divlist[i]).css('background-color')); + } + infostate = 0 + $('#infospace').html('(RGBS)'); + } + + } +switchinfo() +$('#infoswitch').hover(function(){$('#infospace').show()}, function(){$('#infospace').hide('slow')} ) +$('#infoswitch').click(function(){switchinfo()}) +///////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////// +//takes a div name and returns the colorname associated with that div +var rgb +var selectedrgb +var colorname +function showcolorname(divstr) + { + rgb = $('#'+divstr).css('background-color'); + colorname = divtoname['#'+divstr] + // hex = nametohex[colorname] + imname = colorname + // imname = hextoname[hex] + if (hexes === true) + { + imname = rgb + } + else if (rgbs === true) + { + imname = colorname + } + else if (names === true) + { + imname = rgbtohex[rgb] + } + return imname + } +function bigname(divstr) + { + stringvalue = showcolorname(divstr) + $('#colornames').html(stringvalue) + } +$('.colors').hover(function() + { + thabg = $(this).css('background-color') + bigname(this.id); + }); + +////////////////////////////////////////////////////////////////////// +//THIS CONTROLS THE VALUE OF THE SELECTION ETC +//MUST ADD RGB VALUES TO THIS AND MAKE IT A THREE-WAY SELECTOR +var names = true; +var hexes = false; +var rgbs = false; +var selectedname = ""; +function hexswitch() + { + if(names == true) + { + hexes = false; + rgbs = false; + $('#hexswitch').html('CLICK TO SWITCH TO RGB VALUES'); + $('#namespace').val(selectedname); + names = false; + rgbs = true; + } + else if(hexes == true) + { + rgbs = false; + names = false; + $('#hexswitch').html('CLICK TO SWITCH TO COLOR NAMES'); + $('#namespace').val(rgbtohex[selectedrgb]); + hexes = false; + names = true; + } + else if(rgbs == true) + { + names = false; + hexes = false; + $('#hexswitch').html('CLICK TO SWITCH TO HEX VALUES') + $('#namespace').val(selectedrgb) + rgbs = false; + hexes = true; + } + } +hexswitch() +$('#hexswitch').click(function(){hexswitch()}); +////////////////////////////////////////////////////// +//////////CLICK TO PUT THE COLORS IN////////////////// +function putitin() + { + if (rgbs === true) + {thecolor = selectedname} + if (hexes === true) + {thecolor = selectedrgb} + if (names === true) + {thecolor = rgbtohex[selectedrgb]} + $('#namespace').val(thecolor) + $('#preview').css({'background-color':selectedrgb,'border-style':'none'}) + $('#vasebackground').css('background-color',selectedrgb) + } +$('.colors').click(function() + { + selectednameid = $(this).attr('id') + selectedname = divtoname['#'+selectednameid] + selectedrgb = $(this).css('background-color'); + putitin() + }); + + diff --git a/frontend/imgrid/colors/colors/js/hoverbackground.jpg b/frontend/imgrid/colors/colors/js/hoverbackground.jpg Binary files differnew file mode 100755 index 0000000..c1ef116 --- /dev/null +++ b/frontend/imgrid/colors/colors/js/hoverbackground.jpg diff --git a/frontend/imgrid/colors/colors/js/hovercss.js b/frontend/imgrid/colors/colors/js/hovercss.js new file mode 100755 index 0000000..0223b8b --- /dev/null +++ b/frontend/imgrid/colors/colors/js/hovercss.js @@ -0,0 +1,31 @@ +//HOVER CSS SCRIPT// +var old = {}; +function hovercss(sel, uno) + { + var chng = {}; + chng['color'] = 'white'; + chng['text-shadow'] = 'black 1px 2px'; + chng['background-image'] = 'url(js/hoverbackground.jpg)'; + if(uno == 'over') + { + for(var key in chng){ + old[key] = $('#'+sel).css(key) + } + for(var key in chng){ + $('#'+sel).css(key, chng[key]) + } + } + if(uno == 'out'){ + for(var key in old){ + $('#'+sel).css(key, old[key]) + } + } + }; +$('.theswitches').hover(function() + { + hovercss(this.id, 'over') + }, function() + { + hovercss(this.id, 'out') + }); + diff --git a/frontend/imgrid/colors/colors/js/iftransparentcss.js b/frontend/imgrid/colors/colors/js/iftransparentcss.js new file mode 100755 index 0000000..fd4fe6c --- /dev/null +++ b/frontend/imgrid/colors/colors/js/iftransparentcss.js @@ -0,0 +1,25 @@ +///if transparent etc styling +var transcss = { + 'color':'#141414','box-shadow':'10px 10px 5px #141414', + 'background-color':'#D1D1D1','color':'#141414', + 'border-width':'2px','border-style':'outset','cursor':'pointer'} +$('#transbutton').css(transcss) +var hovertrans = { + 'background-color':'DarkGrey','color':'#383838','box-shadow':'5px 5px 2px #141414' + } +$('#transbutton').hover(function(){$('#transbutton').css(hovertrans)},function(){$('#transbutton').css(transcss)}) + +function transparent() + { + $('#namespace').val('transparent'); + $('#preview').css({'background-color':'transparent','border-style':'dashed','border-width':'2px'}) + } +$('#transbutton').click(function() + { + transparent() + $('#colornames').html('transparent') + $('#colornames').fadeOut(100);$('#colornames').fadeIn(500); + $('#extra').html('<br><br><span style="color:red;background-color:black;border-color:red; border-width:1px; border-style:solid; font-size:14px;">note: the .jpg image format does not support transparency</span>') + }); + + diff --git a/frontend/imgrid/colors/colors/js/jquery-1.6.4.min.js b/frontend/imgrid/colors/colors/js/jquery-1.6.4.min.js new file mode 100755 index 0000000..628ed9b --- /dev/null +++ b/frontend/imgrid/colors/colors/js/jquery-1.6.4.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */ +(function(a,b){function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bA.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bW(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bP,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bW(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bW(a,c,d,e,"*",g));return l}function bV(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bL),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function by(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bt:bu;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bf(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function V(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(Q.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(w,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:H?function(a){return a==null?"":H.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?F.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(!b)return-1;if(I)return I.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=G.call(arguments,2),g=function(){return a.apply(c,f.concat(G.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){J["[object "+b+"]"]=b.toLowerCase()}),A=e.uaMatch(z),A.browser&&(e.browser[A.browser]=!0,e.browser.version=A.version),e.browser.webkit&&(e.browser.safari=!0),j.test("Â ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?C=function(){c.removeEventListener("DOMContentLoaded",C,!1),e.ready()}:c.attachEvent&&(C=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",C),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g+"With"](this===b?d:this,[h])}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u,v;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete +t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,M(a.origType,a.selector),f.extend({},a,{handler:L,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,M(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?D:C):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=D;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=D;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=D,this.stopPropagation()},isDefaultPrevented:C,isPropagationStopped:C,isImmediatePropagationStopped:C};var E=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},F=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?F:E,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?F:E)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="submit"||c==="image")&&f(b).closest("form").length&&J("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&J("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var G,H=function(a){var b=f.nodeName(a,"input")?a.type:"",c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var K={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||C,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=w.exec(h),k="",j&&(k=j[0],h=h.replace(w,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,K[h]?(a.push(K[h]+k),h=h+k):h=(K[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+M(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+M(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var N=/Until$/,O=/^(?:parents|prevUntil|prevAll)/,P=/,/,Q=/^.[^:#\[\.,]*$/,R=Array.prototype.slice,S=f.expr.match.POS,T={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(V(this,a,!1),"not",a)},filter:function(a){return this.pushStack(V(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=S.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|object|embed|option|style)/i,bb=/checked\s*(?:[^=]|=\s*.checked.)/i,bc=/\/(java|ecma)script/i,bd=/^\s*<!(?:\[CDATA\[|\-\-)/,be={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bb.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bf(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bl)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!ba.test(a[0])&&(f.support.checkClone||!bb.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean +(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bk(k[i]);else bk(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bc.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bm=/alpha\([^)]*\)/i,bn=/opacity=([^)]*)/,bo=/([A-Z]|^ms)/g,bp=/^-?\d+(?:px)?$/i,bq=/^-?\d/,br=/^([\-+])=([\-+.\de]+)/,bs={position:"absolute",visibility:"hidden",display:"block"},bt=["Left","Right"],bu=["Top","Bottom"],bv,bw,bx;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bv(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=br.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bv)return bv(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return by(a,b,d);f.swap(a,bs,function(){e=by(a,b,d)});return e}},set:function(a,b){if(!bp.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bK=/^(?:select|textarea)/i,bL=/\s+/,bM=/([?&])_=[^&]*/,bN=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bO=f.fn.load,bP={},bQ={},bR,bS,bT=["*/"]+["*"];try{bR=e.href}catch(bU){bR=c.createElement("a"),bR.href="",bR=bR.href}bS=bN.exec(bR.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bO)return bO.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bJ,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bK.test(this.nodeName)||bE.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bB,"\r\n")}}):{name:b.name,value:c.replace(bB,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?bX(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),bX(a,b);return a},ajaxSettings:{url:bR,isLocal:bF.test(bS[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bT},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bV(bP),ajaxTransport:bV(bQ),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?bZ(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=b$(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bD.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bC,"").replace(bH,bS[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bL),d.crossDomain==null&&(r=bN.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bS[1]&&r[2]==bS[2]&&(r[3]||(r[1]==="http:"?80:443))==(bS[3]||(bS[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bW(bP,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bG.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bI.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bM,"$1_="+x);d.url=y+(y===d.url?(bI.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bT+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bW(bQ,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bz,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cq("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cr(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cq("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cq("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cr(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cq("show",1),slideUp:cq("hide",1),slideToggle:cq("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return d.step(a)}var d=this,e=f.fx;this.startTime=cn||co(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&f.timers.push(g)&&!cl&&(cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||co(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cs=/^t(?:able|d|h)$/i,ct=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cu(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cs.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=ct.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!ct.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cu(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cu(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNaN(j)?i:j}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
\ No newline at end of file diff --git a/frontend/imgrid/colors/colors/js/jquery.cookie.js b/frontend/imgrid/colors/colors/js/jquery.cookie.js new file mode 100755 index 0000000..6036754 --- /dev/null +++ b/frontend/imgrid/colors/colors/js/jquery.cookie.js @@ -0,0 +1,96 @@ +/**
+ * Cookie plugin
+ *
+ * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ */
+
+/**
+ * Create a cookie with the given name and value and other optional parameters.
+ *
+ * @example $.cookie('the_cookie', 'the_value');
+ * @desc Set the value of a cookie.
+ * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
+ * @desc Create a cookie with all available options.
+ * @example $.cookie('the_cookie', 'the_value');
+ * @desc Create a session cookie.
+ * @example $.cookie('the_cookie', null);
+ * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
+ * used when the cookie was set.
+ *
+ * @param String name The name of the cookie.
+ * @param String value The value of the cookie.
+ * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
+ * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
+ * If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
+ * If set to null or omitted, the cookie will be a session cookie and will not be retained
+ * when the the browser exits.
+ * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
+ * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
+ * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
+ * require a secure protocol (like HTTPS).
+ * @type undefined
+ *
+ * @name $.cookie
+ * @cat Plugins/Cookie
+ * @author Klaus Hartl/klaus.hartl@stilbuero.de
+ */
+
+/**
+ * Get the value of a cookie with the given name.
+ *
+ * @example $.cookie('the_cookie');
+ * @desc Get the value of a cookie.
+ *
+ * @param String name The name of the cookie.
+ * @return The value of the cookie.
+ * @type String
+ *
+ * @name $.cookie
+ * @cat Plugins/Cookie
+ * @author Klaus Hartl/klaus.hartl@stilbuero.de
+ */
+jQuery.cookie = function(name, value, options) {
+ if (typeof value != 'undefined') { // name and value given, set cookie
+ options = options || {};
+ if (value === null) {
+ value = '';
+ options.expires = -1;
+ }
+ var expires = '';
+ if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
+ var date;
+ if (typeof options.expires == 'number') {
+ date = new Date();
+ date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
+ } else {
+ date = options.expires;
+ }
+ expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
+ }
+ // CAUTION: Needed to parenthesize options.path and options.domain
+ // in the following expressions, otherwise they evaluate to undefined
+ // in the packed version for some reason...
+ var path = options.path ? '; path=' + (options.path) : '';
+ var domain = options.domain ? '; domain=' + (options.domain) : '';
+ var secure = options.secure ? '; secure' : '';
+ document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
+ } else { // only name given, get cookie
+ var cookieValue = null;
+ if (document.cookie && document.cookie != '') {
+ var cookies = document.cookie.split(';');
+ for (var i = 0; i < cookies.length; i++) {
+ var cookie = jQuery.trim(cookies[i]);
+ // Does this cookie string begin with the name we want?
+ if (cookie.substring(0, name.length + 1) == (name + '=')) {
+ cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
+ break;
+ }
+ }
+ }
+ return cookieValue;
+ }
+};
\ No newline at end of file diff --git a/frontend/imgrid/colors/colors/js/setupdimensions.js b/frontend/imgrid/colors/colors/js/setupdimensions.js new file mode 100755 index 0000000..a496e87 --- /dev/null +++ b/frontend/imgrid/colors/colors/js/setupdimensions.js @@ -0,0 +1,173 @@ +//setup dimensions +//everything needs to be positioned according to +//window.innerWidth + +//step 1...forget about the rollover css for now +//step 2...make sure ratios are in place + +//function makebig(divstr) +// { +/// newheight = goldenize(colorsheight) +/// $('#'+divstr).height(newheight) +// } +//function makesmall(divstr) +// { +// $('#'+divstr).height(colorsheight) +// } +////////////////// +/////////////this function runs a for loop +////////////and makes it so that the colors are related +//////////by width to the innerwidth of the window +widthratio = 7 +numberacross = 10 + + +function shrinkwidth(arg, ratio) + { + for(var i=0; i < ratio; i++) + { + arg = regolden(arg) + } + division = Math.round(arg) + return division + } +////////////////right now the ratio is set at 1/6th +var colorsh +function makecolorswidth() + { + colorswidth = shrinkwidth(windowWidth, widthratio) + $('.colors').css('width', colorswidth.toString()+'px') + } + +function makecolorsheight() + { + colorsheight = regolden(colorswidth) + propval = colorsheight.toString()+'px' + $('.colors').css('height', propval) + } +//the following function sets up the font sizes +//inrelation to the size of the hexswitch font +function getcontainerwidth() + { + basis = $('.colors').css('width') + basis = parseInt(basis.slice(0,-2)) + secondbasis = '2px' + secondbasis = parseInt(secondbasis.slice(0,-2)) + widthval = (secondbasis*(numberacross*2))+(basis*numberacross)+(basis*.44)//(goldenize(basis)-basis) + widthval = widthval.toString()+'px' + return widthval + } +function makecontainerwidth() + { + var containerwidth = getcontainerwidth() + $('#container').css('width',containerwidth) + } +function setupsides() + { + $('#container').css({'position':'relative','z-index':'1'}) + $('#switches').css('z-index','10') + var basis = $('#container').css('width') + basis = parseInt(basis.slice(0,-2)) + remainder = (100-basis)/2 + widths = regolden(basis) + widths = widths.toString()+'px' + lateralbasis = regolden(remainder) + leftside = toString(lateralbasis)+'%' + rightside = toString(100-lateralbasis)+'%' + $('#colornames').css('left', leftside) + $('#switches').css({'width': widths, 'left': rightside, 'overflow':'hidden','top':'118px'}) + } +//////preview dimensions is for the +///preview box inside the switches container +function previewdimensions() + { + first = $('#switches').css('width') + first = parseInt(first.slice(0,-2)) + width = regolden(first) + height = regolden(width) + width = width.toString()+'px' + height = height.toString()+'px' + $('#preview').css({'width':width, 'height':height}) + } +///////////////////////////// +////font-size is related to hexswitch font-size +////also the width of the switches container +var fontratioone +function setupfonts() + { + fontratioone = shrinkwidth(windowWidth, 9) + $('.theswitches').css('font-size',fontratioone) + fontratiotwo = shrinkwidth(windowWidth, 8) + $('#nameholder, #title, #namespace').css('font-size',fontratiotwo) + $('#colornames').css('font-size', goldenize(fontratiotwo)+'px') + $('#colornames').css('text-shadow', 'black 1px 2px') + var transfont = regolden(fontratioone) + $('#transparent, #extra').css({'width':'100%','font-size':transfont}) + switcheswidth = $('#switches').css('width') + $('#namespace, #nameholder').css('width', '100%') + } +function setupdimensions() + { + if(window.innerWidth > 933) + {windowWidth = window.innerWidth} + else + {windowWidth = 933} + $('#container').css('font-size','0'); + $('.colors').css('font-size','9px'); + makecolorswidth() + makecolorsheight() + makecontainerwidth() + setupfonts() + setupsides() + makegolden('#switches','width') + previewdimensions() + $('#namespace').css('width', 'inherit') + $('#nameholder').css('width', 'inherit') + $('#transparent').css({'float':'bottom','width':'inherit'}) + $('.colors').css({'margin-top': '2px','margin-right':'2px'}); + } +$(window).resize(function() + { + setupdimensions() + }); +var colorsheight +var colorswidth +setupdimensions() +function makebig(divstr) + { + newheight = goldenize(colorsheight) + $('#'+divstr).height(newheight) + } +function makesmall(divstr) + { + $('#'+divstr).height(colorsheight) + } +var firstwidth +$('.colors').mouseover(function() + { + $('#extra').html(""); + if(this.id != 'd0') + { + $(this).css({'height':goldenize(colorsheight),'width':goldenize(colorswidth)}) + firstwidth = $('#container').css('width') + newwidth = firstwidth+goldenize(colorswidth)-colorswidth + $('#container').css('width',newwidth) +// makebig(this.id); + // makegolden('#'+this.id, 'height') + } + }); + + + + +$('.colors').mouseout(function() + { + $(this).css('height',colorsheight) + $(this).css('width', colorswidth) + $('#container').css('width',firstwidth) + }); + +$(".colors").hover(function(){ +$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); + }); + diff --git a/frontend/imgrid/colors/colors/js/wrkshp/colors.html b/frontend/imgrid/colors/colors/js/wrkshp/colors.html new file mode 100755 index 0000000..0ef22f9 --- /dev/null +++ b/frontend/imgrid/colors/colors/js/wrkshp/colors.html @@ -0,0 +1,5429 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<!-- saved from url=(0124)https://mail.google.com/mail/?ui=2&ik=8c5c6e41c0&view=att&th=131a60939ee4c454&attid=0.1&disp=inline&realattid=f_gr2htzs60&zw --> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head> +<style type="text/css"> +* + { + font-family: sans-serif; + } +</style> +<body> + + + +<div> +<h1><a></a>List of Color Names</h1> +<div> + +<p>a list of named colors for use with PHOTOBLASTER:</p> + +<table> +<tbody> + <tr> + <th align="right">Name</th> + <th align="center">Color</th> + <th align="left">RGB</th> + <th align="left">Hex</th> + + </tr> + + <tr> + <td align="right">snow</td> + <td align="center" style="background-color:rgb(255, 250, 250)">snow</td> + <td align="left">rgb(255, 250, 250)</td> + <td align="left">#FFFAFA</td> + + </tr> + + <tr> + <td align="right">snow1</td> + <td align="center" style="background-color:rgb(255, 250, 250)">snow1</td> + <td align="left">rgb(255, 250, 250)</td> + <td align="left">#FFFAFA</td> + + </tr> + + <tr> + <td align="right">snow2</td> + <td align="center" style="background-color:rgb(238, 233, 233)">snow2</td> + <td align="left">rgb(238, 233, 233)</td> + <td align="left">#EEE9E9</td> + + </tr> + + <tr> + <td align="right">RosyBrown1</td> + <td align="center" style="background-color:rgb(255, 193, 193)">RosyBrown1</td> + <td align="left">rgb(255, 193, 193)</td> + <td align="left">#FFC1C1</td> + + </tr> + + <tr> + <td align="right">RosyBrown2</td> + <td align="center" style="background-color:rgb(238, 180, 180)">RosyBrown2</td> + <td align="left">rgb(238, 180, 180)</td> + <td align="left">#EEB4B4</td> + + </tr> + + <tr> + <td align="right">snow3</td> + <td align="center" style="background-color:rgb(205, 201, 201)">snow3</td> + <td align="left">rgb(205, 201, 201)</td> + <td align="left">#CDC9C9</td> + + </tr> + + <tr> + <td align="right">LightCoral</td> + <td align="center" style="background-color:rgb(240, 128, 128)">LightCoral</td> + <td align="left">rgb(240, 128, 128)</td> + <td align="left">#F08080</td> + + </tr> + + <tr> + <td align="right">IndianRed1</td> + <td align="center" style="background-color:rgb(255, 106, 106)">IndianRed1</td> + <td align="left">rgb(255, 106, 106)</td> + <td align="left">#FF6A6A</td> + + </tr> + + <tr> + <td align="right">RosyBrown3</td> + <td align="center" style="background-color:rgb(205, 155, 155)">RosyBrown3</td> + <td align="left">rgb(205, 155, 155)</td> + <td align="left">#CD9B9B</td> + + </tr> + + <tr> + <td align="right">IndianRed2</td> + <td align="center" style="background-color:rgb(238, 99, 99)">IndianRed2</td> + <td align="left">rgb(238, 99, 99)</td> + <td align="left">#EE6363</td> + + </tr> + + <tr> + <td align="right">RosyBrown</td> + <td align="center" style="background-color:rgb(188, 143, 143)">RosyBrown</td> + <td align="left">rgb(188, 143, 143)</td> + <td align="left">#BC8F8F</td> + + </tr> + + <tr> + <td align="right">brown1</td> + <td align="center" style="background-color:rgb(255, 64, 64)">brown1</td> + <td align="left">rgb(255, 64, 64)</td> + <td align="left">#FF4040</td> + + </tr> + + <tr> + <td align="right">firebrick1</td> + <td align="center" style="background-color:rgb(255, 48, 48)">firebrick1</td> + <td align="left">rgb(255, 48, 48)</td> + <td align="left">#FF3030</td> + + </tr> + + <tr> + <td align="right">brown2</td> + <td align="center" style="background-color:rgb(238, 59, 59)">brown2</td> + <td align="left">rgb(238, 59, 59)</td> + <td align="left">#EE3B3B</td> + + </tr> + + <tr> + <td align="right">IndianRed</td> + <td align="center" style="background-color:rgb(205, 92, 92)">IndianRed</td> + <td align="left">rgb(205, 92, 92)</td> + <td align="left">#CD5C5C</td> + + </tr> + + <tr> + <td align="right">IndianRed3</td> + <td align="center" style="background-color:rgb(205, 85, 85)">IndianRed3</td> + <td align="left">rgb(205, 85, 85)</td> + <td align="left">#CD5555</td> + + </tr> + + <tr> + <td align="right">firebrick2</td> + <td align="center" style="background-color:rgb(238, 44, 44)">firebrick2</td> + <td align="left">rgb(238, 44, 44)</td> + <td align="left">#EE2C2C</td> + + </tr> + + <tr> + <td align="right">snow4</td> + <td align="center" style="background-color:rgb(139, 137, 137)">snow4</td> + <td align="left">rgb(139, 137, 137)</td> + <td align="left">#8B8989</td> + + </tr> + + <tr> + <td align="right">brown3</td> + <td align="center" style="background-color:rgb(205, 51, 51)">brown3</td> + <td align="left">rgb(205, 51, 51)</td> + <td align="left">#CD3333</td> + + </tr> + + <tr> + <td align="right">red</td> + <td align="center" style="background-color:rgb(255, 0, 0)">red</td> + <td align="left">rgb(255, 0, 0)</td> + <td align="left">#FF0000</td> + + </tr> + + <tr> + <td align="right">red1</td> + <td align="center" style="background-color:rgb(255, 0, 0)">red1</td> + <td align="left">rgb(255, 0, 0)</td> + <td align="left">#FF0000</td> + + </tr> + + <tr> + <td align="right">RosyBrown4</td> + <td align="center" style="background-color:rgb(139, 105, 105)">RosyBrown4</td> + <td align="left">rgb(139, 105, 105)</td> + <td align="left">#8B6969</td> + + </tr> + + <tr> + <td align="right">firebrick3</td> + <td align="center" style="background-color:rgb(205, 38, 38)">firebrick3</td> + <td align="left">rgb(205, 38, 38)</td> + <td align="left">#CD2626</td> + + </tr> + + <tr> + <td align="right">red2</td> + <td align="center" style="background-color:rgb(238, 0, 0)">red2</td> + <td align="left">rgb(238, 0, 0)</td> + <td align="left">#EE0000</td> + + </tr> + + <tr> + <td align="right">firebrick</td> + <td align="center" style="background-color:rgb(178, 34, 34)">firebrick</td> + <td align="left">rgb(178, 34, 34)</td> + <td align="left">#B22222</td> + + </tr> + + <tr> + <td align="right">brown</td> + <td align="center" style="background-color:rgb(165, 42, 42)">brown</td> + <td align="left">rgb(165, 42, 42)</td> + <td align="left">#A52A2A</td> + + </tr> + + <tr> + <td align="right">red3</td> + <td align="center" style="background-color:rgb(205, 0, 0)">red3</td> + <td align="left">rgb(205, 0, 0)</td> + <td align="left">#CD0000</td> + + </tr> + + <tr> + <td align="right">IndianRed4</td> + <td align="center" style="background-color:rgb(139, 58, 58)">IndianRed4</td> + <td align="left">rgb(139, 58, 58)</td> + <td align="left">#8B3A3A</td> + + </tr> + + <tr> + <td align="right">brown4</td> + <td align="center" style="background-color:rgb(139, 35, 35)">brown4</td> + <td align="left">rgb(139, 35, 35)</td> + <td align="left">#8B2323</td> + + </tr> + + <tr> + <td align="right">firebrick4</td> + <td align="center" style="background-color:rgb(139, 26, 26)">firebrick4</td> + <td align="left">rgb(139, 26, 26)</td> + <td align="left">#8B1A1A</td> + + </tr> + + <tr> + <td align="right">DarkRed</td> + <td align="center" style="background-color:rgb(139, 0, 0)">DarkRed</td> + <td align="left">rgb(139, 0, 0)</td> + <td align="left">#8B0000</td> + + </tr> + + <tr> + <td align="right">red4</td> + <td align="center" style="background-color:rgb(139, 0, 0)">red4</td> + <td align="left">rgb(139, 0, 0)</td> + <td align="left">#8B0000</td> + + </tr> + + <tr> + <td align="right">maroon</td> + <td align="center" style="background-color:rgb(128, 0, 0)">maroon</td> + <td align="left">rgb(128, 0, 0)</td> + <td align="left">#800000</td> + + </tr> + + <tr> + <td align="right">LightPink1</td> + <td align="center" style="background-color:rgb(255, 174, 185)">LightPink1</td> + <td align="left">rgb(255, 174, 185)</td> + <td align="left">#FFAEB9</td> + + </tr> + + <tr> + <td align="right">LightPink3</td> + <td align="center" style="background-color:rgb(205, 140, 149)">LightPink3</td> + <td align="left">rgb(205, 140, 149)</td> + <td align="left">#CD8C95</td> + + </tr> + + <tr> + <td align="right">LightPink4</td> + <td align="center" style="background-color:rgb(139, 95, 101)">LightPink4</td> + <td align="left">rgb(139, 95, 101)</td> + <td align="left">#8B5F65</td> + + </tr> + + <tr> + <td align="right">LightPink2</td> + <td align="center" style="background-color:rgb(238, 162, 173)">LightPink2</td> + <td align="left">rgb(238, 162, 173)</td> + <td align="left">#EEA2AD</td> + + </tr> + + <tr> + <td align="right">LightPink</td> + <td align="center" style="background-color:rgb(255, 182, 193)">LightPink</td> + <td align="left">rgb(255, 182, 193)</td> + <td align="left">#FFB6C1</td> + + </tr> + + <tr> + <td align="right">pink</td> + <td align="center" style="background-color:rgb(255, 192, 203)">pink</td> + <td align="left">rgb(255, 192, 203)</td> + <td align="left">#FFC0CB</td> + + </tr> + + <tr> + <td align="right">crimson</td> + <td align="center" style="background-color:rgb(220, 20, 60)">crimson</td> + <td align="left">rgb(220, 20, 60)</td> + <td align="left">#DC143C</td> + + </tr> + + <tr> + <td align="right">pink1</td> + <td align="center" style="background-color:rgb(255, 181, 197)">pink1</td> + <td align="left">rgb(255, 181, 197)</td> + <td align="left">#FFB5C5</td> + + </tr> + + <tr> + <td align="right">pink2</td> + <td align="center" style="background-color:rgb(238, 169, 184)">pink2</td> + <td align="left">rgb(238, 169, 184)</td> + <td align="left">#EEA9B8</td> + + </tr> + + <tr> + <td align="right">pink3</td> + <td align="center" style="background-color:rgb(205, 145, 158)">pink3</td> + <td align="left">rgb(205, 145, 158)</td> + <td align="left">#CD919E</td> + + </tr> + + <tr> + <td align="right">pink4</td> + <td align="center" style="background-color:rgb(139, 99, 108)">pink4</td> + <td align="left">rgb(139, 99, 108)</td> + <td align="left">#8B636C</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed4</td> + <td align="center" style="background-color:rgb(139, 71, 93)">PaleVioletRed4</td> + <td align="left">rgb(139, 71, 93)</td> + <td align="left">#8B475D</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed</td> + <td align="center" style="background-color:rgb(219, 112, 147)">PaleVioletRed</td> + <td align="left">rgb(219, 112, 147)</td> + <td align="left">#DB7093</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed2</td> + <td align="center" style="background-color:rgb(238, 121, 159)">PaleVioletRed2</td> + <td align="left">rgb(238, 121, 159)</td> + <td align="left">#EE799F</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed1</td> + <td align="center" style="background-color:rgb(255, 130, 171)">PaleVioletRed1</td> + <td align="left">rgb(255, 130, 171)</td> + <td align="left">#FF82AB</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed3</td> + <td align="center" style="background-color:rgb(205, 104, 137)">PaleVioletRed3</td> + <td align="left">rgb(205, 104, 137)</td> + <td align="left">#CD6889</td> + + </tr> + + <tr> + <td align="right">LavenderBlush</td> + <td align="center" style="background-color:rgb(255, 240, 245)">LavenderBlush</td> + <td align="left">rgb(255, 240, 245)</td> + <td align="left">#FFF0F5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush1</td> + <td align="center" style="background-color:rgb(255, 240, 245)">LavenderBlush1</td> + <td align="left">rgb(255, 240, 245)</td> + <td align="left">#FFF0F5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush3</td> + <td align="center" style="background-color:rgb(205, 193, 197)">LavenderBlush3</td> + <td align="left">rgb(205, 193, 197)</td> + <td align="left">#CDC1C5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush2</td> + <td align="center" style="background-color:rgb(238, 224, 229)">LavenderBlush2</td> + <td align="left">rgb(238, 224, 229)</td> + <td align="left">#EEE0E5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush4</td> + <td align="center" style="background-color:rgb(139, 131, 134)">LavenderBlush4</td> + <td align="left">rgb(139, 131, 134)</td> + <td align="left">#8B8386</td> + + </tr> + + <tr> + <td align="right">maroon</td> + <td align="center" style="background-color:rgb(176, 48, 96)">maroon</td> + <td align="left">rgb(176, 48, 96)</td> + <td align="left">#B03060</td> + + </tr> + + <tr> + <td align="right">HotPink3</td> + <td align="center" style="background-color:rgb(205, 96, 144)">HotPink3</td> + <td align="left">rgb(205, 96, 144)</td> + <td align="left">#CD6090</td> + + </tr> + + <tr> + <td align="right">VioletRed3</td> + <td align="center" style="background-color:rgb(205, 50, 120)">VioletRed3</td> + <td align="left">rgb(205, 50, 120)</td> + <td align="left">#CD3278</td> + + </tr> + + <tr> + <td align="right">VioletRed1</td> + <td align="center" style="background-color:rgb(255, 62, 150)">VioletRed1</td> + <td align="left">rgb(255, 62, 150)</td> + <td align="left">#FF3E96</td> + + </tr> + + <tr> + <td align="right">VioletRed2</td> + <td align="center" style="background-color:rgb(238, 58, 140)">VioletRed2</td> + <td align="left">rgb(238, 58, 140)</td> + <td align="left">#EE3A8C</td> + + </tr> + + <tr> + <td align="right">VioletRed4</td> + <td align="center" style="background-color:rgb(139, 34, 82)">VioletRed4</td> + <td align="left">rgb(139, 34, 82)</td> + <td align="left">#8B2252</td> + + </tr> + + <tr> + <td align="right">HotPink2</td> + <td align="center" style="background-color:rgb(238, 106, 167)">HotPink2</td> + <td align="left">rgb(238, 106, 167)</td> + <td align="left">#EE6AA7</td> + + </tr> + + <tr> + <td align="right">HotPink1</td> + <td align="center" style="background-color:rgb(255, 110, 180)">HotPink1</td> + <td align="left">rgb(255, 110, 180)</td> + <td align="left">#FF6EB4</td> + + </tr> + + <tr> + <td align="right">HotPink4</td> + <td align="center" style="background-color:rgb(139, 58, 98)">HotPink4</td> + <td align="left">rgb(139, 58, 98)</td> + <td align="left">#8B3A62</td> + + </tr> + + <tr> + <td align="right">HotPink</td> + <td align="center" style="background-color:rgb(255, 105, 180)">HotPink</td> + <td align="left">rgb(255, 105, 180)</td> + <td align="left">#FF69B4</td> + + </tr> + + <tr> + <td align="right">DeepPink</td> + <td align="center" style="background-color:rgb(255, 20, 147)">DeepPink</td> + <td align="left">rgb(255, 20, 147)</td> + <td align="left">#FF1493</td> + + </tr> + + <tr> + <td align="right">DeepPink1</td> + <td align="center" style="background-color:rgb(255, 20, 147)">DeepPink1</td> + <td align="left">rgb(255, 20, 147)</td> + <td align="left">#FF1493</td> + + </tr> + + <tr> + <td align="right">DeepPink2</td> + <td align="center" style="background-color:rgb(238, 18, 137)">DeepPink2</td> + <td align="left">rgb(238, 18, 137)</td> + <td align="left">#EE1289</td> + + </tr> + + <tr> + <td align="right">DeepPink3</td> + <td align="center" style="background-color:rgb(205, 16, 118)">DeepPink3</td> + <td align="left">rgb(205, 16, 118)</td> + <td align="left">#CD1076</td> + + </tr> + + <tr> + <td align="right">DeepPink4</td> + <td align="center" style="background-color:rgb(139, 10, 80)">DeepPink4</td> + <td align="left">rgb(139, 10, 80)</td> + <td align="left">#8B0A50</td> + + </tr> + + <tr> + <td align="right">maroon1</td> + <td align="center" style="background-color:rgb(255, 52, 179)">maroon1</td> + <td align="left">rgb(255, 52, 179)</td> + <td align="left">#FF34B3</td> + + </tr> + + <tr> + <td align="right">maroon2</td> + <td align="center" style="background-color:rgb(238, 48, 167)">maroon2</td> + <td align="left">rgb(238, 48, 167)</td> + <td align="left">#EE30A7</td> + + </tr> + + <tr> + <td align="right">maroon3</td> + <td align="center" style="background-color:rgb(205, 41, 144)">maroon3</td> + <td align="left">rgb(205, 41, 144)</td> + <td align="left">#CD2990</td> + + </tr> + + <tr> + <td align="right">maroon4</td> + <td align="center" style="background-color:rgb(139, 28, 98)">maroon4</td> + <td align="left">rgb(139, 28, 98)</td> + <td align="left">#8B1C62</td> + + </tr> + + <tr> + <td align="right">MediumVioletRed</td> + <td align="center" style="background-color:rgb(199, 21, 133)">MediumVioletRed</td> + <td align="left">rgb(199, 21, 133)</td> + <td align="left">#C71585</td> + + </tr> + + <tr> + <td align="right">VioletRed</td> + <td align="center" style="background-color:rgb(208, 32, 144)">VioletRed</td> + <td align="left">rgb(208, 32, 144)</td> + <td align="left">#D02090</td> + + </tr> + + <tr> + <td align="right">orchid2</td> + <td align="center" style="background-color:rgb(238, 122, 233)">orchid2</td> + <td align="left">rgb(238, 122, 233)</td> + <td align="left">#EE7AE9</td> + + </tr> + + <tr> + <td align="right">orchid</td> + <td align="center" style="background-color:rgb(218, 112, 214)">orchid</td> + <td align="left">rgb(218, 112, 214)</td> + <td align="left">#DA70D6</td> + + </tr> + + <tr> + <td align="right">orchid1</td> + <td align="center" style="background-color:rgb(255, 131, 250)">orchid1</td> + <td align="left">rgb(255, 131, 250)</td> + <td align="left">#FF83FA</td> + + </tr> + + <tr> + <td align="right">orchid3</td> + <td align="center" style="background-color:rgb(205, 105, 201)">orchid3</td> + <td align="left">rgb(205, 105, 201)</td> + <td align="left">#CD69C9</td> + + </tr> + + <tr> + <td align="right">orchid4</td> + <td align="center" style="background-color:rgb(139, 71, 137)">orchid4</td> + <td align="left">rgb(139, 71, 137)</td> + <td align="left">#8B4789</td> + + </tr> + + <tr> + <td align="right">thistle1</td> + <td align="center" style="background-color:rgb(255, 225, 255)">thistle1</td> + <td align="left">rgb(255, 225, 255)</td> + <td align="left">#FFE1FF</td> + + </tr> + + <tr> + <td align="right">thistle2</td> + <td align="center" style="background-color:rgb(238, 210, 238)">thistle2</td> + <td align="left">rgb(238, 210, 238)</td> + <td align="left">#EED2EE</td> + + </tr> + + <tr> + <td align="right">plum1</td> + <td align="center" style="background-color:rgb(255, 187, 255)">plum1</td> + <td align="left">rgb(255, 187, 255)</td> + <td align="left">#FFBBFF</td> + + </tr> + + <tr> + <td align="right">plum2</td> + <td align="center" style="background-color:rgb(238, 174, 238)">plum2</td> + <td align="left">rgb(238, 174, 238)</td> + <td align="left">#EEAEEE</td> + + </tr> + + <tr> + <td align="right">thistle</td> + <td align="center" style="background-color:rgb(216, 191, 216)">thistle</td> + <td align="left">rgb(216, 191, 216)</td> + <td align="left">#D8BFD8</td> + + </tr> + + <tr> + <td align="right">thistle3</td> + <td align="center" style="background-color:rgb(205, 181, 205)">thistle3</td> + <td align="left">rgb(205, 181, 205)</td> + <td align="left">#CDB5CD</td> + + </tr> + + <tr> + <td align="right">plum</td> + <td align="center" style="background-color:rgb(221, 160, 221)">plum</td> + <td align="left">rgb(221, 160, 221)</td> + <td align="left">#DDA0DD</td> + + </tr> + + <tr> + <td align="right">violet</td> + <td align="center" style="background-color:rgb(238, 130, 238)">violet</td> + <td align="left">rgb(238, 130, 238)</td> + <td align="left">#EE82EE</td> + + </tr> + + <tr> + <td align="right">plum3</td> + <td align="center" style="background-color:rgb(205, 150, 205)">plum3</td> + <td align="left">rgb(205, 150, 205)</td> + <td align="left">#CD96CD</td> + + </tr> + + <tr> + <td align="right">thistle4</td> + <td align="center" style="background-color:rgb(139, 123, 139)">thistle4</td> + <td align="left">rgb(139, 123, 139)</td> + <td align="left">#8B7B8B</td> + + </tr> + + <tr> + <td align="right">fuchsia</td> + <td align="center" style="background-color:rgb(255, 0, 255)">fuchsia</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">magenta</td> + <td align="center" style="background-color:rgb(255, 0, 255)">magenta</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">magenta1</td> + <td align="center" style="background-color:rgb(255, 0, 255)">magenta1</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">plum4</td> + <td align="center" style="background-color:rgb(139, 102, 139)">plum4</td> + <td align="left">rgb(139, 102, 139)</td> + <td align="left">#8B668B</td> + + </tr> + + <tr> + <td align="right">magenta2</td> + <td align="center" style="background-color:rgb(238, 0, 238)">magenta2</td> + <td align="left">rgb(238, 0, 238)</td> + <td align="left">#EE00EE</td> + + </tr> + + <tr> + <td align="right">magenta3</td> + <td align="center" style="background-color:rgb(205, 0, 205)">magenta3</td> + <td align="left">rgb(205, 0, 205)</td> + <td align="left">#CD00CD</td> + + </tr> + + <tr> + <td align="right">DarkMagenta</td> + <td align="center" style="background-color:rgb(139, 0, 139)">DarkMagenta</td> + <td align="left">rgb(139, 0, 139)</td> + <td align="left">#8B008B</td> + + </tr> + + <tr> + <td align="right">magenta4</td> + <td align="center" style="background-color:rgb(139, 0, 139)">magenta4</td> + <td align="left">rgb(139, 0, 139)</td> + <td align="left">#8B008B</td> + + </tr> + + <tr> + <td align="right">purple</td> + <td align="center" style="background-color:rgb(128, 0, 128)">purple</td> + <td align="left">rgb(128, 0, 128)</td> + <td align="left">#800080</td> + + </tr> + + <tr> + <td align="right">MediumOrchid</td> + <td align="center" style="background-color:rgb(186, 85, 211)">MediumOrchid</td> + <td align="left">rgb(186, 85, 211)</td> + <td align="left">#BA55D3</td> + + </tr> + + <tr> + <td align="right">MediumOrchid1</td> + <td align="center" style="background-color:rgb(224, 102, 255)">MediumOrchid1</td> + <td align="left">rgb(224, 102, 255)</td> + <td align="left">#E066FF</td> + + </tr> + + <tr> + <td align="right">MediumOrchid2</td> + <td align="center" style="background-color:rgb(209, 95, 238)">MediumOrchid2</td> + <td align="left">rgb(209, 95, 238)</td> + <td align="left">#D15FEE</td> + + </tr> + + <tr> + <td align="right">MediumOrchid3</td> + <td align="center" style="background-color:rgb(180, 82, 205)">MediumOrchid3</td> + <td align="left">rgb(180, 82, 205)</td> + <td align="left">#B452CD</td> + + </tr> + + <tr> + <td align="right">MediumOrchid4</td> + <td align="center" style="background-color:rgb(122, 55, 139)">MediumOrchid4</td> + <td align="left">rgb(122, 55, 139)</td> + <td align="left">#7A378B</td> + + </tr> + + <tr> + <td align="right">DarkViolet</td> + <td align="center" style="background-color:rgb(148, 0, 211)">DarkViolet</td> + <td align="left">rgb(148, 0, 211)</td> + <td align="left">#9400D3</td> + + </tr> + + <tr> + <td align="right">DarkOrchid</td> + <td align="center" style="background-color:rgb(153, 50, 204)">DarkOrchid</td> + <td align="left">rgb(153, 50, 204)</td> + <td align="left">#9932CC</td> + + </tr> + + <tr> + <td align="right">DarkOrchid1</td> + <td align="center" style="background-color:rgb(191, 62, 255)">DarkOrchid1</td> + <td align="left">rgb(191, 62, 255)</td> + <td align="left">#BF3EFF</td> + + </tr> + + <tr> + <td align="right">DarkOrchid3</td> + <td align="center" style="background-color:rgb(154, 50, 205)">DarkOrchid3</td> + <td align="left">rgb(154, 50, 205)</td> + <td align="left">#9A32CD</td> + + </tr> + + <tr> + <td align="right">DarkOrchid2</td> + <td align="center" style="background-color:rgb(178, 58, 238)">DarkOrchid2</td> + <td align="left">rgb(178, 58, 238)</td> + <td align="left">#B23AEE</td> + + </tr> + + <tr> + <td align="right">DarkOrchid4</td> + <td align="center" style="background-color:rgb(104, 34, 139)">DarkOrchid4</td> + <td align="left">rgb(104, 34, 139)</td> + <td align="left">#68228B</td> + + </tr> + + <tr> + <td align="right">purple</td> + <td align="center" style="background-color:rgb(160, 32, 240)">purple</td> + <td align="left">rgb(160, 32, 240)</td> + <td align="left">#A020F0</td> + + </tr> + + <tr> + <td align="right">indigo</td> + <td align="center" style="background-color:rgb( 75, 0, 130)">indigo</td> + <td align="left">rgb( 75, 0, 130)</td> + <td align="left">#4B0082</td> + + </tr> + + <tr> + <td align="right">BlueViolet</td> + <td align="center" style="background-color:rgb(138, 43, 226)">BlueViolet</td> + <td align="left">rgb(138, 43, 226)</td> + <td align="left">#8A2BE2</td> + + </tr> + + <tr> + <td align="right">purple2</td> + <td align="center" style="background-color:rgb(145, 44, 238)">purple2</td> + <td align="left">rgb(145, 44, 238)</td> + <td align="left">#912CEE</td> + + </tr> + + <tr> + <td align="right">purple3</td> + <td align="center" style="background-color:rgb(125, 38, 205)">purple3</td> + <td align="left">rgb(125, 38, 205)</td> + <td align="left">#7D26CD</td> + + </tr> + + <tr> + <td align="right">purple4</td> + <td align="center" style="background-color:rgb( 85, 26, 139)">purple4</td> + <td align="left">rgb( 85, 26, 139)</td> + <td align="left">#551A8B</td> + + </tr> + + <tr> + <td align="right">purple1</td> + <td align="center" style="background-color:rgb(155, 48, 255)">purple1</td> + <td align="left">rgb(155, 48, 255)</td> + <td align="left">#9B30FF</td> + + </tr> + + <tr> + <td align="right">MediumPurple</td> + <td align="center" style="background-color:rgb(147, 112, 219)">MediumPurple</td> + <td align="left">rgb(147, 112, 219)</td> + <td align="left">#9370DB</td> + + </tr> + + <tr> + <td align="right">MediumPurple1</td> + <td align="center" style="background-color:rgb(171, 130, 255)">MediumPurple1</td> + <td align="left">rgb(171, 130, 255)</td> + <td align="left">#AB82FF</td> + + </tr> + + <tr> + <td align="right">MediumPurple2</td> + <td align="center" style="background-color:rgb(159, 121, 238)">MediumPurple2</td> + <td align="left">rgb(159, 121, 238)</td> + <td align="left">#9F79EE</td> + + </tr> + + <tr> + <td align="right">MediumPurple3</td> + <td align="center" style="background-color:rgb(137, 104, 205)">MediumPurple3</td> + <td align="left">rgb(137, 104, 205)</td> + <td align="left">#8968CD</td> + + </tr> + + <tr> + <td align="right">MediumPurple4</td> + <td align="center" style="background-color:rgb( 93, 71, 139)">MediumPurple4</td> + <td align="left">rgb( 93, 71, 139)</td> + <td align="left">#5D478B</td> + + </tr> + + <tr> + <td align="right">DarkSlateBlue</td> + <td align="center" style="background-color:rgb( 72, 61, 139)">DarkSlateBlue</td> + <td align="left">rgb( 72, 61, 139)</td> + <td align="left">#483D8B</td> + + </tr> + + <tr> + <td align="right">LightSlateBlue</td> + <td align="center" style="background-color:rgb(132, 112, 255)">LightSlateBlue</td> + <td align="left">rgb(132, 112, 255)</td> + <td align="left">#8470FF</td> + + </tr> + + <tr> + <td align="right">MediumSlateBlue</td> + <td align="center" style="background-color:rgb(123, 104, 238)">MediumSlateBlue</td> + <td align="left">rgb(123, 104, 238)</td> + <td align="left">#7B68EE</td> + + </tr> + + <tr> + <td align="right">SlateBlue</td> + <td align="center" style="background-color:rgb(106, 90, 205)">SlateBlue</td> + <td align="left">rgb(106, 90, 205)</td> + <td align="left">#6A5ACD</td> + + </tr> + + <tr> + <td align="right">SlateBlue1</td> + <td align="center" style="background-color:rgb(131, 111, 255)">SlateBlue1</td> + <td align="left">rgb(131, 111, 255)</td> + <td align="left">#836FFF</td> + + </tr> + + <tr> + <td align="right">SlateBlue2</td> + <td align="center" style="background-color:rgb(122, 103, 238)">SlateBlue2</td> + <td align="left">rgb(122, 103, 238)</td> + <td align="left">#7A67EE</td> + + </tr> + + <tr> + <td align="right">SlateBlue3</td> + <td align="center" style="background-color:rgb(105, 89, 205)">SlateBlue3</td> + <td align="left">rgb(105, 89, 205)</td> + <td align="left">#6959CD</td> + + </tr> + + <tr> + <td align="right">SlateBlue4</td> + <td align="center" style="background-color:rgb( 71, 60, 139)">SlateBlue4</td> + <td align="left">rgb( 71, 60, 139)</td> + <td align="left">#473C8B</td> + + </tr> + + <tr> + <td align="right">GhostWhite</td> + <td align="center" style="background-color:rgb(248, 248, 255)">GhostWhite</td> + <td align="left">rgb(248, 248, 255)</td> + <td align="left">#F8F8FF</td> + + </tr> + + <tr> + <td align="right">lavender</td> + <td align="center" style="background-color:rgb(230, 230, 250)">lavender</td> + <td align="left">rgb(230, 230, 250)</td> + <td align="left">#E6E6FA</td> + + </tr> + + <tr> + <td align="right">blue</td> + <td align="center" style="background-color:rgb( 0, 0, 255)">blue</td> + <td align="left">rgb( 0, 0, 255)</td> + <td align="left">#0000FF</td> + + </tr> + + <tr> + <td align="right">blue1</td> + <td align="center" style="background-color:rgb( 0, 0, 255)">blue1</td> + <td align="left">rgb( 0, 0, 255)</td> + <td align="left">#0000FF</td> + + </tr> + + <tr> + <td align="right">blue2</td> + <td align="center" style="background-color:rgb( 0, 0, 238)">blue2</td> + <td align="left">rgb( 0, 0, 238)</td> + <td align="left">#0000EE</td> + + </tr> + + <tr> + <td align="right">blue3</td> + <td align="center" style="background-color:rgb( 0, 0, 205)">blue3</td> + <td align="left">rgb( 0, 0, 205)</td> + <td align="left">#0000CD</td> + + </tr> + + <tr> + <td align="right">MediumBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 205)">MediumBlue</td> + <td align="left">rgb( 0, 0, 205)</td> + <td align="left">#0000CD</td> + + </tr> + + <tr> + <td align="right">blue4</td> + <td align="center" style="background-color:rgb( 0, 0, 139)">blue4</td> + <td align="left">rgb( 0, 0, 139)</td> + <td align="left">#00008B</td> + + </tr> + + <tr> + <td align="right">DarkBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 139)">DarkBlue</td> + <td align="left">rgb( 0, 0, 139)</td> + <td align="left">#00008B</td> + + </tr> + + <tr> + <td align="right">MidnightBlue</td> + <td align="center" style="background-color:rgb( 25, 25, 112)">MidnightBlue</td> + <td align="left">rgb( 25, 25, 112)</td> + <td align="left">#191970</td> + + </tr> + + <tr> + <td align="right">navy</td> + <td align="center" style="background-color:rgb( 0, 0, 128)">navy</td> + <td align="left">rgb( 0, 0, 128)</td> + <td align="left">#000080</td> + + </tr> + + <tr> + <td align="right">NavyBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 128)">NavyBlue</td> + <td align="left">rgb( 0, 0, 128)</td> + <td align="left">#000080</td> + + </tr> + + <tr> + <td align="right">RoyalBlue</td> + <td align="center" style="background-color:rgb( 65, 105, 225)">RoyalBlue</td> + <td align="left">rgb( 65, 105, 225)</td> + <td align="left">#4169E1</td> + + </tr> + + <tr> + <td align="right">RoyalBlue1</td> + <td align="center" style="background-color:rgb( 72, 118, 255)">RoyalBlue1</td> + <td align="left">rgb( 72, 118, 255)</td> + <td align="left">#4876FF</td> + + </tr> + + <tr> + <td align="right">RoyalBlue2</td> + <td align="center" style="background-color:rgb( 67, 110, 238)">RoyalBlue2</td> + <td align="left">rgb( 67, 110, 238)</td> + <td align="left">#436EEE</td> + + </tr> + + <tr> + <td align="right">RoyalBlue3</td> + <td align="center" style="background-color:rgb( 58, 95, 205)">RoyalBlue3</td> + <td align="left">rgb( 58, 95, 205)</td> + <td align="left">#3A5FCD</td> + + </tr> + + <tr> + <td align="right">RoyalBlue4</td> + <td align="center" style="background-color:rgb( 39, 64, 139)">RoyalBlue4</td> + <td align="left">rgb( 39, 64, 139)</td> + <td align="left">#27408B</td> + + </tr> + + <tr> + <td align="right">CornflowerBlue</td> + <td align="center" style="background-color:rgb(100, 149, 237)">CornflowerBlue</td> + <td align="left">rgb(100, 149, 237)</td> + <td align="left">#6495ED</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue</td> + <td align="center" style="background-color:rgb(176, 196, 222)">LightSteelBlue</td> + <td align="left">rgb(176, 196, 222)</td> + <td align="left">#B0C4DE</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue1</td> + <td align="center" style="background-color:rgb(202, 225, 255)">LightSteelBlue1</td> + <td align="left">rgb(202, 225, 255)</td> + <td align="left">#CAE1FF</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue2</td> + <td align="center" style="background-color:rgb(188, 210, 238)">LightSteelBlue2</td> + <td align="left">rgb(188, 210, 238)</td> + <td align="left">#BCD2EE</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue3</td> + <td align="center" style="background-color:rgb(162, 181, 205)">LightSteelBlue3</td> + <td align="left">rgb(162, 181, 205)</td> + <td align="left">#A2B5CD</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue4</td> + <td align="center" style="background-color:rgb(110, 123, 139)">LightSteelBlue4</td> + <td align="left">rgb(110, 123, 139)</td> + <td align="left">#6E7B8B</td> + + </tr> + + <tr> + <td align="right">SlateGray4</td> + <td align="center" style="background-color:rgb(108, 123, 139)">SlateGray4</td> + <td align="left">rgb(108, 123, 139)</td> + <td align="left">#6C7B8B</td> + + </tr> + + <tr> + <td align="right">SlateGray1</td> + <td align="center" style="background-color:rgb(198, 226, 255)">SlateGray1</td> + <td align="left">rgb(198, 226, 255)</td> + <td align="left">#C6E2FF</td> + + </tr> + + <tr> + <td align="right">SlateGray2</td> + <td align="center" style="background-color:rgb(185, 211, 238)">SlateGray2</td> + <td align="left">rgb(185, 211, 238)</td> + <td align="left">#B9D3EE</td> + + </tr> + + <tr> + <td align="right">SlateGray3</td> + <td align="center" style="background-color:rgb(159, 182, 205)">SlateGray3</td> + <td align="left">rgb(159, 182, 205)</td> + <td align="left">#9FB6CD</td> + + </tr> + + <tr> + <td align="right">LightSlateGray</td> + <td align="center" style="background-color:rgb(119, 136, 153)">LightSlateGray</td> + <td align="left">rgb(119, 136, 153)</td> + <td align="left">#778899</td> + + </tr> + + <tr> + <td align="right">LightSlateGrey</td> + <td align="center" style="background-color:rgb(119, 136, 153)">LightSlateGrey</td> + <td align="left">rgb(119, 136, 153)</td> + <td align="left">#778899</td> + + </tr> + + <tr> + <td align="right">SlateGray</td> + <td align="center" style="background-color:rgb(112, 128, 144)">SlateGray</td> + <td align="left">rgb(112, 128, 144)</td> + <td align="left">#708090</td> + + </tr> + + <tr> + <td align="right">SlateGrey</td> + <td align="center" style="background-color:rgb(112, 128, 144)">SlateGrey</td> + <td align="left">rgb(112, 128, 144)</td> + <td align="left">#708090</td> + + </tr> + + <tr> + <td align="right">DodgerBlue</td> + <td align="center" style="background-color:rgb( 30, 144, 255)">DodgerBlue</td> + <td align="left">rgb( 30, 144, 255)</td> + <td align="left">#1E90FF</td> + + </tr> + + <tr> + <td align="right">DodgerBlue1</td> + <td align="center" style="background-color:rgb( 30, 144, 255)">DodgerBlue1</td> + <td align="left">rgb( 30, 144, 255)</td> + <td align="left">#1E90FF</td> + + </tr> + + <tr> + <td align="right">DodgerBlue2</td> + <td align="center" style="background-color:rgb( 28, 134, 238)">DodgerBlue2</td> + <td align="left">rgb( 28, 134, 238)</td> + <td align="left">#1C86EE</td> + + </tr> + + <tr> + <td align="right">DodgerBlue4</td> + <td align="center" style="background-color:rgb( 16, 78, 139)">DodgerBlue4</td> + <td align="left">rgb( 16, 78, 139)</td> + <td align="left">#104E8B</td> + + </tr> + + <tr> + <td align="right">DodgerBlue3</td> + <td align="center" style="background-color:rgb( 24, 116, 205)">DodgerBlue3</td> + <td align="left">rgb( 24, 116, 205)</td> + <td align="left">#1874CD</td> + + </tr> + + <tr> + <td align="right">AliceBlue</td> + <td align="center" style="background-color:rgb(240, 248, 255)">AliceBlue</td> + <td align="left">rgb(240, 248, 255)</td> + <td align="left">#F0F8FF</td> + + </tr> + + <tr> + <td align="right">SteelBlue4</td> + <td align="center" style="background-color:rgb( 54, 100, 139)">SteelBlue4</td> + <td align="left">rgb( 54, 100, 139)</td> + <td align="left">#36648B</td> + + </tr> + + <tr> + <td align="right">SteelBlue</td> + <td align="center" style="background-color:rgb( 70, 130, 180)">SteelBlue</td> + <td align="left">rgb( 70, 130, 180)</td> + <td align="left">#4682B4</td> + + </tr> + + <tr> + <td align="right">SteelBlue1</td> + <td align="center" style="background-color:rgb( 99, 184, 255)">SteelBlue1</td> + <td align="left">rgb( 99, 184, 255)</td> + <td align="left">#63B8FF</td> + + </tr> + + <tr> + <td align="right">SteelBlue2</td> + <td align="center" style="background-color:rgb( 92, 172, 238)">SteelBlue2</td> + <td align="left">rgb( 92, 172, 238)</td> + <td align="left">#5CACEE</td> + + </tr> + + <tr> + <td align="right">SteelBlue3</td> + <td align="center" style="background-color:rgb( 79, 148, 205)">SteelBlue3</td> + <td align="left">rgb( 79, 148, 205)</td> + <td align="left">#4F94CD</td> + + </tr> + + <tr> + <td align="right">SkyBlue4</td> + <td align="center" style="background-color:rgb( 74, 112, 139)">SkyBlue4</td> + <td align="left">rgb( 74, 112, 139)</td> + <td align="left">#4A708B</td> + + </tr> + + <tr> + <td align="right">SkyBlue1</td> + <td align="center" style="background-color:rgb(135, 206, 255)">SkyBlue1</td> + <td align="left">rgb(135, 206, 255)</td> + <td align="left">#87CEFF</td> + + </tr> + + <tr> + <td align="right">SkyBlue2</td> + <td align="center" style="background-color:rgb(126, 192, 238)">SkyBlue2</td> + <td align="left">rgb(126, 192, 238)</td> + <td align="left">#7EC0EE</td> + + </tr> + + <tr> + <td align="right">SkyBlue3</td> + <td align="center" style="background-color:rgb(108, 166, 205)">SkyBlue3</td> + <td align="left">rgb(108, 166, 205)</td> + <td align="left">#6CA6CD</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue</td> + <td align="center" style="background-color:rgb(135, 206, 250)">LightSkyBlue</td> + <td align="left">rgb(135, 206, 250)</td> + <td align="left">#87CEFA</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue4</td> + <td align="center" style="background-color:rgb( 96, 123, 139)">LightSkyBlue4</td> + <td align="left">rgb( 96, 123, 139)</td> + <td align="left">#607B8B</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue1</td> + <td align="center" style="background-color:rgb(176, 226, 255)">LightSkyBlue1</td> + <td align="left">rgb(176, 226, 255)</td> + <td align="left">#B0E2FF</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue2</td> + <td align="center" style="background-color:rgb(164, 211, 238)">LightSkyBlue2</td> + <td align="left">rgb(164, 211, 238)</td> + <td align="left">#A4D3EE</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue3</td> + <td align="center" style="background-color:rgb(141, 182, 205)">LightSkyBlue3</td> + <td align="left">rgb(141, 182, 205)</td> + <td align="left">#8DB6CD</td> + + </tr> + + <tr> + <td align="right">SkyBlue</td> + <td align="center" style="background-color:rgb(135, 206, 235)">SkyBlue</td> + <td align="left">rgb(135, 206, 235)</td> + <td align="left">#87CEEB</td> + + </tr> + + <tr> + <td align="right">LightBlue3</td> + <td align="center" style="background-color:rgb(154, 192, 205)">LightBlue3</td> + <td align="left">rgb(154, 192, 205)</td> + <td align="left">#9AC0CD</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue</td> + <td align="center" style="background-color:rgb( 0, 191, 255)">DeepSkyBlue</td> + <td align="left">rgb( 0, 191, 255)</td> + <td align="left">#00BFFF</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue1</td> + <td align="center" style="background-color:rgb( 0, 191, 255)">DeepSkyBlue1</td> + <td align="left">rgb( 0, 191, 255)</td> + <td align="left">#00BFFF</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue2</td> + <td align="center" style="background-color:rgb( 0, 178, 238)">DeepSkyBlue2</td> + <td align="left">rgb( 0, 178, 238)</td> + <td align="left">#00B2EE</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue4</td> + <td align="center" style="background-color:rgb( 0, 104, 139)">DeepSkyBlue4</td> + <td align="left">rgb( 0, 104, 139)</td> + <td align="left">#00688B</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue3</td> + <td align="center" style="background-color:rgb( 0, 154, 205)">DeepSkyBlue3</td> + <td align="left">rgb( 0, 154, 205)</td> + <td align="left">#009ACD</td> + + </tr> + + <tr> + <td align="right">LightBlue1</td> + <td align="center" style="background-color:rgb(191, 239, 255)">LightBlue1</td> + <td align="left">rgb(191, 239, 255)</td> + <td align="left">#BFEFFF</td> + + </tr> + + <tr> + <td align="right">LightBlue2</td> + <td align="center" style="background-color:rgb(178, 223, 238)">LightBlue2</td> + <td align="left">rgb(178, 223, 238)</td> + <td align="left">#B2DFEE</td> + + </tr> + + <tr> + <td align="right">LightBlue</td> + <td align="center" style="background-color:rgb(173, 216, 230)">LightBlue</td> + <td align="left">rgb(173, 216, 230)</td> + <td align="left">#ADD8E6</td> + + </tr> + + <tr> + <td align="right">LightBlue4</td> + <td align="center" style="background-color:rgb(104, 131, 139)">LightBlue4</td> + <td align="left">rgb(104, 131, 139)</td> + <td align="left">#68838B</td> + + </tr> + + <tr> + <td align="right">PowderBlue</td> + <td align="center" style="background-color:rgb(176, 224, 230)">PowderBlue</td> + <td align="left">rgb(176, 224, 230)</td> + <td align="left">#B0E0E6</td> + + </tr> + + <tr> + <td align="right">CadetBlue1</td> + <td align="center" style="background-color:rgb(152, 245, 255)">CadetBlue1</td> + <td align="left">rgb(152, 245, 255)</td> + <td align="left">#98F5FF</td> + + </tr> + + <tr> + <td align="right">CadetBlue2</td> + <td align="center" style="background-color:rgb(142, 229, 238)">CadetBlue2</td> + <td align="left">rgb(142, 229, 238)</td> + <td align="left">#8EE5EE</td> + + </tr> + + <tr> + <td align="right">CadetBlue3</td> + <td align="center" style="background-color:rgb(122, 197, 205)">CadetBlue3</td> + <td align="left">rgb(122, 197, 205)</td> + <td align="left">#7AC5CD</td> + + </tr> + + <tr> + <td align="right">CadetBlue4</td> + <td align="center" style="background-color:rgb( 83, 134, 139)">CadetBlue4</td> + <td align="left">rgb( 83, 134, 139)</td> + <td align="left">#53868B</td> + + </tr> + + <tr> + <td align="right">turquoise1</td> + <td align="center" style="background-color:rgb( 0, 245, 255)">turquoise1</td> + <td align="left">rgb( 0, 245, 255)</td> + <td align="left">#00F5FF</td> + + </tr> + + <tr> + <td align="right">turquoise2</td> + <td align="center" style="background-color:rgb( 0, 229, 238)">turquoise2</td> + <td align="left">rgb( 0, 229, 238)</td> + <td align="left">#00E5EE</td> + + </tr> + + <tr> + <td align="right">turquoise3</td> + <td align="center" style="background-color:rgb( 0, 197, 205)">turquoise3</td> + <td align="left">rgb( 0, 197, 205)</td> + <td align="left">#00C5CD</td> + + </tr> + + <tr> + <td align="right">turquoise4</td> + <td align="center" style="background-color:rgb( 0, 134, 139)">turquoise4</td> + <td align="left">rgb( 0, 134, 139)</td> + <td align="left">#00868B</td> + + </tr> + + <tr> + <td align="right">cadet blue</td> + <td align="center" style="background-color:rgb( 95, 158, 160)">cadet blue</td> + <td align="left">rgb( 95, 158, 160)</td> + <td align="left">#5F9EA0</td> + + </tr> + + <tr> + <td align="right">CadetBlue</td> + <td align="center" style="background-color:rgb( 95, 158, 160)">CadetBlue</td> + <td align="left">rgb( 95, 158, 160)</td> + <td align="left">#5F9EA0</td> + + </tr> + + <tr> + <td align="right">DarkTurquoise</td> + <td align="center" style="background-color:rgb( 0, 206, 209)">DarkTurquoise</td> + <td align="left">rgb( 0, 206, 209)</td> + <td align="left">#00CED1</td> + + </tr> + + <tr> + <td align="right">azure</td> + <td align="center" style="background-color:rgb(240, 255, 255)">azure</td> + <td align="left">rgb(240, 255, 255)</td> + <td align="left">#F0FFFF</td> + + </tr> + + <tr> + <td align="right">azure1</td> + <td align="center" style="background-color:rgb(240, 255, 255)">azure1</td> + <td align="left">rgb(240, 255, 255)</td> + <td align="left">#F0FFFF</td> + + </tr> + + <tr> + <td align="right">LightCyan</td> + <td align="center" style="background-color:rgb(224, 255, 255)">LightCyan</td> + <td align="left">rgb(224, 255, 255)</td> + <td align="left">#E0FFFF</td> + + </tr> + + <tr> + <td align="right">LightCyan1</td> + <td align="center" style="background-color:rgb(224, 255, 255)">LightCyan1</td> + <td align="left">rgb(224, 255, 255)</td> + <td align="left">#E0FFFF</td> + + </tr> + + <tr> + <td align="right">azure2</td> + <td align="center" style="background-color:rgb(224, 238, 238)">azure2</td> + <td align="left">rgb(224, 238, 238)</td> + <td align="left">#E0EEEE</td> + + </tr> + + <tr> + <td align="right">LightCyan2</td> + <td align="center" style="background-color:rgb(209, 238, 238)">LightCyan2</td> + <td align="left">rgb(209, 238, 238)</td> + <td align="left">#D1EEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise1</td> + <td align="center" style="background-color:rgb(187, 255, 255)">PaleTurquoise1</td> + <td align="left">rgb(187, 255, 255)</td> + <td align="left">#BBFFFF</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise</td> + <td align="center" style="background-color:rgb(175, 238, 238)">PaleTurquoise</td> + <td align="left">rgb(175, 238, 238)</td> + <td align="left">#AFEEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise2</td> + <td align="center" style="background-color:rgb(174, 238, 238)">PaleTurquoise2</td> + <td align="left">rgb(174, 238, 238)</td> + <td align="left">#AEEEEE</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray1</td> + <td align="center" style="background-color:rgb(151, 255, 255)">DarkSlateGray1</td> + <td align="left">rgb(151, 255, 255)</td> + <td align="left">#97FFFF</td> + + </tr> + + <tr> + <td align="right">azure3</td> + <td align="center" style="background-color:rgb(193, 205, 205)">azure3</td> + <td align="left">rgb(193, 205, 205)</td> + <td align="left">#C1CDCD</td> + + </tr> + + <tr> + <td align="right">LightCyan3</td> + <td align="center" style="background-color:rgb(180, 205, 205)">LightCyan3</td> + <td align="left">rgb(180, 205, 205)</td> + <td align="left">#B4CDCD</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray2</td> + <td align="center" style="background-color:rgb(141, 238, 238)">DarkSlateGray2</td> + <td align="left">rgb(141, 238, 238)</td> + <td align="left">#8DEEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise3</td> + <td align="center" style="background-color:rgb(150, 205, 205)">PaleTurquoise3</td> + <td align="left">rgb(150, 205, 205)</td> + <td align="left">#96CDCD</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray3</td> + <td align="center" style="background-color:rgb(121, 205, 205)">DarkSlateGray3</td> + <td align="left">rgb(121, 205, 205)</td> + <td align="left">#79CDCD</td> + + </tr> + + <tr> + <td align="right">azure4</td> + <td align="center" style="background-color:rgb(131, 139, 139)">azure4</td> + <td align="left">rgb(131, 139, 139)</td> + <td align="left">#838B8B</td> + + </tr> + + <tr> + <td align="right">LightCyan4</td> + <td align="center" style="background-color:rgb(122, 139, 139)">LightCyan4</td> + <td align="left">rgb(122, 139, 139)</td> + <td align="left">#7A8B8B</td> + + </tr> + + <tr> + <td align="right">aqua</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">aqua</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">cyan</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">cyan</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">cyan1</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">cyan1</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise4</td> + <td align="center" style="background-color:rgb(102, 139, 139)">PaleTurquoise4</td> + <td align="left">rgb(102, 139, 139)</td> + <td align="left">#668B8B</td> + + </tr> + + <tr> + <td align="right">cyan2</td> + <td align="center" style="background-color:rgb( 0, 238, 238)">cyan2</td> + <td align="left">rgb( 0, 238, 238)</td> + <td align="left">#00EEEE</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray4</td> + <td align="center" style="background-color:rgb( 82, 139, 139)">DarkSlateGray4</td> + <td align="left">rgb( 82, 139, 139)</td> + <td align="left">#528B8B</td> + + </tr> + + <tr> + <td align="right">cyan3</td> + <td align="center" style="background-color:rgb( 0, 205, 205)">cyan3</td> + <td align="left">rgb( 0, 205, 205)</td> + <td align="left">#00CDCD</td> + + </tr> + + <tr> + <td align="right">cyan4</td> + <td align="center" style="background-color:rgb( 0, 139, 139)">cyan4</td> + <td align="left">rgb( 0, 139, 139)</td> + <td align="left">#008B8B</td> + + </tr> + + <tr> + <td align="right">DarkCyan</td> + <td align="center" style="background-color:rgb( 0, 139, 139)">DarkCyan</td> + <td align="left">rgb( 0, 139, 139)</td> + <td align="left">#008B8B</td> + + </tr> + + <tr> + <td align="right">teal</td> + <td align="center" style="background-color:rgb( 0, 128, 128)">teal</td> + <td align="left">rgb( 0, 128, 128)</td> + <td align="left">#008080</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray</td> + <td align="center" style="background-color:rgb( 47, 79, 79)">DarkSlateGray</td> + <td align="left">rgb( 47, 79, 79)</td> + <td align="left">#2F4F4F</td> + + </tr> + + <tr> + <td align="right">DarkSlateGrey</td> + <td align="center" style="background-color:rgb( 47, 79, 79)">DarkSlateGrey</td> + <td align="left">rgb( 47, 79, 79)</td> + <td align="left">#2F4F4F</td> + + </tr> + + <tr> + <td align="right">MediumTurquoise</td> + <td align="center" style="background-color:rgb( 72, 209, 204)">MediumTurquoise</td> + <td align="left">rgb( 72, 209, 204)</td> + <td align="left">#48D1CC</td> + + </tr> + + <tr> + <td align="right">LightSeaGreen</td> + <td align="center" style="background-color:rgb( 32, 178, 170)">LightSeaGreen</td> + <td align="left">rgb( 32, 178, 170)</td> + <td align="left">#20B2AA</td> + + </tr> + + <tr> + <td align="right">turquoise</td> + <td align="center" style="background-color:rgb( 64, 224, 208)">turquoise</td> + <td align="left">rgb( 64, 224, 208)</td> + <td align="left">#40E0D0</td> + + </tr> + + <tr> + <td align="right">aquamarine4</td> + <td align="center" style="background-color:rgb( 69, 139, 116)">aquamarine4</td> + <td align="left">rgb( 69, 139, 116)</td> + <td align="left">#458B74</td> + + </tr> + + <tr> + <td align="right">aquamarine</td> + <td align="center" style="background-color:rgb(127, 255, 212)">aquamarine</td> + <td align="left">rgb(127, 255, 212)</td> + <td align="left">#7FFFD4</td> + + </tr> + + <tr> + <td align="right">aquamarine1</td> + <td align="center" style="background-color:rgb(127, 255, 212)">aquamarine1</td> + <td align="left">rgb(127, 255, 212)</td> + <td align="left">#7FFFD4</td> + + </tr> + + <tr> + <td align="right">aquamarine2</td> + <td align="center" style="background-color:rgb(118, 238, 198)">aquamarine2</td> + <td align="left">rgb(118, 238, 198)</td> + <td align="left">#76EEC6</td> + + </tr> + + <tr> + <td align="right">aquamarine3</td> + <td align="center" style="background-color:rgb(102, 205, 170)">aquamarine3</td> + <td align="left">rgb(102, 205, 170)</td> + <td align="left">#66CDAA</td> + + </tr> + + <tr> + <td align="right">MediumAquamarine</td> + <td align="center" style="background-color:rgb(102, 205, 170)">MediumAquamarine</td> + <td align="left">rgb(102, 205, 170)</td> + <td align="left">#66CDAA</td> + + </tr> + + <tr> + <td align="right">MediumSpringGreen</td> + <td align="center" style="background-color:rgb( 0, 250, 154)">MediumSpringGreen</td> + <td align="left">rgb( 0, 250, 154)</td> + <td align="left">#00FA9A</td> + + </tr> + + <tr> + <td align="right">MintCream</td> + <td align="center" style="background-color:rgb(245, 255, 250)">MintCream</td> + <td align="left">rgb(245, 255, 250)</td> + <td align="left">#F5FFFA</td> + + </tr> + + <tr> + <td align="right">SpringGreen</td> + <td align="center" style="background-color:rgb( 0, 255, 127)">SpringGreen</td> + <td align="left">rgb( 0, 255, 127)</td> + <td align="left">#00FF7F</td> + + </tr> + + <tr> + <td align="right">SpringGreen1</td> + <td align="center" style="background-color:rgb( 0, 255, 127)">SpringGreen1</td> + <td align="left">rgb( 0, 255, 127)</td> + <td align="left">#00FF7F</td> + + </tr> + + <tr> + <td align="right">SpringGreen2</td> + <td align="center" style="background-color:rgb( 0, 238, 118)">SpringGreen2</td> + <td align="left">rgb( 0, 238, 118)</td> + <td align="left">#00EE76</td> + + </tr> + + <tr> + <td align="right">SpringGreen3</td> + <td align="center" style="background-color:rgb( 0, 205, 102)">SpringGreen3</td> + <td align="left">rgb( 0, 205, 102)</td> + <td align="left">#00CD66</td> + + </tr> + + <tr> + <td align="right">SpringGreen4</td> + <td align="center" style="background-color:rgb( 0, 139, 69)">SpringGreen4</td> + <td align="left">rgb( 0, 139, 69)</td> + <td align="left">#008B45</td> + + </tr> + + <tr> + <td align="right">MediumSeaGreen</td> + <td align="center" style="background-color:rgb( 60, 179, 113)">MediumSeaGreen</td> + <td align="left">rgb( 60, 179, 113)</td> + <td align="left">#3CB371</td> + + </tr> + + <tr> + <td align="right">SeaGreen</td> + <td align="center" style="background-color:rgb( 46, 139, 87)">SeaGreen</td> + <td align="left">rgb( 46, 139, 87)</td> + <td align="left">#2E8B57</td> + + </tr> + + <tr> + <td align="right">SeaGreen3</td> + <td align="center" style="background-color:rgb( 67, 205, 128)">SeaGreen3</td> + <td align="left">rgb( 67, 205, 128)</td> + <td align="left">#43CD80</td> + + </tr> + + <tr> + <td align="right">SeaGreen1</td> + <td align="center" style="background-color:rgb( 84, 255, 159)">SeaGreen1</td> + <td align="left">rgb( 84, 255, 159)</td> + <td align="left">#54FF9F</td> + + </tr> + + <tr> + <td align="right">SeaGreen4</td> + <td align="center" style="background-color:rgb( 46, 139, 87)">SeaGreen4</td> + <td align="left">rgb( 46, 139, 87)</td> + <td align="left">#2E8B57</td> + + </tr> + + <tr> + <td align="right">SeaGreen2</td> + <td align="center" style="background-color:rgb( 78, 238, 148)">SeaGreen2</td> + <td align="left">rgb( 78, 238, 148)</td> + <td align="left">#4EEE94</td> + + </tr> + + <tr> + <td align="right">MediumForestGreen</td> + <td align="center" style="background-color:rgb( 50, 129, 75)">MediumForestGreen</td> + <td align="left">rgb( 50, 129, 75)</td> + <td align="left">#32814B</td> + + </tr> + + <tr> + <td align="right">honeydew</td> + <td align="center" style="background-color:rgb(240, 255, 240)">honeydew</td> + <td align="left">rgb(240, 255, 240)</td> + <td align="left">#F0FFF0</td> + + </tr> + + <tr> + <td align="right">honeydew1</td> + <td align="center" style="background-color:rgb(240, 255, 240)">honeydew1</td> + <td align="left">rgb(240, 255, 240)</td> + <td align="left">#F0FFF0</td> + + </tr> + + <tr> + <td align="right">honeydew2</td> + <td align="center" style="background-color:rgb(224, 238, 224)">honeydew2</td> + <td align="left">rgb(224, 238, 224)</td> + <td align="left">#E0EEE0</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen1</td> + <td align="center" style="background-color:rgb(193, 255, 193)">DarkSeaGreen1</td> + <td align="left">rgb(193, 255, 193)</td> + <td align="left">#C1FFC1</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen2</td> + <td align="center" style="background-color:rgb(180, 238, 180)">DarkSeaGreen2</td> + <td align="left">rgb(180, 238, 180)</td> + <td align="left">#B4EEB4</td> + + </tr> + + <tr> + <td align="right">PaleGreen1</td> + <td align="center" style="background-color:rgb(154, 255, 154)">PaleGreen1</td> + <td align="left">rgb(154, 255, 154)</td> + <td align="left">#9AFF9A</td> + + </tr> + + <tr> + <td align="right">PaleGreen</td> + <td align="center" style="background-color:rgb(152, 251, 152)">PaleGreen</td> + <td align="left">rgb(152, 251, 152)</td> + <td align="left">#98FB98</td> + + </tr> + + <tr> + <td align="right">honeydew3</td> + <td align="center" style="background-color:rgb(193, 205, 193)">honeydew3</td> + <td align="left">rgb(193, 205, 193)</td> + <td align="left">#C1CDC1</td> + + </tr> + + <tr> + <td align="right">LightGreen</td> + <td align="center" style="background-color:rgb(144, 238, 144)">LightGreen</td> + <td align="left">rgb(144, 238, 144)</td> + <td align="left">#90EE90</td> + + </tr> + + <tr> + <td align="right">PaleGreen2</td> + <td align="center" style="background-color:rgb(144, 238, 144)">PaleGreen2</td> + <td align="left">rgb(144, 238, 144)</td> + <td align="left">#90EE90</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen3</td> + <td align="center" style="background-color:rgb(155, 205, 155)">DarkSeaGreen3</td> + <td align="left">rgb(155, 205, 155)</td> + <td align="left">#9BCD9B</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen</td> + <td align="center" style="background-color:rgb(143, 188, 143)">DarkSeaGreen</td> + <td align="left">rgb(143, 188, 143)</td> + <td align="left">#8FBC8F</td> + + </tr> + + <tr> + <td align="right">PaleGreen3</td> + <td align="center" style="background-color:rgb(124, 205, 124)">PaleGreen3</td> + <td align="left">rgb(124, 205, 124)</td> + <td align="left">#7CCD7C</td> + + </tr> + + <tr> + <td align="right">honeydew4</td> + <td align="center" style="background-color:rgb(131, 139, 131)">honeydew4</td> + <td align="left">rgb(131, 139, 131)</td> + <td align="left">#838B83</td> + + </tr> + + <tr> + <td align="right">green1</td> + <td align="center" style="background-color:rgb( 0, 255, 0)">green1</td> + <td align="left">rgb( 0, 255, 0)</td> + <td align="left">#00FF00</td> + + </tr> + + <tr> + <td align="right">lime</td> + <td align="center" style="background-color:rgb( 0, 255, 0)">lime</td> + <td align="left">rgb( 0, 255, 0)</td> + <td align="left">#00FF00</td> + + </tr> + + <tr> + <td align="right">LimeGreen</td> + <td align="center" style="background-color:rgb( 50, 205, 50)">LimeGreen</td> + <td align="left">rgb( 50, 205, 50)</td> + <td align="left">#32CD32</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen4</td> + <td align="center" style="background-color:rgb(105, 139, 105)">DarkSeaGreen4</td> + <td align="left">rgb(105, 139, 105)</td> + <td align="left">#698B69</td> + + </tr> + + <tr> + <td align="right">green2</td> + <td align="center" style="background-color:rgb( 0, 238, 0)">green2</td> + <td align="left">rgb( 0, 238, 0)</td> + <td align="left">#00EE00</td> + + </tr> + + <tr> + <td align="right">PaleGreen4</td> + <td align="center" style="background-color:rgb( 84, 139, 84)">PaleGreen4</td> + <td align="left">rgb( 84, 139, 84)</td> + <td align="left">#548B54</td> + + </tr> + + <tr> + <td align="right">green3</td> + <td align="center" style="background-color:rgb( 0, 205, 0)">green3</td> + <td align="left">rgb( 0, 205, 0)</td> + <td align="left">#00CD00</td> + + </tr> + + <tr> + <td align="right">ForestGreen</td> + <td align="center" style="background-color:rgb( 34, 139, 34)">ForestGreen</td> + <td align="left">rgb( 34, 139, 34)</td> + <td align="left">#228B22</td> + + </tr> + + <tr> + <td align="right">green4</td> + <td align="center" style="background-color:rgb( 0, 139, 0)">green4</td> + <td align="left">rgb( 0, 139, 0)</td> + <td align="left">#008B00</td> + + </tr> + + <tr> + <td align="right">green</td> + <td align="center" style="background-color:rgb( 0, 128, 0)">green</td> + <td align="left">rgb( 0, 128, 0)</td> + <td align="left">#008000</td> + + </tr> + + <tr> + <td align="right">DarkGreen</td> + <td align="center" style="background-color:rgb( 0, 100, 0)">DarkGreen</td> + <td align="left">rgb( 0, 100, 0)</td> + <td align="left">#006400</td> + + </tr> + + <tr> + <td align="right">LawnGreen</td> + <td align="center" style="background-color:rgb(124, 252, 0)">LawnGreen</td> + <td align="left">rgb(124, 252, 0)</td> + <td align="left">#7CFC00</td> + + </tr> + + <tr> + <td align="right">chartreuse</td> + <td align="center" style="background-color:rgb(127, 255, 0)">chartreuse</td> + <td align="left">rgb(127, 255, 0)</td> + <td align="left">#7FFF00</td> + + </tr> + + <tr> + <td align="right">chartreuse1</td> + <td align="center" style="background-color:rgb(127, 255, 0)">chartreuse1</td> + <td align="left">rgb(127, 255, 0)</td> + <td align="left">#7FFF00</td> + + </tr> + + <tr> + <td align="right">chartreuse2</td> + <td align="center" style="background-color:rgb(118, 238, 0)">chartreuse2</td> + <td align="left">rgb(118, 238, 0)</td> + <td align="left">#76EE00</td> + + </tr> + + <tr> + <td align="right">chartreuse3</td> + <td align="center" style="background-color:rgb(102, 205, 0)">chartreuse3</td> + <td align="left">rgb(102, 205, 0)</td> + <td align="left">#66CD00</td> + + </tr> + + <tr> + <td align="right">chartreuse4</td> + <td align="center" style="background-color:rgb( 69, 139, 0)">chartreuse4</td> + <td align="left">rgb( 69, 139, 0)</td> + <td align="left">#458B00</td> + + </tr> + + <tr> + <td align="right">GreenYellow</td> + <td align="center" style="background-color:rgb(173, 255, 47)">GreenYellow</td> + <td align="left">rgb(173, 255, 47)</td> + <td align="left">#ADFF2F</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen3</td> + <td align="center" style="background-color:rgb(162, 205, 90)">DarkOliveGreen3</td> + <td align="left">rgb(162, 205, 90)</td> + <td align="left">#A2CD5A</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen1</td> + <td align="center" style="background-color:rgb(202, 255, 112)">DarkOliveGreen1</td> + <td align="left">rgb(202, 255, 112)</td> + <td align="left">#CAFF70</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen2</td> + <td align="center" style="background-color:rgb(188, 238, 104)">DarkOliveGreen2</td> + <td align="left">rgb(188, 238, 104)</td> + <td align="left">#BCEE68</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen4</td> + <td align="center" style="background-color:rgb(110, 139, 61)">DarkOliveGreen4</td> + <td align="left">rgb(110, 139, 61)</td> + <td align="left">#6E8B3D</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen</td> + <td align="center" style="background-color:rgb( 85, 107, 47)">DarkOliveGreen</td> + <td align="left">rgb( 85, 107, 47)</td> + <td align="left">#556B2F</td> + + </tr> + + <tr> + <td align="right">OliveDrab</td> + <td align="center" style="background-color:rgb(107, 142, 35)">OliveDrab</td> + <td align="left">rgb(107, 142, 35)</td> + <td align="left">#6B8E23</td> + + </tr> + + <tr> + <td align="right">OliveDrab1</td> + <td align="center" style="background-color:rgb(192, 255, 62)">OliveDrab1</td> + <td align="left">rgb(192, 255, 62)</td> + <td align="left">#C0FF3E</td> + + </tr> + + <tr> + <td align="right">OliveDrab2</td> + <td align="center" style="background-color:rgb(179, 238, 58)">OliveDrab2</td> + <td align="left">rgb(179, 238, 58)</td> + <td align="left">#B3EE3A</td> + + </tr> + + <tr> + <td align="right">OliveDrab3</td> + <td align="center" style="background-color:rgb(154, 205, 50)">OliveDrab3</td> + <td align="left">rgb(154, 205, 50)</td> + <td align="left">#9ACD32</td> + + </tr> + + <tr> + <td align="right">YellowGreen</td> + <td align="center" style="background-color:rgb(154, 205, 50)">YellowGreen</td> + <td align="left">rgb(154, 205, 50)</td> + <td align="left">#9ACD32</td> + + </tr> + + <tr> + <td align="right">OliveDrab4</td> + <td align="center" style="background-color:rgb(105, 139, 34)">OliveDrab4</td> + <td align="left">rgb(105, 139, 34)</td> + <td align="left">#698B22</td> + + </tr> + + <tr> + <td align="right">ivory</td> + <td align="center" style="background-color:rgb(255, 255, 240)">ivory</td> + <td align="left">rgb(255, 255, 240)</td> + <td align="left">#FFFFF0</td> + + </tr> + + <tr> + <td align="right">ivory1</td> + <td align="center" style="background-color:rgb(255, 255, 240)">ivory1</td> + <td align="left">rgb(255, 255, 240)</td> + <td align="left">#FFFFF0</td> + + </tr> + + <tr> + <td align="right">LightYellow</td> + <td align="center" style="background-color:rgb(255, 255, 224)">LightYellow</td> + <td align="left">rgb(255, 255, 224)</td> + <td align="left">#FFFFE0</td> + + </tr> + + <tr> + <td align="right">LightYellow1</td> + <td align="center" style="background-color:rgb(255, 255, 224)">LightYellow1</td> + <td align="left">rgb(255, 255, 224)</td> + <td align="left">#FFFFE0</td> + + </tr> + + <tr> + <td align="right">beige</td> + <td align="center" style="background-color:rgb(245, 245, 220)">beige</td> + <td align="left">rgb(245, 245, 220)</td> + <td align="left">#F5F5DC</td> + + </tr> + + <tr> + <td align="right">ivory2</td> + <td align="center" style="background-color:rgb(238, 238, 224)">ivory2</td> + <td align="left">rgb(238, 238, 224)</td> + <td align="left">#EEEEE0</td> + + </tr> + + <tr> + <td align="right">LightGoldenrodYellow</td> + <td align="center" style="background-color:rgb(250, 250, 210)">LightGoldenrodYellow</td> + <td align="left">rgb(250, 250, 210)</td> + <td align="left">#FAFAD2</td> + + </tr> + + <tr> + <td align="right">LightYellow2</td> + <td align="center" style="background-color:rgb(238, 238, 209)">LightYellow2</td> + <td align="left">rgb(238, 238, 209)</td> + <td align="left">#EEEED1</td> + + </tr> + + <tr> + <td align="right">ivory3</td> + <td align="center" style="background-color:rgb(205, 205, 193)">ivory3</td> + <td align="left">rgb(205, 205, 193)</td> + <td align="left">#CDCDC1</td> + + </tr> + + <tr> + <td align="right">LightYellow3</td> + <td align="center" style="background-color:rgb(205, 205, 180)">LightYellow3</td> + <td align="left">rgb(205, 205, 180)</td> + <td align="left">#CDCDB4</td> + + </tr> + + <tr> + <td align="right">ivory4</td> + <td align="center" style="background-color:rgb(139, 139, 131)">ivory4</td> + <td align="left">rgb(139, 139, 131)</td> + <td align="left">#8B8B83</td> + + </tr> + + <tr> + <td align="right">LightYellow4</td> + <td align="center" style="background-color:rgb(139, 139, 122)">LightYellow4</td> + <td align="left">rgb(139, 139, 122)</td> + <td align="left">#8B8B7A</td> + + </tr> + + <tr> + <td align="right">yellow</td> + <td align="center" style="background-color:rgb(255, 255, 0)">yellow</td> + <td align="left">rgb(255, 255, 0)</td> + <td align="left">#FFFF00</td> + + </tr> + + <tr> + <td align="right">yellow1</td> + <td align="center" style="background-color:rgb(255, 255, 0)">yellow1</td> + <td align="left">rgb(255, 255, 0)</td> + <td align="left">#FFFF00</td> + + </tr> + + <tr> + <td align="right">yellow2</td> + <td align="center" style="background-color:rgb(238, 238, 0)">yellow2</td> + <td align="left">rgb(238, 238, 0)</td> + <td align="left">#EEEE00</td> + + </tr> + + <tr> + <td align="right">yellow3</td> + <td align="center" style="background-color:rgb(205, 205, 0)">yellow3</td> + <td align="left">rgb(205, 205, 0)</td> + <td align="left">#CDCD00</td> + + </tr> + + <tr> + <td align="right">yellow4</td> + <td align="center" style="background-color:rgb(139, 139, 0)">yellow4</td> + <td align="left">rgb(139, 139, 0)</td> + <td align="left">#8B8B00</td> + + </tr> + + <tr> + <td align="right">olive</td> + <td align="center" style="background-color:rgb(128, 128, 0)">olive</td> + <td align="left">rgb(128, 128, 0)</td> + <td align="left">#808000</td> + + </tr> + + <tr> + <td align="right">DarkKhaki</td> + <td align="center" style="background-color:rgb(189, 183, 107)">DarkKhaki</td> + <td align="left">rgb(189, 183, 107)</td> + <td align="left">#BDB76B</td> + + </tr> + + <tr> + <td align="right">khaki2</td> + <td align="center" style="background-color:rgb(238, 230, 133)">khaki2</td> + <td align="left">rgb(238, 230, 133)</td> + <td align="left">#EEE685</td> + + </tr> + + <tr> + <td align="right">LemonChiffon4</td> + <td align="center" style="background-color:rgb(139, 137, 112)">LemonChiffon4</td> + <td align="left">rgb(139, 137, 112)</td> + <td align="left">#8B8970</td> + + </tr> + + <tr> + <td align="right">khaki1</td> + <td align="center" style="background-color:rgb(255, 246, 143)">khaki1</td> + <td align="left">rgb(255, 246, 143)</td> + <td align="left">#FFF68F</td> + + </tr> + + <tr> + <td align="right">khaki3</td> + <td align="center" style="background-color:rgb(205, 198, 115)">khaki3</td> + <td align="left">rgb(205, 198, 115)</td> + <td align="left">#CDC673</td> + + </tr> + + <tr> + <td align="right">khaki4</td> + <td align="center" style="background-color:rgb(139, 134, 78)">khaki4</td> + <td align="left">rgb(139, 134, 78)</td> + <td align="left">#8B864E</td> + + </tr> + + <tr> + <td align="right">PaleGoldenrod</td> + <td align="center" style="background-color:rgb(238, 232, 170)">PaleGoldenrod</td> + <td align="left">rgb(238, 232, 170)</td> + <td align="left">#EEE8AA</td> + + </tr> + + <tr> + <td align="right">LemonChiffon</td> + <td align="center" style="background-color:rgb(255, 250, 205)">LemonChiffon</td> + <td align="left">rgb(255, 250, 205)</td> + <td align="left">#FFFACD</td> + + </tr> + + <tr> + <td align="right">LemonChiffon1</td> + <td align="center" style="background-color:rgb(255, 250, 205)">LemonChiffon1</td> + <td align="left">rgb(255, 250, 205)</td> + <td align="left">#FFFACD</td> + + </tr> + + <tr> + <td align="right">khaki</td> + <td align="center" style="background-color:rgb(240, 230, 140)">khaki</td> + <td align="left">rgb(240, 230, 140)</td> + <td align="left">#F0E68C</td> + + </tr> + + <tr> + <td align="right">LemonChiffon3</td> + <td align="center" style="background-color:rgb(205, 201, 165)">LemonChiffon3</td> + <td align="left">rgb(205, 201, 165)</td> + <td align="left">#CDC9A5</td> + + </tr> + + <tr> + <td align="right">LemonChiffon2</td> + <td align="center" style="background-color:rgb(238, 233, 191)">LemonChiffon2</td> + <td align="left">rgb(238, 233, 191)</td> + <td align="left">#EEE9BF</td> + + </tr> + + <tr> + <td align="right">MediumGoldenRod</td> + <td align="center" style="background-color:rgb(209, 193, 102)">MediumGoldenRod</td> + <td align="left">rgb(209, 193, 102)</td> + <td align="left">#D1C166</td> + + </tr> + + <tr> + <td align="right">cornsilk4</td> + <td align="center" style="background-color:rgb(139, 136, 120)">cornsilk4</td> + <td align="left">rgb(139, 136, 120)</td> + <td align="left">#8B8878</td> + + </tr> + + <tr> + <td align="right">gold</td> + <td align="center" style="background-color:rgb(255, 215, 0)">gold</td> + <td align="left">rgb(255, 215, 0)</td> + <td align="left">#FFD700</td> + + </tr> + + <tr> + <td align="right">gold1</td> + <td align="center" style="background-color:rgb(255, 215, 0)">gold1</td> + <td align="left">rgb(255, 215, 0)</td> + <td align="left">#FFD700</td> + + </tr> + + <tr> + <td align="right">gold2</td> + <td align="center" style="background-color:rgb(238, 201, 0)">gold2</td> + <td align="left">rgb(238, 201, 0)</td> + <td align="left">#EEC900</td> + + </tr> + + <tr> + <td align="right">gold3</td> + <td align="center" style="background-color:rgb(205, 173, 0)">gold3</td> + <td align="left">rgb(205, 173, 0)</td> + <td align="left">#CDAD00</td> + + </tr> + + <tr> + <td align="right">gold4</td> + <td align="center" style="background-color:rgb(139, 117, 0)">gold4</td> + <td align="left">rgb(139, 117, 0)</td> + <td align="left">#8B7500</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod</td> + <td align="center" style="background-color:rgb(238, 221, 130)">LightGoldenrod</td> + <td align="left">rgb(238, 221, 130)</td> + <td align="left">#EEDD82</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod4</td> + <td align="center" style="background-color:rgb(139, 129, 76)">LightGoldenrod4</td> + <td align="left">rgb(139, 129, 76)</td> + <td align="left">#8B814C</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod1</td> + <td align="center" style="background-color:rgb(255, 236, 139)">LightGoldenrod1</td> + <td align="left">rgb(255, 236, 139)</td> + <td align="left">#FFEC8B</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod3</td> + <td align="center" style="background-color:rgb(205, 190, 112)">LightGoldenrod3</td> + <td align="left">rgb(205, 190, 112)</td> + <td align="left">#CDBE70</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod2</td> + <td align="center" style="background-color:rgb(238, 220, 130)">LightGoldenrod2</td> + <td align="left">rgb(238, 220, 130)</td> + <td align="left">#EEDC82</td> + + </tr> + + <tr> + <td align="right">cornsilk3</td> + <td align="center" style="background-color:rgb(205, 200, 177)">cornsilk3</td> + <td align="left">rgb(205, 200, 177)</td> + <td align="left">#CDC8B1</td> + + </tr> + + <tr> + <td align="right">cornsilk2</td> + <td align="center" style="background-color:rgb(238, 232, 205)">cornsilk2</td> + <td align="left">rgb(238, 232, 205)</td> + <td align="left">#EEE8CD</td> + + </tr> + + <tr> + <td align="right">cornsilk</td> + <td align="center" style="background-color:rgb(255, 248, 220)">cornsilk</td> + <td align="left">rgb(255, 248, 220)</td> + <td align="left">#FFF8DC</td> + + </tr> + + <tr> + <td align="right">cornsilk1</td> + <td align="center" style="background-color:rgb(255, 248, 220)">cornsilk1</td> + <td align="left">rgb(255, 248, 220)</td> + <td align="left">#FFF8DC</td> + + </tr> + + <tr> + <td align="right">goldenrod</td> + <td align="center" style="background-color:rgb(218, 165, 32)">goldenrod</td> + <td align="left">rgb(218, 165, 32)</td> + <td align="left">#DAA520</td> + + </tr> + + <tr> + <td align="right">goldenrod1</td> + <td align="center" style="background-color:rgb(255, 193, 37)">goldenrod1</td> + <td align="left">rgb(255, 193, 37)</td> + <td align="left">#FFC125</td> + + </tr> + + <tr> + <td align="right">goldenrod2</td> + <td align="center" style="background-color:rgb(238, 180, 34)">goldenrod2</td> + <td align="left">rgb(238, 180, 34)</td> + <td align="left">#EEB422</td> + + </tr> + + <tr> + <td align="right">goldenrod3</td> + <td align="center" style="background-color:rgb(205, 155, 29)">goldenrod3</td> + <td align="left">rgb(205, 155, 29)</td> + <td align="left">#CD9B1D</td> + + </tr> + + <tr> + <td align="right">goldenrod4</td> + <td align="center" style="background-color:rgb(139, 105, 20)">goldenrod4</td> + <td align="left">rgb(139, 105, 20)</td> + <td align="left">#8B6914</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod</td> + <td align="center" style="background-color:rgb(184, 134, 11)">DarkGoldenrod</td> + <td align="left">rgb(184, 134, 11)</td> + <td align="left">#B8860B</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod1</td> + <td align="center" style="background-color:rgb(255, 185, 15)">DarkGoldenrod1</td> + <td align="left">rgb(255, 185, 15)</td> + <td align="left">#FFB90F</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod2</td> + <td align="center" style="background-color:rgb(238, 173, 14)">DarkGoldenrod2</td> + <td align="left">rgb(238, 173, 14)</td> + <td align="left">#EEAD0E</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod3</td> + <td align="center" style="background-color:rgb(205, 149, 12)">DarkGoldenrod3</td> + <td align="left">rgb(205, 149, 12)</td> + <td align="left">#CD950C</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod4</td> + <td align="center" style="background-color:rgb(139, 101, 8)">DarkGoldenrod4</td> + <td align="left">rgb(139, 101, 8)</td> + <td align="left">#8B6508</td> + + </tr> + + <tr> + <td align="right">FloralWhite</td> + <td align="center" style="background-color:rgb(255, 250, 240)">FloralWhite</td> + <td align="left">rgb(255, 250, 240)</td> + <td align="left">#FFFAF0</td> + + </tr> + + <tr> + <td align="right">wheat2</td> + <td align="center" style="background-color:rgb(238, 216, 174)">wheat2</td> + <td align="left">rgb(238, 216, 174)</td> + <td align="left">#EED8AE</td> + + </tr> + + <tr> + <td align="right">OldLace</td> + <td align="center" style="background-color:rgb(253, 245, 230)">OldLace</td> + <td align="left">rgb(253, 245, 230)</td> + <td align="left">#FDF5E6</td> + + </tr> + + <tr> + <td align="right">wheat</td> + <td align="center" style="background-color:rgb(245, 222, 179)">wheat</td> + <td align="left">rgb(245, 222, 179)</td> + <td align="left">#F5DEB3</td> + + </tr> + + <tr> + <td align="right">wheat1</td> + <td align="center" style="background-color:rgb(255, 231, 186)">wheat1</td> + <td align="left">rgb(255, 231, 186)</td> + <td align="left">#FFE7BA</td> + + </tr> + + <tr> + <td align="right">wheat3</td> + <td align="center" style="background-color:rgb(205, 186, 150)">wheat3</td> + <td align="left">rgb(205, 186, 150)</td> + <td align="left">#CDBA96</td> + + </tr> + + <tr> + <td align="right">orange</td> + <td align="center" style="background-color:rgb(255, 165, 0)">orange</td> + <td align="left">rgb(255, 165, 0)</td> + <td align="left">#FFA500</td> + + </tr> + + <tr> + <td align="right">orange1</td> + <td align="center" style="background-color:rgb(255, 165, 0)">orange1</td> + <td align="left">rgb(255, 165, 0)</td> + <td align="left">#FFA500</td> + + </tr> + + <tr> + <td align="right">orange2</td> + <td align="center" style="background-color:rgb(238, 154, 0)">orange2</td> + <td align="left">rgb(238, 154, 0)</td> + <td align="left">#EE9A00</td> + + </tr> + + <tr> + <td align="right">orange3</td> + <td align="center" style="background-color:rgb(205, 133, 0)">orange3</td> + <td align="left">rgb(205, 133, 0)</td> + <td align="left">#CD8500</td> + + </tr> + + <tr> + <td align="right">orange4</td> + <td align="center" style="background-color:rgb(139, 90, 0)">orange4</td> + <td align="left">rgb(139, 90, 0)</td> + <td align="left">#8B5A00</td> + + </tr> + + <tr> + <td align="right">wheat4</td> + <td align="center" style="background-color:rgb(139, 126, 102)">wheat4</td> + <td align="left">rgb(139, 126, 102)</td> + <td align="left">#8B7E66</td> + + </tr> + + <tr> + <td align="right">moccasin</td> + <td align="center" style="background-color:rgb(255, 228, 181)">moccasin</td> + <td align="left">rgb(255, 228, 181)</td> + <td align="left">#FFE4B5</td> + + </tr> + + <tr> + <td align="right">PapayaWhip</td> + <td align="center" style="background-color:rgb(255, 239, 213)">PapayaWhip</td> + <td align="left">rgb(255, 239, 213)</td> + <td align="left">#FFEFD5</td> + + </tr> + + <tr> + <td align="right">NavajoWhite3</td> + <td align="center" style="background-color:rgb(205, 179, 139)">NavajoWhite3</td> + <td align="left">rgb(205, 179, 139)</td> + <td align="left">#CDB38B</td> + + </tr> + + <tr> + <td align="right">BlanchedAlmond</td> + <td align="center" style="background-color:rgb(255, 235, 205)">BlanchedAlmond</td> + <td align="left">rgb(255, 235, 205)</td> + <td align="left">#FFEBCD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite</td> + <td align="center" style="background-color:rgb(255, 222, 173)">NavajoWhite</td> + <td align="left">rgb(255, 222, 173)</td> + <td align="left">#FFDEAD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite1</td> + <td align="center" style="background-color:rgb(255, 222, 173)">NavajoWhite1</td> + <td align="left">rgb(255, 222, 173)</td> + <td align="left">#FFDEAD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite2</td> + <td align="center" style="background-color:rgb(238, 207, 161)">NavajoWhite2</td> + <td align="left">rgb(238, 207, 161)</td> + <td align="left">#EECFA1</td> + + </tr> + + <tr> + <td align="right">NavajoWhite4</td> + <td align="center" style="background-color:rgb(139, 121, 94)">NavajoWhite4</td> + <td align="left">rgb(139, 121, 94)</td> + <td align="left">#8B795E</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite4</td> + <td align="center" style="background-color:rgb(139, 131, 120)">AntiqueWhite4</td> + <td align="left">rgb(139, 131, 120)</td> + <td align="left">#8B8378</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite</td> + <td align="center" style="background-color:rgb(250, 235, 215)">AntiqueWhite</td> + <td align="left">rgb(250, 235, 215)</td> + <td align="left">#FAEBD7</td> + + </tr> + + <tr> + <td align="right">tan</td> + <td align="center" style="background-color:rgb(210, 180, 140)">tan</td> + <td align="left">rgb(210, 180, 140)</td> + <td align="left">#D2B48C</td> + + </tr> + + <tr> + <td align="right">bisque4</td> + <td align="center" style="background-color:rgb(139, 125, 107)">bisque4</td> + <td align="left">rgb(139, 125, 107)</td> + <td align="left">#8B7D6B</td> + + </tr> + + <tr> + <td align="right">burlywood</td> + <td align="center" style="background-color:rgb(222, 184, 135)">burlywood</td> + <td align="left">rgb(222, 184, 135)</td> + <td align="left">#DEB887</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite2</td> + <td align="center" style="background-color:rgb(238, 223, 204)">AntiqueWhite2</td> + <td align="left">rgb(238, 223, 204)</td> + <td align="left">#EEDFCC</td> + + </tr> + + <tr> + <td align="right">burlywood1</td> + <td align="center" style="background-color:rgb(255, 211, 155)">burlywood1</td> + <td align="left">rgb(255, 211, 155)</td> + <td align="left">#FFD39B</td> + + </tr> + + <tr> + <td align="right">burlywood3</td> + <td align="center" style="background-color:rgb(205, 170, 125)">burlywood3</td> + <td align="left">rgb(205, 170, 125)</td> + <td align="left">#CDAA7D</td> + + </tr> + + <tr> + <td align="right">burlywood2</td> + <td align="center" style="background-color:rgb(238, 197, 145)">burlywood2</td> + <td align="left">rgb(238, 197, 145)</td> + <td align="left">#EEC591</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite1</td> + <td align="center" style="background-color:rgb(255, 239, 219)">AntiqueWhite1</td> + <td align="left">rgb(255, 239, 219)</td> + <td align="left">#FFEFDB</td> + + </tr> + + <tr> + <td align="right">burlywood4</td> + <td align="center" style="background-color:rgb(139, 115, 85)">burlywood4</td> + <td align="left">rgb(139, 115, 85)</td> + <td align="left">#8B7355</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite3</td> + <td align="center" style="background-color:rgb(205, 192, 176)">AntiqueWhite3</td> + <td align="left">rgb(205, 192, 176)</td> + <td align="left">#CDC0B0</td> + + </tr> + + <tr> + <td align="right">DarkOrange</td> + <td align="center" style="background-color:rgb(255, 140, 0)">DarkOrange</td> + <td align="left">rgb(255, 140, 0)</td> + <td align="left">#FF8C00</td> + + </tr> + + <tr> + <td align="right">bisque2</td> + <td align="center" style="background-color:rgb(238, 213, 183)">bisque2</td> + <td align="left">rgb(238, 213, 183)</td> + <td align="left">#EED5B7</td> + + </tr> + + <tr> + <td align="right">bisque</td> + <td align="center" style="background-color:rgb(255, 228, 196)">bisque</td> + <td align="left">rgb(255, 228, 196)</td> + <td align="left">#FFE4C4</td> + + </tr> + + <tr> + <td align="right">bisque1</td> + <td align="center" style="background-color:rgb(255, 228, 196)">bisque1</td> + <td align="left">rgb(255, 228, 196)</td> + <td align="left">#FFE4C4</td> + + </tr> + + <tr> + <td align="right">bisque3</td> + <td align="center" style="background-color:rgb(205, 183, 158)">bisque3</td> + <td align="left">rgb(205, 183, 158)</td> + <td align="left">#CDB79E</td> + + </tr> + + <tr> + <td align="right">DarkOrange1</td> + <td align="center" style="background-color:rgb(255, 127, 0)">DarkOrange1</td> + <td align="left">rgb(255, 127, 0)</td> + <td align="left">#FF7F00</td> + + </tr> + + <tr> + <td align="right">linen</td> + <td align="center" style="background-color:rgb(250, 240, 230)">linen</td> + <td align="left">rgb(250, 240, 230)</td> + <td align="left">#FAF0E6</td> + + </tr> + + <tr> + <td align="right">DarkOrange2</td> + <td align="center" style="background-color:rgb(238, 118, 0)">DarkOrange2</td> + <td align="left">rgb(238, 118, 0)</td> + <td align="left">#EE7600</td> + + </tr> + + <tr> + <td align="right">DarkOrange3</td> + <td align="center" style="background-color:rgb(205, 102, 0)">DarkOrange3</td> + <td align="left">rgb(205, 102, 0)</td> + <td align="left">#CD6600</td> + + </tr> + + <tr> + <td align="right">DarkOrange4</td> + <td align="center" style="background-color:rgb(139, 69, 0)">DarkOrange4</td> + <td align="left">rgb(139, 69, 0)</td> + <td align="left">#8B4500</td> + + </tr> + + <tr> + <td align="right">peru</td> + <td align="center" style="background-color:rgb(205, 133, 63)">peru</td> + <td align="left">rgb(205, 133, 63)</td> + <td align="left">#CD853F</td> + + </tr> + + <tr> + <td align="right">tan1</td> + <td align="center" style="background-color:rgb(255, 165, 79)">tan1</td> + <td align="left">rgb(255, 165, 79)</td> + <td align="left">#FFA54F</td> + + </tr> + + <tr> + <td align="right">tan2</td> + <td align="center" style="background-color:rgb(238, 154, 73)">tan2</td> + <td align="left">rgb(238, 154, 73)</td> + <td align="left">#EE9A49</td> + + </tr> + + <tr> + <td align="right">tan3</td> + <td align="center" style="background-color:rgb(205, 133, 63)">tan3</td> + <td align="left">rgb(205, 133, 63)</td> + <td align="left">#CD853F</td> + + </tr> + + <tr> + <td align="right">tan4</td> + <td align="center" style="background-color:rgb(139, 90, 43)">tan4</td> + <td align="left">rgb(139, 90, 43)</td> + <td align="left">#8B5A2B</td> + + </tr> + + <tr> + <td align="right">PeachPuff</td> + <td align="center" style="background-color:rgb(255, 218, 185)">PeachPuff</td> + <td align="left">rgb(255, 218, 185)</td> + <td align="left">#FFDAB9</td> + + </tr> + + <tr> + <td align="right">PeachPuff1</td> + <td align="center" style="background-color:rgb(255, 218, 185)">PeachPuff1</td> + <td align="left">rgb(255, 218, 185)</td> + <td align="left">#FFDAB9</td> + + </tr> + + <tr> + <td align="right">PeachPuff4</td> + <td align="center" style="background-color:rgb(139, 119, 101)">PeachPuff4</td> + <td align="left">rgb(139, 119, 101)</td> + <td align="left">#8B7765</td> + + </tr> + + <tr> + <td align="right">PeachPuff2</td> + <td align="center" style="background-color:rgb(238, 203, 173)">PeachPuff2</td> + <td align="left">rgb(238, 203, 173)</td> + <td align="left">#EECBAD</td> + + </tr> + + <tr> + <td align="right">PeachPuff3</td> + <td align="center" style="background-color:rgb(205, 175, 149)">PeachPuff3</td> + <td align="left">rgb(205, 175, 149)</td> + <td align="left">#CDAF95</td> + + </tr> + + <tr> + <td align="right">SandyBrown</td> + <td align="center" style="background-color:rgb(244, 164, 96)">SandyBrown</td> + <td align="left">rgb(244, 164, 96)</td> + <td align="left">#F4A460</td> + + </tr> + + <tr> + <td align="right">seashell4</td> + <td align="center" style="background-color:rgb(139, 134, 130)">seashell4</td> + <td align="left">rgb(139, 134, 130)</td> + <td align="left">#8B8682</td> + + </tr> + + <tr> + <td align="right">seashell2</td> + <td align="center" style="background-color:rgb(238, 229, 222)">seashell2</td> + <td align="left">rgb(238, 229, 222)</td> + <td align="left">#EEE5DE</td> + + </tr> + + <tr> + <td align="right">seashell3</td> + <td align="center" style="background-color:rgb(205, 197, 191)">seashell3</td> + <td align="left">rgb(205, 197, 191)</td> + <td align="left">#CDC5BF</td> + + </tr> + + <tr> + <td align="right">chocolate</td> + <td align="center" style="background-color:rgb(210, 105, 30)">chocolate</td> + <td align="left">rgb(210, 105, 30)</td> + <td align="left">#D2691E</td> + + </tr> + + <tr> + <td align="right">chocolate1</td> + <td align="center" style="background-color:rgb(255, 127, 36)">chocolate1</td> + <td align="left">rgb(255, 127, 36)</td> + <td align="left">#FF7F24</td> + + </tr> + + <tr> + <td align="right">chocolate2</td> + <td align="center" style="background-color:rgb(238, 118, 33)">chocolate2</td> + <td align="left">rgb(238, 118, 33)</td> + <td align="left">#EE7621</td> + + </tr> + + <tr> + <td align="right">chocolate3</td> + <td align="center" style="background-color:rgb(205, 102, 29)">chocolate3</td> + <td align="left">rgb(205, 102, 29)</td> + <td align="left">#CD661D</td> + + </tr> + + <tr> + <td align="right">chocolate4</td> + <td align="center" style="background-color:rgb(139, 69, 19)">chocolate4</td> + <td align="left">rgb(139, 69, 19)</td> + <td align="left">#8B4513</td> + + </tr> + + <tr> + <td align="right">SaddleBrown</td> + <td align="center" style="background-color:rgb(139, 69, 19)">SaddleBrown</td> + <td align="left">rgb(139, 69, 19)</td> + <td align="left">#8B4513</td> + + </tr> + + <tr> + <td align="right">seashell</td> + <td align="center" style="background-color:rgb(255, 245, 238)">seashell</td> + <td align="left">rgb(255, 245, 238)</td> + <td align="left">#FFF5EE</td> + + </tr> + + <tr> + <td align="right">seashell1</td> + <td align="center" style="background-color:rgb(255, 245, 238)">seashell1</td> + <td align="left">rgb(255, 245, 238)</td> + <td align="left">#FFF5EE</td> + + </tr> + + <tr> + <td align="right">sienna4</td> + <td align="center" style="background-color:rgb(139, 71, 38)">sienna4</td> + <td align="left">rgb(139, 71, 38)</td> + <td align="left">#8B4726</td> + + </tr> + + <tr> + <td align="right">sienna</td> + <td align="center" style="background-color:rgb(160, 82, 45)">sienna</td> + <td align="left">rgb(160, 82, 45)</td> + <td align="left">#A0522D</td> + + </tr> + + <tr> + <td align="right">sienna1</td> + <td align="center" style="background-color:rgb(255, 130, 71)">sienna1</td> + <td align="left">rgb(255, 130, 71)</td> + <td align="left">#FF8247</td> + + </tr> + + <tr> + <td align="right">sienna2</td> + <td align="center" style="background-color:rgb(238, 121, 66)">sienna2</td> + <td align="left">rgb(238, 121, 66)</td> + <td align="left">#EE7942</td> + + </tr> + + <tr> + <td align="right">sienna3</td> + <td align="center" style="background-color:rgb(205, 104, 57)">sienna3</td> + <td align="left">rgb(205, 104, 57)</td> + <td align="left">#CD6839</td> + + </tr> + + <tr> + <td align="right">LightSalmon3</td> + <td align="center" style="background-color:rgb(205, 129, 98)">LightSalmon3</td> + <td align="left">rgb(205, 129, 98)</td> + <td align="left">#CD8162</td> + + </tr> + + <tr> + <td align="right">LightSalmon</td> + <td align="center" style="background-color:rgb(255, 160, 122)">LightSalmon</td> + <td align="left">rgb(255, 160, 122)</td> + <td align="left">#FFA07A</td> + + </tr> + + <tr> + <td align="right">LightSalmon1</td> + <td align="center" style="background-color:rgb(255, 160, 122)">LightSalmon1</td> + <td align="left">rgb(255, 160, 122)</td> + <td align="left">#FFA07A</td> + + </tr> + + <tr> + <td align="right">LightSalmon4</td> + <td align="center" style="background-color:rgb(139, 87, 66)">LightSalmon4</td> + <td align="left">rgb(139, 87, 66)</td> + <td align="left">#8B5742</td> + + </tr> + + <tr> + <td align="right">LightSalmon2</td> + <td align="center" style="background-color:rgb(238, 149, 114)">LightSalmon2</td> + <td align="left">rgb(238, 149, 114)</td> + <td align="left">#EE9572</td> + + </tr> + + <tr> + <td align="right">coral</td> + <td align="center" style="background-color:rgb(255, 127, 80)">coral</td> + <td align="left">rgb(255, 127, 80)</td> + <td align="left">#FF7F50</td> + + </tr> + + <tr> + <td align="right">OrangeRed</td> + <td align="center" style="background-color:rgb(255, 69, 0)">OrangeRed</td> + <td align="left">rgb(255, 69, 0)</td> + <td align="left">#FF4500</td> + + </tr> + + <tr> + <td align="right">OrangeRed1</td> + <td align="center" style="background-color:rgb(255, 69, 0)">OrangeRed1</td> + <td align="left">rgb(255, 69, 0)</td> + <td align="left">#FF4500</td> + + </tr> + + <tr> + <td align="right">OrangeRed2</td> + <td align="center" style="background-color:rgb(238, 64, 0)">OrangeRed2</td> + <td align="left">rgb(238, 64, 0)</td> + <td align="left">#EE4000</td> + + </tr> + + <tr> + <td align="right">OrangeRed3</td> + <td align="center" style="background-color:rgb(205, 55, 0)">OrangeRed3</td> + <td align="left">rgb(205, 55, 0)</td> + <td align="left">#CD3700</td> + + </tr> + + <tr> + <td align="right">OrangeRed4</td> + <td align="center" style="background-color:rgb(139, 37, 0)">OrangeRed4</td> + <td align="left">rgb(139, 37, 0)</td> + <td align="left">#8B2500</td> + + </tr> + + <tr> + <td align="right">DarkSalmon</td> + <td align="center" style="background-color:rgb(233, 150, 122)">DarkSalmon</td> + <td align="left">rgb(233, 150, 122)</td> + <td align="left">#E9967A</td> + + </tr> + + <tr> + <td align="right">salmon1</td> + <td align="center" style="background-color:rgb(255, 140, 105)">salmon1</td> + <td align="left">rgb(255, 140, 105)</td> + <td align="left">#FF8C69</td> + + </tr> + + <tr> + <td align="right">salmon2</td> + <td align="center" style="background-color:rgb(238, 130, 98)">salmon2</td> + <td align="left">rgb(238, 130, 98)</td> + <td align="left">#EE8262</td> + + </tr> + + <tr> + <td align="right">salmon3</td> + <td align="center" style="background-color:rgb(205, 112, 84)">salmon3</td> + <td align="left">rgb(205, 112, 84)</td> + <td align="left">#CD7054</td> + + </tr> + + <tr> + <td align="right">salmon4</td> + <td align="center" style="background-color:rgb(139, 76, 57)">salmon4</td> + <td align="left">rgb(139, 76, 57)</td> + <td align="left">#8B4C39</td> + + </tr> + + <tr> + <td align="right">coral1</td> + <td align="center" style="background-color:rgb(255, 114, 86)">coral1</td> + <td align="left">rgb(255, 114, 86)</td> + <td align="left">#FF7256</td> + + </tr> + + <tr> + <td align="right">coral2</td> + <td align="center" style="background-color:rgb(238, 106, 80)">coral2</td> + <td align="left">rgb(238, 106, 80)</td> + <td align="left">#EE6A50</td> + + </tr> + + <tr> + <td align="right">coral3</td> + <td align="center" style="background-color:rgb(205, 91, 69)">coral3</td> + <td align="left">rgb(205, 91, 69)</td> + <td align="left">#CD5B45</td> + + </tr> + + <tr> + <td align="right">coral4</td> + <td align="center" style="background-color:rgb(139, 62, 47)">coral4</td> + <td align="left">rgb(139, 62, 47)</td> + <td align="left">#8B3E2F</td> + + </tr> + + <tr> + <td align="right">tomato4</td> + <td align="center" style="background-color:rgb(139, 54, 38)">tomato4</td> + <td align="left">rgb(139, 54, 38)</td> + <td align="left">#8B3626</td> + + </tr> + + <tr> + <td align="right">tomato</td> + <td align="center" style="background-color:rgb(255, 99, 71)">tomato</td> + <td align="left">rgb(255, 99, 71)</td> + <td align="left">#FF6347</td> + + </tr> + + <tr> + <td align="right">tomato1</td> + <td align="center" style="background-color:rgb(255, 99, 71)">tomato1</td> + <td align="left">rgb(255, 99, 71)</td> + <td align="left">#FF6347</td> + + </tr> + + <tr> + <td align="right">tomato2</td> + <td align="center" style="background-color:rgb(238, 92, 66)">tomato2</td> + <td align="left">rgb(238, 92, 66)</td> + <td align="left">#EE5C42</td> + + </tr> + + <tr> + <td align="right">tomato3</td> + <td align="center" style="background-color:rgb(205, 79, 57)">tomato3</td> + <td align="left">rgb(205, 79, 57)</td> + <td align="left">#CD4F39</td> + + </tr> + + <tr> + <td align="right">MistyRose4</td> + <td align="center" style="background-color:rgb(139, 125, 123)">MistyRose4</td> + <td align="left">rgb(139, 125, 123)</td> + <td align="left">#8B7D7B</td> + + </tr> + + <tr> + <td align="right">MistyRose2</td> + <td align="center" style="background-color:rgb(238, 213, 210)">MistyRose2</td> + <td align="left">rgb(238, 213, 210)</td> + <td align="left">#EED5D2</td> + + </tr> + + <tr> + <td align="right">MistyRose</td> + <td align="center" style="background-color:rgb(255, 228, 225)">MistyRose</td> + <td align="left">rgb(255, 228, 225)</td> + <td align="left">#FFE4E1</td> + + </tr> + + <tr> + <td align="right">MistyRose1</td> + <td align="center" style="background-color:rgb(255, 228, 225)">MistyRose1</td> + <td align="left">rgb(255, 228, 225)</td> + <td align="left">#FFE4E1</td> + + </tr> + + <tr> + <td align="right">salmon</td> + <td align="center" style="background-color:rgb(250, 128, 114)">salmon</td> + <td align="left">rgb(250, 128, 114)</td> + <td align="left">#FA8072</td> + + </tr> + + <tr> + <td align="right">MistyRose3</td> + <td align="center" style="background-color:rgb(205, 183, 181)">MistyRose3</td> + <td align="left">rgb(205, 183, 181)</td> + <td align="left">#CDB7B5</td> + + </tr> + + <tr> + <td align="right">white</td> + <td align="center" style="background-color:rgb(255, 255, 255)">white</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">gray100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">gray100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">grey100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">grey100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">grey100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">grey100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">gray99</td> + <td align="center" style="background-color:rgb(252, 252, 252)">gray99</td> + <td align="left">rgb(252, 252, 252)</td> + <td align="left">#FCFCFC</td> + + </tr> + + <tr> + <td align="right">grey99</td> + <td align="center" style="background-color:rgb(252, 252, 252)">grey99</td> + <td align="left">rgb(252, 252, 252)</td> + <td align="left">#FCFCFC</td> + + </tr> + + <tr> + <td align="right">gray98</td> + <td align="center" style="background-color:rgb(250, 250, 250)">gray98</td> + <td align="left">rgb(250, 250, 250)</td> + <td align="left">#FAFAFA</td> + + </tr> + + <tr> + <td align="right">grey98</td> + <td align="center" style="background-color:rgb(250, 250, 250)">grey98</td> + <td align="left">rgb(250, 250, 250)</td> + <td align="left">#FAFAFA</td> + + </tr> + + <tr> + <td align="right">gray97</td> + <td align="center" style="background-color:rgb(247, 247, 247)">gray97</td> + <td align="left">rgb(247, 247, 247)</td> + <td align="left">#F7F7F7</td> + + </tr> + + <tr> + <td align="right">grey97</td> + <td align="center" style="background-color:rgb(247, 247, 247)">grey97</td> + <td align="left">rgb(247, 247, 247)</td> + <td align="left">#F7F7F7</td> + + </tr> + + <tr> + <td align="right">gray96</td> + <td align="center" style="background-color:rgb(245, 245, 245)">gray96</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">grey96</td> + <td align="center" style="background-color:rgb(245, 245, 245)">grey96</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">WhiteSmoke</td> + <td align="center" style="background-color:rgb(245, 245, 245)">WhiteSmoke</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">gray95</td> + <td align="center" style="background-color:rgb(242, 242, 242)">gray95</td> + <td align="left">rgb(242, 242, 242)</td> + <td align="left">#F2F2F2</td> + + </tr> + + <tr> + <td align="right">grey95</td> + <td align="center" style="background-color:rgb(242, 242, 242)">grey95</td> + <td align="left">rgb(242, 242, 242)</td> + <td align="left">#F2F2F2</td> + + </tr> + + <tr> + <td align="right">gray94</td> + <td align="center" style="background-color:rgb(240, 240, 240)">gray94</td> + <td align="left">rgb(240, 240, 240)</td> + <td align="left">#F0F0F0</td> + + </tr> + + <tr> + <td align="right">grey94</td> + <td align="center" style="background-color:rgb(240, 240, 240)">grey94</td> + <td align="left">rgb(240, 240, 240)</td> + <td align="left">#F0F0F0</td> + + </tr> + + <tr> + <td align="right">gray93</td> + <td align="center" style="background-color:rgb(237, 237, 237)">gray93</td> + <td align="left">rgb(237, 237, 237)</td> + <td align="left">#EDEDED</td> + + </tr> + + <tr> + <td align="right">grey93</td> + <td align="center" style="background-color:rgb(237, 237, 237)">grey93</td> + <td align="left">rgb(237, 237, 237)</td> + <td align="left">#EDEDED</td> + + </tr> + + <tr> + <td align="right">gray92</td> + <td align="center" style="background-color:rgb(235, 235, 235)">gray92</td> + <td align="left">rgb(235, 235, 235)</td> + <td align="left">#EBEBEB</td> + + </tr> + + <tr> + <td align="right">grey92</td> + <td align="center" style="background-color:rgb(235, 235, 235)">grey92</td> + <td align="left">rgb(235, 235, 235)</td> + <td align="left">#EBEBEB</td> + + </tr> + + <tr> + <td align="right">gray91</td> + <td align="center" style="background-color:rgb(232, 232, 232)">gray91</td> + <td align="left">rgb(232, 232, 232)</td> + <td align="left">#E8E8E8</td> + + </tr> + + <tr> + <td align="right">grey91</td> + <td align="center" style="background-color:rgb(232, 232, 232)">grey91</td> + <td align="left">rgb(232, 232, 232)</td> + <td align="left">#E8E8E8</td> + + </tr> + + <tr> + <td align="right">gray90</td> + <td align="center" style="background-color:rgb(229, 229, 229)">gray90</td> + <td align="left">rgb(229, 229, 229)</td> + <td align="left">#E5E5E5</td> + + </tr> + + <tr> + <td align="right">grey90</td> + <td align="center" style="background-color:rgb(229, 229, 229)">grey90</td> + <td align="left">rgb(229, 229, 229)</td> + <td align="left">#E5E5E5</td> + + </tr> + + <tr> + <td align="right">gray89</td> + <td align="center" style="background-color:rgb(227, 227, 227)">gray89</td> + <td align="left">rgb(227, 227, 227)</td> + <td align="left">#E3E3E3</td> + + </tr> + + <tr> + <td align="right">grey89</td> + <td align="center" style="background-color:rgb(227, 227, 227)">grey89</td> + <td align="left">rgb(227, 227, 227)</td> + <td align="left">#E3E3E3</td> + + </tr> + + <tr> + <td align="right">gray88</td> + <td align="center" style="background-color:rgb(224, 224, 224)">gray88</td> + <td align="left">rgb(224, 224, 224)</td> + <td align="left">#E0E0E0</td> + + </tr> + + <tr> + <td align="right">grey88</td> + <td align="center" style="background-color:rgb(224, 224, 224)">grey88</td> + <td align="left">rgb(224, 224, 224)</td> + <td align="left">#E0E0E0</td> + + </tr> + + <tr> + <td align="right">gray87</td> + <td align="center" style="background-color:rgb(222, 222, 222)">gray87</td> + <td align="left">rgb(222, 222, 222)</td> + <td align="left">#DEDEDE</td> + + </tr> + + <tr> + <td align="right">grey87</td> + <td align="center" style="background-color:rgb(222, 222, 222)">grey87</td> + <td align="left">rgb(222, 222, 222)</td> + <td align="left">#DEDEDE</td> + + </tr> + + <tr> + <td align="right">gainsboro</td> + <td align="center" style="background-color:rgb(220, 220, 220)">gainsboro</td> + <td align="left">rgb(220, 220, 220)</td> + <td align="left">#DCDCDC</td> + + </tr> + + <tr> + <td align="right">gray86</td> + <td align="center" style="background-color:rgb(219, 219, 219)">gray86</td> + <td align="left">rgb(219, 219, 219)</td> + <td align="left">#DBDBDB</td> + + </tr> + + <tr> + <td align="right">grey86</td> + <td align="center" style="background-color:rgb(219, 219, 219)">grey86</td> + <td align="left">rgb(219, 219, 219)</td> + <td align="left">#DBDBDB</td> + + </tr> + + <tr> + <td align="right">gray85</td> + <td align="center" style="background-color:rgb(217, 217, 217)">gray85</td> + <td align="left">rgb(217, 217, 217)</td> + <td align="left">#D9D9D9</td> + + </tr> + + <tr> + <td align="right">grey85</td> + <td align="center" style="background-color:rgb(217, 217, 217)">grey85</td> + <td align="left">rgb(217, 217, 217)</td> + <td align="left">#D9D9D9</td> + + </tr> + + <tr> + <td align="right">gray84</td> + <td align="center" style="background-color:rgb(214, 214, 214)">gray84</td> + <td align="left">rgb(214, 214, 214)</td> + <td align="left">#D6D6D6</td> + + </tr> + + <tr> + <td align="right">grey84</td> + <td align="center" style="background-color:rgb(214, 214, 214)">grey84</td> + <td align="left">rgb(214, 214, 214)</td> + <td align="left">#D6D6D6</td> + + </tr> + + <tr> + <td align="right">gray83</td> + <td align="center" style="background-color:rgb(212, 212, 212)">gray83</td> + <td align="left">rgb(212, 212, 212)</td> + <td align="left">#D4D4D4</td> + + </tr> + + <tr> + <td align="right">grey83</td> + <td align="center" style="background-color:rgb(212, 212, 212)">grey83</td> + <td align="left">rgb(212, 212, 212)</td> + <td align="left">#D4D4D4</td> + + </tr> + + <tr> + <td align="right">LightGray</td> + <td align="center" style="background-color:rgb(211, 211, 211)">LightGray</td> + <td align="left">rgb(211, 211, 211)</td> + <td align="left">#D3D3D3</td> + + </tr> + + <tr> + <td align="right">LightGrey</td> + <td align="center" style="background-color:rgb(211, 211, 211)">LightGrey</td> + <td align="left">rgb(211, 211, 211)</td> + <td align="left">#D3D3D3</td> + + </tr> + + <tr> + <td align="right">gray82</td> + <td align="center" style="background-color:rgb(209, 209, 209)">gray82</td> + <td align="left">rgb(209, 209, 209)</td> + <td align="left">#D1D1D1</td> + + </tr> + + <tr> + <td align="right">grey82</td> + <td align="center" style="background-color:rgb(209, 209, 209)">grey82</td> + <td align="left">rgb(209, 209, 209)</td> + <td align="left">#D1D1D1</td> + + </tr> + + <tr> + <td align="right">gray81</td> + <td align="center" style="background-color:rgb(207, 207, 207)">gray81</td> + <td align="left">rgb(207, 207, 207)</td> + <td align="left">#CFCFCF</td> + + </tr> + + <tr> + <td align="right">grey81</td> + <td align="center" style="background-color:rgb(207, 207, 207)">grey81</td> + <td align="left">rgb(207, 207, 207)</td> + <td align="left">#CFCFCF</td> + + </tr> + + <tr> + <td align="right">gray80</td> + <td align="center" style="background-color:rgb(204, 204, 204)">gray80</td> + <td align="left">rgb(204, 204, 204)</td> + <td align="left">#CCCCCC</td> + + </tr> + + <tr> + <td align="right">grey80</td> + <td align="center" style="background-color:rgb(204, 204, 204)">grey80</td> + <td align="left">rgb(204, 204, 204)</td> + <td align="left">#CCCCCC</td> + + </tr> + + <tr> + <td align="right">gray79</td> + <td align="center" style="background-color:rgb(201, 201, 201)">gray79</td> + <td align="left">rgb(201, 201, 201)</td> + <td align="left">#C9C9C9</td> + + </tr> + + <tr> + <td align="right">grey79</td> + <td align="center" style="background-color:rgb(201, 201, 201)">grey79</td> + <td align="left">rgb(201, 201, 201)</td> + <td align="left">#C9C9C9</td> + + </tr> + + <tr> + <td align="right">gray78</td> + <td align="center" style="background-color:rgb(199, 199, 199)">gray78</td> + <td align="left">rgb(199, 199, 199)</td> + <td align="left">#C7C7C7</td> + + </tr> + + <tr> + <td align="right">grey78</td> + <td align="center" style="background-color:rgb(199, 199, 199)">grey78</td> + <td align="left">rgb(199, 199, 199)</td> + <td align="left">#C7C7C7</td> + + </tr> + + <tr> + <td align="right">gray77</td> + <td align="center" style="background-color:rgb(196, 196, 196)">gray77</td> + <td align="left">rgb(196, 196, 196)</td> + <td align="left">#C4C4C4</td> + + </tr> + + <tr> + <td align="right">grey77</td> + <td align="center" style="background-color:rgb(196, 196, 196)">grey77</td> + <td align="left">rgb(196, 196, 196)</td> + <td align="left">#C4C4C4</td> + + </tr> + + <tr> + <td align="right">gray76</td> + <td align="center" style="background-color:rgb(194, 194, 194)">gray76</td> + <td align="left">rgb(194, 194, 194)</td> + <td align="left">#C2C2C2</td> + + </tr> + + <tr> + <td align="right">grey76</td> + <td align="center" style="background-color:rgb(194, 194, 194)">grey76</td> + <td align="left">rgb(194, 194, 194)</td> + <td align="left">#C2C2C2</td> + + </tr> + + <tr> + <td align="right">silver</td> + <td align="center" style="background-color:rgb(192, 192, 192)">silver</td> + <td align="left">rgb(192, 192, 192)</td> + <td align="left">#C0C0C0</td> + + </tr> + + <tr> + <td align="right">gray75</td> + <td align="center" style="background-color:rgb(191, 191, 191)">gray75</td> + <td align="left">rgb(191, 191, 191)</td> + <td align="left">#BFBFBF</td> + + </tr> + + <tr> + <td align="right">grey75</td> + <td align="center" style="background-color:rgb(191, 191, 191)">grey75</td> + <td align="left">rgb(191, 191, 191)</td> + <td align="left">#BFBFBF</td> + + </tr> + + <tr> + <td align="right">gray74</td> + <td align="center" style="background-color:rgb(189, 189, 189)">gray74</td> + <td align="left">rgb(189, 189, 189)</td> + <td align="left">#BDBDBD</td> + + </tr> + + <tr> + <td align="right">grey74</td> + <td align="center" style="background-color:rgb(189, 189, 189)">grey74</td> + <td align="left">rgb(189, 189, 189)</td> + <td align="left">#BDBDBD</td> + + </tr> + + <tr> + <td align="right">gray73</td> + <td align="center" style="background-color:rgb(186, 186, 186)">gray73</td> + <td align="left">rgb(186, 186, 186)</td> + <td align="left">#BABABA</td> + + </tr> + + <tr> + <td align="right">grey73</td> + <td align="center" style="background-color:rgb(186, 186, 186)">grey73</td> + <td align="left">rgb(186, 186, 186)</td> + <td align="left">#BABABA</td> + + </tr> + + <tr> + <td align="right">gray72</td> + <td align="center" style="background-color:rgb(184, 184, 184)">gray72</td> + <td align="left">rgb(184, 184, 184)</td> + <td align="left">#B8B8B8</td> + + </tr> + + <tr> + <td align="right">grey72</td> + <td align="center" style="background-color:rgb(184, 184, 184)">grey72</td> + <td align="left">rgb(184, 184, 184)</td> + <td align="left">#B8B8B8</td> + + </tr> + + <tr> + <td align="right">gray71</td> + <td align="center" style="background-color:rgb(181, 181, 181)">gray71</td> + <td align="left">rgb(181, 181, 181)</td> + <td align="left">#B5B5B5</td> + + </tr> + + <tr> + <td align="right">grey71</td> + <td align="center" style="background-color:rgb(181, 181, 181)">grey71</td> + <td align="left">rgb(181, 181, 181)</td> + <td align="left">#B5B5B5</td> + + </tr> + + <tr> + <td align="right">gray70</td> + <td align="center" style="background-color:rgb(179, 179, 179)">gray70</td> + <td align="left">rgb(179, 179, 179)</td> + <td align="left">#B3B3B3</td> + + </tr> + + <tr> + <td align="right">grey70</td> + <td align="center" style="background-color:rgb(179, 179, 179)">grey70</td> + <td align="left">rgb(179, 179, 179)</td> + <td align="left">#B3B3B3</td> + + </tr> + + <tr> + <td align="right">gray69</td> + <td align="center" style="background-color:rgb(176, 176, 176)">gray69</td> + <td align="left">rgb(176, 176, 176)</td> + <td align="left">#B0B0B0</td> + + </tr> + + <tr> + <td align="right">grey69</td> + <td align="center" style="background-color:rgb(176, 176, 176)">grey69</td> + <td align="left">rgb(176, 176, 176)</td> + <td align="left">#B0B0B0</td> + + </tr> + + <tr> + <td align="right">gray68</td> + <td align="center" style="background-color:rgb(173, 173, 173)">gray68</td> + <td align="left">rgb(173, 173, 173)</td> + <td align="left">#ADADAD</td> + + </tr> + + <tr> + <td align="right">grey68</td> + <td align="center" style="background-color:rgb(173, 173, 173)">grey68</td> + <td align="left">rgb(173, 173, 173)</td> + <td align="left">#ADADAD</td> + + </tr> + + <tr> + <td align="right">gray67</td> + <td align="center" style="background-color:rgb(171, 171, 171)">gray67</td> + <td align="left">rgb(171, 171, 171)</td> + <td align="left">#ABABAB</td> + + </tr> + + <tr> + <td align="right">grey67</td> + <td align="center" style="background-color:rgb(171, 171, 171)">grey67</td> + <td align="left">rgb(171, 171, 171)</td> + <td align="left">#ABABAB</td> + + </tr> + + <tr> + <td align="right">DarkGray</td> + <td align="center" style="background-color:rgb(169, 169, 169)">DarkGray</td> + <td align="left">rgb(169, 169, 169)</td> + <td align="left">#A9A9A9</td> + + </tr> + + <tr> + <td align="right">DarkGrey</td> + <td align="center" style="background-color:rgb(169, 169, 169)">DarkGrey</td> + <td align="left">rgb(169, 169, 169)</td> + <td align="left">#A9A9A9</td> + + </tr> + + <tr> + <td align="right">gray66</td> + <td align="center" style="background-color:rgb(168, 168, 168)">gray66</td> + <td align="left">rgb(168, 168, 168)</td> + <td align="left">#A8A8A8</td> + + </tr> + + <tr> + <td align="right">grey66</td> + <td align="center" style="background-color:rgb(168, 168, 168)">grey66</td> + <td align="left">rgb(168, 168, 168)</td> + <td align="left">#A8A8A8</td> + + </tr> + + <tr> + <td align="right">gray65</td> + <td align="center" style="background-color:rgb(166, 166, 166)">gray65</td> + <td align="left">rgb(166, 166, 166)</td> + <td align="left">#A6A6A6</td> + + </tr> + + <tr> + <td align="right">grey65</td> + <td align="center" style="background-color:rgb(166, 166, 166)">grey65</td> + <td align="left">rgb(166, 166, 166)</td> + <td align="left">#A6A6A6</td> + + </tr> + + <tr> + <td align="right">gray64</td> + <td align="center" style="background-color:rgb(163, 163, 163)">gray64</td> + <td align="left">rgb(163, 163, 163)</td> + <td align="left">#A3A3A3</td> + + </tr> + + <tr> + <td align="right">grey64</td> + <td align="center" style="background-color:rgb(163, 163, 163)">grey64</td> + <td align="left">rgb(163, 163, 163)</td> + <td align="left">#A3A3A3</td> + + </tr> + + <tr> + <td align="right">gray63</td> + <td align="center" style="background-color:rgb(161, 161, 161)">gray63</td> + <td align="left">rgb(161, 161, 161)</td> + <td align="left">#A1A1A1</td> + + </tr> + + <tr> + <td align="right">grey63</td> + <td align="center" style="background-color:rgb(161, 161, 161)">grey63</td> + <td align="left">rgb(161, 161, 161)</td> + <td align="left">#A1A1A1</td> + + </tr> + + <tr> + <td align="right">gray62</td> + <td align="center" style="background-color:rgb(158, 158, 158)">gray62</td> + <td align="left">rgb(158, 158, 158)</td> + <td align="left">#9E9E9E</td> + + </tr> + + <tr> + <td align="right">grey62</td> + <td align="center" style="background-color:rgb(158, 158, 158)">grey62</td> + <td align="left">rgb(158, 158, 158)</td> + <td align="left">#9E9E9E</td> + + </tr> + + <tr> + <td align="right">gray61</td> + <td align="center" style="background-color:rgb(156, 156, 156)">gray61</td> + <td align="left">rgb(156, 156, 156)</td> + <td align="left">#9C9C9C</td> + + </tr> + + <tr> + <td align="right">grey61</td> + <td align="center" style="background-color:rgb(156, 156, 156)">grey61</td> + <td align="left">rgb(156, 156, 156)</td> + <td align="left">#9C9C9C</td> + + </tr> + + <tr> + <td align="right">gray60</td> + <td align="center" style="background-color:rgb(153, 153, 153)">gray60</td> + <td align="left">rgb(153, 153, 153)</td> + <td align="left">#999999</td> + + </tr> + + <tr> + <td align="right">grey60</td> + <td align="center" style="background-color:rgb(153, 153, 153)">grey60</td> + <td align="left">rgb(153, 153, 153)</td> + <td align="left">#999999</td> + + </tr> + + <tr> + <td align="right">gray59</td> + <td align="center" style="background-color:rgb(150, 150, 150)">gray59</td> + <td align="left">rgb(150, 150, 150)</td> + <td align="left">#969696</td> + + </tr> + + <tr> + <td align="right">grey59</td> + <td align="center" style="background-color:rgb(150, 150, 150)">grey59</td> + <td align="left">rgb(150, 150, 150)</td> + <td align="left">#969696</td> + + </tr> + + <tr> + <td align="right">gray58</td> + <td align="center" style="background-color:rgb(148, 148, 148)">gray58</td> + <td align="left">rgb(148, 148, 148)</td> + <td align="left">#949494</td> + + </tr> + + <tr> + <td align="right">grey58</td> + <td align="center" style="background-color:rgb(148, 148, 148)">grey58</td> + <td align="left">rgb(148, 148, 148)</td> + <td align="left">#949494</td> + + </tr> + + <tr> + <td align="right">gray57</td> + <td align="center" style="background-color:rgb(145, 145, 145)">gray57</td> + <td align="left">rgb(145, 145, 145)</td> + <td align="left">#919191</td> + + </tr> + + <tr> + <td align="right">grey57</td> + <td align="center" style="background-color:rgb(145, 145, 145)">grey57</td> + <td align="left">rgb(145, 145, 145)</td> + <td align="left">#919191</td> + + </tr> + + <tr> + <td align="right">gray56</td> + <td align="center" style="background-color:rgb(143, 143, 143)">gray56</td> + <td align="left">rgb(143, 143, 143)</td> + <td align="left">#8F8F8F</td> + + </tr> + + <tr> + <td align="right">grey56</td> + <td align="center" style="background-color:rgb(143, 143, 143)">grey56</td> + <td align="left">rgb(143, 143, 143)</td> + <td align="left">#8F8F8F</td> + + </tr> + + <tr> + <td align="right">gray55</td> + <td align="center" style="background-color:rgb(140, 140, 140)">gray55</td> + <td align="left">rgb(140, 140, 140)</td> + <td align="left">#8C8C8C</td> + + </tr> + + <tr> + <td align="right">grey55</td> + <td align="center" style="background-color:rgb(140, 140, 140)">grey55</td> + <td align="left">rgb(140, 140, 140)</td> + <td align="left">#8C8C8C</td> + + </tr> + + <tr> + <td align="right">gray54</td> + <td align="center" style="background-color:rgb(138, 138, 138)">gray54</td> + <td align="left">rgb(138, 138, 138)</td> + <td align="left">#8A8A8A</td> + + </tr> + + <tr> + <td align="right">grey54</td> + <td align="center" style="background-color:rgb(138, 138, 138)">grey54</td> + <td align="left">rgb(138, 138, 138)</td> + <td align="left">#8A8A8A</td> + + </tr> + + <tr> + <td align="right">gray53</td> + <td align="center" style="background-color:rgb(135, 135, 135)">gray53</td> + <td align="left">rgb(135, 135, 135)</td> + <td align="left">#878787</td> + + </tr> + + <tr> + <td align="right">grey53</td> + <td align="center" style="background-color:rgb(135, 135, 135)">grey53</td> + <td align="left">rgb(135, 135, 135)</td> + <td align="left">#878787</td> + + </tr> + + <tr> + <td align="right">gray52</td> + <td align="center" style="background-color:rgb(133, 133, 133)">gray52</td> + <td align="left">rgb(133, 133, 133)</td> + <td align="left">#858585</td> + + </tr> + + <tr> + <td align="right">grey52</td> + <td align="center" style="background-color:rgb(133, 133, 133)">grey52</td> + <td align="left">rgb(133, 133, 133)</td> + <td align="left">#858585</td> + + </tr> + + <tr> + <td align="right">gray51</td> + <td align="center" style="background-color:rgb(130, 130, 130)">gray51</td> + <td align="left">rgb(130, 130, 130)</td> + <td align="left">#828282</td> + + </tr> + + <tr> + <td align="right">grey51</td> + <td align="center" style="background-color:rgb(130, 130, 130)">grey51</td> + <td align="left">rgb(130, 130, 130)</td> + <td align="left">#828282</td> + + </tr> + + <tr> + <td align="right">fractal</td> + <td align="center" style="background-color:rgb(128, 128, 128)">fractal</td> + <td align="left">rgb(128, 128, 128)</td> + <td align="left">#808080</td> + + </tr> + + <tr> + <td align="right">gray50</td> + <td align="center" style="background-color:rgb(127, 127, 127)">gray50</td> + <td align="left">rgb(127, 127, 127)</td> + <td align="left">#7F7F7F</td> + + </tr> + + <tr> + <td align="right">grey50</td> + <td align="center" style="background-color:rgb(127, 127, 127)">grey50</td> + <td align="left">rgb(127, 127, 127)</td> + <td align="left">#7F7F7F</td> + + </tr> + + <tr> + <td align="right">gray</td> + <td align="center" style="background-color:rgb(126, 126, 126)">gray</td> + <td align="left">rgb(126, 126, 126)</td> + <td align="left">#7E7E7E</td> + + </tr> + + <tr> + <td align="right">gray49</td> + <td align="center" style="background-color:rgb(125, 125, 125)">gray49</td> + <td align="left">rgb(125, 125, 125)</td> + <td align="left">#7D7D7D</td> + + </tr> + + <tr> + <td align="right">grey49</td> + <td align="center" style="background-color:rgb(125, 125, 125)">grey49</td> + <td align="left">rgb(125, 125, 125)</td> + <td align="left">#7D7D7D</td> + + </tr> + + <tr> + <td align="right">gray48</td> + <td align="center" style="background-color:rgb(122, 122, 122)">gray48</td> + <td align="left">rgb(122, 122, 122)</td> + <td align="left">#7A7A7A</td> + + </tr> + + <tr> + <td align="right">grey48</td> + <td align="center" style="background-color:rgb(122, 122, 122)">grey48</td> + <td align="left">rgb(122, 122, 122)</td> + <td align="left">#7A7A7A</td> + + </tr> + + <tr> + <td align="right">gray47</td> + <td align="center" style="background-color:rgb(120, 120, 120)">gray47</td> + <td align="left">rgb(120, 120, 120)</td> + <td align="left">#787878</td> + + </tr> + + <tr> + <td align="right">grey47</td> + <td align="center" style="background-color:rgb(120, 120, 120)">grey47</td> + <td align="left">rgb(120, 120, 120)</td> + <td align="left">#787878</td> + + </tr> + + <tr> + <td align="right">gray46</td> + <td align="center" style="background-color:rgb(117, 117, 117)">gray46</td> + <td align="left">rgb(117, 117, 117)</td> + <td align="left">#757575</td> + + </tr> + + <tr> + <td align="right">grey46</td> + <td align="center" style="background-color:rgb(117, 117, 117)">grey46</td> + <td align="left">rgb(117, 117, 117)</td> + <td align="left">#757575</td> + + </tr> + + <tr> + <td align="right">gray45</td> + <td align="center" style="background-color:rgb(115, 115, 115)">gray45</td> + <td align="left">rgb(115, 115, 115)</td> + <td align="left">#737373</td> + + </tr> + + <tr> + <td align="right">grey45</td> + <td align="center" style="background-color:rgb(115, 115, 115)">grey45</td> + <td align="left">rgb(115, 115, 115)</td> + <td align="left">#737373</td> + + </tr> + + <tr> + <td align="right">gray44</td> + <td align="center" style="background-color:rgb(112, 112, 112)">gray44</td> + <td align="left">rgb(112, 112, 112)</td> + <td align="left">#707070</td> + + </tr> + + <tr> + <td align="right">grey44</td> + <td align="center" style="background-color:rgb(112, 112, 112)">grey44</td> + <td align="left">rgb(112, 112, 112)</td> + <td align="left">#707070</td> + + </tr> + + <tr> + <td align="right">gray43</td> + <td align="center" style="background-color:rgb(110, 110, 110)">gray43</td> + <td align="left">rgb(110, 110, 110)</td> + <td align="left">#6E6E6E</td> + + </tr> + + <tr> + <td align="right">grey43</td> + <td align="center" style="background-color:rgb(110, 110, 110)">grey43</td> + <td align="left">rgb(110, 110, 110)</td> + <td align="left">#6E6E6E</td> + + </tr> + + <tr> + <td align="right">gray42</td> + <td align="center" style="background-color:rgb(107, 107, 107)">gray42</td> + <td align="left">rgb(107, 107, 107)</td> + <td align="left">#6B6B6B</td> + + </tr> + + <tr> + <td align="right">grey42</td> + <td align="center" style="background-color:rgb(107, 107, 107)">grey42</td> + <td align="left">rgb(107, 107, 107)</td> + <td align="left">#6B6B6B</td> + + </tr> + + <tr> + <td align="right">DimGray</td> + <td align="center" style="background-color:rgb(105, 105, 105)">DimGray</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">DimGrey</td> + <td align="center" style="background-color:rgb(105, 105, 105)">DimGrey</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">gray41</td> + <td align="center" style="background-color:rgb(105, 105, 105)">gray41</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">grey41</td> + <td align="center" style="background-color:rgb(105, 105, 105)">grey41</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">gray40</td> + <td align="center" style="background-color:rgb(102, 102, 102)">gray40</td> + <td align="left">rgb(102, 102, 102)</td> + <td align="left">#666666</td> + + </tr> + + <tr> + <td align="right">grey40</td> + <td align="center" style="background-color:rgb(102, 102, 102)">grey40</td> + <td align="left">rgb(102, 102, 102)</td> + <td align="left">#666666</td> + + </tr> + + <tr> + <td align="right">gray39</td> + <td align="center" style="background-color:rgb( 99, 99, 99)">gray39</td> + <td align="left">rgb( 99, 99, 99)</td> + <td align="left">#636363</td> + + </tr> + + <tr> + <td align="right">grey39</td> + <td align="center" style="background-color:rgb( 99, 99, 99)">grey39</td> + <td align="left">rgb( 99, 99, 99)</td> + <td align="left">#636363</td> + + </tr> + + <tr> + <td align="right">gray38</td> + <td align="center" style="background-color:rgb( 97, 97, 97)">gray38</td> + <td align="left">rgb( 97, 97, 97)</td> + <td align="left">#616161</td> + + </tr> + + <tr> + <td align="right">grey38</td> + <td align="center" style="background-color:rgb( 97, 97, 97)">grey38</td> + <td align="left">rgb( 97, 97, 97)</td> + <td align="left">#616161</td> + + </tr> + + <tr> + <td align="right">gray37</td> + <td align="center" style="background-color:rgb( 94, 94, 94)">gray37</td> + <td align="left">rgb( 94, 94, 94)</td> + <td align="left">#5E5E5E</td> + + </tr> + + <tr> + <td align="right">grey37</td> + <td align="center" style="background-color:rgb( 94, 94, 94)">grey37</td> + <td align="left">rgb( 94, 94, 94)</td> + <td align="left">#5E5E5E</td> + + </tr> + + <tr> + <td align="right">gray36</td> + <td align="center" style="background-color:rgb( 92, 92, 92)">gray36</td> + <td align="left">rgb( 92, 92, 92)</td> + <td align="left">#5C5C5C</td> + + </tr> + + <tr> + <td align="right">grey36</td> + <td align="center" style="background-color:rgb( 92, 92, 92)">grey36</td> + <td align="left">rgb( 92, 92, 92)</td> + <td align="left">#5C5C5C</td> + + </tr> + + <tr> + <td align="right">gray35</td> + <td align="center" style="background-color:rgb( 89, 89, 89)">gray35</td> + <td align="left">rgb( 89, 89, 89)</td> + <td align="left">#595959</td> + + </tr> + + <tr> + <td align="right">grey35</td> + <td align="center" style="background-color:rgb( 89, 89, 89)">grey35</td> + <td align="left">rgb( 89, 89, 89)</td> + <td align="left">#595959</td> + + </tr> + + <tr> + <td align="right">gray34</td> + <td align="center" style="background-color:rgb( 87, 87, 87)">gray34</td> + <td align="left">rgb( 87, 87, 87)</td> + <td align="left">#575757</td> + + </tr> + + <tr> + <td align="right">grey34</td> + <td align="center" style="background-color:rgb( 87, 87, 87)">grey34</td> + <td align="left">rgb( 87, 87, 87)</td> + <td align="left">#575757</td> + + </tr> + + <tr> + <td align="right">gray33</td> + <td align="center" style="background-color:rgb( 84, 84, 84)">gray33</td> + <td align="left">rgb( 84, 84, 84)</td> + <td align="left">#545454</td> + + </tr> + + <tr> + <td align="right">grey33</td> + <td align="center" style="background-color:rgb( 84, 84, 84)">grey33</td> + <td align="left">rgb( 84, 84, 84)</td> + <td align="left">#545454</td> + + </tr> + + <tr> + <td align="right">gray32</td> + <td align="center" style="background-color:rgb( 82, 82, 82)">gray32</td> + <td align="left">rgb( 82, 82, 82)</td> + <td align="left">#525252</td> + + </tr> + + <tr> + <td align="right">grey32</td> + <td align="center" style="background-color:rgb( 82, 82, 82)">grey32</td> + <td align="left">rgb( 82, 82, 82)</td> + <td align="left">#525252</td> + + </tr> + + <tr> + <td align="right">gray31</td> + <td align="center" style="background-color:rgb( 79, 79, 79)">gray31</td> + <td align="left">rgb( 79, 79, 79)</td> + <td align="left">#4F4F4F</td> + + </tr> + + <tr> + <td align="right">grey31</td> + <td align="center" style="background-color:rgb( 79, 79, 79)">grey31</td> + <td align="left">rgb( 79, 79, 79)</td> + <td align="left">#4F4F4F</td> + + </tr> + + <tr> + <td align="right">gray30</td> + <td align="center" style="background-color:rgb( 77, 77, 77)">gray30</td> + <td align="left">rgb( 77, 77, 77)</td> + <td align="left">#4D4D4D</td> + + </tr> + + <tr> + <td align="right">grey30</td> + <td align="center" style="background-color:rgb( 77, 77, 77)">grey30</td> + <td align="left">rgb( 77, 77, 77)</td> + <td align="left">#4D4D4D</td> + + </tr> + + <tr> + <td align="right">gray29</td> + <td align="center" style="background-color:rgb( 74, 74, 74)">gray29</td> + <td align="left">rgb( 74, 74, 74)</td> + <td align="left">#4A4A4A</td> + + </tr> + + <tr> + <td align="right">grey29</td> + <td align="center" style="background-color:rgb( 74, 74, 74)">grey29</td> + <td align="left">rgb( 74, 74, 74)</td> + <td align="left">#4A4A4A</td> + + </tr> + + <tr> + <td align="right">gray28</td> + <td align="center" style="background-color:rgb( 71, 71, 71)">gray28</td> + <td align="left">rgb( 71, 71, 71)</td> + <td align="left">#474747</td> + + </tr> + + <tr> + <td align="right">grey28</td> + <td align="center" style="background-color:rgb( 71, 71, 71)">grey28</td> + <td align="left">rgb( 71, 71, 71)</td> + <td align="left">#474747</td> + + </tr> + + <tr> + <td align="right">gray27</td> + <td align="center" style="background-color:rgb( 69, 69, 69)">gray27</td> + <td align="left">rgb( 69, 69, 69)</td> + <td align="left">#454545</td> + + </tr> + + <tr> + <td align="right">grey27</td> + <td align="center" style="background-color:rgb( 69, 69, 69)">grey27</td> + <td align="left">rgb( 69, 69, 69)</td> + <td align="left">#454545</td> + + </tr> + + <tr> + <td align="right">gray26</td> + <td align="center" style="background-color:rgb( 66, 66, 66)">gray26</td> + <td align="left">rgb( 66, 66, 66)</td> + <td align="left">#424242</td> + + </tr> + + <tr> + <td align="right">grey26</td> + <td align="center" style="background-color:rgb( 66, 66, 66)">grey26</td> + <td align="left">rgb( 66, 66, 66)</td> + <td align="left">#424242</td> + + </tr> + + <tr> + <td align="right">gray25</td> + <td align="center" style="background-color:rgb( 64, 64, 64)">gray25</td> + <td align="left">rgb( 64, 64, 64)</td> + <td align="left">#404040</td> + + </tr> + + <tr> + <td align="right">grey25</td> + <td align="center" style="background-color:rgb( 64, 64, 64)">grey25</td> + <td align="left">rgb( 64, 64, 64)</td> + <td align="left">#404040</td> + + </tr> + + <tr> + <td align="right">gray24</td> + <td align="center" style="background-color:rgb( 61, 61, 61)">gray24</td> + <td align="left">rgb( 61, 61, 61)</td> + <td align="left">#3D3D3D</td> + + </tr> + + <tr> + <td align="right">grey24</td> + <td align="center" style="background-color:rgb( 61, 61, 61)">grey24</td> + <td align="left">rgb( 61, 61, 61)</td> + <td align="left">#3D3D3D</td> + + </tr> + + <tr> + <td align="right">gray23</td> + <td align="center" style="background-color:rgb( 59, 59, 59)">gray23</td> + <td align="left">rgb( 59, 59, 59)</td> + <td align="left">#3B3B3B</td> + + </tr> + + <tr> + <td align="right">grey23</td> + <td align="center" style="background-color:rgb( 59, 59, 59)">grey23</td> + <td align="left">rgb( 59, 59, 59)</td> + <td align="left">#3B3B3B</td> + + </tr> + + <tr> + <td align="right">gray22</td> + <td align="center" style="background-color:rgb( 56, 56, 56)">gray22</td> + <td align="left">rgb( 56, 56, 56)</td> + <td align="left">#383838</td> + + </tr> + + <tr> + <td align="right">grey22</td> + <td align="center" style="background-color:rgb( 56, 56, 56)">grey22</td> + <td align="left">rgb( 56, 56, 56)</td> + <td align="left">#383838</td> + + </tr> + + <tr> + <td align="right">gray21</td> + <td align="center" style="background-color:rgb( 54, 54, 54)">gray21</td> + <td align="left">rgb( 54, 54, 54)</td> + <td align="left">#363636</td> + + </tr> + + <tr> + <td align="right">grey21</td> + <td align="center" style="background-color:rgb( 54, 54, 54)">grey21</td> + <td align="left">rgb( 54, 54, 54)</td> + <td align="left">#363636</td> + + </tr> + + <tr> + <td align="right">gray20</td> + <td align="center" style="background-color:rgb( 51, 51, 51)">gray20</td> + <td align="left">rgb( 51, 51, 51)</td> + <td align="left">#333333</td> + + </tr> + + <tr> + <td align="right">grey20</td> + <td align="center" style="background-color:rgb( 51, 51, 51)">grey20</td> + <td align="left">rgb( 51, 51, 51)</td> + <td align="left">#333333</td> + + </tr> + + <tr> + <td align="right">gray19</td> + <td align="center" style="background-color:rgb( 48, 48, 48)">gray19</td> + <td align="left">rgb( 48, 48, 48)</td> + <td align="left">#303030</td> + + </tr> + + <tr> + <td align="right">grey19</td> + <td align="center" style="background-color:rgb( 48, 48, 48)">grey19</td> + <td align="left">rgb( 48, 48, 48)</td> + <td align="left">#303030</td> + + </tr> + + <tr> + <td align="right">gray18</td> + <td align="center" style="background-color:rgb( 46, 46, 46)">gray18</td> + <td align="left">rgb( 46, 46, 46)</td> + <td align="left">#2E2E2E</td> + + </tr> + + <tr> + <td align="right">grey18</td> + <td align="center" style="background-color:rgb( 46, 46, 46)">grey18</td> + <td align="left">rgb( 46, 46, 46)</td> + <td align="left">#2E2E2E</td> + + </tr> + + <tr> + <td align="right">gray17</td> + <td align="center" style="background-color:rgb( 43, 43, 43)">gray17</td> + <td align="left">rgb( 43, 43, 43)</td> + <td align="left">#2B2B2B</td> + + </tr> + + <tr> + <td align="right">grey17</td> + <td align="center" style="background-color:rgb( 43, 43, 43)">grey17</td> + <td align="left">rgb( 43, 43, 43)</td> + <td align="left">#2B2B2B</td> + + </tr> + + <tr> + <td align="right">gray16</td> + <td align="center" style="background-color:rgb( 41, 41, 41)">gray16</td> + <td align="left">rgb( 41, 41, 41)</td> + <td align="left">#292929</td> + + </tr> + + <tr> + <td align="right">grey16</td> + <td align="center" style="background-color:rgb( 41, 41, 41)">grey16</td> + <td align="left">rgb( 41, 41, 41)</td> + <td align="left">#292929</td> + + </tr> + + <tr> + <td align="right">gray15</td> + <td align="center" style="background-color:rgb( 38, 38, 38)">gray15</td> + <td align="left">rgb( 38, 38, 38)</td> + <td align="left">#262626</td> + + </tr> + + <tr> + <td align="right">grey15</td> + <td align="center" style="background-color:rgb( 38, 38, 38)">grey15</td> + <td align="left">rgb( 38, 38, 38)</td> + <td align="left">#262626</td> + + </tr> + + <tr> + <td align="right">gray14</td> + <td align="center" style="background-color:rgb( 36, 36, 36)">gray14</td> + <td align="left">rgb( 36, 36, 36)</td> + <td align="left">#242424</td> + + </tr> + + <tr> + <td align="right">grey14</td> + <td align="center" style="background-color:rgb( 36, 36, 36)">grey14</td> + <td align="left">rgb( 36, 36, 36)</td> + <td align="left">#242424</td> + + </tr> + + <tr> + <td align="right">gray13</td> + <td align="center" style="background-color:rgb( 33, 33, 33)">gray13</td> + <td align="left">rgb( 33, 33, 33)</td> + <td align="left">#212121</td> + + </tr> + + <tr> + <td align="right">grey13</td> + <td align="center" style="background-color:rgb( 33, 33, 33)">grey13</td> + <td align="left">rgb( 33, 33, 33)</td> + <td align="left">#212121</td> + + </tr> + + <tr> + <td align="right">gray12</td> + <td align="center" style="background-color:rgb( 31, 31, 31)">gray12</td> + <td align="left">rgb( 31, 31, 31)</td> + <td align="left">#1F1F1F</td> + + </tr> + + <tr> + <td align="right">grey12</td> + <td align="center" style="background-color:rgb( 31, 31, 31)">grey12</td> + <td align="left">rgb( 31, 31, 31)</td> + <td align="left">#1F1F1F</td> + + </tr> + + <tr> + <td align="right">gray11</td> + <td align="center" style="background-color:rgb( 28, 28, 28)">gray11</td> + <td align="left">rgb( 28, 28, 28)</td> + <td align="left">#1C1C1C</td> + + </tr> + + <tr> + <td align="right">grey11</td> + <td align="center" style="background-color:rgb( 28, 28, 28)">grey11</td> + <td align="left">rgb( 28, 28, 28)</td> + <td align="left">#1C1C1C</td> + + </tr> + + <tr> + <td align="right">gray10</td> + <td align="center" style="background-color:rgb( 26, 26, 26)">gray10</td> + <td align="left">rgb( 26, 26, 26)</td> + <td align="left">#1A1A1A</td> + + </tr> + + <tr> + <td align="right">grey10</td> + <td align="center" style="background-color:rgb( 26, 26, 26)">grey10</td> + <td align="left">rgb( 26, 26, 26)</td> + <td align="left">#1A1A1A</td> + + </tr> + + <tr> + <td align="right">gray9</td> + <td align="center" style="background-color:rgb( 23, 23, 23)">gray9</td> + <td align="left">rgb( 23, 23, 23)</td> + <td align="left">#171717</td> + + </tr> + + <tr> + <td align="right">grey9</td> + <td align="center" style="background-color:rgb( 23, 23, 23)">grey9</td> + <td align="left">rgb( 23, 23, 23)</td> + <td align="left">#171717</td> + + </tr> + + <tr> + <td align="right">gray8</td> + <td align="center" style="background-color:rgb( 20, 20, 20)">gray8</td> + <td align="left">rgb( 20, 20, 20)</td> + <td align="left">#141414</td> + + </tr> + + <tr> + <td align="right">grey8</td> + <td align="center" style="background-color:rgb( 20, 20, 20)">grey8</td> + <td align="left">rgb( 20, 20, 20)</td> + <td align="left">#141414</td> + + </tr> + + <tr> + <td align="right">gray7</td> + <td align="center" style="background-color:rgb( 18, 18, 18)">gray7</td> + <td align="left">rgb( 18, 18, 18)</td> + <td align="left">#121212</td> + + </tr> + + <tr> + <td align="right">grey7</td> + <td align="center" style="background-color:rgb( 18, 18, 18)">grey7</td> + <td align="left">rgb( 18, 18, 18)</td> + <td align="left">#121212</td> + + </tr> + + <tr> + <td align="right">gray6</td> + <td align="center" style="background-color:rgb( 15, 15, 15)">gray6</td> + <td align="left">rgb( 15, 15, 15)</td> + <td align="left">#0F0F0F</td> + + </tr> + + <tr> + <td align="right">grey6</td> + <td align="center" style="background-color:rgb( 15, 15, 15)">grey6</td> + <td align="left">rgb( 15, 15, 15)</td> + <td align="left">#0F0F0F</td> + + </tr> + + <tr> + <td align="right">gray5</td> + <td align="center" style="background-color:rgb( 13, 13, 13)">gray5</td> + <td align="left">rgb( 13, 13, 13)</td> + <td align="left">#0D0D0D</td> + + </tr> + + <tr> + <td align="right">grey5</td> + <td align="center" style="background-color:rgb( 13, 13, 13)">grey5</td> + <td align="left">rgb( 13, 13, 13)</td> + <td align="left">#0D0D0D</td> + + </tr> + + <tr> + <td align="right">gray4</td> + <td align="center" style="background-color:rgb( 10, 10, 10)">gray4</td> + <td align="left">rgb( 10, 10, 10)</td> + <td align="left">#0A0A0A</td> + + </tr> + + <tr> + <td align="right">grey4</td> + <td align="center" style="background-color:rgb( 10, 10, 10)">grey4</td> + <td align="left">rgb( 10, 10, 10)</td> + <td align="left">#0A0A0A</td> + + </tr> + + <tr> + <td align="right">gray3</td> + <td align="center" style="background-color:rgb( 8, 8, 8)">gray3</td> + <td align="left">rgb( 8, 8, 8)</td> + <td align="left">#080808</td> + + </tr> + + <tr> + <td align="right">grey3</td> + <td align="center" style="background-color:rgb( 8, 8, 8)">grey3</td> + <td align="left">rgb( 8, 8, 8)</td> + <td align="left">#080808</td> + + </tr> + + <tr> + <td align="right">gray2</td> + <td align="center" style="background-color:rgb( 5, 5, 5)">gray2</td> + <td align="left">rgb( 5, 5, 5)</td> + <td align="left">#050505</td> + + </tr> + + <tr> + <td align="right">grey2</td> + <td align="center" style="background-color:rgb( 5, 5, 5)">grey2</td> + <td align="left">rgb( 5, 5, 5)</td> + <td align="left">#050505</td> + + </tr> + + <tr> + <td align="right">gray1</td> + <td align="center" style="background-color:rgb( 3, 3, 3)">gray1</td> + <td align="left">rgb( 3, 3, 3)</td> + <td align="left">#030303</td> + + </tr> + + <tr> + <td align="right">grey1</td> + <td align="center" style="background-color:rgb( 3, 3, 3)">grey1</td> + <td align="left">rgb( 3, 3, 3)</td> + <td align="left">#030303</td> + + </tr> + + <tr> + <td align="right">black</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">black</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">gray0</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">gray0</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">grey0</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">grey0</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">opaque</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">opaque</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">none</td> + <td align="center" style="background-color:white">none</td> + <td align="left">rgba( 0, 0, 0, 0.0)</td> + <td align="left">#00000000</td> + + </tr> + + <tr> + <td align="right">transparent</td> + <td align="center" style="background-color:white">transparent</td> + <td align="left">rgba( 0, 0, 0, 0.0)</td> + <td align="left">#00000000</td> + + </tr> + + </tbody> +</table> + +</div> + +</div> + +</body></html> diff --git a/frontend/imgrid/colors/colors/js/wrkshp/hexes b/frontend/imgrid/colors/colors/js/wrkshp/hexes new file mode 100755 index 0000000..dcc3bda --- /dev/null +++ b/frontend/imgrid/colors/colors/js/wrkshp/hexes @@ -0,0 +1 @@ +hexlist = ['#FFFAFA', '#FFFAFA', '#EEE9E9', '#FFC1C1', '#EEB4B4', '#CDC9C9', '#F08080', '#FF6A6A', '#CD9B9B', '#EE6363', '#BC8F8F', '#FF4040', '#FF3030', '#EE3B3B', '#CD5C5C', '#CD5555', '#EE2C2C', '#8B8989', '#CD3333', '#FF0000', '#FF0000', '#8B6969', '#CD2626', '#EE0000', '#B22222', '#A52A2A', '#CD0000', '#8B3A3A', '#8B2323', '#8B1A1A', '#8B0000', '#8B0000', '#800000', '#FFAEB9', '#CD8C95', '#8B5F65', '#EEA2AD', '#FFB6C1', '#FFC0CB', '#DC143C', '#FFB5C5', '#EEA9B8', '#CD919E', '#8B636C', '#8B475D', '#DB7093', '#EE799F', '#FF82AB', '#CD6889', '#FFF0F5', '#FFF0F5', '#CDC1C5', '#EEE0E5', '#8B8386', '#B03060', '#CD6090', '#CD3278', '#FF3E96', '#EE3A8C', '#8B2252', '#EE6AA7', '#FF6EB4', '#8B3A62', '#FF69B4', '#FF1493', '#FF1493', '#EE1289', '#CD1076', '#8B0A50', '#FF34B3', '#EE30A7', '#CD2990', '#8B1C62', '#C71585', '#D02090', '#EE7AE9', '#DA70D6', '#FF83FA', '#CD69C9', '#8B4789', '#FFE1FF', '#EED2EE', '#FFBBFF', '#EEAEEE', '#D8BFD8', '#CDB5CD', '#DDA0DD', '#EE82EE', '#CD96CD', '#8B7B8B', '#FF00FF', '#FF00FF', '#FF00FF', '#8B668B', '#EE00EE', '#CD00CD', '#8B008B', '#8B008B', '#800080', '#BA55D3', '#E066FF', '#D15FEE', '#B452CD', '#7A378B', '#9400D3', '#9932CC', '#BF3EFF', '#9A32CD', '#B23AEE', '#68228B', '#A020F0', '#4B0082', '#8A2BE2', '#912CEE', '#7D26CD', '#551A8B', '#9B30FF', '#9370DB', '#AB82FF', '#9F79EE', '#8968CD', '#5D478B', '#483D8B', '#8470FF', '#7B68EE', '#6A5ACD', '#836FFF', '#7A67EE', '#6959CD', '#473C8B', '#F8F8FF', '#E6E6FA', '#0000FF', '#0000FF', '#0000EE', '#0000CD', '#0000CD', '#00008B', '#00008B', '#191970', '#000080', '#000080', '#4169E1', '#4876FF', '#436EEE', '#3A5FCD', '#27408B', '#6495ED', '#B0C4DE', '#CAE1FF', '#BCD2EE', '#A2B5CD', '#6E7B8B', '#6C7B8B', '#C6E2FF', '#B9D3EE', '#9FB6CD', '#778899', '#778899', '#708090', '#708090', '#1E90FF', '#1E90FF', '#1C86EE', '#104E8B', '#1874CD', '#F0F8FF', '#36648B', '#4682B4', '#63B8FF', '#5CACEE', '#4F94CD', '#4A708B', '#87CEFF', '#7EC0EE', '#6CA6CD', '#87CEFA', '#607B8B', '#B0E2FF', '#A4D3EE', '#8DB6CD', '#87CEEB', '#9AC0CD', '#00BFFF', '#00BFFF', '#00B2EE', '#00688B', '#009ACD', '#BFEFFF', '#B2DFEE', '#ADD8E6', '#68838B', '#B0E0E6', '#98F5FF', '#8EE5EE', '#7AC5CD', '#53868B', '#00F5FF', '#00E5EE', '#00C5CD', '#00868B', '#5F9EA0', '#5F9EA0', '#00CED1', '#F0FFFF', '#F0FFFF', '#E0FFFF', '#E0FFFF', '#E0EEEE', '#D1EEEE', '#BBFFFF', '#AFEEEE', '#AEEEEE', '#97FFFF', '#C1CDCD', '#B4CDCD', '#8DEEEE', '#96CDCD', '#79CDCD', '#838B8B', '#7A8B8B', '#00FFFF', '#00FFFF', '#00FFFF', '#668B8B', '#00EEEE', '#528B8B', '#00CDCD', '#008B8B', '#008B8B', '#008080', '#2F4F4F', '#2F4F4F', '#48D1CC', '#20B2AA', '#40E0D0', '#458B74', '#7FFFD4', '#7FFFD4', '#76EEC6', '#66CDAA', '#66CDAA', '#00FA9A', '#F5FFFA', '#00FF7F', '#00FF7F', '#00EE76', '#00CD66', '#008B45', '#3CB371', '#2E8B57', '#43CD80', '#54FF9F', '#2E8B57', '#4EEE94', '#32814B', '#F0FFF0', '#F0FFF0', '#E0EEE0', '#C1FFC1', '#B4EEB4', '#9AFF9A', '#98FB98', '#C1CDC1', '#90EE90', '#90EE90', '#9BCD9B', '#8FBC8F', '#7CCD7C', '#838B83', '#00FF00', '#00FF00', '#32CD32', '#698B69', '#00EE00', '#548B54', '#00CD00', '#228B22', '#008B00', '#008000', '#006400', '#7CFC00', '#7FFF00', '#7FFF00', '#76EE00', '#66CD00', '#458B00', '#ADFF2F', '#A2CD5A', '#CAFF70', '#BCEE68', '#6E8B3D', '#556B2F', '#6B8E23', '#C0FF3E', '#B3EE3A', '#9ACD32', '#9ACD32', '#698B22', '#FFFFF0', '#FFFFF0', '#FFFFE0', '#FFFFE0', '#F5F5DC', '#EEEEE0', '#FAFAD2', '#EEEED1', '#CDCDC1', '#CDCDB4', '#8B8B83', '#8B8B7A', '#FFFF00', '#FFFF00', '#EEEE00', '#CDCD00', '#8B8B00', '#808000', '#BDB76B', '#EEE685', '#8B8970', '#FFF68F', '#CDC673', '#8B864E', '#EEE8AA', '#FFFACD', '#FFFACD', '#F0E68C', '#CDC9A5', '#EEE9BF', '#D1C166', '#8B8878', '#FFD700', '#FFD700', '#EEC900', '#CDAD00', '#8B7500', '#EEDD82', '#8B814C', '#FFEC8B', '#CDBE70', '#EEDC82', '#CDC8B1', '#EEE8CD', '#FFF8DC', '#FFF8DC', '#DAA520', '#FFC125', '#EEB422', '#CD9B1D', '#8B6914', '#B8860B', '#FFB90F', '#EEAD0E', '#CD950C', '#8B6508', '#FFFAF0', '#EED8AE', '#FDF5E6', '#F5DEB3', '#FFE7BA', '#CDBA96', '#FFA500', '#FFA500', '#EE9A00', '#CD8500', '#8B5A00', '#8B7E66', '#FFE4B5', '#FFEFD5', '#CDB38B', '#FFEBCD', '#FFDEAD', '#FFDEAD', '#EECFA1', '#8B795E', '#8B8378', '#FAEBD7', '#D2B48C', '#8B7D6B', '#DEB887', '#EEDFCC', '#FFD39B', '#CDAA7D', '#EEC591', '#FFEFDB', '#8B7355', '#CDC0B0', '#FF8C00', '#EED5B7', '#FFE4C4', '#FFE4C4', '#CDB79E', '#FF7F00', '#FAF0E6', '#EE7600', '#CD6600', '#8B4500', '#CD853F', '#FFA54F', '#EE9A49', '#CD853F', '#8B5A2B', '#FFDAB9', '#FFDAB9', '#8B7765', '#EECBAD', '#CDAF95', '#F4A460', '#8B8682', '#EEE5DE', '#CDC5BF', '#D2691E', '#FF7F24', '#EE7621', '#CD661D', '#8B4513', '#8B4513', '#FFF5EE', '#FFF5EE', '#8B4726', '#A0522D', '#FF8247', '#EE7942', '#CD6839', '#CD8162', '#FFA07A', '#FFA07A', '#8B5742', '#EE9572', '#FF7F50', '#FF4500', '#FF4500', '#EE4000', '#CD3700', '#8B2500', '#E9967A', '#FF8C69', '#EE8262', '#CD7054', '#8B4C39', '#FF7256', '#EE6A50', '#CD5B45', '#8B3E2F', '#8B3626', '#FF6347', '#FF6347', '#EE5C42', '#CD4F39', '#8B7D7B', '#EED5D2', '#FFE4E1', '#FFE4E1', '#FA8072', '#CDB7B5', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FCFCFC', '#FCFCFC', '#FAFAFA', '#FAFAFA', '#F7F7F7', '#F7F7F7', '#F5F5F5', '#F5F5F5', '#F5F5F5', '#F2F2F2', '#F2F2F2', '#F0F0F0', '#F0F0F0', '#EDEDED', '#EDEDED', '#EBEBEB', '#EBEBEB', '#E8E8E8', '#E8E8E8', '#E5E5E5', '#E5E5E5', '#E3E3E3', '#E3E3E3', '#E0E0E0', '#E0E0E0', '#DEDEDE', '#DEDEDE', '#DCDCDC', '#DBDBDB', '#DBDBDB', '#D9D9D9', '#D9D9D9', '#D6D6D6', '#D6D6D6', '#D4D4D4', '#D4D4D4', '#D3D3D3', '#D3D3D3', '#D1D1D1', '#D1D1D1', '#CFCFCF', '#CFCFCF', '#CCCCCC', '#CCCCCC', '#C9C9C9', '#C9C9C9', '#C7C7C7', '#C7C7C7', '#C4C4C4', '#C4C4C4', '#C2C2C2', '#C2C2C2', '#C0C0C0', '#BFBFBF', '#BFBFBF', '#BDBDBD', '#BDBDBD', '#BABABA', '#BABABA', '#B8B8B8', '#B8B8B8', '#B5B5B5', '#B5B5B5', '#B3B3B3', '#B3B3B3', '#B0B0B0', '#B0B0B0', '#ADADAD', '#ADADAD', '#ABABAB', '#ABABAB', '#A9A9A9', '#A9A9A9', '#A8A8A8', '#A8A8A8', '#A6A6A6', '#A6A6A6', '#A3A3A3', '#A3A3A3', '#A1A1A1', '#A1A1A1', '#9E9E9E', '#9E9E9E', '#9C9C9C', '#9C9C9C', '#999999', '#999999', '#969696', '#969696', '#949494', '#949494', '#919191', '#919191', '#8F8F8F', '#8F8F8F', '#8C8C8C', '#8C8C8C', '#8A8A8A', '#8A8A8A', '#878787', '#878787', '#858585', '#858585', '#828282', '#828282', '#808080', '#7F7F7F', '#7F7F7F', '#7E7E7E', '#7D7D7D', '#7D7D7D', '#7A7A7A', '#7A7A7A', '#787878', '#787878', '#757575', '#757575', '#737373', '#737373', '#707070', '#707070', '#6E6E6E', '#6E6E6E', '#6B6B6B', '#6B6B6B', '#696969', '#696969', '#696969', '#696969', '#666666', '#666666', '#636363', '#636363', '#616161', '#616161', '#5E5E5E', '#5E5E5E', '#5C5C5C', '#5C5C5C', '#595959', '#595959', '#575757', '#575757', '#545454', '#545454', '#525252', '#525252', '#4F4F4F', '#4F4F4F', '#4D4D4D', '#4D4D4D', '#4A4A4A', '#4A4A4A', '#474747', '#474747', '#454545', '#454545', '#424242', '#424242', '#404040', '#404040', '#3D3D3D', '#3D3D3D', '#3B3B3B', '#3B3B3B', '#383838', '#383838', '#363636', '#363636', '#333333', '#333333', '#303030', '#303030', '#2E2E2E', '#2E2E2E', '#2B2B2B', '#2B2B2B', '#292929', '#292929', '#262626', '#262626', '#242424', '#242424', '#212121', '#212121', '#1F1F1F', '#1F1F1F', '#1C1C1C', '#1C1C1C', '#1A1A1A', '#1A1A1A', '#171717', '#171717', '#141414', '#141414', '#121212', '#121212', '#0F0F0F', '#0F0F0F', '#0D0D0D', '#0D0D0D', '#0A0A0A', '#0A0A0A', '#080808', '#080808', '#050505', '#050505', '#030303', '#030303', '#000000', '#000000', '#000000', '#000000', '#000000', '#000000']
\ No newline at end of file diff --git a/frontend/imgrid/colors/colors/js/wrkshp/maker.py b/frontend/imgrid/colors/colors/js/wrkshp/maker.py new file mode 100755 index 0000000..65209aa --- /dev/null +++ b/frontend/imgrid/colors/colors/js/wrkshp/maker.py @@ -0,0 +1,33 @@ +#!/usr/bin/python2.7 + + + +hexlist = ['#FFFAFA', '#FFFAFA', '#EEE9E9', '#FFC1C1', '#EEB4B4', '#CDC9C9', '#F08080', '#FF6A6A', '#CD9B9B', '#EE6363', '#BC8F8F', '#FF4040', '#FF3030', '#EE3B3B', '#CD5C5C', '#CD5555', '#EE2C2C', '#8B8989', '#CD3333', '#FF0000', '#FF0000', '#8B6969', '#CD2626', '#EE0000', '#B22222', '#A52A2A', '#CD0000', '#8B3A3A', '#8B2323', '#8B1A1A', '#8B0000', '#8B0000', '#800000', '#FFAEB9', '#CD8C95', '#8B5F65', '#EEA2AD', '#FFB6C1', '#FFC0CB', '#DC143C', '#FFB5C5', '#EEA9B8', '#CD919E', '#8B636C', '#8B475D', '#DB7093', '#EE799F', '#FF82AB', '#CD6889', '#FFF0F5', '#FFF0F5', '#CDC1C5', '#EEE0E5', '#8B8386', '#B03060', '#CD6090', '#CD3278', '#FF3E96', '#EE3A8C', '#8B2252', '#EE6AA7', '#FF6EB4', '#8B3A62', '#FF69B4', '#FF1493', '#FF1493', '#EE1289', '#CD1076', '#8B0A50', '#FF34B3', '#EE30A7', '#CD2990', '#8B1C62', '#C71585', '#D02090', '#EE7AE9', '#DA70D6', '#FF83FA', '#CD69C9', '#8B4789', '#FFE1FF', '#EED2EE', '#FFBBFF', '#EEAEEE', '#D8BFD8', '#CDB5CD', '#DDA0DD', '#EE82EE', '#CD96CD', '#8B7B8B', '#FF00FF', '#FF00FF', '#FF00FF', '#8B668B', '#EE00EE', '#CD00CD', '#8B008B', '#8B008B', '#800080', '#BA55D3', '#E066FF', '#D15FEE', '#B452CD', '#7A378B', '#9400D3', '#9932CC', '#BF3EFF', '#9A32CD', '#B23AEE', '#68228B', '#A020F0', '#4B0082', '#8A2BE2', '#912CEE', '#7D26CD', '#551A8B', '#9B30FF', '#9370DB', '#AB82FF', '#9F79EE', '#8968CD', '#5D478B', '#483D8B', '#8470FF', '#7B68EE', '#6A5ACD', '#836FFF', '#7A67EE', '#6959CD', '#473C8B', '#F8F8FF', '#E6E6FA', '#0000FF', '#0000FF', '#0000EE', '#0000CD', '#0000CD', '#00008B', '#00008B', '#191970', '#000080', '#000080', '#4169E1', '#4876FF', '#436EEE', '#3A5FCD', '#27408B', '#6495ED', '#B0C4DE', '#CAE1FF', '#BCD2EE', '#A2B5CD', '#6E7B8B', '#6C7B8B', '#C6E2FF', '#B9D3EE', '#9FB6CD', '#778899', '#778899', '#708090', '#708090', '#1E90FF', '#1E90FF', '#1C86EE', '#104E8B', '#1874CD', '#F0F8FF', '#36648B', '#4682B4', '#63B8FF', '#5CACEE', '#4F94CD', '#4A708B', '#87CEFF', '#7EC0EE', '#6CA6CD', '#87CEFA', '#607B8B', '#B0E2FF', '#A4D3EE', '#8DB6CD', '#87CEEB', '#9AC0CD', '#00BFFF', '#00BFFF', '#00B2EE', '#00688B', '#009ACD', '#BFEFFF', '#B2DFEE', '#ADD8E6', '#68838B', '#B0E0E6', '#98F5FF', '#8EE5EE', '#7AC5CD', '#53868B', '#00F5FF', '#00E5EE', '#00C5CD', '#00868B', '#5F9EA0', '#5F9EA0', '#00CED1', '#F0FFFF', '#F0FFFF', '#E0FFFF', '#E0FFFF', '#E0EEEE', '#D1EEEE', '#BBFFFF', '#AFEEEE', '#AEEEEE', '#97FFFF', '#C1CDCD', '#B4CDCD', '#8DEEEE', '#96CDCD', '#79CDCD', '#838B8B', '#7A8B8B', '#00FFFF', '#00FFFF', '#00FFFF', '#668B8B', '#00EEEE', '#528B8B', '#00CDCD', '#008B8B', '#008B8B', '#008080', '#2F4F4F', '#2F4F4F', '#48D1CC', '#20B2AA', '#40E0D0', '#458B74', '#7FFFD4', '#7FFFD4', '#76EEC6', '#66CDAA', '#66CDAA', '#00FA9A', '#F5FFFA', '#00FF7F', '#00FF7F', '#00EE76', '#00CD66', '#008B45', '#3CB371', '#2E8B57', '#43CD80', '#54FF9F', '#2E8B57', '#4EEE94', '#32814B', '#F0FFF0', '#F0FFF0', '#E0EEE0', '#C1FFC1', '#B4EEB4', '#9AFF9A', '#98FB98', '#C1CDC1', '#90EE90', '#90EE90', '#9BCD9B', '#8FBC8F', '#7CCD7C', '#838B83', '#00FF00', '#00FF00', '#32CD32', '#698B69', '#00EE00', '#548B54', '#00CD00', '#228B22', '#008B00', '#008000', '#006400', '#7CFC00', '#7FFF00', '#7FFF00', '#76EE00', '#66CD00', '#458B00', '#ADFF2F', '#A2CD5A', '#CAFF70', '#BCEE68', '#6E8B3D', '#556B2F', '#6B8E23', '#C0FF3E', '#B3EE3A', '#9ACD32', '#9ACD32', '#698B22', '#FFFFF0', '#FFFFF0', '#FFFFE0', '#FFFFE0', '#F5F5DC', '#EEEEE0', '#FAFAD2', '#EEEED1', '#CDCDC1', '#CDCDB4', '#8B8B83', '#8B8B7A', '#FFFF00', '#FFFF00', '#EEEE00', '#CDCD00', '#8B8B00', '#808000', '#BDB76B', '#EEE685', '#8B8970', '#FFF68F', '#CDC673', '#8B864E', '#EEE8AA', '#FFFACD', '#FFFACD', '#F0E68C', '#CDC9A5', '#EEE9BF', '#D1C166', '#8B8878', '#FFD700', '#FFD700', '#EEC900', '#CDAD00', '#8B7500', '#EEDD82', '#8B814C', '#FFEC8B', '#CDBE70', '#EEDC82', '#CDC8B1', '#EEE8CD', '#FFF8DC', '#FFF8DC', '#DAA520', '#FFC125', '#EEB422', '#CD9B1D', '#8B6914', '#B8860B', '#FFB90F', '#EEAD0E', '#CD950C', '#8B6508', '#FFFAF0', '#EED8AE', '#FDF5E6', '#F5DEB3', '#FFE7BA', '#CDBA96', '#FFA500', '#FFA500', '#EE9A00', '#CD8500', '#8B5A00', '#8B7E66', '#FFE4B5', '#FFEFD5', '#CDB38B', '#FFEBCD', '#FFDEAD', '#FFDEAD', '#EECFA1', '#8B795E', '#8B8378', '#FAEBD7', '#D2B48C', '#8B7D6B', '#DEB887', '#EEDFCC', '#FFD39B', '#CDAA7D', '#EEC591', '#FFEFDB', '#8B7355', '#CDC0B0', '#FF8C00', '#EED5B7', '#FFE4C4', '#FFE4C4', '#CDB79E', '#FF7F00', '#FAF0E6', '#EE7600', '#CD6600', '#8B4500', '#CD853F', '#FFA54F', '#EE9A49', '#CD853F', '#8B5A2B', '#FFDAB9', '#FFDAB9', '#8B7765', '#EECBAD', '#CDAF95', '#F4A460', '#8B8682', '#EEE5DE', '#CDC5BF', '#D2691E', '#FF7F24', '#EE7621', '#CD661D', '#8B4513', '#8B4513', '#FFF5EE', '#FFF5EE', '#8B4726', '#A0522D', '#FF8247', '#EE7942', '#CD6839', '#CD8162', '#FFA07A', '#FFA07A', '#8B5742', '#EE9572', '#FF7F50', '#FF4500', '#FF4500', '#EE4000', '#CD3700', '#8B2500', '#E9967A', '#FF8C69', '#EE8262', '#CD7054', '#8B4C39', '#FF7256', '#EE6A50', '#CD5B45', '#8B3E2F', '#8B3626', '#FF6347', '#FF6347', '#EE5C42', '#CD4F39', '#8B7D7B', '#EED5D2', '#FFE4E1', '#FFE4E1', '#FA8072', '#CDB7B5', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FCFCFC', '#FCFCFC', '#FAFAFA', '#FAFAFA', '#F7F7F7', '#F7F7F7', '#F5F5F5', '#F5F5F5', '#F5F5F5', '#F2F2F2', '#F2F2F2', '#F0F0F0', '#F0F0F0', '#EDEDED', '#EDEDED', '#EBEBEB', '#EBEBEB', '#E8E8E8', '#E8E8E8', '#E5E5E5', '#E5E5E5', '#E3E3E3', '#E3E3E3', '#E0E0E0', '#E0E0E0', '#DEDEDE', '#DEDEDE', '#DCDCDC', '#DBDBDB', '#DBDBDB', '#D9D9D9', '#D9D9D9', '#D6D6D6', '#D6D6D6', '#D4D4D4', '#D4D4D4', '#D3D3D3', '#D3D3D3', '#D1D1D1', '#D1D1D1', '#CFCFCF', '#CFCFCF', '#CCCCCC', '#CCCCCC', '#C9C9C9', '#C9C9C9', '#C7C7C7', '#C7C7C7', '#C4C4C4', '#C4C4C4', '#C2C2C2', '#C2C2C2', '#C0C0C0', '#BFBFBF', '#BFBFBF', '#BDBDBD', '#BDBDBD', '#BABABA', '#BABABA', '#B8B8B8', '#B8B8B8', '#B5B5B5', '#B5B5B5', '#B3B3B3', '#B3B3B3', '#B0B0B0', '#B0B0B0', '#ADADAD', '#ADADAD', '#ABABAB', '#ABABAB', '#A9A9A9', '#A9A9A9', '#A8A8A8', '#A8A8A8', '#A6A6A6', '#A6A6A6', '#A3A3A3', '#A3A3A3', '#A1A1A1', '#A1A1A1', '#9E9E9E', '#9E9E9E', '#9C9C9C', '#9C9C9C', '#999999', '#999999', '#969696', '#969696', '#949494', '#949494', '#919191', '#919191', '#8F8F8F', '#8F8F8F', '#8C8C8C', '#8C8C8C', '#8A8A8A', '#8A8A8A', '#878787', '#878787', '#858585', '#858585', '#828282', '#828282', '#808080', '#7F7F7F', '#7F7F7F', '#7E7E7E', '#7D7D7D', '#7D7D7D', '#7A7A7A', '#7A7A7A', '#787878', '#787878', '#757575', '#757575', '#737373', '#737373', '#707070', '#707070', '#6E6E6E', '#6E6E6E', '#6B6B6B', '#6B6B6B', '#696969', '#696969', '#696969', '#696969', '#666666', '#666666', '#636363', '#636363', '#616161', '#616161', '#5E5E5E', '#5E5E5E', '#5C5C5C', '#5C5C5C', '#595959', '#595959', '#575757', '#575757', '#545454', '#545454', '#525252', '#525252', '#4F4F4F', '#4F4F4F', '#4D4D4D', '#4D4D4D', '#4A4A4A', '#4A4A4A', '#474747', '#474747', '#454545', '#454545', '#424242', '#424242', '#404040', '#404040', '#3D3D3D', '#3D3D3D', '#3B3B3B', '#3B3B3B', '#383838', '#383838', '#363636', '#363636', '#333333', '#333333', '#303030', '#303030', '#2E2E2E', '#2E2E2E', '#2B2B2B', '#2B2B2B', '#292929', '#292929', '#262626', '#262626', '#242424', '#242424', '#212121', '#212121', '#1F1F1F', '#1F1F1F', '#1C1C1C', '#1C1C1C', '#1A1A1A', '#1A1A1A', '#171717', '#171717', '#141414', '#141414', '#121212', '#121212', '#0F0F0F', '#0F0F0F', '#0D0D0D', '#0D0D0D', '#0A0A0A', '#0A0A0A', '#080808', '#080808', '#050505', '#050505', '#030303', '#030303', '#000000', '#000000', '#000000', '#000000', '#000000', '#000000'] +rgblist = ['rgb(255, 250, 250)', 'rgb(255, 250, 250)', 'rgb(238, 233, 233)', 'rgb(255, 193, 193)', 'rgb(238, 180, 180)', 'rgb(205, 201, 201)', 'rgb(240, 128, 128)', 'rgb(255, 106, 106)', 'rgb(205, 155, 155)', 'rgb(238, 99, 99)', 'rgb(188, 143, 143)', 'rgb(255, 64, 64)', 'rgb(255, 48, 48)', 'rgb(238, 59, 59)', 'rgb(205, 92, 92)', 'rgb(205, 85, 85)', 'rgb(238, 44, 44)', 'rgb(139, 137, 137)', 'rgb(205, 51, 51)', 'rgb(255, 0, 0)', 'rgb(255, 0, 0)', 'rgb(139, 105, 105)', 'rgb(205, 38, 38)', 'rgb(238, 0, 0)', 'rgb(178, 34, 34)', 'rgb(165, 42, 42)', 'rgb(205, 0, 0)', 'rgb(139, 58, 58)', 'rgb(139, 35, 35)', 'rgb(139, 26, 26)', 'rgb(139, 0, 0)', 'rgb(139, 0, 0)', 'rgb(128, 0, 0)', 'rgb(255, 174, 185)', 'rgb(205, 140, 149)', 'rgb(139, 95, 101)', 'rgb(238, 162, 173)', 'rgb(255, 182, 193)', 'rgb(255, 192, 203)', 'rgb(220, 20, 60)', 'rgb(255, 181, 197)', 'rgb(238, 169, 184)', 'rgb(205, 145, 158)', 'rgb(139, 99, 108)', 'rgb(139, 71, 93)', 'rgb(219, 112, 147)', 'rgb(238, 121, 159)', 'rgb(255, 130, 171)', 'rgb(205, 104, 137)', 'rgb(255, 240, 245)', 'rgb(255, 240, 245)', 'rgb(205, 193, 197)', 'rgb(238, 224, 229)', 'rgb(139, 131, 134)', 'rgb(176, 48, 96)', 'rgb(205, 96, 144)', 'rgb(205, 50, 120)', 'rgb(255, 62, 150)', 'rgb(238, 58, 140)', 'rgb(139, 34, 82)', 'rgb(238, 106, 167)', 'rgb(255, 110, 180)', 'rgb(139, 58, 98)', 'rgb(255, 105, 180)', 'rgb(255, 20, 147)', 'rgb(255, 20, 147)', 'rgb(238, 18, 137)', 'rgb(205, 16, 118)', 'rgb(139, 10, 80)', 'rgb(255, 52, 179)', 'rgb(238, 48, 167)', 'rgb(205, 41, 144)', 'rgb(139, 28, 98)', 'rgb(199, 21, 133)', 'rgb(208, 32, 144)', 'rgb(238, 122, 233)', 'rgb(218, 112, 214)', 'rgb(255, 131, 250)', 'rgb(205, 105, 201)', 'rgb(139, 71, 137)', 'rgb(255, 225, 255)', 'rgb(238, 210, 238)', 'rgb(255, 187, 255)', 'rgb(238, 174, 238)', 'rgb(216, 191, 216)', 'rgb(205, 181, 205)', 'rgb(221, 160, 221)', 'rgb(238, 130, 238)', 'rgb(205, 150, 205)', 'rgb(139, 123, 139)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(139, 102, 139)', 'rgb(238, 0, 238)', 'rgb(205, 0, 205)', 'rgb(139, 0, 139)', 'rgb(139, 0, 139)', 'rgb(128, 0, 128)', 'rgb(186, 85, 211)', 'rgb(224, 102, 255)', 'rgb(209, 95, 238)', 'rgb(180, 82, 205)', 'rgb(122, 55, 139)', 'rgb(148, 0, 211)', 'rgb(153, 50, 204)', 'rgb(191, 62, 255)', 'rgb(154, 50, 205)', 'rgb(178, 58, 238)', 'rgb(104, 34, 139)', 'rgb(160, 32, 240)', 'rgb( 75, 0, 130)', 'rgb(138, 43, 226)', 'rgb(145, 44, 238)', 'rgb(125, 38, 205)', 'rgb( 85, 26, 139)', 'rgb(155, 48, 255)', 'rgb(147, 112, 219)', 'rgb(171, 130, 255)', 'rgb(159, 121, 238)', 'rgb(137, 104, 205)', 'rgb( 93, 71, 139)', 'rgb( 72, 61, 139)', 'rgb(132, 112, 255)', 'rgb(123, 104, 238)', 'rgb(106, 90, 205)', 'rgb(131, 111, 255)', 'rgb(122, 103, 238)', 'rgb(105, 89, 205)', 'rgb( 71, 60, 139)', 'rgb(248, 248, 255)', 'rgb(230, 230, 250)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 238)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 139)', 'rgb( 0, 0, 139)', 'rgb( 25, 25, 112)', 'rgb( 0, 0, 128)', 'rgb( 0, 0, 128)', 'rgb( 65, 105, 225)', 'rgb( 72, 118, 255)', 'rgb( 67, 110, 238)', 'rgb( 58, 95, 205)', 'rgb( 39, 64, 139)', 'rgb(100, 149, 237)', 'rgb(176, 196, 222)', 'rgb(202, 225, 255)', 'rgb(188, 210, 238)', 'rgb(162, 181, 205)', 'rgb(110, 123, 139)', 'rgb(108, 123, 139)', 'rgb(198, 226, 255)', 'rgb(185, 211, 238)', 'rgb(159, 182, 205)', 'rgb(119, 136, 153)', 'rgb(119, 136, 153)', 'rgb(112, 128, 144)', 'rgb(112, 128, 144)', 'rgb( 30, 144, 255)', 'rgb( 30, 144, 255)', 'rgb( 28, 134, 238)', 'rgb( 16, 78, 139)', 'rgb( 24, 116, 205)', 'rgb(240, 248, 255)', 'rgb( 54, 100, 139)', 'rgb( 70, 130, 180)', 'rgb( 99, 184, 255)', 'rgb( 92, 172, 238)', 'rgb( 79, 148, 205)', 'rgb( 74, 112, 139)', 'rgb(135, 206, 255)', 'rgb(126, 192, 238)', 'rgb(108, 166, 205)', 'rgb(135, 206, 250)', 'rgb( 96, 123, 139)', 'rgb(176, 226, 255)', 'rgb(164, 211, 238)', 'rgb(141, 182, 205)', 'rgb(135, 206, 235)', 'rgb(154, 192, 205)', 'rgb( 0, 191, 255)', 'rgb( 0, 191, 255)', 'rgb( 0, 178, 238)', 'rgb( 0, 104, 139)', 'rgb( 0, 154, 205)', 'rgb(191, 239, 255)', 'rgb(178, 223, 238)', 'rgb(173, 216, 230)', 'rgb(104, 131, 139)', 'rgb(176, 224, 230)', 'rgb(152, 245, 255)', 'rgb(142, 229, 238)', 'rgb(122, 197, 205)', 'rgb( 83, 134, 139)', 'rgb( 0, 245, 255)', 'rgb( 0, 229, 238)', 'rgb( 0, 197, 205)', 'rgb( 0, 134, 139)', 'rgb( 95, 158, 160)', 'rgb( 95, 158, 160)', 'rgb( 0, 206, 209)', 'rgb(240, 255, 255)', 'rgb(240, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 238, 238)', 'rgb(209, 238, 238)', 'rgb(187, 255, 255)', 'rgb(175, 238, 238)', 'rgb(174, 238, 238)', 'rgb(151, 255, 255)', 'rgb(193, 205, 205)', 'rgb(180, 205, 205)', 'rgb(141, 238, 238)', 'rgb(150, 205, 205)', 'rgb(121, 205, 205)', 'rgb(131, 139, 139)', 'rgb(122, 139, 139)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb(102, 139, 139)', 'rgb( 0, 238, 238)', 'rgb( 82, 139, 139)', 'rgb( 0, 205, 205)', 'rgb( 0, 139, 139)', 'rgb( 0, 139, 139)', 'rgb( 0, 128, 128)', 'rgb( 47, 79, 79)', 'rgb( 47, 79, 79)', 'rgb( 72, 209, 204)', 'rgb( 32, 178, 170)', 'rgb( 64, 224, 208)', 'rgb( 69, 139, 116)', 'rgb(127, 255, 212)', 'rgb(127, 255, 212)', 'rgb(118, 238, 198)', 'rgb(102, 205, 170)', 'rgb(102, 205, 170)', 'rgb( 0, 250, 154)', 'rgb(245, 255, 250)', 'rgb( 0, 255, 127)', 'rgb( 0, 255, 127)', 'rgb( 0, 238, 118)', 'rgb( 0, 205, 102)', 'rgb( 0, 139, 69)', 'rgb( 60, 179, 113)', 'rgb( 46, 139, 87)', 'rgb( 67, 205, 128)', 'rgb( 84, 255, 159)', 'rgb( 46, 139, 87)', 'rgb( 78, 238, 148)', 'rgb( 50, 129, 75)', 'rgb(240, 255, 240)', 'rgb(240, 255, 240)', 'rgb(224, 238, 224)', 'rgb(193, 255, 193)', 'rgb(180, 238, 180)', 'rgb(154, 255, 154)', 'rgb(152, 251, 152)', 'rgb(193, 205, 193)', 'rgb(144, 238, 144)', 'rgb(144, 238, 144)', 'rgb(155, 205, 155)', 'rgb(143, 188, 143)', 'rgb(124, 205, 124)', 'rgb(131, 139, 131)', 'rgb( 0, 255, 0)', 'rgb( 0, 255, 0)', 'rgb( 50, 205, 50)', 'rgb(105, 139, 105)', 'rgb( 0, 238, 0)', 'rgb( 84, 139, 84)', 'rgb( 0, 205, 0)', 'rgb( 34, 139, 34)', 'rgb( 0, 139, 0)', 'rgb( 0, 128, 0)', 'rgb( 0, 100, 0)', 'rgb(124, 252, 0)', 'rgb(127, 255, 0)', 'rgb(127, 255, 0)', 'rgb(118, 238, 0)', 'rgb(102, 205, 0)', 'rgb( 69, 139, 0)', 'rgb(173, 255, 47)', 'rgb(162, 205, 90)', 'rgb(202, 255, 112)', 'rgb(188, 238, 104)', 'rgb(110, 139, 61)', 'rgb( 85, 107, 47)', 'rgb(107, 142, 35)', 'rgb(192, 255, 62)', 'rgb(179, 238, 58)', 'rgb(154, 205, 50)', 'rgb(154, 205, 50)', 'rgb(105, 139, 34)', 'rgb(255, 255, 240)', 'rgb(255, 255, 240)', 'rgb(255, 255, 224)', 'rgb(255, 255, 224)', 'rgb(245, 245, 220)', 'rgb(238, 238, 224)', 'rgb(250, 250, 210)', 'rgb(238, 238, 209)', 'rgb(205, 205, 193)', 'rgb(205, 205, 180)', 'rgb(139, 139, 131)', 'rgb(139, 139, 122)', 'rgb(255, 255, 0)', 'rgb(255, 255, 0)', 'rgb(238, 238, 0)', 'rgb(205, 205, 0)', 'rgb(139, 139, 0)', 'rgb(128, 128, 0)', 'rgb(189, 183, 107)', 'rgb(238, 230, 133)', 'rgb(139, 137, 112)', 'rgb(255, 246, 143)', 'rgb(205, 198, 115)', 'rgb(139, 134, 78)', 'rgb(238, 232, 170)', 'rgb(255, 250, 205)', 'rgb(255, 250, 205)', 'rgb(240, 230, 140)', 'rgb(205, 201, 165)', 'rgb(238, 233, 191)', 'rgb(209, 193, 102)', 'rgb(139, 136, 120)', 'rgb(255, 215, 0)', 'rgb(255, 215, 0)', 'rgb(238, 201, 0)', 'rgb(205, 173, 0)', 'rgb(139, 117, 0)', 'rgb(238, 221, 130)', 'rgb(139, 129, 76)', 'rgb(255, 236, 139)', 'rgb(205, 190, 112)', 'rgb(238, 220, 130)', 'rgb(205, 200, 177)', 'rgb(238, 232, 205)', 'rgb(255, 248, 220)', 'rgb(255, 248, 220)', 'rgb(218, 165, 32)', 'rgb(255, 193, 37)', 'rgb(238, 180, 34)', 'rgb(205, 155, 29)', 'rgb(139, 105, 20)', 'rgb(184, 134, 11)', 'rgb(255, 185, 15)', 'rgb(238, 173, 14)', 'rgb(205, 149, 12)', 'rgb(139, 101, 8)', 'rgb(255, 250, 240)', 'rgb(238, 216, 174)', 'rgb(253, 245, 230)', 'rgb(245, 222, 179)', 'rgb(255, 231, 186)', 'rgb(205, 186, 150)', 'rgb(255, 165, 0)', 'rgb(255, 165, 0)', 'rgb(238, 154, 0)', 'rgb(205, 133, 0)', 'rgb(139, 90, 0)', 'rgb(139, 126, 102)', 'rgb(255, 228, 181)', 'rgb(255, 239, 213)', 'rgb(205, 179, 139)', 'rgb(255, 235, 205)', 'rgb(255, 222, 173)', 'rgb(255, 222, 173)', 'rgb(238, 207, 161)', 'rgb(139, 121, 94)', 'rgb(139, 131, 120)', 'rgb(250, 235, 215)', 'rgb(210, 180, 140)', 'rgb(139, 125, 107)', 'rgb(222, 184, 135)', 'rgb(238, 223, 204)', 'rgb(255, 211, 155)', 'rgb(205, 170, 125)', 'rgb(238, 197, 145)', 'rgb(255, 239, 219)', 'rgb(139, 115, 85)', 'rgb(205, 192, 176)', 'rgb(255, 140, 0)', 'rgb(238, 213, 183)', 'rgb(255, 228, 196)', 'rgb(255, 228, 196)', 'rgb(205, 183, 158)', 'rgb(255, 127, 0)', 'rgb(250, 240, 230)', 'rgb(238, 118, 0)', 'rgb(205, 102, 0)', 'rgb(139, 69, 0)', 'rgb(205, 133, 63)', 'rgb(255, 165, 79)', 'rgb(238, 154, 73)', 'rgb(205, 133, 63)', 'rgb(139, 90, 43)', 'rgb(255, 218, 185)', 'rgb(255, 218, 185)', 'rgb(139, 119, 101)', 'rgb(238, 203, 173)', 'rgb(205, 175, 149)', 'rgb(244, 164, 96)', 'rgb(139, 134, 130)', 'rgb(238, 229, 222)', 'rgb(205, 197, 191)', 'rgb(210, 105, 30)', 'rgb(255, 127, 36)', 'rgb(238, 118, 33)', 'rgb(205, 102, 29)', 'rgb(139, 69, 19)', 'rgb(139, 69, 19)', 'rgb(255, 245, 238)', 'rgb(255, 245, 238)', 'rgb(139, 71, 38)', 'rgb(160, 82, 45)', 'rgb(255, 130, 71)', 'rgb(238, 121, 66)', 'rgb(205, 104, 57)', 'rgb(205, 129, 98)', 'rgb(255, 160, 122)', 'rgb(255, 160, 122)', 'rgb(139, 87, 66)', 'rgb(238, 149, 114)', 'rgb(255, 127, 80)', 'rgb(255, 69, 0)', 'rgb(255, 69, 0)', 'rgb(238, 64, 0)', 'rgb(205, 55, 0)', 'rgb(139, 37, 0)', 'rgb(233, 150, 122)', 'rgb(255, 140, 105)', 'rgb(238, 130, 98)', 'rgb(205, 112, 84)', 'rgb(139, 76, 57)', 'rgb(255, 114, 86)', 'rgb(238, 106, 80)', 'rgb(205, 91, 69)', 'rgb(139, 62, 47)', 'rgb(139, 54, 38)', 'rgb(255, 99, 71)', 'rgb(255, 99, 71)', 'rgb(238, 92, 66)', 'rgb(205, 79, 57)', 'rgb(139, 125, 123)', 'rgb(238, 213, 210)', 'rgb(255, 228, 225)', 'rgb(255, 228, 225)', 'rgb(250, 128, 114)', 'rgb(205, 183, 181)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(252, 252, 252)', 'rgb(252, 252, 252)', 'rgb(250, 250, 250)', 'rgb(250, 250, 250)', 'rgb(247, 247, 247)', 'rgb(247, 247, 247)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(242, 242, 242)', 'rgb(242, 242, 242)', 'rgb(240, 240, 240)', 'rgb(240, 240, 240)', 'rgb(237, 237, 237)', 'rgb(237, 237, 237)', 'rgb(235, 235, 235)', 'rgb(235, 235, 235)', 'rgb(232, 232, 232)', 'rgb(232, 232, 232)', 'rgb(229, 229, 229)', 'rgb(229, 229, 229)', 'rgb(227, 227, 227)', 'rgb(227, 227, 227)', 'rgb(224, 224, 224)', 'rgb(224, 224, 224)', 'rgb(222, 222, 222)', 'rgb(222, 222, 222)', 'rgb(220, 220, 220)', 'rgb(219, 219, 219)', 'rgb(219, 219, 219)', 'rgb(217, 217, 217)', 'rgb(217, 217, 217)', 'rgb(214, 214, 214)', 'rgb(214, 214, 214)', 'rgb(212, 212, 212)', 'rgb(212, 212, 212)', 'rgb(211, 211, 211)', 'rgb(211, 211, 211)', 'rgb(209, 209, 209)', 'rgb(209, 209, 209)', 'rgb(207, 207, 207)', 'rgb(207, 207, 207)', 'rgb(204, 204, 204)', 'rgb(204, 204, 204)', 'rgb(201, 201, 201)', 'rgb(201, 201, 201)', 'rgb(199, 199, 199)', 'rgb(199, 199, 199)', 'rgb(196, 196, 196)', 'rgb(196, 196, 196)', 'rgb(194, 194, 194)', 'rgb(194, 194, 194)', 'rgb(192, 192, 192)', 'rgb(191, 191, 191)', 'rgb(191, 191, 191)', 'rgb(189, 189, 189)', 'rgb(189, 189, 189)', 'rgb(186, 186, 186)', 'rgb(186, 186, 186)', 'rgb(184, 184, 184)', 'rgb(184, 184, 184)', 'rgb(181, 181, 181)', 'rgb(181, 181, 181)', 'rgb(179, 179, 179)', 'rgb(179, 179, 179)', 'rgb(176, 176, 176)', 'rgb(176, 176, 176)', 'rgb(173, 173, 173)', 'rgb(173, 173, 173)', 'rgb(171, 171, 171)', 'rgb(171, 171, 171)', 'rgb(169, 169, 169)', 'rgb(169, 169, 169)', 'rgb(168, 168, 168)', 'rgb(168, 168, 168)', 'rgb(166, 166, 166)', 'rgb(166, 166, 166)', 'rgb(163, 163, 163)', 'rgb(163, 163, 163)', 'rgb(161, 161, 161)', 'rgb(161, 161, 161)', 'rgb(158, 158, 158)', 'rgb(158, 158, 158)', 'rgb(156, 156, 156)', 'rgb(156, 156, 156)', 'rgb(153, 153, 153)', 'rgb(153, 153, 153)', 'rgb(150, 150, 150)', 'rgb(150, 150, 150)', 'rgb(148, 148, 148)', 'rgb(148, 148, 148)', 'rgb(145, 145, 145)', 'rgb(145, 145, 145)', 'rgb(143, 143, 143)', 'rgb(143, 143, 143)', 'rgb(140, 140, 140)', 'rgb(140, 140, 140)', 'rgb(138, 138, 138)', 'rgb(138, 138, 138)', 'rgb(135, 135, 135)', 'rgb(135, 135, 135)', 'rgb(133, 133, 133)', 'rgb(133, 133, 133)', 'rgb(130, 130, 130)', 'rgb(130, 130, 130)', 'rgb(128, 128, 128)', 'rgb(127, 127, 127)', 'rgb(127, 127, 127)', 'rgb(126, 126, 126)', 'rgb(125, 125, 125)', 'rgb(125, 125, 125)', 'rgb(122, 122, 122)', 'rgb(122, 122, 122)', 'rgb(120, 120, 120)', 'rgb(120, 120, 120)', 'rgb(117, 117, 117)', 'rgb(117, 117, 117)', 'rgb(115, 115, 115)', 'rgb(115, 115, 115)', 'rgb(112, 112, 112)', 'rgb(112, 112, 112)', 'rgb(110, 110, 110)', 'rgb(110, 110, 110)', 'rgb(107, 107, 107)', 'rgb(107, 107, 107)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(102, 102, 102)', 'rgb(102, 102, 102)', 'rgb( 99, 99, 99)', 'rgb( 99, 99, 99)', 'rgb( 97, 97, 97)', 'rgb( 97, 97, 97)', 'rgb( 94, 94, 94)', 'rgb( 94, 94, 94)', 'rgb( 92, 92, 92)', 'rgb( 92, 92, 92)', 'rgb( 89, 89, 89)', 'rgb( 89, 89, 89)', 'rgb( 87, 87, 87)', 'rgb( 87, 87, 87)', 'rgb( 84, 84, 84)', 'rgb( 84, 84, 84)', 'rgb( 82, 82, 82)', 'rgb( 82, 82, 82)', 'rgb( 79, 79, 79)', 'rgb( 79, 79, 79)', 'rgb( 77, 77, 77)', 'rgb( 77, 77, 77)', 'rgb( 74, 74, 74)', 'rgb( 74, 74, 74)', 'rgb( 71, 71, 71)', 'rgb( 71, 71, 71)', 'rgb( 69, 69, 69)', 'rgb( 69, 69, 69)', 'rgb( 66, 66, 66)', 'rgb( 66, 66, 66)', 'rgb( 64, 64, 64)', 'rgb( 64, 64, 64)', 'rgb( 61, 61, 61)', 'rgb( 61, 61, 61)', 'rgb( 59, 59, 59)', 'rgb( 59, 59, 59)', 'rgb( 56, 56, 56)', 'rgb( 56, 56, 56)', 'rgb( 54, 54, 54)', 'rgb( 54, 54, 54)', 'rgb( 51, 51, 51)', 'rgb( 51, 51, 51)', 'rgb( 48, 48, 48)', 'rgb( 48, 48, 48)', 'rgb( 46, 46, 46)', 'rgb( 46, 46, 46)', 'rgb( 43, 43, 43)', 'rgb( 43, 43, 43)', 'rgb( 41, 41, 41)', 'rgb( 41, 41, 41)', 'rgb( 38, 38, 38)', 'rgb( 38, 38, 38)', 'rgb( 36, 36, 36)', 'rgb( 36, 36, 36)', 'rgb( 33, 33, 33)', 'rgb( 33, 33, 33)', 'rgb( 31, 31, 31)', 'rgb( 31, 31, 31)', 'rgb( 28, 28, 28)', 'rgb( 28, 28, 28)', 'rgb( 26, 26, 26)', 'rgb( 26, 26, 26)', 'rgb( 23, 23, 23)', 'rgb( 23, 23, 23)', 'rgb( 20, 20, 20)', 'rgb( 20, 20, 20)', 'rgb( 18, 18, 18)', 'rgb( 18, 18, 18)', 'rgb( 15, 15, 15)', 'rgb( 15, 15, 15)', 'rgb( 13, 13, 13)', 'rgb( 13, 13, 13)', 'rgb( 10, 10, 10)', 'rgb( 10, 10, 10)', 'rgb( 8, 8, 8)', 'rgb( 8, 8, 8)', 'rgb( 5, 5, 5)', 'rgb( 5, 5, 5)', 'rgb( 3, 3, 3)', 'rgb( 3, 3, 3)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'white', 'white'] +namelist = ['snow', 'snow1', 'snow2', 'RosyBrown1', 'RosyBrown2', 'snow3', 'LightCoral', 'IndianRed1', 'RosyBrown3', 'IndianRed2', 'RosyBrown', 'brown1', 'firebrick1', 'brown2', 'IndianRed', 'IndianRed3', 'firebrick2', 'snow4', 'brown3', 'red', 'red1', 'RosyBrown4', 'firebrick3', 'red2', 'firebrick', 'brown', 'red3', 'IndianRed4', 'brown4', 'firebrick4', 'DarkRed', 'red4', 'maroon', 'LightPink1', 'LightPink3', 'LightPink4', 'LightPink2', 'LightPink', 'pink', 'crimson', 'pink1', 'pink2', 'pink3', 'pink4', 'PaleVioletRed4', 'PaleVioletRed', 'PaleVioletRed2', 'PaleVioletRed1', 'PaleVioletRed3', 'LavenderBlush', 'LavenderBlush1', 'LavenderBlush3', 'LavenderBlush2', 'LavenderBlush4', 'maroon', 'HotPink3', 'VioletRed3', 'VioletRed1', 'VioletRed2', 'VioletRed4', 'HotPink2', 'HotPink1', 'HotPink4', 'HotPink', 'DeepPink', 'DeepPink1', 'DeepPink2', 'DeepPink3', 'DeepPink4', 'maroon1', 'maroon2', 'maroon3', 'maroon4', 'MediumVioletRed', 'VioletRed', 'orchid2', 'orchid', 'orchid1', 'orchid3', 'orchid4', 'thistle1', 'thistle2', 'plum1', 'plum2', 'thistle', 'thistle3', 'plum', 'violet', 'plum3', 'thistle4', 'fuchsia', 'magenta', 'magenta1', 'plum4', 'magenta2', 'magenta3', 'DarkMagenta', 'magenta4', 'purple', 'MediumOrchid', 'MediumOrchid1', 'MediumOrchid2', 'MediumOrchid3', 'MediumOrchid4', 'DarkViolet', 'DarkOrchid', 'DarkOrchid1', 'DarkOrchid3', 'DarkOrchid2', 'DarkOrchid4', 'purple', 'indigo', 'BlueViolet', 'purple2', 'purple3', 'purple4', 'purple1', 'MediumPurple', 'MediumPurple1', 'MediumPurple2', 'MediumPurple3', 'MediumPurple4', 'DarkSlateBlue', 'LightSlateBlue', 'MediumSlateBlue', 'SlateBlue', 'SlateBlue1', 'SlateBlue2', 'SlateBlue3', 'SlateBlue4', 'GhostWhite', 'lavender', 'blue', 'blue1', 'blue2', 'blue3', 'MediumBlue', 'blue4', 'DarkBlue', 'MidnightBlue', 'navy', 'NavyBlue', 'RoyalBlue', 'RoyalBlue1', 'RoyalBlue2', 'RoyalBlue3', 'RoyalBlue4', 'CornflowerBlue', 'LightSteelBlue', 'LightSteelBlue1', 'LightSteelBlue2', 'LightSteelBlue3', 'LightSteelBlue4', 'SlateGray4', 'SlateGray1', 'SlateGray2', 'SlateGray3', 'LightSlateGray', 'LightSlateGrey', 'SlateGray', 'SlateGrey', 'DodgerBlue', 'DodgerBlue1', 'DodgerBlue2', 'DodgerBlue4', 'DodgerBlue3', 'AliceBlue', 'SteelBlue4', 'SteelBlue', 'SteelBlue1', 'SteelBlue2', 'SteelBlue3', 'SkyBlue4', 'SkyBlue1', 'SkyBlue2', 'SkyBlue3', 'LightSkyBlue', 'LightSkyBlue4', 'LightSkyBlue1', 'LightSkyBlue2', 'LightSkyBlue3', 'SkyBlue', 'LightBlue3', 'DeepSkyBlue', 'DeepSkyBlue1', 'DeepSkyBlue2', 'DeepSkyBlue4', 'DeepSkyBlue3', 'LightBlue1', 'LightBlue2', 'LightBlue', 'LightBlue4', 'PowderBlue', 'CadetBlue1', 'CadetBlue2', 'CadetBlue3', 'CadetBlue4', 'turquoise1', 'turquoise2', 'turquoise3', 'turquoise4', 'cadet blue', 'CadetBlue', 'DarkTurquoise', 'azure', 'azure1', 'LightCyan', 'LightCyan1', 'azure2', 'LightCyan2', 'PaleTurquoise1', 'PaleTurquoise', 'PaleTurquoise2', 'DarkSlateGray1', 'azure3', 'LightCyan3', 'DarkSlateGray2', 'PaleTurquoise3', 'DarkSlateGray3', 'azure4', 'LightCyan4', 'aqua', 'cyan', 'cyan1', 'PaleTurquoise4', 'cyan2', 'DarkSlateGray4', 'cyan3', 'cyan4', 'DarkCyan', 'teal', 'DarkSlateGray', 'DarkSlateGrey', 'MediumTurquoise', 'LightSeaGreen', 'turquoise', 'aquamarine4', 'aquamarine', 'aquamarine1', 'aquamarine2', 'aquamarine3', 'MediumAquamarine', 'MediumSpringGreen', 'MintCream', 'SpringGreen', 'SpringGreen1', 'SpringGreen2', 'SpringGreen3', 'SpringGreen4', 'MediumSeaGreen', 'SeaGreen', 'SeaGreen3', 'SeaGreen1', 'SeaGreen4', 'SeaGreen2', 'MediumForestGreen', 'honeydew', 'honeydew1', 'honeydew2', 'DarkSeaGreen1', 'DarkSeaGreen2', 'PaleGreen1', 'PaleGreen', 'honeydew3', 'LightGreen', 'PaleGreen2', 'DarkSeaGreen3', 'DarkSeaGreen', 'PaleGreen3', 'honeydew4', 'green1', 'lime', 'LimeGreen', 'DarkSeaGreen4', 'green2', 'PaleGreen4', 'green3', 'ForestGreen', 'green4', 'green', 'DarkGreen', 'LawnGreen', 'chartreuse', 'chartreuse1', 'chartreuse2', 'chartreuse3', 'chartreuse4', 'GreenYellow', 'DarkOliveGreen3', 'DarkOliveGreen1', 'DarkOliveGreen2', 'DarkOliveGreen4', 'DarkOliveGreen', 'OliveDrab', 'OliveDrab1', 'OliveDrab2', 'OliveDrab3', 'YellowGreen', 'OliveDrab4', 'ivory', 'ivory1', 'LightYellow', 'LightYellow1', 'beige', 'ivory2', 'LightGoldenrodYellow', 'LightYellow2', 'ivory3', 'LightYellow3', 'ivory4', 'LightYellow4', 'yellow', 'yellow1', 'yellow2', 'yellow3', 'yellow4', 'olive', 'DarkKhaki', 'khaki2', 'LemonChiffon4', 'khaki1', 'khaki3', 'khaki4', 'PaleGoldenrod', 'LemonChiffon', 'LemonChiffon1', 'khaki', 'LemonChiffon3', 'LemonChiffon2', 'MediumGoldenRod', 'cornsilk4', 'gold', 'gold1', 'gold2', 'gold3', 'gold4', 'LightGoldenrod', 'LightGoldenrod4', 'LightGoldenrod1', 'LightGoldenrod3', 'LightGoldenrod2', 'cornsilk3', 'cornsilk2', 'cornsilk', 'cornsilk1', 'goldenrod', 'goldenrod1', 'goldenrod2', 'goldenrod3', 'goldenrod4', 'DarkGoldenrod', 'DarkGoldenrod1', 'DarkGoldenrod2', 'DarkGoldenrod3', 'DarkGoldenrod4', 'FloralWhite', 'wheat2', 'OldLace', 'wheat', 'wheat1', 'wheat3', 'orange', 'orange1', 'orange2', 'orange3', 'orange4', 'wheat4', 'moccasin', 'PapayaWhip', 'NavajoWhite3', 'BlanchedAlmond', 'NavajoWhite', 'NavajoWhite1', 'NavajoWhite2', 'NavajoWhite4', 'AntiqueWhite4', 'AntiqueWhite', 'tan', 'bisque4', 'burlywood', 'AntiqueWhite2', 'burlywood1', 'burlywood3', 'burlywood2', 'AntiqueWhite1', 'burlywood4', 'AntiqueWhite3', 'DarkOrange', 'bisque2', 'bisque', 'bisque1', 'bisque3', 'DarkOrange1', 'linen', 'DarkOrange2', 'DarkOrange3', 'DarkOrange4', 'peru', 'tan1', 'tan2', 'tan3', 'tan4', 'PeachPuff', 'PeachPuff1', 'PeachPuff4', 'PeachPuff2', 'PeachPuff3', 'SandyBrown', 'seashell4', 'seashell2', 'seashell3', 'chocolate', 'chocolate1', 'chocolate2', 'chocolate3', 'chocolate4', 'SaddleBrown', 'seashell', 'seashell1', 'sienna4', 'sienna', 'sienna1', 'sienna2', 'sienna3', 'LightSalmon3', 'LightSalmon', 'LightSalmon1', 'LightSalmon4', 'LightSalmon2', 'coral', 'OrangeRed', 'OrangeRed1', 'OrangeRed2', 'OrangeRed3', 'OrangeRed4', 'DarkSalmon', 'salmon1', 'salmon2', 'salmon3', 'salmon4', 'coral1', 'coral2', 'coral3', 'coral4', 'tomato4', 'tomato', 'tomato1', 'tomato2', 'tomato3', 'MistyRose4', 'MistyRose2', 'MistyRose', 'MistyRose1', 'salmon', 'MistyRose3', 'white', 'gray100', 'grey100', 'grey100', 'gray99', 'grey99', 'gray98', 'grey98', 'gray97', 'grey97', 'gray96', 'grey96', 'WhiteSmoke', 'gray95', 'grey95', 'gray94', 'grey94', 'gray93', 'grey93', 'gray92', 'grey92', 'gray91', 'grey91', 'gray90', 'grey90', 'gray89', 'grey89', 'gray88', 'grey88', 'gray87', 'grey87', 'gainsboro', 'gray86', 'grey86', 'gray85', 'grey85', 'gray84', 'grey84', 'gray83', 'grey83', 'LightGray', 'LightGrey', 'gray82', 'grey82', 'gray81', 'grey81', 'gray80', 'grey80', 'gray79', 'grey79', 'gray78', 'grey78', 'gray77', 'grey77', 'gray76', 'grey76', 'silver', 'gray75', 'grey75', 'gray74', 'grey74', 'gray73', 'grey73', 'gray72', 'grey72', 'gray71', 'grey71', 'gray70', 'grey70', 'gray69', 'grey69', 'gray68', 'grey68', 'gray67', 'grey67', 'DarkGray', 'DarkGrey', 'gray66', 'grey66', 'gray65', 'grey65', 'gray64', 'grey64', 'gray63', 'grey63', 'gray62', 'grey62', 'gray61', 'grey61', 'gray60', 'grey60', 'gray59', 'grey59', 'gray58', 'grey58', 'gray57', 'grey57', 'gray56', 'grey56', 'gray55', 'grey55', 'gray54', 'grey54', 'gray53', 'grey53', 'gray52', 'grey52', 'gray51', 'grey51', 'fractal', 'gray50', 'grey50', 'gray', 'gray49', 'grey49', 'gray48', 'grey48', 'gray47', 'grey47', 'gray46', 'grey46', 'gray45', 'grey45', 'gray44', 'grey44', 'gray43', 'grey43', 'gray42', 'grey42', 'DimGray', 'DimGrey', 'gray41', 'grey41', 'gray40', 'grey40', 'gray39', 'grey39', 'gray38', 'grey38', 'gray37', 'grey37', 'gray36', 'grey36', 'gray35', 'grey35', 'gray34', 'grey34', 'gray33', 'grey33', 'gray32', 'grey32', 'gray31', 'grey31', 'gray30', 'grey30', 'gray29', 'grey29', 'gray28', 'grey28', 'gray27', 'grey27', 'gray26', 'grey26', 'gray25', 'grey25', 'gray24', 'grey24', 'gray23', 'grey23', 'gray22', 'grey22', 'gray21', 'grey21', 'gray20', 'grey20', 'gray19', 'grey19', 'gray18', 'grey18', 'gray17', 'grey17', 'gray16', 'grey16', 'gray15', 'grey15', 'gray14', 'grey14', 'gray13', 'grey13', 'gray12', 'grey12', 'gray11', 'grey11', 'gray10', 'grey10', 'gray9', 'grey9', 'gray8', 'grey8', 'gray7', 'grey7', 'gray6', 'grey6', 'gray5', 'grey5', 'gray4', 'grey4', 'gray3', 'grey3', 'gray2', 'grey2', 'gray1', 'grey1', 'black', 'gray0', 'grey0', 'opaque', 'none', 'transparent'] + + +#### create some dictionaries###### +#rgb to hex +#rgb to name +#the rest will not work +#maybe hex to rgb + +rgbtohex = {} +for x in xrange(0,len(hexlist)-1): + rgbtohex[rgblist[x]] = hexlist[x] + +rgbtoname ={} +for x in xrange(0, len(namelist)-1): + rgbtoname[rgblist[x]] = namelist[x] + +hextorgb = {} +for x in xrange(0, len(hexlist)-1): + hextorgb[hexlist[x]] = rgblist[x] + +f = open("colordictionaries2.js","w") +f.write('rgbtohex = '+str(rgbtohex)+'\n') +f.write('rgbtoname = '+str(rgbtoname)+'\n') +f.write('hextorgb = '+str(hextorgb)+'\n') + +f.close() diff --git a/frontend/imgrid/colors/colors/js/wrkshp/names b/frontend/imgrid/colors/colors/js/wrkshp/names new file mode 100755 index 0000000..ebcec30 --- /dev/null +++ b/frontend/imgrid/colors/colors/js/wrkshp/names @@ -0,0 +1 @@ +namelist = ['snow', 'snow1', 'snow2', 'RosyBrown1', 'RosyBrown2', 'snow3', 'LightCoral', 'IndianRed1', 'RosyBrown3', 'IndianRed2', 'RosyBrown', 'brown1', 'firebrick1', 'brown2', 'IndianRed', 'IndianRed3', 'firebrick2', 'snow4', 'brown3', 'red', 'red1', 'RosyBrown4', 'firebrick3', 'red2', 'firebrick', 'brown', 'red3', 'IndianRed4', 'brown4', 'firebrick4', 'DarkRed', 'red4', 'maroon', 'LightPink1', 'LightPink3', 'LightPink4', 'LightPink2', 'LightPink', 'pink', 'crimson', 'pink1', 'pink2', 'pink3', 'pink4', 'PaleVioletRed4', 'PaleVioletRed', 'PaleVioletRed2', 'PaleVioletRed1', 'PaleVioletRed3', 'LavenderBlush', 'LavenderBlush1', 'LavenderBlush3', 'LavenderBlush2', 'LavenderBlush4', 'maroon', 'HotPink3', 'VioletRed3', 'VioletRed1', 'VioletRed2', 'VioletRed4', 'HotPink2', 'HotPink1', 'HotPink4', 'HotPink', 'DeepPink', 'DeepPink1', 'DeepPink2', 'DeepPink3', 'DeepPink4', 'maroon1', 'maroon2', 'maroon3', 'maroon4', 'MediumVioletRed', 'VioletRed', 'orchid2', 'orchid', 'orchid1', 'orchid3', 'orchid4', 'thistle1', 'thistle2', 'plum1', 'plum2', 'thistle', 'thistle3', 'plum', 'violet', 'plum3', 'thistle4', 'fuchsia', 'magenta', 'magenta1', 'plum4', 'magenta2', 'magenta3', 'DarkMagenta', 'magenta4', 'purple', 'MediumOrchid', 'MediumOrchid1', 'MediumOrchid2', 'MediumOrchid3', 'MediumOrchid4', 'DarkViolet', 'DarkOrchid', 'DarkOrchid1', 'DarkOrchid3', 'DarkOrchid2', 'DarkOrchid4', 'purple', 'indigo', 'BlueViolet', 'purple2', 'purple3', 'purple4', 'purple1', 'MediumPurple', 'MediumPurple1', 'MediumPurple2', 'MediumPurple3', 'MediumPurple4', 'DarkSlateBlue', 'LightSlateBlue', 'MediumSlateBlue', 'SlateBlue', 'SlateBlue1', 'SlateBlue2', 'SlateBlue3', 'SlateBlue4', 'GhostWhite', 'lavender', 'blue', 'blue1', 'blue2', 'blue3', 'MediumBlue', 'blue4', 'DarkBlue', 'MidnightBlue', 'navy', 'NavyBlue', 'RoyalBlue', 'RoyalBlue1', 'RoyalBlue2', 'RoyalBlue3', 'RoyalBlue4', 'CornflowerBlue', 'LightSteelBlue', 'LightSteelBlue1', 'LightSteelBlue2', 'LightSteelBlue3', 'LightSteelBlue4', 'SlateGray4', 'SlateGray1', 'SlateGray2', 'SlateGray3', 'LightSlateGray', 'LightSlateGrey', 'SlateGray', 'SlateGrey', 'DodgerBlue', 'DodgerBlue1', 'DodgerBlue2', 'DodgerBlue4', 'DodgerBlue3', 'AliceBlue', 'SteelBlue4', 'SteelBlue', 'SteelBlue1', 'SteelBlue2', 'SteelBlue3', 'SkyBlue4', 'SkyBlue1', 'SkyBlue2', 'SkyBlue3', 'LightSkyBlue', 'LightSkyBlue4', 'LightSkyBlue1', 'LightSkyBlue2', 'LightSkyBlue3', 'SkyBlue', 'LightBlue3', 'DeepSkyBlue', 'DeepSkyBlue1', 'DeepSkyBlue2', 'DeepSkyBlue4', 'DeepSkyBlue3', 'LightBlue1', 'LightBlue2', 'LightBlue', 'LightBlue4', 'PowderBlue', 'CadetBlue1', 'CadetBlue2', 'CadetBlue3', 'CadetBlue4', 'turquoise1', 'turquoise2', 'turquoise3', 'turquoise4', 'cadet blue', 'CadetBlue', 'DarkTurquoise', 'azure', 'azure1', 'LightCyan', 'LightCyan1', 'azure2', 'LightCyan2', 'PaleTurquoise1', 'PaleTurquoise', 'PaleTurquoise2', 'DarkSlateGray1', 'azure3', 'LightCyan3', 'DarkSlateGray2', 'PaleTurquoise3', 'DarkSlateGray3', 'azure4', 'LightCyan4', 'aqua', 'cyan', 'cyan1', 'PaleTurquoise4', 'cyan2', 'DarkSlateGray4', 'cyan3', 'cyan4', 'DarkCyan', 'teal', 'DarkSlateGray', 'DarkSlateGrey', 'MediumTurquoise', 'LightSeaGreen', 'turquoise', 'aquamarine4', 'aquamarine', 'aquamarine1', 'aquamarine2', 'aquamarine3', 'MediumAquamarine', 'MediumSpringGreen', 'MintCream', 'SpringGreen', 'SpringGreen1', 'SpringGreen2', 'SpringGreen3', 'SpringGreen4', 'MediumSeaGreen', 'SeaGreen', 'SeaGreen3', 'SeaGreen1', 'SeaGreen4', 'SeaGreen2', 'MediumForestGreen', 'honeydew', 'honeydew1', 'honeydew2', 'DarkSeaGreen1', 'DarkSeaGreen2', 'PaleGreen1', 'PaleGreen', 'honeydew3', 'LightGreen', 'PaleGreen2', 'DarkSeaGreen3', 'DarkSeaGreen', 'PaleGreen3', 'honeydew4', 'green1', 'lime', 'LimeGreen', 'DarkSeaGreen4', 'green2', 'PaleGreen4', 'green3', 'ForestGreen', 'green4', 'green', 'DarkGreen', 'LawnGreen', 'chartreuse', 'chartreuse1', 'chartreuse2', 'chartreuse3', 'chartreuse4', 'GreenYellow', 'DarkOliveGreen3', 'DarkOliveGreen1', 'DarkOliveGreen2', 'DarkOliveGreen4', 'DarkOliveGreen', 'OliveDrab', 'OliveDrab1', 'OliveDrab2', 'OliveDrab3', 'YellowGreen', 'OliveDrab4', 'ivory', 'ivory1', 'LightYellow', 'LightYellow1', 'beige', 'ivory2', 'LightGoldenrodYellow', 'LightYellow2', 'ivory3', 'LightYellow3', 'ivory4', 'LightYellow4', 'yellow', 'yellow1', 'yellow2', 'yellow3', 'yellow4', 'olive', 'DarkKhaki', 'khaki2', 'LemonChiffon4', 'khaki1', 'khaki3', 'khaki4', 'PaleGoldenrod', 'LemonChiffon', 'LemonChiffon1', 'khaki', 'LemonChiffon3', 'LemonChiffon2', 'MediumGoldenRod', 'cornsilk4', 'gold', 'gold1', 'gold2', 'gold3', 'gold4', 'LightGoldenrod', 'LightGoldenrod4', 'LightGoldenrod1', 'LightGoldenrod3', 'LightGoldenrod2', 'cornsilk3', 'cornsilk2', 'cornsilk', 'cornsilk1', 'goldenrod', 'goldenrod1', 'goldenrod2', 'goldenrod3', 'goldenrod4', 'DarkGoldenrod', 'DarkGoldenrod1', 'DarkGoldenrod2', 'DarkGoldenrod3', 'DarkGoldenrod4', 'FloralWhite', 'wheat2', 'OldLace', 'wheat', 'wheat1', 'wheat3', 'orange', 'orange1', 'orange2', 'orange3', 'orange4', 'wheat4', 'moccasin', 'PapayaWhip', 'NavajoWhite3', 'BlanchedAlmond', 'NavajoWhite', 'NavajoWhite1', 'NavajoWhite2', 'NavajoWhite4', 'AntiqueWhite4', 'AntiqueWhite', 'tan', 'bisque4', 'burlywood', 'AntiqueWhite2', 'burlywood1', 'burlywood3', 'burlywood2', 'AntiqueWhite1', 'burlywood4', 'AntiqueWhite3', 'DarkOrange', 'bisque2', 'bisque', 'bisque1', 'bisque3', 'DarkOrange1', 'linen', 'DarkOrange2', 'DarkOrange3', 'DarkOrange4', 'peru', 'tan1', 'tan2', 'tan3', 'tan4', 'PeachPuff', 'PeachPuff1', 'PeachPuff4', 'PeachPuff2', 'PeachPuff3', 'SandyBrown', 'seashell4', 'seashell2', 'seashell3', 'chocolate', 'chocolate1', 'chocolate2', 'chocolate3', 'chocolate4', 'SaddleBrown', 'seashell', 'seashell1', 'sienna4', 'sienna', 'sienna1', 'sienna2', 'sienna3', 'LightSalmon3', 'LightSalmon', 'LightSalmon1', 'LightSalmon4', 'LightSalmon2', 'coral', 'OrangeRed', 'OrangeRed1', 'OrangeRed2', 'OrangeRed3', 'OrangeRed4', 'DarkSalmon', 'salmon1', 'salmon2', 'salmon3', 'salmon4', 'coral1', 'coral2', 'coral3', 'coral4', 'tomato4', 'tomato', 'tomato1', 'tomato2', 'tomato3', 'MistyRose4', 'MistyRose2', 'MistyRose', 'MistyRose1', 'salmon', 'MistyRose3', 'white', 'gray100', 'grey100', 'grey100', 'gray99', 'grey99', 'gray98', 'grey98', 'gray97', 'grey97', 'gray96', 'grey96', 'WhiteSmoke', 'gray95', 'grey95', 'gray94', 'grey94', 'gray93', 'grey93', 'gray92', 'grey92', 'gray91', 'grey91', 'gray90', 'grey90', 'gray89', 'grey89', 'gray88', 'grey88', 'gray87', 'grey87', 'gainsboro', 'gray86', 'grey86', 'gray85', 'grey85', 'gray84', 'grey84', 'gray83', 'grey83', 'LightGray', 'LightGrey', 'gray82', 'grey82', 'gray81', 'grey81', 'gray80', 'grey80', 'gray79', 'grey79', 'gray78', 'grey78', 'gray77', 'grey77', 'gray76', 'grey76', 'silver', 'gray75', 'grey75', 'gray74', 'grey74', 'gray73', 'grey73', 'gray72', 'grey72', 'gray71', 'grey71', 'gray70', 'grey70', 'gray69', 'grey69', 'gray68', 'grey68', 'gray67', 'grey67', 'DarkGray', 'DarkGrey', 'gray66', 'grey66', 'gray65', 'grey65', 'gray64', 'grey64', 'gray63', 'grey63', 'gray62', 'grey62', 'gray61', 'grey61', 'gray60', 'grey60', 'gray59', 'grey59', 'gray58', 'grey58', 'gray57', 'grey57', 'gray56', 'grey56', 'gray55', 'grey55', 'gray54', 'grey54', 'gray53', 'grey53', 'gray52', 'grey52', 'gray51', 'grey51', 'fractal', 'gray50', 'grey50', 'gray', 'gray49', 'grey49', 'gray48', 'grey48', 'gray47', 'grey47', 'gray46', 'grey46', 'gray45', 'grey45', 'gray44', 'grey44', 'gray43', 'grey43', 'gray42', 'grey42', 'DimGray', 'DimGrey', 'gray41', 'grey41', 'gray40', 'grey40', 'gray39', 'grey39', 'gray38', 'grey38', 'gray37', 'grey37', 'gray36', 'grey36', 'gray35', 'grey35', 'gray34', 'grey34', 'gray33', 'grey33', 'gray32', 'grey32', 'gray31', 'grey31', 'gray30', 'grey30', 'gray29', 'grey29', 'gray28', 'grey28', 'gray27', 'grey27', 'gray26', 'grey26', 'gray25', 'grey25', 'gray24', 'grey24', 'gray23', 'grey23', 'gray22', 'grey22', 'gray21', 'grey21', 'gray20', 'grey20', 'gray19', 'grey19', 'gray18', 'grey18', 'gray17', 'grey17', 'gray16', 'grey16', 'gray15', 'grey15', 'gray14', 'grey14', 'gray13', 'grey13', 'gray12', 'grey12', 'gray11', 'grey11', 'gray10', 'grey10', 'gray9', 'grey9', 'gray8', 'grey8', 'gray7', 'grey7', 'gray6', 'grey6', 'gray5', 'grey5', 'gray4', 'grey4', 'gray3', 'grey3', 'gray2', 'grey2', 'gray1', 'grey1', 'black', 'gray0', 'grey0', 'opaque', 'none', 'transparent']
\ No newline at end of file diff --git a/frontend/imgrid/colors/colors/js/wrkshp/rgbs b/frontend/imgrid/colors/colors/js/wrkshp/rgbs new file mode 100755 index 0000000..59981a8 --- /dev/null +++ b/frontend/imgrid/colors/colors/js/wrkshp/rgbs @@ -0,0 +1 @@ +rgblist = ['rgb(255, 250, 250)', 'rgb(255, 250, 250)', 'rgb(238, 233, 233)', 'rgb(255, 193, 193)', 'rgb(238, 180, 180)', 'rgb(205, 201, 201)', 'rgb(240, 128, 128)', 'rgb(255, 106, 106)', 'rgb(205, 155, 155)', 'rgb(238, 99, 99)', 'rgb(188, 143, 143)', 'rgb(255, 64, 64)', 'rgb(255, 48, 48)', 'rgb(238, 59, 59)', 'rgb(205, 92, 92)', 'rgb(205, 85, 85)', 'rgb(238, 44, 44)', 'rgb(139, 137, 137)', 'rgb(205, 51, 51)', 'rgb(255, 0, 0)', 'rgb(255, 0, 0)', 'rgb(139, 105, 105)', 'rgb(205, 38, 38)', 'rgb(238, 0, 0)', 'rgb(178, 34, 34)', 'rgb(165, 42, 42)', 'rgb(205, 0, 0)', 'rgb(139, 58, 58)', 'rgb(139, 35, 35)', 'rgb(139, 26, 26)', 'rgb(139, 0, 0)', 'rgb(139, 0, 0)', 'rgb(128, 0, 0)', 'rgb(255, 174, 185)', 'rgb(205, 140, 149)', 'rgb(139, 95, 101)', 'rgb(238, 162, 173)', 'rgb(255, 182, 193)', 'rgb(255, 192, 203)', 'rgb(220, 20, 60)', 'rgb(255, 181, 197)', 'rgb(238, 169, 184)', 'rgb(205, 145, 158)', 'rgb(139, 99, 108)', 'rgb(139, 71, 93)', 'rgb(219, 112, 147)', 'rgb(238, 121, 159)', 'rgb(255, 130, 171)', 'rgb(205, 104, 137)', 'rgb(255, 240, 245)', 'rgb(255, 240, 245)', 'rgb(205, 193, 197)', 'rgb(238, 224, 229)', 'rgb(139, 131, 134)', 'rgb(176, 48, 96)', 'rgb(205, 96, 144)', 'rgb(205, 50, 120)', 'rgb(255, 62, 150)', 'rgb(238, 58, 140)', 'rgb(139, 34, 82)', 'rgb(238, 106, 167)', 'rgb(255, 110, 180)', 'rgb(139, 58, 98)', 'rgb(255, 105, 180)', 'rgb(255, 20, 147)', 'rgb(255, 20, 147)', 'rgb(238, 18, 137)', 'rgb(205, 16, 118)', 'rgb(139, 10, 80)', 'rgb(255, 52, 179)', 'rgb(238, 48, 167)', 'rgb(205, 41, 144)', 'rgb(139, 28, 98)', 'rgb(199, 21, 133)', 'rgb(208, 32, 144)', 'rgb(238, 122, 233)', 'rgb(218, 112, 214)', 'rgb(255, 131, 250)', 'rgb(205, 105, 201)', 'rgb(139, 71, 137)', 'rgb(255, 225, 255)', 'rgb(238, 210, 238)', 'rgb(255, 187, 255)', 'rgb(238, 174, 238)', 'rgb(216, 191, 216)', 'rgb(205, 181, 205)', 'rgb(221, 160, 221)', 'rgb(238, 130, 238)', 'rgb(205, 150, 205)', 'rgb(139, 123, 139)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(139, 102, 139)', 'rgb(238, 0, 238)', 'rgb(205, 0, 205)', 'rgb(139, 0, 139)', 'rgb(139, 0, 139)', 'rgb(128, 0, 128)', 'rgb(186, 85, 211)', 'rgb(224, 102, 255)', 'rgb(209, 95, 238)', 'rgb(180, 82, 205)', 'rgb(122, 55, 139)', 'rgb(148, 0, 211)', 'rgb(153, 50, 204)', 'rgb(191, 62, 255)', 'rgb(154, 50, 205)', 'rgb(178, 58, 238)', 'rgb(104, 34, 139)', 'rgb(160, 32, 240)', 'rgb( 75, 0, 130)', 'rgb(138, 43, 226)', 'rgb(145, 44, 238)', 'rgb(125, 38, 205)', 'rgb( 85, 26, 139)', 'rgb(155, 48, 255)', 'rgb(147, 112, 219)', 'rgb(171, 130, 255)', 'rgb(159, 121, 238)', 'rgb(137, 104, 205)', 'rgb( 93, 71, 139)', 'rgb( 72, 61, 139)', 'rgb(132, 112, 255)', 'rgb(123, 104, 238)', 'rgb(106, 90, 205)', 'rgb(131, 111, 255)', 'rgb(122, 103, 238)', 'rgb(105, 89, 205)', 'rgb( 71, 60, 139)', 'rgb(248, 248, 255)', 'rgb(230, 230, 250)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 238)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 139)', 'rgb( 0, 0, 139)', 'rgb( 25, 25, 112)', 'rgb( 0, 0, 128)', 'rgb( 0, 0, 128)', 'rgb( 65, 105, 225)', 'rgb( 72, 118, 255)', 'rgb( 67, 110, 238)', 'rgb( 58, 95, 205)', 'rgb( 39, 64, 139)', 'rgb(100, 149, 237)', 'rgb(176, 196, 222)', 'rgb(202, 225, 255)', 'rgb(188, 210, 238)', 'rgb(162, 181, 205)', 'rgb(110, 123, 139)', 'rgb(108, 123, 139)', 'rgb(198, 226, 255)', 'rgb(185, 211, 238)', 'rgb(159, 182, 205)', 'rgb(119, 136, 153)', 'rgb(119, 136, 153)', 'rgb(112, 128, 144)', 'rgb(112, 128, 144)', 'rgb( 30, 144, 255)', 'rgb( 30, 144, 255)', 'rgb( 28, 134, 238)', 'rgb( 16, 78, 139)', 'rgb( 24, 116, 205)', 'rgb(240, 248, 255)', 'rgb( 54, 100, 139)', 'rgb( 70, 130, 180)', 'rgb( 99, 184, 255)', 'rgb( 92, 172, 238)', 'rgb( 79, 148, 205)', 'rgb( 74, 112, 139)', 'rgb(135, 206, 255)', 'rgb(126, 192, 238)', 'rgb(108, 166, 205)', 'rgb(135, 206, 250)', 'rgb( 96, 123, 139)', 'rgb(176, 226, 255)', 'rgb(164, 211, 238)', 'rgb(141, 182, 205)', 'rgb(135, 206, 235)', 'rgb(154, 192, 205)', 'rgb( 0, 191, 255)', 'rgb( 0, 191, 255)', 'rgb( 0, 178, 238)', 'rgb( 0, 104, 139)', 'rgb( 0, 154, 205)', 'rgb(191, 239, 255)', 'rgb(178, 223, 238)', 'rgb(173, 216, 230)', 'rgb(104, 131, 139)', 'rgb(176, 224, 230)', 'rgb(152, 245, 255)', 'rgb(142, 229, 238)', 'rgb(122, 197, 205)', 'rgb( 83, 134, 139)', 'rgb( 0, 245, 255)', 'rgb( 0, 229, 238)', 'rgb( 0, 197, 205)', 'rgb( 0, 134, 139)', 'rgb( 95, 158, 160)', 'rgb( 95, 158, 160)', 'rgb( 0, 206, 209)', 'rgb(240, 255, 255)', 'rgb(240, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 238, 238)', 'rgb(209, 238, 238)', 'rgb(187, 255, 255)', 'rgb(175, 238, 238)', 'rgb(174, 238, 238)', 'rgb(151, 255, 255)', 'rgb(193, 205, 205)', 'rgb(180, 205, 205)', 'rgb(141, 238, 238)', 'rgb(150, 205, 205)', 'rgb(121, 205, 205)', 'rgb(131, 139, 139)', 'rgb(122, 139, 139)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb(102, 139, 139)', 'rgb( 0, 238, 238)', 'rgb( 82, 139, 139)', 'rgb( 0, 205, 205)', 'rgb( 0, 139, 139)', 'rgb( 0, 139, 139)', 'rgb( 0, 128, 128)', 'rgb( 47, 79, 79)', 'rgb( 47, 79, 79)', 'rgb( 72, 209, 204)', 'rgb( 32, 178, 170)', 'rgb( 64, 224, 208)', 'rgb( 69, 139, 116)', 'rgb(127, 255, 212)', 'rgb(127, 255, 212)', 'rgb(118, 238, 198)', 'rgb(102, 205, 170)', 'rgb(102, 205, 170)', 'rgb( 0, 250, 154)', 'rgb(245, 255, 250)', 'rgb( 0, 255, 127)', 'rgb( 0, 255, 127)', 'rgb( 0, 238, 118)', 'rgb( 0, 205, 102)', 'rgb( 0, 139, 69)', 'rgb( 60, 179, 113)', 'rgb( 46, 139, 87)', 'rgb( 67, 205, 128)', 'rgb( 84, 255, 159)', 'rgb( 46, 139, 87)', 'rgb( 78, 238, 148)', 'rgb( 50, 129, 75)', 'rgb(240, 255, 240)', 'rgb(240, 255, 240)', 'rgb(224, 238, 224)', 'rgb(193, 255, 193)', 'rgb(180, 238, 180)', 'rgb(154, 255, 154)', 'rgb(152, 251, 152)', 'rgb(193, 205, 193)', 'rgb(144, 238, 144)', 'rgb(144, 238, 144)', 'rgb(155, 205, 155)', 'rgb(143, 188, 143)', 'rgb(124, 205, 124)', 'rgb(131, 139, 131)', 'rgb( 0, 255, 0)', 'rgb( 0, 255, 0)', 'rgb( 50, 205, 50)', 'rgb(105, 139, 105)', 'rgb( 0, 238, 0)', 'rgb( 84, 139, 84)', 'rgb( 0, 205, 0)', 'rgb( 34, 139, 34)', 'rgb( 0, 139, 0)', 'rgb( 0, 128, 0)', 'rgb( 0, 100, 0)', 'rgb(124, 252, 0)', 'rgb(127, 255, 0)', 'rgb(127, 255, 0)', 'rgb(118, 238, 0)', 'rgb(102, 205, 0)', 'rgb( 69, 139, 0)', 'rgb(173, 255, 47)', 'rgb(162, 205, 90)', 'rgb(202, 255, 112)', 'rgb(188, 238, 104)', 'rgb(110, 139, 61)', 'rgb( 85, 107, 47)', 'rgb(107, 142, 35)', 'rgb(192, 255, 62)', 'rgb(179, 238, 58)', 'rgb(154, 205, 50)', 'rgb(154, 205, 50)', 'rgb(105, 139, 34)', 'rgb(255, 255, 240)', 'rgb(255, 255, 240)', 'rgb(255, 255, 224)', 'rgb(255, 255, 224)', 'rgb(245, 245, 220)', 'rgb(238, 238, 224)', 'rgb(250, 250, 210)', 'rgb(238, 238, 209)', 'rgb(205, 205, 193)', 'rgb(205, 205, 180)', 'rgb(139, 139, 131)', 'rgb(139, 139, 122)', 'rgb(255, 255, 0)', 'rgb(255, 255, 0)', 'rgb(238, 238, 0)', 'rgb(205, 205, 0)', 'rgb(139, 139, 0)', 'rgb(128, 128, 0)', 'rgb(189, 183, 107)', 'rgb(238, 230, 133)', 'rgb(139, 137, 112)', 'rgb(255, 246, 143)', 'rgb(205, 198, 115)', 'rgb(139, 134, 78)', 'rgb(238, 232, 170)', 'rgb(255, 250, 205)', 'rgb(255, 250, 205)', 'rgb(240, 230, 140)', 'rgb(205, 201, 165)', 'rgb(238, 233, 191)', 'rgb(209, 193, 102)', 'rgb(139, 136, 120)', 'rgb(255, 215, 0)', 'rgb(255, 215, 0)', 'rgb(238, 201, 0)', 'rgb(205, 173, 0)', 'rgb(139, 117, 0)', 'rgb(238, 221, 130)', 'rgb(139, 129, 76)', 'rgb(255, 236, 139)', 'rgb(205, 190, 112)', 'rgb(238, 220, 130)', 'rgb(205, 200, 177)', 'rgb(238, 232, 205)', 'rgb(255, 248, 220)', 'rgb(255, 248, 220)', 'rgb(218, 165, 32)', 'rgb(255, 193, 37)', 'rgb(238, 180, 34)', 'rgb(205, 155, 29)', 'rgb(139, 105, 20)', 'rgb(184, 134, 11)', 'rgb(255, 185, 15)', 'rgb(238, 173, 14)', 'rgb(205, 149, 12)', 'rgb(139, 101, 8)', 'rgb(255, 250, 240)', 'rgb(238, 216, 174)', 'rgb(253, 245, 230)', 'rgb(245, 222, 179)', 'rgb(255, 231, 186)', 'rgb(205, 186, 150)', 'rgb(255, 165, 0)', 'rgb(255, 165, 0)', 'rgb(238, 154, 0)', 'rgb(205, 133, 0)', 'rgb(139, 90, 0)', 'rgb(139, 126, 102)', 'rgb(255, 228, 181)', 'rgb(255, 239, 213)', 'rgb(205, 179, 139)', 'rgb(255, 235, 205)', 'rgb(255, 222, 173)', 'rgb(255, 222, 173)', 'rgb(238, 207, 161)', 'rgb(139, 121, 94)', 'rgb(139, 131, 120)', 'rgb(250, 235, 215)', 'rgb(210, 180, 140)', 'rgb(139, 125, 107)', 'rgb(222, 184, 135)', 'rgb(238, 223, 204)', 'rgb(255, 211, 155)', 'rgb(205, 170, 125)', 'rgb(238, 197, 145)', 'rgb(255, 239, 219)', 'rgb(139, 115, 85)', 'rgb(205, 192, 176)', 'rgb(255, 140, 0)', 'rgb(238, 213, 183)', 'rgb(255, 228, 196)', 'rgb(255, 228, 196)', 'rgb(205, 183, 158)', 'rgb(255, 127, 0)', 'rgb(250, 240, 230)', 'rgb(238, 118, 0)', 'rgb(205, 102, 0)', 'rgb(139, 69, 0)', 'rgb(205, 133, 63)', 'rgb(255, 165, 79)', 'rgb(238, 154, 73)', 'rgb(205, 133, 63)', 'rgb(139, 90, 43)', 'rgb(255, 218, 185)', 'rgb(255, 218, 185)', 'rgb(139, 119, 101)', 'rgb(238, 203, 173)', 'rgb(205, 175, 149)', 'rgb(244, 164, 96)', 'rgb(139, 134, 130)', 'rgb(238, 229, 222)', 'rgb(205, 197, 191)', 'rgb(210, 105, 30)', 'rgb(255, 127, 36)', 'rgb(238, 118, 33)', 'rgb(205, 102, 29)', 'rgb(139, 69, 19)', 'rgb(139, 69, 19)', 'rgb(255, 245, 238)', 'rgb(255, 245, 238)', 'rgb(139, 71, 38)', 'rgb(160, 82, 45)', 'rgb(255, 130, 71)', 'rgb(238, 121, 66)', 'rgb(205, 104, 57)', 'rgb(205, 129, 98)', 'rgb(255, 160, 122)', 'rgb(255, 160, 122)', 'rgb(139, 87, 66)', 'rgb(238, 149, 114)', 'rgb(255, 127, 80)', 'rgb(255, 69, 0)', 'rgb(255, 69, 0)', 'rgb(238, 64, 0)', 'rgb(205, 55, 0)', 'rgb(139, 37, 0)', 'rgb(233, 150, 122)', 'rgb(255, 140, 105)', 'rgb(238, 130, 98)', 'rgb(205, 112, 84)', 'rgb(139, 76, 57)', 'rgb(255, 114, 86)', 'rgb(238, 106, 80)', 'rgb(205, 91, 69)', 'rgb(139, 62, 47)', 'rgb(139, 54, 38)', 'rgb(255, 99, 71)', 'rgb(255, 99, 71)', 'rgb(238, 92, 66)', 'rgb(205, 79, 57)', 'rgb(139, 125, 123)', 'rgb(238, 213, 210)', 'rgb(255, 228, 225)', 'rgb(255, 228, 225)', 'rgb(250, 128, 114)', 'rgb(205, 183, 181)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(252, 252, 252)', 'rgb(252, 252, 252)', 'rgb(250, 250, 250)', 'rgb(250, 250, 250)', 'rgb(247, 247, 247)', 'rgb(247, 247, 247)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(242, 242, 242)', 'rgb(242, 242, 242)', 'rgb(240, 240, 240)', 'rgb(240, 240, 240)', 'rgb(237, 237, 237)', 'rgb(237, 237, 237)', 'rgb(235, 235, 235)', 'rgb(235, 235, 235)', 'rgb(232, 232, 232)', 'rgb(232, 232, 232)', 'rgb(229, 229, 229)', 'rgb(229, 229, 229)', 'rgb(227, 227, 227)', 'rgb(227, 227, 227)', 'rgb(224, 224, 224)', 'rgb(224, 224, 224)', 'rgb(222, 222, 222)', 'rgb(222, 222, 222)', 'rgb(220, 220, 220)', 'rgb(219, 219, 219)', 'rgb(219, 219, 219)', 'rgb(217, 217, 217)', 'rgb(217, 217, 217)', 'rgb(214, 214, 214)', 'rgb(214, 214, 214)', 'rgb(212, 212, 212)', 'rgb(212, 212, 212)', 'rgb(211, 211, 211)', 'rgb(211, 211, 211)', 'rgb(209, 209, 209)', 'rgb(209, 209, 209)', 'rgb(207, 207, 207)', 'rgb(207, 207, 207)', 'rgb(204, 204, 204)', 'rgb(204, 204, 204)', 'rgb(201, 201, 201)', 'rgb(201, 201, 201)', 'rgb(199, 199, 199)', 'rgb(199, 199, 199)', 'rgb(196, 196, 196)', 'rgb(196, 196, 196)', 'rgb(194, 194, 194)', 'rgb(194, 194, 194)', 'rgb(192, 192, 192)', 'rgb(191, 191, 191)', 'rgb(191, 191, 191)', 'rgb(189, 189, 189)', 'rgb(189, 189, 189)', 'rgb(186, 186, 186)', 'rgb(186, 186, 186)', 'rgb(184, 184, 184)', 'rgb(184, 184, 184)', 'rgb(181, 181, 181)', 'rgb(181, 181, 181)', 'rgb(179, 179, 179)', 'rgb(179, 179, 179)', 'rgb(176, 176, 176)', 'rgb(176, 176, 176)', 'rgb(173, 173, 173)', 'rgb(173, 173, 173)', 'rgb(171, 171, 171)', 'rgb(171, 171, 171)', 'rgb(169, 169, 169)', 'rgb(169, 169, 169)', 'rgb(168, 168, 168)', 'rgb(168, 168, 168)', 'rgb(166, 166, 166)', 'rgb(166, 166, 166)', 'rgb(163, 163, 163)', 'rgb(163, 163, 163)', 'rgb(161, 161, 161)', 'rgb(161, 161, 161)', 'rgb(158, 158, 158)', 'rgb(158, 158, 158)', 'rgb(156, 156, 156)', 'rgb(156, 156, 156)', 'rgb(153, 153, 153)', 'rgb(153, 153, 153)', 'rgb(150, 150, 150)', 'rgb(150, 150, 150)', 'rgb(148, 148, 148)', 'rgb(148, 148, 148)', 'rgb(145, 145, 145)', 'rgb(145, 145, 145)', 'rgb(143, 143, 143)', 'rgb(143, 143, 143)', 'rgb(140, 140, 140)', 'rgb(140, 140, 140)', 'rgb(138, 138, 138)', 'rgb(138, 138, 138)', 'rgb(135, 135, 135)', 'rgb(135, 135, 135)', 'rgb(133, 133, 133)', 'rgb(133, 133, 133)', 'rgb(130, 130, 130)', 'rgb(130, 130, 130)', 'rgb(128, 128, 128)', 'rgb(127, 127, 127)', 'rgb(127, 127, 127)', 'rgb(126, 126, 126)', 'rgb(125, 125, 125)', 'rgb(125, 125, 125)', 'rgb(122, 122, 122)', 'rgb(122, 122, 122)', 'rgb(120, 120, 120)', 'rgb(120, 120, 120)', 'rgb(117, 117, 117)', 'rgb(117, 117, 117)', 'rgb(115, 115, 115)', 'rgb(115, 115, 115)', 'rgb(112, 112, 112)', 'rgb(112, 112, 112)', 'rgb(110, 110, 110)', 'rgb(110, 110, 110)', 'rgb(107, 107, 107)', 'rgb(107, 107, 107)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(102, 102, 102)', 'rgb(102, 102, 102)', 'rgb( 99, 99, 99)', 'rgb( 99, 99, 99)', 'rgb( 97, 97, 97)', 'rgb( 97, 97, 97)', 'rgb( 94, 94, 94)', 'rgb( 94, 94, 94)', 'rgb( 92, 92, 92)', 'rgb( 92, 92, 92)', 'rgb( 89, 89, 89)', 'rgb( 89, 89, 89)', 'rgb( 87, 87, 87)', 'rgb( 87, 87, 87)', 'rgb( 84, 84, 84)', 'rgb( 84, 84, 84)', 'rgb( 82, 82, 82)', 'rgb( 82, 82, 82)', 'rgb( 79, 79, 79)', 'rgb( 79, 79, 79)', 'rgb( 77, 77, 77)', 'rgb( 77, 77, 77)', 'rgb( 74, 74, 74)', 'rgb( 74, 74, 74)', 'rgb( 71, 71, 71)', 'rgb( 71, 71, 71)', 'rgb( 69, 69, 69)', 'rgb( 69, 69, 69)', 'rgb( 66, 66, 66)', 'rgb( 66, 66, 66)', 'rgb( 64, 64, 64)', 'rgb( 64, 64, 64)', 'rgb( 61, 61, 61)', 'rgb( 61, 61, 61)', 'rgb( 59, 59, 59)', 'rgb( 59, 59, 59)', 'rgb( 56, 56, 56)', 'rgb( 56, 56, 56)', 'rgb( 54, 54, 54)', 'rgb( 54, 54, 54)', 'rgb( 51, 51, 51)', 'rgb( 51, 51, 51)', 'rgb( 48, 48, 48)', 'rgb( 48, 48, 48)', 'rgb( 46, 46, 46)', 'rgb( 46, 46, 46)', 'rgb( 43, 43, 43)', 'rgb( 43, 43, 43)', 'rgb( 41, 41, 41)', 'rgb( 41, 41, 41)', 'rgb( 38, 38, 38)', 'rgb( 38, 38, 38)', 'rgb( 36, 36, 36)', 'rgb( 36, 36, 36)', 'rgb( 33, 33, 33)', 'rgb( 33, 33, 33)', 'rgb( 31, 31, 31)', 'rgb( 31, 31, 31)', 'rgb( 28, 28, 28)', 'rgb( 28, 28, 28)', 'rgb( 26, 26, 26)', 'rgb( 26, 26, 26)', 'rgb( 23, 23, 23)', 'rgb( 23, 23, 23)', 'rgb( 20, 20, 20)', 'rgb( 20, 20, 20)', 'rgb( 18, 18, 18)', 'rgb( 18, 18, 18)', 'rgb( 15, 15, 15)', 'rgb( 15, 15, 15)', 'rgb( 13, 13, 13)', 'rgb( 13, 13, 13)', 'rgb( 10, 10, 10)', 'rgb( 10, 10, 10)', 'rgb( 8, 8, 8)', 'rgb( 8, 8, 8)', 'rgb( 5, 5, 5)', 'rgb( 5, 5, 5)', 'rgb( 3, 3, 3)', 'rgb( 3, 3, 3)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'white', 'white']
\ No newline at end of file diff --git a/frontend/imgrid/colors/colors/junk/ScrollEffect.js b/frontend/imgrid/colors/colors/junk/ScrollEffect.js new file mode 100755 index 0000000..ac8ca3f --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/ScrollEffect.js @@ -0,0 +1,86 @@ +var vt = function () { + var view_box, + scrolled_element, + scrolled_element_actualheight = 0, + new_scrolled_element_top_position = 0, + final_Landing_Spot = 0, + hidden_material = 0, + viewbox_actualheight = 0, + y_coordinate = 0; + + var velx; + var prevY; + // ----- setup jquery selectors, set mouse event, run function run on timer + var start = function (view_element, element_to_be_scrolled) { + + // ----- mouse event ----- + $('.colors').mousemove(function(e){ + y_coordinate = e.clientY; + velx = e.clientY - prevY; + }); + + // ----- selectors and variables + view_box = $('#'+view_element)[0];//.(view_element);//viewarea + scrolled_element = $('#'+element_to_be_scrolled)[0]; //container + viewbox_actualheight = view_box.offsetHeight;//always 850px + scrolled_element_actualheight = scrolled_element.offsetHeight; + hidden_material = scrolled_element_actualheight - viewbox_actualheight; + + + // ----- start engine ----- + + setInterval(run, 60);//previously 16, the higher the number, the easier it is on the browser + }; + ///////////////////////////////////////////////////////////////////////////// + + + // ----- main ----- all this function does is adjust the top position of the div + var run = function () { + + prevY = y_coordinate; + + //if velocity is negative, landing spot and scrolltop increase in value (you have to add it) + + //velocity function if velocity is high, final landing spot is high, + +//FINAL LANDING SPOT IS NO LONGER FINAL LANDING SPOT. INSTEAD it's +//how much the div will move + // ----- calculate the final landing spot +// if(y_coordinate < viewbox_actualheight){ //it almost always is + final_Landing_Spot = y_coordinate * -18.5//( hidden_material / viewbox_actualheight)*-1; //this is negative because it's adjusting top css + + $('#preview').html('x-velocity='+'scrolled element'+scrolled_element_offset_height+'thats it'+velx+'<br><span id="boners" style="position:absolute; z-index:1000;"></span>') +// } + /*this is the mouse position multiplied by the ratio of hidden to visible. this makes sense going in the negative direction, because + it allows the number to grow in proportion to how much invisible stuff there is...the issue is that the mouse position is small at the top of + the screen and large at the bottom...it needs to be equalized*/ + + + + // ----- function to determine easing + var velocity = (final_Landing_Spot - new_scrolled_element_top_position) + new_scrolled_element_top_position += Math.max(-25, Math.min(25, (final_Landing_Spot - new_scrolled_element_top_position))); + + + + + + + + + + + + + $('#boners').html('<span style="font-size:14"> final_Landing_Spot ='+(final_Landing_Spot - new_scrolled_element_top_position)+'<br>var vvvvvvelocity='+velocity+'<br> clientY='+y_coordinate+'<br>new scrolled top='+new_scrolled_element_top_position+'</span>') + // ----- HTML position ----- + scrolled_element.style.top = Math.round(new_scrolled_element_top_position) + 'px'; //and finally it's put in...continuously against the timer + + }; + + return { + //////////////////////////////////////////////////////////////////////////// + /* ==== public functions ==== */ + start : start, + } +}(); diff --git a/frontend/imgrid/colors/colors/junk/ScrollEffectcomingsoon.js b/frontend/imgrid/colors/colors/junk/ScrollEffectcomingsoon.js new file mode 100755 index 0000000..3388d5f --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/ScrollEffectcomingsoon.js @@ -0,0 +1,237 @@ +var vt = function () { + var view_box, + scrolled_element, + scrolled_element_actualheight = 0, + easing = 0, + final_resting_place = 0, + hidden_material = 0, + viewbox_actualheight = 0; + var y_coordinate = 0; + + var velocity; + var prevY; + var lastrested = 0; + // ----- setup jquery selectors, set mouse event, run function run on timer + var start = function (view_element, element_to_be_scrolled) { + + // ----- mouse event ----- + $('.colors').mousemove(function(e){ + y_coordinate = e.clientY; + velocity = e.clientY - prevY; + }); + velocity = y_coordinate - prevY + // ----- selectors and variables + view_box = $('#'+view_element)[0];//.(view_element);//viewarea + scrolled_element = $('#'+element_to_be_scrolled)[0]; //container + viewbox_actualheight = view_box.offsetHeight;//always 850px + scrolled_element_actualheight = scrolled_element.offsetHeight; + hidden_material = scrolled_element_actualheight - viewbox_actualheight; + + + // ----- timer ----- + + setInterval(run, 50);//previously 16, the higher the number, the easier it is on the browser + }; + ///////////////////////////////////////////////////////////////////////////// + + + // ----- main ----- all this function does is adjust the top position of the div + var run = function () { + + prevY = y_coordinate; + + //if velocity is negative, landing spot and scrolltop increase in value (you have to add it) + + //velocity function if velocity is high, final landing spot is high, + +//FINAL LANDING SPOT IS NO LONGER FINAL LANDING SPOT. INSTEAD it's +//how much the div will move + // ----- calculate the final landing spot +// if(y_coordinate < viewbox_actualheight){ //it almost always is + final_resting_place = velocity * -8 + // -18.5//( hidden_material / viewbox_actualheight)*-1; //this is negative because it's adjusting top css + var rush = velocity*.1 + + $('#preview').html('velocity='+velocity+'<br>rush='+rush+'<br><span id="boners" style="position:absolute; z-index:1000;"></span>') +// } + /*this is the mouse position multiplied by the ratio of hidden to visible. this makes sense going in the negative direction, because + it allows the number to grow in proportion to how much invisible stuff there is...the issue is that the mouse position is small at the top of + the screen and large at the bottom...it needs to be equalized*/ + + + + // ----- function to determine roll_to_zero + // var wheelshow; + var roll_to_zero; + // if(Math.abs(velocity)<10){roll_to_zero = roll_to_zero} + // else{ + roll_to_zero = (final_resting_place - easing) + // easing += Math.max(-25, Math.min(25, roll_to_zero));} + // easing += Math.max(-25, Math.min(25, roll_to_zero));} + if (roll_to_zero > 0) + {if (roll_to_zero > 8000) + {easing = easing + 100} + else if (roll_to_zero > 6000) + {easing = easing +50} + else if (roll_to_zero > 3000) + {easing = easing + 30} + else if (roll_to_zero > 1000) + {easing = easing + 20} + else if (roll_to_zero > 50) + {easing = easing +5} + else{easing = easing +1}} + else if (roll_to_zero < 0) + {if (roll_to_zero < 8000) + {easing = easing - 100} + else if (roll_to_zero < 6000) + {easing = easing -50} + else if (roll_to_zero < 3000) + {easing = easing - 30} + else if (roll_to_zero < 1000) + {easing = easing - 20} + else if (roll_to_zero < 50) + {easing = easing -1}} + else{easing = final_resting_place} + + if (roll_to_zero == 0){roll_to_zero = 0} + if (Math.abs(velocity) <= 50){roll_to_zero = 0} +// } + // easing = + //in other words if its less than 25(and moving down to zero), it uses 25 and if it's greater than 25 (moving up to zero) it uses 25. it will move + //faster going up if the Math.min(25, number is higher, but since the value is determined by the mouse cursor position it won't move as fast + + + + + + + + + + + $('#boners').html('<span style="font-size:14"><br>final resting place='+final_resting_place+'<br>var roll_to_zero='+roll_to_zero+'<br> clientY='+y_coordinate+'<br>easing='+easing+'</span>') + // ----- HTML position ----- + scrolled_element.style.top = Math.round(easing) + 'px'; //and finally it's put in...continuously against the timer + + }; +// var wheelshow = final_resting_place - lastrested; + // while(easing > 0){html = this div rightwheel} +// while(easing < 0){html = this div leftwheel.show} //wheel should be gray and transparent 3/4 view bg = colors under the mouseover + // if(easing == 0){hmtl = ''} + return { + //////////////////////////////////////////////////////////////////////////// + /* ==== public functions ==== */ + start : start, + } +}(); + + +/*minimap...how would it work? + +an image of the page... + +plus a div with a border + +there would have to be some sort of mathematical correllation to the window.height and the height of the div +against the minimap + + + + + +WHAT WE'VE GOT;;;;;;;;;;;;;;;;;;;;;;;;; +VELOCITY Y...A NUMBER THAT INDICATES THE CHANGE IN POSITION OF THE MOUSE + +HIDDENMATERIAL/VIEWBOX ACTUAL HeIGHT = 18.5 + +resting space range is -200 -1200 + + + +the way the algorithm works + + +final_top_position = (y coordinate)(-20) //some big number that's dependent on the y position + + +easing function...rolling toward the final_top_position + +[first off +the y coordinate shouldn't be based on the upper left (only because of VALUE, that's why it's easier to scroll down than up)] + +[e.pageY-($(window).height()*0.5)] + +value should be eradicated...we should instead use velocity which is DELTA. doesn't matter + + + roll_to_zero = (final_Landing_Spot - easing) first a destination spot is calculated, then easing takes place +new_scrolled_element + + + roll_to_zero = (final_Landing_Spot - easing)} + easing += Math.max(-25, Math.min(25, roll_to_zero)) + +instead of adjusting the height to the final landing spot, it becomes the easing value + +how easing works + x += Math.max(-25, Math.min(25, finalrestingplace-x));//as x approaches the final resting place, easing is used. 25 and -25 are used to traverse +long spaces more quickly + +where x = the current scroller position +as x becomes larger final resting place gets closer to 0 (it would actually be smaller, but we're dealing with negative values) + +the function is read from the inside out + +and of course, the statement that is missing is that x MUST be less than the overall distance travelable (which MUST be calculated) + +what's less important is the destination spot. more important would be the distance traveled per mouse move + +if the velocity is low, the distance is low, if the velocity is really high, it zooms to the end. + +before getting into specifics, for ease of reference lets say the velocity is has a range of -10 to 10, the over all distance traveled is 100px + +if the velocity is equal to range(-3,3) distance traved = 0 +if the velocity is between range(-4,-3) or range(3,4) distance traveled = 2 +if the velocity is between range (5,6) or (-5,-6) distance traveled would be 20 +if the velocity is between the range of 7,8 or -7,-8 the distance traveled would be 40 +if the velocity is between the range of 89 the velocity traveled would 80 +9-10 velocity is 160 + +0 +-12302 from the top is the current max + + + + + + + + +plotted out this looks like this + # + + + + + + + + # + + + + + # + + +__- __- __# __ __ __ __ __ __ __ __ __ + +essentially we want something that looks like this (0.3x)^5 +0.ax^b + +we can play with which exponent is right, but only choosing odd ones +where a is the stationary range number +and b is the new slope + + +this function is called on a timer*/ diff --git a/frontend/imgrid/colors/colors/junk/brush.ani b/frontend/imgrid/colors/colors/junk/brush.ani Binary files differnew file mode 100755 index 0000000..6da99b4 --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/brush.ani diff --git a/frontend/imgrid/colors/colors/junk/colordictOLD.js b/frontend/imgrid/colors/colors/junk/colordictOLD.js new file mode 100755 index 0000000..67220ca --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/colordictOLD.js @@ -0,0 +1,2 @@ +var hextoname = {'#EE1289': 'DeepPink2', '#EE8262': 'salmon2', '#C4C4C4': 'gray77', '#556B2F': 'DarkOliveGreen', '#FF8C00': 'DarkOrange', '#8B7B8B': 'thistle4', '#0000EE': 'blue2', '#EED5D2': 'MistyRose2', '#BA55D3': 'MediumOrchid', '#FFF5EE': 'seashell', '#912CEE': 'purple2', '#2F4F4F': 'DarkSlateGray', '#32814B': 'MediumForestGreen', '#D15FEE': 'MediumOrchid2', '#F0FFF0': 'honeydew', '#B23AEE': 'DarkOrchid2', '#8B7765': 'PeachPuff4', '#3D3D3D': 'gray24', '#54FF9F': 'SeaGreen1', '#636363': 'gray39', '#8B8386': 'LavenderBlush4', '#FF4040': 'brown1', '#EEA9B8': 'pink2', '#C2C2C2': 'gray76', '#800080': 'purple', '#545454': 'gray33', '#EE3A8C': 'VioletRed2', '#8A8A8A': 'gray54', '#FF00FF': 'fuchsia', '#436EEE': 'RoyalBlue2', '#8B864E': 'khaki4', '#0A0A0A': 'gray4', '#808000': 'olive', '#E3E3E3': 'gray89', '#1874CD': 'DodgerBlue3', '#BCD2EE': 'LightSteelBlue2', '#A9A9A9': 'DarkGray', '#F4A460': 'SandyBrown', '#FF3030': 'firebrick1', '#FFEBCD': 'BlanchedAlmond', '#B0C4DE': 'LightSteelBlue', '#00CDCD': 'cyan3', '#C0FF3E': 'OliveDrab1', '#FFD700': 'gold', '#242424': 'gray14', '#8B2252': 'VioletRed4', '#4EEE94': 'SeaGreen2', '#CD3278': 'VioletRed3', '#00E5EE': 'turquoise2', '#CD853F': 'peru', '#ADD8E6': 'LightBlue', '#C7C7C7': 'gray78', '#CD2990': 'maroon3', '#EEE5DE': 'seashell2', '#66CD00': 'chartreuse3', '#878787': 'gray53', '#FFA54F': 'tan1', '#A2B5CD': 'LightSteelBlue3', '#BC8F8F': 'RosyBrown', '#C9C9C9': 'gray79', '#D1C166': 'MediumGoldenRod', '#8B2323': 'brown4', '#B3EE3A': 'OliveDrab2', '#EEEED1': 'LightYellow2', '#AEEEEE': 'PaleTurquoise2', '#BDBDBD': 'gray74', '#FF7F00': 'DarkOrange1', '#FFC0CB': 'pink', '#EE3B3B': 'brown2', '#CDC8B1': 'cornsilk3', '#CDB38B': 'NavajoWhite3', '#CDBA96': 'wheat3', '#B4EEB4': 'DarkSeaGreen2', '#40E0D0': 'turquoise', '#8B795E': 'NavajoWhite4', '#27408B': 'RoyalBlue4', '#424242': 'gray26', '#CDB7B5': 'MistyRose3', '#CAE1FF': 'LightSteelBlue1', '#F0FFFF': 'azure', '#2E8B57': 'SeaGreen', '#87CEEB': 'SkyBlue', '#CD00CD': 'magenta3', '#CDAA7D': 'burlywood3', '#836FFF': 'SlateBlue1', '#ABABAB': 'gray67', '#EEB4B4': 'RosyBrown2', '#8B7355': 'burlywood4', '#F0E68C': 'khaki', '#CDCDB4': 'LightYellow3', '#4D4D4D': 'gray30', '#B8B8B8': 'gray72', '#B4CDCD': 'LightCyan3', '#008B8B': 'cyan4', '#828282': 'gray51', '#00EEEE': 'cyan2', '#708090': 'SlateGray', '#9AFF9A': 'PaleGreen1', '#FFA07A': 'LightSalmon', '#EBEBEB': 'gray92', '#FFB5C5': 'pink1', '#00688B': 'DeepSkyBlue4', '#DBDBDB': 'gray86', '#191970': 'MidnightBlue', '#FF83FA': 'orchid1', '#A1A1A1': 'gray63', '#838B8B': 'azure4', '#FFA500': 'orange', '#00FF7F': 'SpringGreen', '#EEAD0E': 'DarkGoldenrod2', '#B03060': 'maroon', '#96CDCD': 'PaleTurquoise3', '#CD3333': 'brown3', '#CDBE70': 'LightGoldenrod3', '#7CCD7C': 'PaleGreen3', '#97FFFF': 'DarkSlateGray1', '#DAA520': 'goldenrod', '#8B3A3A': 'IndianRed4', '#6B6B6B': 'gray42', '#FFFAF0': 'FloralWhite', '#757575': 'gray46', '#BFBFBF': 'gray75', '#00EE76': 'SpringGreen2', '#FFFAFA': 'snow', '#6E8B3D': 'DarkOliveGreen4', '#EEE685': 'khaki2', '#FF3E96': 'VioletRed1', '#EE0000': 'red2', '#FDF5E6': 'OldLace', '#E066FF': 'MediumOrchid1', '#8DB6CD': 'LightSkyBlue3', '#FF7256': 'coral1', '#7CFC00': 'LawnGreen', '#838B83': 'honeydew4', '#BF3EFF': 'DarkOrchid1', '#8B6914': 'goldenrod4', '#00CD66': 'SpringGreen3', '#525252': 'gray32', '#A4D3EE': 'LightSkyBlue2', '#00868B': 'turquoise4', '#8DEEEE': 'DarkSlateGray2', '#787878': 'gray47', '#8B1C62': 'maroon4', '#616161': 'gray38', '#4876FF': 'RoyalBlue1', '#9F79EE': 'MediumPurple2', '#212121': 'gray13', '#C1CDC1': 'honeydew3', '#CD69C9': 'orchid3', '#E0EEEE': 'azure2', '#8B7E66': 'wheat4', '#8A2BE2': 'BlueViolet', '#CDCD00': 'yellow3', '#EE5C42': 'tomato2', '#6E6E6E': 'gray43', '#EEAEEE': 'plum2', '#DC143C': 'crimson', '#CD919E': 'pink3', '#528B8B': 'DarkSlateGray4', '#AFEEEE': 'PaleTurquoise', '#CD6889': 'PaleVioletRed3', '#E6E6FA': 'lavender', '#EE00EE': 'magenta2', '#999999': 'gray60', '#F0F8FF': 'AliceBlue', '#595959': 'gray35', '#FF7F50': 'coral', '#A6A6A6': 'gray65', '#DEDEDE': 'gray87', '#262626': 'gray15', '#6CA6CD': 'SkyBlue3', '#8B8B83': 'ivory4', '#474747': 'gray28', '#F7F7F7': 'gray97', '#548B54': 'PaleGreen4', '#48D1CC': 'MediumTurquoise', '#C1CDCD': 'azure3', '#E0EEE0': 'honeydew2', '#FFB90F': 'DarkGoldenrod1', '#FFD39B': 'burlywood1', '#8B5A2B': 'tan4', '#EEE9BF': 'LemonChiffon2', '#BCEE68': 'DarkOliveGreen2', '#8470FF': 'LightSlateBlue', '#8B0A50': 'DeepPink4', '#FFF68F': 'khaki1', '#EEA2AD': 'LightPink2', '#CD5B45': 'coral3', '#7FFF00': 'chartreuse', '#8B8378': 'AntiqueWhite4', '#9BCD9B': 'DarkSeaGreen3', '#454545': 'gray27', '#D1D1D1': 'gray82', '#EEE8AA': 'PaleGoldenrod', '#668B8B': 'PaleTurquoise4', '#EE30A7': 'maroon2', '#FFC125': 'goldenrod1', '#8B475D': 'PaleVioletRed4', '#D8BFD8': 'thistle', '#404040': 'gray25', '#EEEE00': 'yellow2', '#CDB5CD': 'thistle3', '#00C5CD': 'turquoise3', '#00CED1': 'DarkTurquoise', '#CFCFCF': 'gray81', '#008B00': 'green4', '#7A7A7A': 'gray48', '#B8860B': 'DarkGoldenrod', '#1C86EE': 'DodgerBlue2', '#8B5742': 'LightSalmon4', '#1A1A1A': 'gray10', '#8B008B': 'DarkMagenta', '#0F0F0F': 'gray6', '#CD3700': 'OrangeRed3', '#7F7F7F': 'gray50', '#FF6EB4': 'HotPink1', '#6959CD': 'SlateBlue3', '#90EE90': 'LightGreen', '#8B4789': 'orchid4', '#EE7AE9': 'orchid2', '#8968CD': 'MediumPurple3', '#080808': 'gray3', '#CDC9C9': 'snow3', '#BDB76B': 'DarkKhaki', '#9370DB': 'MediumPurple', '#EEDC82': 'LightGoldenrod2', '#3CB371': 'MediumSeaGreen', '#F5FFFA': 'MintCream', '#303030': 'gray19', '#B9D3EE': 'SlateGray2', '#575757': 'gray34', '#F5F5DC': 'beige', '#BABABA': 'gray73', '#0000CD': 'blue3', '#FF8247': 'sienna1', '#F2F2F2': 'gray95', '#EED5B7': 'bisque2', '#FFEC8B': 'LightGoldenrod1', '#EE7600': 'DarkOrange2', '#8B636C': 'pink4', '#8B814C': 'LightGoldenrod4', '#FFE4B5': 'moccasin', '#4F94CD': 'SteelBlue3', '#CDAD00': 'gold3', '#CD5555': 'IndianRed3', '#8B7500': 'gold4', '#473C8B': 'SlateBlue4', '#B0E0E6': 'PowderBlue', '#FFFF00': 'yellow', '#CD96CD': 'plum3', '#006400': 'DarkGreen', '#FAFAFA': 'gray98', '#53868B': 'CadetBlue4', '#8B4513': 'chocolate4', '#98FB98': 'PaleGreen', '#63B8FF': 'SteelBlue1', '#FFAEB9': 'LightPink1', '#EE6A50': 'coral2', '#87CEFF': 'SkyBlue1', '#87CEFA': 'LightSkyBlue', '#ADFF2F': 'GreenYellow', '#008B45': 'SpringGreen4', '#EE4000': 'OrangeRed2', '#8B6969': 'RosyBrown4', '#00008B': 'blue4', '#DB7093': 'PaleVioletRed', '#7EC0EE': 'SkyBlue2', '#3B3B3B': 'gray23', '#8C8C8C': 'gray55', '#5F9EA0': 'cadet blue', '#EE799F': 'PaleVioletRed2', '#CD6090': 'HotPink3', '#8B8682': 'seashell4', '#458B74': 'aquamarine4', '#EECFA1': 'NavajoWhite2', '#76EE00': 'chartreuse2', '#000080': 'navy', '#228B22': 'ForestGreen', '#8B8B00': 'yellow4', '#B5B5B5': 'gray71', '#CD950C': 'DarkGoldenrod3', '#EE82EE': 'violet', '#EDEDED': 'gray93', '#F5DEB3': 'wheat', '#3A5FCD': 'RoyalBlue3', '#00FA9A': 'MediumSpringGreen', '#F0F0F0': 'gray94', '#D1EEEE': 'LightCyan2', '#2E2E2E': 'gray18', '#EEC591': 'burlywood2', '#8B3E2F': 'coral4', '#CD8162': 'LightSalmon3', '#9AC0CD': 'LightBlue3', '#8B8989': 'snow4', '#EED8AE': 'wheat2', '#551A8B': 'purple4', '#919191': 'gray57', '#949494': 'gray58', '#778899': 'LightSlateGray', '#FFFACD': 'LemonChiffon', '#458B00': 'chartreuse4', '#008000': 'green', '#FFFFF0': 'ivory', '#E0E0E0': 'gray88', '#EEB422': 'goldenrod2', '#A020F0': 'purple', '#5CACEE': 'SteelBlue2', '#CD4F39': 'tomato3', '#CDC0B0': 'AntiqueWhite3', '#6E7B8B': 'LightSteelBlue4', '#9E9E9E': 'gray62', '#CDC673': 'khaki3', '#104E8B': 'DodgerBlue4', '#E0FFFF': 'LightCyan', '#FFFFFF': 'white', '#6C7B8B': 'SlateGray4', '#FFC1C1': 'RosyBrown1', '#D6D6D6': 'gray84', '#8B4726': 'sienna4', '#CD9B1D': 'goldenrod3', '#FF6347': 'tomato', '#FF34B3': 'maroon1', '#7D7D7D': 'gray49', '#121212': 'gray7', '#B0E2FF': 'LightSkyBlue1', '#8B3A62': 'HotPink4', '#CD5C5C': 'IndianRed', '#4A4A4A': 'gray29', '#B0B0B0': 'gray69', '#D9D9D9': 'gray85', '#A2CD5A': 'DarkOliveGreen3', '#8B0000': 'DarkRed', '#FF6A6A': 'IndianRed1', '#CD6600': 'DarkOrange3', '#FFEFDB': 'AntiqueWhite1', '#E9967A': 'DarkSalmon', '#EEE9E9': 'snow2', '#D4D4D4': 'gray83', '#383838': 'gray22', '#7A67EE': 'SlateBlue2', '#4169E1': 'RoyalBlue', '#5E5E5E': 'gray37', '#00F5FF': 'turquoise1', '#FFEFD5': 'PapayaWhip', '#CDAF95': 'PeachPuff3', '#CCCCCC': 'gray80', '#00BFFF': 'DeepSkyBlue', '#CDB79E': 'bisque3', '#969696': 'gray59', '#4F4F4F': 'gray31', '#1E90FF': 'DodgerBlue', '#FCFCFC': 'gray99', '#EE2C2C': 'firebrick2', '#8B6508': 'DarkGoldenrod4', '#696969': 'DimGray', '#FF7F24': 'chocolate1', '#8FBC8F': 'DarkSeaGreen', '#66CDAA': 'aquamarine3', '#6495ED': 'CornflowerBlue', '#0D0D0D': 'gray5', '#EEE0E5': 'LavenderBlush2', '#666666': 'gray40', '#B2DFEE': 'LightBlue2', '#B22222': 'firebrick', '#4B0082': 'indigo', '#FF82AB': 'PaleVioletRed1', '#AB82FF': 'MediumPurple1', '#79CDCD': 'DarkSlateGray3', '#FFE4C4': 'bisque', '#DEB887': 'burlywood', '#5D478B': 'MediumPurple4', '#8B3626': 'tomato4', '#FFFFE0': 'LightYellow', '#FFE4E1': 'MistyRose', '#171717': 'gray9', '#EEDFCC': 'AntiqueWhite2', '#9400D3': 'DarkViolet', '#BFEFFF': 'LightBlue1', '#8B7D6B': 'bisque4', '#FF8C69': 'salmon1', '#C6E2FF': 'SlateGray1', '#1C1C1C': 'gray11', '#FF4500': 'OrangeRed', '#FFE7BA': 'wheat1', '#808080': 'fractal', '#EE9572': 'LightSalmon2', '#CD8500': 'orange3', '#8B5A00': 'orange4', '#9932CC': 'DarkOrchid', '#EECBAD': 'PeachPuff2', '#CD8C95': 'LightPink3', '#292929': 'gray16', '#CD1076': 'DeepPink3', '#7A378B': 'MediumOrchid4', '#FF0000': 'red', '#698B22': 'OliveDrab4', '#ADADAD': 'gray68', '#EEE8CD': 'cornsilk2', '#DDA0DD': 'plum', '#7D26CD': 'purple3', '#DA70D6': 'orchid', '#DCDCDC': 'gainsboro', '#68228B': 'DarkOrchid4', '#7B68EE': 'MediumSlateBlue', '#000000': 'black', '#6B8E23': 'OliveDrab', '#FF69B4': 'HotPink', '#800000': 'maroon', '#8B668B': 'plum4', '#363636': 'gray21', '#8B4500': 'DarkOrange4', '#D3D3D3': 'LightGray', '#607B8B': 'LightSkyBlue4', '#F08080': 'LightCoral', '#CD9B9B': 'RosyBrown3', '#76EEC6': 'aquamarine2', '#FAEBD7': 'AntiqueWhite', '#68838B': 'LightBlue4', '#7FFFD4': 'aquamarine', '#C0C0C0': 'silver', '#EEDD82': 'LightGoldenrod', '#EE9A49': 'tan2', '#4A708B': 'SkyBlue4', '#008080': 'teal', '#7AC5CD': 'CadetBlue3', '#98F5FF': 'CadetBlue1', '#8B2500': 'OrangeRed4', '#8F8F8F': 'gray56', '#FFF0F5': 'LavenderBlush', '#8B8970': 'LemonChiffon4', '#8B8878': 'cornsilk4', '#6A5ACD': 'SlateBlue', '#4682B4': 'SteelBlue', '#EEEEE0': 'ivory2', '#B3B3B3': 'gray70', '#00FF00': 'green1', '#FFDEAD': 'NavajoWhite', '#CD2626': 'firebrick3', '#8B4C39': 'salmon4', '#9B30FF': 'purple1', '#E5E5E5': 'gray90', '#36648B': 'SteelBlue4', '#9C9C9C': 'gray61', '#F8F8FF': 'GhostWhite', '#333333': 'gray20', '#5C5C5C': 'gray36', '#737373': 'gray45', '#EEC900': 'gold2', '#FFE1FF': 'thistle1', '#C1FFC1': 'DarkSeaGreen1', '#CDC5BF': 'seashell3', '#A0522D': 'sienna', '#8B5F65': 'LightPink4', '#CDC1C5': 'LavenderBlush3', '#EE7621': 'chocolate2', '#FFBBFF': 'plum1', '#CD6839': 'sienna3', '#698B69': 'DarkSeaGreen4', '#050505': 'gray2', '#CD661D': 'chocolate3', '#FAFAD2': 'LightGoldenrodYellow', '#CDCDC1': 'ivory3', '#FFF8DC': 'cornsilk', '#A8A8A8': 'gray66', '#B452CD': 'MediumOrchid3', '#D2B48C': 'tan', '#8EE5EE': 'CadetBlue2', '#483D8B': 'DarkSlateBlue', '#BBFFFF': 'PaleTurquoise1', '#0000FF': 'blue', '#EE6AA7': 'HotPink2', '#EE7942': 'sienna2', '#00CD00': 'green3', '#141414': 'gray8', '#9ACD32': 'OliveDrab3', '#C71585': 'MediumVioletRed', '#EE9A00': 'orange2', '#CAFF70': 'DarkOliveGreen1', '#F5F5F5': 'gray96', '#32CD32': 'LimeGreen', '#00EE00': 'green2', '#FFB6C1': 'LightPink', '#8B1A1A': 'firebrick4', '#00B2EE': 'DeepSkyBlue2', '#20B2AA': 'LightSeaGreen', '#707070': 'gray44', '#009ACD': 'DeepSkyBlue3', '#A52A2A': 'brown', '#EE6363': 'IndianRed2', '#FAF0E6': 'linen', '#8B7D7B': 'MistyRose4', '#9A32CD': 'DarkOrchid3', '#1F1F1F': 'gray12', '#E8E8E8': 'gray91', '#7E7E7E': 'gray', '#7A8B8B': 'LightCyan4', '#CD7054': 'salmon3', '#9FB6CD': 'SlateGray3', '#CDC9A5': 'LemonChiffon3', '#D02090': 'VioletRed', '#00FFFF': 'aqua', '#2B2B2B': 'gray17', '#858585': 'gray52', '#A3A3A3': 'gray64', '#CD0000': 'red3', '#43CD80': 'SeaGreen3', '#FA8072': 'salmon', '#FFDAB9': 'PeachPuff', '#D2691E': 'chocolate', '#FF1493': 'DeepPink', '#EED2EE': 'thistle2', '#030303': 'gray1', '#8B8B7A': 'LightYellow4'} +var nametohex = {'grey21': '#363636', 'yellow': '#FFFF00', 'grey61': '#9C9C9C', 'HotPink3': '#CD6090', 'grey63': '#A1A1A1', 'grey62': '#9E9E9E', 'grey65': '#A6A6A6', 'AliceBlue': '#F0F8FF', 'grey67': '#ABABAB', 'grey66': '#A8A8A8', 'LightCyan1': '#E0FFFF', 'grey68': '#ADADAD', 'LightCyan3': '#B4CDCD', 'LightCyan2': '#D1EEEE', 'LightCyan4': '#7A8B8B', 'gray32': '#525252', 'gray33': '#545454', 'DarkTurquoise': '#00CED1', 'gray31': '#4F4F4F', 'gray36': '#5C5C5C', 'gray37': '#5E5E5E', 'gray34': '#575757', 'gray35': '#595959', 'aquamarine4': '#458B74', 'gray38': '#616161', 'gray39': '#636363', 'aquamarine1': '#7FFFD4', 'aquamarine3': '#66CDAA', 'aquamarine2': '#76EEC6', 'CadetBlue4': '#53868B', 'CadetBlue3': '#7AC5CD', 'CadetBlue2': '#8EE5EE', 'CadetBlue1': '#98F5FF', 'crimson': '#DC143C', 'VioletRed1': '#FF3E96', 'VioletRed2': '#EE3A8C', 'VioletRed3': '#CD3278', 'VioletRed4': '#8B2252', 'brown': '#A52A2A', 'DarkGoldenrod': '#B8860B', 'gray8': '#141414', 'SlateGrey': '#708090', 'NavajoWhite2': '#EECFA1', 'gray2': '#050505', 'cyan': '#00FFFF', 'gray0': '#000000', 'gray1': '#030303', 'fractal': '#808080', 'gray7': '#121212', 'gray4': '#0A0A0A', 'gray5': '#0D0D0D', 'grey60': '#999999', 'DarkBlue': '#00008B', 'gray98': '#FAFAFA', 'DarkKhaki': '#BDB76B', 'gray99': '#FCFCFC', 'teal': '#008080', 'grey11': '#1C1C1C', 'coral4': '#8B3E2F', 'grey12': '#1F1F1F', 'grey64': '#A3A3A3', 'PaleGreen1': '#9AFF9A', 'PaleGreen3': '#7CCD7C', 'PaleGreen2': '#90EE90', 'PaleGreen4': '#548B54', 'grey14': '#242424', 'lavender': '#E6E6FA', 'grey15': '#262626', 'chartreuse3': '#66CD00', 'chartreuse2': '#76EE00', 'chartreuse1': '#7FFF00', 'chartreuse4': '#458B00', 'RosyBrown': '#BC8F8F', 'blue': '#0000FF', 'NavajoWhite': '#FFDEAD', 'opaque': '#000000', 'maroon4': '#8B1C62', 'maroon3': '#CD2990', 'maroon2': '#EE30A7', 'maroon1': '#FF34B3', 'gold3': '#CDAD00', 'gold2': '#EEC900', 'gold1': '#FFD700', 'gold4': '#8B7500', 'LightSlateGrey': '#778899', 'gray30': '#4D4D4D', 'DarkGreen': '#006400', 'SkyBlue': '#87CEEB', 'GhostWhite': '#F8F8FF', 'LavenderBlush': '#FFF0F5', 'SeaGreen': '#2E8B57', 'BlanchedAlmond': '#FFEBCD', 'gray60': '#999999', 'DarkOliveGreen': '#556B2F', 'firebrick2': '#EE2C2C', 'firebrick1': '#FF3030', 'firebrick4': '#8B1A1A', 'sienna': '#A0522D', 'blue1': '#0000FF', 'lime': '#00FF00', 'gray55': '#8C8C8C', 'blue2': '#0000EE', 'DarkViolet': '#9400D3', 'blue4': '#00008B', 'peru': '#CD853F', 'DarkMagenta': '#8B008B', 'LightBlue2': '#B2DFEE', 'red2': '#EE0000', 'red1': '#FF0000', 'LightBlue1': '#BFEFFF', 'LightBlue4': '#68838B', 'red4': '#8B0000', 'MediumSpringGreen': '#00FA9A', 'chocolate': '#D2691E', 'ForestGreen': '#228B22', 'DarkRed': '#8B0000', 'olive': '#808000', 'HotPink2': '#EE6AA7', 'HotPink1': '#FF6EB4', 'HotPink4': '#8B3A62', 'grey18': '#2E2E2E', 'grey19': '#303030', 'none': '#000000', 'PeachPuff': '#FFDAB9', 'MediumGoldenRod': '#D1C166', 'moccasin': '#FFE4B5', 'grey10': '#1A1A1A', 'chocolate1': '#FF7F24', 'chocolate2': '#EE7621', 'chocolate3': '#CD661D', 'chocolate4': '#8B4513', 'wheat2': '#EED8AE', 'grey16': '#292929', 'grey17': '#2B2B2B', 'gray69': '#B0B0B0', 'gray68': '#ADADAD', 'gray65': '#A6A6A6', 'gray64': '#A3A3A3', 'gray67': '#ABABAB', 'gray66': '#A8A8A8', 'gray61': '#9C9C9C', 'coral': '#FF7F50', 'gray63': '#A1A1A1', 'gray62': '#9E9E9E', 'LightGoldenrod': '#EEDD82', 'turquoise4': '#00868B', 'seashell2': '#EEE5DE', 'seashell3': '#CDC5BF', 'magenta': '#FF00FF', 'seashell1': '#FFF5EE', 'tan': '#D2B48C', 'seashell4': '#8B8682', 'pink': '#FFC0CB', 'LightSlateBlue': '#8470FF', 'SteelBlue1': '#63B8FF', 'SteelBlue3': '#4F94CD', 'SteelBlue2': '#5CACEE', 'SteelBlue4': '#36648B', 'grey89': '#E3E3E3', 'grey88': '#E0E0E0', 'grey87': '#DEDEDE', 'grey86': '#DBDBDB', 'grey85': '#D9D9D9', 'grey84': '#D6D6D6', 'grey83': '#D4D4D4', 'grey82': '#D1D1D1', 'grey81': '#CFCFCF', 'grey80': '#CCCCCC', 'ivory2': '#EEEEE0', 'khaki4': '#8B864E', 'khaki1': '#FFF68F', 'khaki2': '#EEE685', 'khaki3': '#CDC673', 'salmon1': '#FF8C69', 'salmon3': '#CD7054', 'salmon2': '#EE8262', 'salmon4': '#8B4C39', 'LightPink': '#FFB6C1', 'gray9': '#171717', 'green': '#008000', 'brown2': '#EE3B3B', 'brown3': '#CD3333', 'brown1': '#FF4040', 'brown4': '#8B2323', 'cadet blue': '#5F9EA0', 'orange4': '#8B5A00', 'orange1': '#FFA500', 'orange3': '#CD8500', 'orange2': '#EE9A00', 'gray3': '#080808', 'gray6': '#0F0F0F', 'yellow4': '#8B8B00', 'yellow3': '#CDCD00', 'yellow2': '#EEEE00', 'yellow1': '#FFFF00', 'PapayaWhip': '#FFEFD5', 'bisque2': '#EED5B7', 'OliveDrab4': '#698B22', 'bisque3': '#CDB79E', 'OliveDrab1': '#C0FF3E', 'OliveDrab2': '#B3EE3A', 'OliveDrab3': '#9ACD32', 'SkyBlue4': '#4A708B', 'SkyBlue1': '#87CEFF', 'SkyBlue3': '#6CA6CD', 'SkyBlue2': '#7EC0EE', 'grey58': '#949494', 'grey59': '#969696', 'grey54': '#8A8A8A', 'grey55': '#8C8C8C', 'grey56': '#8F8F8F', 'grey57': '#919191', 'grey50': '#7F7F7F', 'silver': '#C0C0C0', 'grey52': '#858585', 'grey53': '#878787', 'cyan2': '#00EEEE', 'cyan3': '#00CDCD', 'gray23': '#3B3B3B', 'RosyBrown4': '#8B6969', 'gray25': '#404040', 'CornflowerBlue': '#6495ED', 'cyan4': '#008B8B', 'gray26': '#424242', 'gray29': '#4A4A4A', 'LimeGreen': '#32CD32', 'MistyRose': '#FFE4E1', 'navy': '#000080', 'gray94': '#F0F0F0', 'gray95': '#F2F2F2', 'gray96': '#F5F5F5', 'gray97': '#F7F7F7', 'gray90': '#E5E5E5', 'gray91': '#E8E8E8', 'gray92': '#EBEBEB', 'gray93': '#EDEDED', 'MediumPurple': '#9370DB', 'MidnightBlue': '#191970', 'cornsilk': '#FFF8DC', 'red': '#FF0000', 'grey69': '#B0B0B0', 'DarkOrchid4': '#68228B', 'blue3': '#0000CD', 'LightSteelBlue': '#B0C4DE', 'DarkOrchid1': '#BF3EFF', 'DarkOrchid2': '#B23AEE', 'DarkOrchid3': '#9A32CD', 'grey72': '#B8B8B8', 'FloralWhite': '#FFFAF0', 'grey70': '#B3B3B3', 'DarkSeaGreen': '#8FBC8F', 'grey71': '#B5B5B5', 'gray17': '#2B2B2B', 'grey77': '#C4C4C4', 'tomato4': '#8B3626', 'tomato1': '#FF6347', 'tomato3': '#CD4F39', 'tomato2': '#EE5C42', 'DarkSlateGray1': '#97FFFF', 'DarkSlateGray2': '#8DEEEE', 'DarkSlateGray3': '#79CDCD', 'DarkSlateGray4': '#528B8B', 'SteelBlue': '#4682B4', 'MediumSlateBlue': '#7B68EE', 'OrangeRed': '#FF4500', 'grey79': '#C9C9C9', 'MediumVioletRed': '#C71585', 'burlywood': '#DEB887', 'white': '#FFFFFF', 'tomato': '#FF6347', 'DodgerBlue': '#1E90FF', 'RoyalBlue4': '#27408B', 'RoyalBlue1': '#4876FF', 'RoyalBlue3': '#3A5FCD', 'RoyalBlue2': '#436EEE', 'MistyRose1': '#FFE4E1', 'MistyRose3': '#CDB7B5', 'MistyRose2': '#EED5D2', 'MistyRose4': '#8B7D7B', 'LightGray': '#D3D3D3', 'LightYellow': '#FFFFE0', 'DarkOrange': '#FF8C00', 'DarkGray': '#A9A9A9', 'SlateGray': '#708090', 'turquoise3': '#00C5CD', 'turquoise2': '#00E5EE', 'turquoise1': '#00F5FF', 'burlywood2': '#EEC591', 'burlywood4': '#8B7355', 'DarkSlateGray': '#2F4F4F', 'linen': '#FAF0E6', 'grey47': '#787878', 'snow': '#FFFAFA', 'grey46': '#757575', 'gray58': '#949494', 'gray59': '#969696', 'IndianRed4': '#8B3A3A', 'purple4': '#551A8B', 'gray52': '#858585', 'gray53': '#878787', 'purple1': '#9B30FF', 'IndianRed1': '#FF6A6A', 'purple3': '#7D26CD', 'purple2': '#912CEE', 'thistle3': '#CDB5CD', 'thistle2': '#EED2EE', 'SpringGreen2': '#00EE76', 'SpringGreen3': '#00CD66', 'SpringGreen4': '#008B45', 'thistle4': '#8B7B8B', 'LightPink2': '#EEA2AD', 'LightPink3': '#CD8C95', 'LightPink1': '#FFAEB9', 'LightPink4': '#8B5F65', 'MediumPurple1': '#AB82FF', 'MediumPurple2': '#9F79EE', 'MediumPurple3': '#8968CD', 'MediumPurple4': '#5D478B', 'MediumTurquoise': '#48D1CC', 'DimGray': '#696969', 'gray14': '#242424', 'grey100': '#FFFFFF', 'OrangeRed3': '#CD3700', 'OrangeRed2': '#EE4000', 'OrangeRed1': '#FF4500', 'LightSeaGreen': '#20B2AA', 'gold': '#FFD700', 'OrangeRed4': '#8B2500', 'NavajoWhite4': '#8B795E', 'NavajoWhite1': '#FFDEAD', 'LawnGreen': '#7CFC00', 'NavajoWhite3': '#CDB38B', 'LightGoldenrod4': '#8B814C', 'LightGoldenrod1': '#FFEC8B', 'LightGoldenrod3': '#CDBE70', 'LightGoldenrod2': '#EEDC82', 'gray21': '#363636', 'PaleGreen': '#98FB98', 'green4': '#008B00', 'green1': '#00FF00', 'green3': '#00CD00', 'green2': '#00EE00', 'MediumOrchid': '#BA55D3', 'black': '#000000', 'gray20': '#333333', 'orchid4': '#8B4789', 'DodgerBlue1': '#1E90FF', 'DodgerBlue2': '#1C86EE', 'DodgerBlue3': '#1874CD', 'DodgerBlue4': '#104E8B', 'orchid1': '#FF83FA', 'orchid2': '#EE7AE9', 'orchid3': '#CD69C9', 'DarkSeaGreen4': '#698B69', 'DarkSeaGreen3': '#9BCD9B', 'DarkSeaGreen2': '#B4EEB4', 'DarkSeaGreen1': '#C1FFC1', 'gray100': '#FFFFFF', 'BlueViolet': '#8A2BE2', 'bisque4': '#8B7D6B', 'MediumOrchid4': '#7A378B', 'MintCream': '#F5FFFA', 'MediumOrchid1': '#E066FF', 'bisque1': '#FFE4C4', 'MediumOrchid3': '#B452CD', 'MediumOrchid2': '#D15FEE', 'gray': '#7E7E7E', 'DeepSkyBlue': '#00BFFF', 'LightGrey': '#D3D3D3', 'grey78': '#C7C7C7', 'gray22': '#383838', 'plum4': '#8B668B', 'plum3': '#CD96CD', 'plum2': '#EEAEEE', 'plum1': '#FFBBFF', 'DarkSlateGrey': '#2F4F4F', 'DarkOrchid': '#9932CC', 'OliveDrab': '#6B8E23', 'gray83': '#D4D4D4', 'grey49': '#7D7D7D', 'grey48': '#7A7A7A', 'thistle': '#D8BFD8', 'violet': '#EE82EE', 'grey43': '#6E6E6E', 'grey42': '#6B6B6B', 'LightSalmon4': '#8B5742', 'grey40': '#666666', 'LightSalmon2': '#EE9572', 'LightSalmon3': '#CD8162', 'grey45': '#737373', 'LightSalmon1': '#FFA07A', 'honeydew': '#F0FFF0', 'gray18': '#2E2E2E', 'gray19': '#303030', 'LightCyan': '#E0FFFF', 'gray15': '#262626', 'gray16': '#292929', 'gray82': '#D1D1D1', 'gray10': '#1A1A1A', 'gray11': '#1C1C1C', 'gray12': '#1F1F1F', 'gray13': '#212121', 'grey93': '#EDEDED', 'PaleGoldenrod': '#EEE8AA', 'gainsboro': '#DCDCDC', 'AntiqueWhite3': '#CDC0B0', 'AntiqueWhite2': '#EEDFCC', 'AntiqueWhite1': '#FFEFDB', 'gray27': '#454545', 'SlateBlue': '#6A5ACD', 'AntiqueWhite4': '#8B8378', 'DimGrey': '#696969', 'VioletRed': '#D02090', 'WhiteSmoke': '#F5F5F5', 'grey38': '#616161', 'grey39': '#636363', 'grey36': '#5C5C5C', 'grey37': '#5E5E5E', 'grey34': '#575757', 'grey35': '#595959', 'aqua': '#00FFFF', 'grey33': '#545454', 'grey30': '#4D4D4D', 'grey31': '#4F4F4F', 'NavyBlue': '#000080', 'sienna4': '#8B4726', 'gray81': '#CFCFCF', 'gray80': '#CCCCCC', 'sienna1': '#FF8247', 'gray86': '#DBDBDB', 'sienna3': '#CD6839', 'sienna2': '#EE7942', 'gray89': '#E3E3E3', 'gray88': '#E0E0E0', 'SlateBlue4': '#473C8B', 'gray87': '#DEDEDE', 'LightSteelBlue1': '#CAE1FF', 'magenta3': '#CD00CD', 'IndianRed': '#CD5C5C', 'SlateBlue2': '#7A67EE', 'SlateBlue1': '#836FFF', 'LightBlue': '#ADD8E6', 'PeachPuff4': '#8B7765', 'seashell': '#FFF5EE', 'SaddleBrown': '#8B4513', 'PeachPuff1': '#FFDAB9', 'PeachPuff2': '#EECBAD', 'PeachPuff3': '#CDAF95', 'aquamarine': '#7FFFD4', 'LemonChiffon2': '#EEE9BF', 'LemonChiffon1': '#FFFACD', 'tan4': '#8B5A2B', 'tan3': '#CD853F', 'tan2': '#EE9A49', 'tan1': '#FFA54F', 'LemonChiffon4': '#8B8970', 'orange': '#FFA500', 'OldLace': '#FDF5E6', 'PowderBlue': '#B0E0E6', 'RosyBrown3': '#CD9B9B', 'RoyalBlue': '#4169E1', 'LightSkyBlue4': '#607B8B', 'LightSkyBlue1': '#B0E2FF', 'LightSkyBlue2': '#A4D3EE', 'LightSkyBlue3': '#8DB6CD', 'LightYellow1': '#FFFFE0', 'LightYellow2': '#EEEED1', 'LightYellow3': '#CDCDB4', 'LightYellow4': '#8B8B7A', 'goldenrod4': '#8B6914', 'goldenrod1': '#FFC125', 'goldenrod2': '#EEB422', 'goldenrod3': '#CD9B1D', 'grey32': '#525252', 'LemonChiffon': '#FFFACD', 'burlywood1': '#FFD39B', 'YellowGreen': '#9ACD32', 'LightCoral': '#F08080', 'burlywood3': '#CDAA7D', 'ivory3': '#CDCDC1', 'firebrick3': '#CD2626', 'ivory1': '#FFFFF0', 'grey8': '#141414', 'ivory4': '#8B8B83', 'grey9': '#171717', 'DarkSalmon': '#E9967A', 'SlateGray1': '#C6E2FF', 'SlateGray2': '#B9D3EE', 'SlateGray3': '#9FB6CD', 'SlateGray4': '#6C7B8B', 'RosyBrown2': '#EEB4B4', 'RosyBrown1': '#FFC1C1', 'gray85': '#D9D9D9', 'gray84': '#D6D6D6', 'LightGreen': '#90EE90', 'LavenderBlush1': '#FFF0F5', 'grey73': '#BABABA', 'LavenderBlush3': '#CDC1C5', 'LavenderBlush2': '#EEE0E5', 'grey76': '#C2C2C2', 'LavenderBlush4': '#8B8386', 'grey74': '#BDBDBD', 'grey75': '#BFBFBF', 'pink1': '#FFB5C5', 'pink3': '#CD919E', 'pink2': '#EEA9B8', 'pink4': '#8B636C', 'gray47': '#787878', 'gray46': '#757575', 'gray45': '#737373', 'gray44': '#707070', 'gray43': '#6E6E6E', 'gray42': '#6B6B6B', 'gray41': '#696969', 'gray40': '#666666', 'gray49': '#7D7D7D', 'gray48': '#7A7A7A', 'MediumAquamarine': '#66CDAA', 'MediumForestGreen': '#32814B', 'azure1': '#F0FFFF', 'azure3': '#C1CDCD', 'azure2': '#E0EEEE', 'indigo': '#4B0082', 'azure4': '#838B8B', 'firebrick': '#B22222', 'DarkGrey': '#A9A9A9', 'magenta4': '#8B008B', 'SlateBlue3': '#6959CD', 'magenta2': '#EE00EE', 'magenta1': '#FF00FF', 'grey51': '#828282', 'chartreuse': '#7FFF00', 'grey41': '#696969', 'DarkOliveGreen4': '#6E8B3D', 'turquoise': '#40E0D0', 'DarkOliveGreen1': '#CAFF70', 'DarkOliveGreen3': '#A2CD5A', 'DarkOliveGreen2': '#BCEE68', 'grey6': '#0F0F0F', 'grey7': '#121212', 'grey4': '#0A0A0A', 'grey5': '#0D0D0D', 'grey2': '#050505', 'grey3': '#080808', 'grey0': '#000000', 'grey1': '#030303', 'gray50': '#7F7F7F', 'cyan1': '#00FFFF', 'gray51': '#828282', 'gray24': '#3D3D3D', 'HotPink': '#FF69B4', 'DarkGoldenrod4': '#8B6508', 'gray54': '#8A8A8A', 'DarkGoldenrod1': '#FFB90F', 'DarkGoldenrod2': '#EEAD0E', 'DarkGoldenrod3': '#CD950C', 'IndianRed2': '#EE6363', 'DeepPink': '#FF1493', 'gray28': '#474747', 'IndianRed3': '#CD5555', 'DarkCyan': '#008B8B', 'GreenYellow': '#ADFF2F', 'LightSalmon': '#FFA07A', 'DarkOrange4': '#8B4500', 'DarkOrange1': '#FF7F00', 'transparent': '#000000', 'DarkOrange3': '#CD6600', 'orchid': '#DA70D6', 'purple': '#800080', 'wheat4': '#8B7E66', 'wheat1': '#FFE7BA', 'wheat3': '#CDBA96', 'SpringGreen1': '#00FF7F', 'coral3': '#CD5B45', 'coral2': '#EE6A50', 'coral1': '#FF7256', 'thistle1': '#FFE1FF', 'PaleTurquoise': '#AFEEEE', 'bisque': '#FFE4C4', 'DeepPink3': '#CD1076', 'DeepPink2': '#EE1289', 'DeepPink1': '#FF1493', 'khaki': '#F0E68C', 'wheat': '#F5DEB3', 'MediumSeaGreen': '#3CB371', 'DeepPink4': '#8B0A50', 'salmon': '#FA8072', 'grey44': '#707070', 'DarkSlateBlue': '#483D8B', 'PaleVioletRed4': '#8B475D', 'PaleVioletRed1': '#FF82AB', 'PaleVioletRed2': '#EE799F', 'PaleVioletRed3': '#CD6889', 'AntiqueWhite': '#FAEBD7', 'PaleTurquoise4': '#668B8B', 'PaleTurquoise3': '#96CDCD', 'PaleTurquoise2': '#AEEEEE', 'PaleTurquoise1': '#BBFFFF', 'gray56': '#8F8F8F', 'plum': '#DDA0DD', 'beige': '#F5F5DC', 'SpringGreen': '#00FF7F', 'azure': '#F0FFFF', 'honeydew1': '#F0FFF0', 'honeydew2': '#E0EEE0', 'honeydew3': '#C1CDC1', 'honeydew4': '#838B83', 'gray57': '#919191', 'snow4': '#8B8989', 'snow2': '#EEE9E9', 'snow3': '#CDC9C9', 'snow1': '#FFFAFA', 'SandyBrown': '#F4A460', 'grey13': '#212121', 'SeaGreen4': '#2E8B57', 'SeaGreen3': '#43CD80', 'SeaGreen2': '#4EEE94', 'SeaGreen1': '#54FF9F', 'grey29': '#4A4A4A', 'grey28': '#474747', 'grey25': '#404040', 'grey24': '#3D3D3D', 'grey27': '#454545', 'grey26': '#424242', 'fuchsia': '#FF00FF', 'grey20': '#333333', 'grey23': '#3B3B3B', 'grey22': '#383838', 'gray78': '#C7C7C7', 'gray79': '#C9C9C9', 'gray76': '#C2C2C2', 'gray77': '#C4C4C4', 'gray74': '#BDBDBD', 'gray75': '#BFBFBF', 'gray72': '#B8B8B8', 'gray73': '#BABABA', 'gray70': '#B3B3B3', 'gray71': '#B5B5B5', 'ivory': '#FFFFF0', 'LemonChiffon3': '#CDC9A5', 'DeepSkyBlue4': '#00688B', 'DeepSkyBlue3': '#009ACD', 'DeepSkyBlue2': '#00B2EE', 'DeepSkyBlue1': '#00BFFF', 'cornsilk4': '#8B8878', 'cornsilk2': '#EEE8CD', 'cornsilk3': '#CDC8B1', 'CadetBlue': '#5F9EA0', 'cornsilk1': '#FFF8DC', 'grey90': '#E5E5E5', 'grey91': '#E8E8E8', 'grey92': '#EBEBEB', 'goldenrod': '#DAA520', 'grey94': '#F0F0F0', 'grey95': '#F2F2F2', 'grey96': '#F5F5F5', 'grey97': '#F7F7F7', 'grey98': '#FAFAFA', 'grey99': '#FCFCFC', 'red3': '#CD0000', 'LightSteelBlue2': '#BCD2EE', 'LightSteelBlue3': '#A2B5CD', 'LightSteelBlue4': '#6E7B8B', 'LightBlue3': '#9AC0CD', 'maroon': '#800000', 'LightSkyBlue': '#87CEFA', 'LightGoldenrodYellow': '#FAFAD2', 'MediumBlue': '#0000CD', 'LightSlateGray': '#778899', 'DarkOrange2': '#EE7600', 'PaleVioletRed': '#DB7093'} diff --git a/frontend/imgrid/colors/colors/junk/colorpicker.html b/frontend/imgrid/colors/colors/junk/colorpicker.html new file mode 100755 index 0000000..23993ac --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/colorpicker.html @@ -0,0 +1,254 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> +<html> +<head> +<style type='text/css'> +body + { + background-image:url('http://asdf.us/im/ef/_imgrid_1320723477_pepper.png'); + } +#firstd + { + position:fixed; + top:40px; + right:20%; + height:40px; + width:0px; + background-color:#ffdead; + color:white; + } +#secondd + { + position:fixed; + top: 100px; + right:20%; + height:40px; + width: 200px; + font-family:'helvetica'; + font-size:40px; + } + +#error + { + position: fixed; + bottom: 100px; + height:40px; + width: 200px; + background-color: mediumseagreen; + right: 50%; + } +#colorerror + { + position: fixed; + bottom:50px; + height:30px; + width: 140px; + background-color: red; + right: 50%; + } +iframe + { + width:600px; + height:400px; + } +#namespace + { + position:fixed; + bottom:40px; + right:20px; + } +#hexmode + { + position:fixed; + top:300px; + right:100px; + font-size:40px; + font-family:helvetica; + } +#hexswitch + { + height:100px; + width:300px; + font-size:20px + border-style: groove; + border-width: 4px; + background-color:goldenrod; + text-align:center; + } +</style> +</head> +<body> +<div class='content' sytle="background-color:yellow; height:40px; width:300px; position:fixed; bottom:20px; right:45%">BLACH BLAH BLAH</div> +<button>wonderbutton</button> +<p>hex</p> +<p>text</p> +<div id='hexswitch'>CLICK TO SHOW HEXES</div> +<div><iframe src='colorsnew.html'></iframe></div> +<div id='guy2' class='guys' style='position:fixed;z-index:10;background-color:dodgerblue;height:40px;width:50px;top:10px;right:81%'>funny</div> +<div id='guy3' class='guys' style='position:fixed;z-index:10;background-color:snow;height:40px;width:50px;top:10px;right:76%'>happy</div> +<div id='guy1' class='guys' style='position:fixed;z-index:10;background-color:magenta;height:40px;width:50px;top:10px;right:66%'>silly</div> +<div id='guy5' class='guys' style='position:fixed;z-index:10;background-color:magenta;height:40px;width:50px;top:10px;right:71%'>smart</div> +<div id='showinfo' class='guys' style='position:fixed;z-index:10;background-color:magenta;height:40px;width:50px;top:10px;right:60%'>click it</div> + +<div id='firstd'>click me</div><div id='secondd'></div> +<div id='error'></div> +<div id='colorerror'></div> +<input id='namespace' type='text'></input> +<div id='hexmode'>choose between hex or text...<input id='hexortext' type='checkbox' value="1"></input></div> +<script type="text/javascript" src="jquery-1.6.4.min.js"></script> +<script type="text/javascript" src="colordict.js"></script> +<script type="text/javascript"> + +function showid(id) + { + $('#guy5').html(id) + } +$('.guys').mouseover(function() { + showid(this.id); +}); +$("button").click(function () { +$("p").toggle(); +}); + +function removecontent() + { + $('.content').hover(function(){return}) + $('.content').html("") + } +removecontent() +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idstr, propertystr) + { + grab = $('#'+idstr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idstr, propertystr) + { + result = getproperty(idstr, propertystr) + newwidth = goldenize(result) + widthval = newwidth.toString()+'px' + $('#'+idstr).css('width', widthval) + } +makegolden('firstd', 'height') +$('#colorerror').css('background-color', '#556B2F') + +//from http://haacked.com/archive/2009/12/29/convert-rgb-to-hex.aspx +function colorToHex(color) { + if (color.substr(0, 1) === '#') { + return color; + } + var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); + + var red = parseInt(digits[2]); + var green = parseInt(digits[3]); + var blue = parseInt(digits[4]); + + var rgb = blue | (green << 8) | (red << 16); + return digits[1] + '#' + rgb.toString(16); +}; + + +monica = $('#hexortext:checked').length +$('#error').append(monica) +$('#error').append('knows whassup') +var hexes = false +function hexswitch() + { + if(hexes == false) + { + $('#hexswitch').html('CLICK TO SHOW COLOR NAMES') + hexes = true; + } + + else + { + $('#hexswitch').html('CLICK TO SHOW HEX NAMES') + hexes = false; + } + } +$('#hexswitch').click(function(){hexswitch()}) +//takes a div name and returns a colorname +function showcolorname(divstr) + { + bgcolor = $('#'+divstr).css('background-color') + lowercasehex = colorToHex(bgcolor) + hex = lowercasehex.toUpperCase() + imname = hextoname[hex] + if ($('#hexortext:checked').length == 1) + { + imname = hex + } + return imname + } +function bigname() + { + bebop = showcolorname('firstd') + $('#secondd').html(bebop) + } +function putitin(hotboy) + { + $('#namespace').val(hotboy) + } +$("#firstd").hover(function(){bigname()}) +$("#firstd").hover(function(){$('#secondd').fadeOut(100);$('#secondd').fadeIn(500);}); +function boys () + { + var heyguys = showcolorname('firstd') + putitin(heyguys) + } +$('#firstd').click(function(){boys()}) +//$('#'+divstr).mouseover(bigname(divstr) +//three way toggle with background color +//here's how it will work +//there is a dictionary of background color hexes which translate into names +// with every click of a div the .html() property shifts between three states +//1. showing the background color as a string +//2. showing nothing +//3. showing the value of the hash using the background color as the key to the +//hash +//first step: make the three stage button DONE + +var infostate = 0; +$('#showinfo').click(function(){ + if(infostate == 0) + {$('#guy2').html(colorToHex($('#guy2').css('background-color')));infostate = 1} + else if(infostate == 1) + {$('#guy2').html(newdict[colorToHex($('#guy2').css('background-color'))]);infostate = 2} + else if(infostate == 2) + {$('#guy2').html(0);infostate = 0} + }) +//second step make dictionary DONE +var newdict = {} +newdict['#1e90ff'] = 'green' +newdict['#ff00ff'] = 'purple' +newdict['#fffafa'] = 'mauve' + +//make it happen using guy1 guy2 guy3 +// DO NOT USE HEX TO COLORNAME AND JQUERY BACKGROUND COLOR...use the dictionari +//es instead...they are divlist, and hextoname and nametohex and divtoname they have a +//range of 0-673 (or length of 674) + + +var happyguys = ['#guy1','#guy2','#guy3'] +function tester() + { + for(var i=0; i<happyguys.length; i++){ + $(happyguys[i]).html($(happyguys[i]).css('background-color')) + } + } +tester() + +//the script will be very convoluted. please make it anyway +//remember the only way to affect a list of things is to iterate over them +//make a list of the div names put it in this format... do that next + +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/colors/junk/colorpixx.css b/frontend/imgrid/colors/colors/junk/colorpixx.css new file mode 100755 index 0000000..1ddf557 --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/colorpixx.css @@ -0,0 +1,2047 @@ + +body +{word-wrap: break-word;} + +#main div +{display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +min-height: 30px; +min-width:20px; +zoom: 1; +*display: inline;} +} + +#main + { + width:600px; + } +#colornames +{position:fixed; +font-size:50px; +top:50px; +right:50%;} +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{height:30px; +width:10px;} diff --git a/frontend/imgrid/colors/colors/junk/colorpixx.js b/frontend/imgrid/colors/colors/junk/colorpixx.js new file mode 100755 index 0000000..4b42e4d --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/colorpixx.js @@ -0,0 +1,92 @@ +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newwidth = goldenize(result) + widthval = newwidth.toString()+'px' + $(idandselectr).css('width', widthval) + } +makegolden('.colors', 'height') +//remove content this function takes the name out of the divs + +function removecontent() + { + $('.colors').html("") + } +removecontent() + +function colorToHex(color) { + if (color.substr(0, 1) === '#') { + return color; + } + var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); + + var red = parseInt(digits[2]); + var green = parseInt(digits[3]); + var blue = parseInt(digits[4]); + + var rgb = blue | (green << 8) | (red << 16); + return digits[1] + '#' + rgb.toString(16); +}; + +//takes a div name and returns a colorname + +function showcolorname(divstr) + + { + + bgcolor = $('#'+divstr).css('background-color') + lowercasehex = colorToHex(bgcolor) + hex = lowercasehex.toUpperCase() + imname = hextoname[hex] +/* if ($('#hexortext:checked').length == 1) + { + imname = hex + }*/ + return imname + } +function bigname(divstr) + { + bebop = showcolorname(divstr) +// $('#colornames').html(bebop) + } +function writeit(text) + { +// $('#colornames').append(text) + } +function makebig(divstr) + { + firstheight = $('#'+divstr).height() + newheight = goldenize(firstheight) + $('#'+divstr).height(newheight) +// $('#colornames').append(firstheight) + } +function makesmall(divstr) + { + oldheight = $('.colors').height() + $('#'+divstr).height(oldheight) + } +$('.colors').hover(function() { + bigname(this.id); + makebig(this.id); + makegolden('#'+this.id, 'height')}, +function(){ + makesmall(this.id); + makegolden('#'+this.id, 'height') +}); +$('#colornames').html("") +$("#popupContact").css('background-color', 'black') +$('.colors').css('margin-top', '2px') diff --git a/frontend/imgrid/colors/colors/junk/colors.html b/frontend/imgrid/colors/colors/junk/colors.html new file mode 100755 index 0000000..0ef22f9 --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/colors.html @@ -0,0 +1,5429 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<!-- saved from url=(0124)https://mail.google.com/mail/?ui=2&ik=8c5c6e41c0&view=att&th=131a60939ee4c454&attid=0.1&disp=inline&realattid=f_gr2htzs60&zw --> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head> +<style type="text/css"> +* + { + font-family: sans-serif; + } +</style> +<body> + + + +<div> +<h1><a></a>List of Color Names</h1> +<div> + +<p>a list of named colors for use with PHOTOBLASTER:</p> + +<table> +<tbody> + <tr> + <th align="right">Name</th> + <th align="center">Color</th> + <th align="left">RGB</th> + <th align="left">Hex</th> + + </tr> + + <tr> + <td align="right">snow</td> + <td align="center" style="background-color:rgb(255, 250, 250)">snow</td> + <td align="left">rgb(255, 250, 250)</td> + <td align="left">#FFFAFA</td> + + </tr> + + <tr> + <td align="right">snow1</td> + <td align="center" style="background-color:rgb(255, 250, 250)">snow1</td> + <td align="left">rgb(255, 250, 250)</td> + <td align="left">#FFFAFA</td> + + </tr> + + <tr> + <td align="right">snow2</td> + <td align="center" style="background-color:rgb(238, 233, 233)">snow2</td> + <td align="left">rgb(238, 233, 233)</td> + <td align="left">#EEE9E9</td> + + </tr> + + <tr> + <td align="right">RosyBrown1</td> + <td align="center" style="background-color:rgb(255, 193, 193)">RosyBrown1</td> + <td align="left">rgb(255, 193, 193)</td> + <td align="left">#FFC1C1</td> + + </tr> + + <tr> + <td align="right">RosyBrown2</td> + <td align="center" style="background-color:rgb(238, 180, 180)">RosyBrown2</td> + <td align="left">rgb(238, 180, 180)</td> + <td align="left">#EEB4B4</td> + + </tr> + + <tr> + <td align="right">snow3</td> + <td align="center" style="background-color:rgb(205, 201, 201)">snow3</td> + <td align="left">rgb(205, 201, 201)</td> + <td align="left">#CDC9C9</td> + + </tr> + + <tr> + <td align="right">LightCoral</td> + <td align="center" style="background-color:rgb(240, 128, 128)">LightCoral</td> + <td align="left">rgb(240, 128, 128)</td> + <td align="left">#F08080</td> + + </tr> + + <tr> + <td align="right">IndianRed1</td> + <td align="center" style="background-color:rgb(255, 106, 106)">IndianRed1</td> + <td align="left">rgb(255, 106, 106)</td> + <td align="left">#FF6A6A</td> + + </tr> + + <tr> + <td align="right">RosyBrown3</td> + <td align="center" style="background-color:rgb(205, 155, 155)">RosyBrown3</td> + <td align="left">rgb(205, 155, 155)</td> + <td align="left">#CD9B9B</td> + + </tr> + + <tr> + <td align="right">IndianRed2</td> + <td align="center" style="background-color:rgb(238, 99, 99)">IndianRed2</td> + <td align="left">rgb(238, 99, 99)</td> + <td align="left">#EE6363</td> + + </tr> + + <tr> + <td align="right">RosyBrown</td> + <td align="center" style="background-color:rgb(188, 143, 143)">RosyBrown</td> + <td align="left">rgb(188, 143, 143)</td> + <td align="left">#BC8F8F</td> + + </tr> + + <tr> + <td align="right">brown1</td> + <td align="center" style="background-color:rgb(255, 64, 64)">brown1</td> + <td align="left">rgb(255, 64, 64)</td> + <td align="left">#FF4040</td> + + </tr> + + <tr> + <td align="right">firebrick1</td> + <td align="center" style="background-color:rgb(255, 48, 48)">firebrick1</td> + <td align="left">rgb(255, 48, 48)</td> + <td align="left">#FF3030</td> + + </tr> + + <tr> + <td align="right">brown2</td> + <td align="center" style="background-color:rgb(238, 59, 59)">brown2</td> + <td align="left">rgb(238, 59, 59)</td> + <td align="left">#EE3B3B</td> + + </tr> + + <tr> + <td align="right">IndianRed</td> + <td align="center" style="background-color:rgb(205, 92, 92)">IndianRed</td> + <td align="left">rgb(205, 92, 92)</td> + <td align="left">#CD5C5C</td> + + </tr> + + <tr> + <td align="right">IndianRed3</td> + <td align="center" style="background-color:rgb(205, 85, 85)">IndianRed3</td> + <td align="left">rgb(205, 85, 85)</td> + <td align="left">#CD5555</td> + + </tr> + + <tr> + <td align="right">firebrick2</td> + <td align="center" style="background-color:rgb(238, 44, 44)">firebrick2</td> + <td align="left">rgb(238, 44, 44)</td> + <td align="left">#EE2C2C</td> + + </tr> + + <tr> + <td align="right">snow4</td> + <td align="center" style="background-color:rgb(139, 137, 137)">snow4</td> + <td align="left">rgb(139, 137, 137)</td> + <td align="left">#8B8989</td> + + </tr> + + <tr> + <td align="right">brown3</td> + <td align="center" style="background-color:rgb(205, 51, 51)">brown3</td> + <td align="left">rgb(205, 51, 51)</td> + <td align="left">#CD3333</td> + + </tr> + + <tr> + <td align="right">red</td> + <td align="center" style="background-color:rgb(255, 0, 0)">red</td> + <td align="left">rgb(255, 0, 0)</td> + <td align="left">#FF0000</td> + + </tr> + + <tr> + <td align="right">red1</td> + <td align="center" style="background-color:rgb(255, 0, 0)">red1</td> + <td align="left">rgb(255, 0, 0)</td> + <td align="left">#FF0000</td> + + </tr> + + <tr> + <td align="right">RosyBrown4</td> + <td align="center" style="background-color:rgb(139, 105, 105)">RosyBrown4</td> + <td align="left">rgb(139, 105, 105)</td> + <td align="left">#8B6969</td> + + </tr> + + <tr> + <td align="right">firebrick3</td> + <td align="center" style="background-color:rgb(205, 38, 38)">firebrick3</td> + <td align="left">rgb(205, 38, 38)</td> + <td align="left">#CD2626</td> + + </tr> + + <tr> + <td align="right">red2</td> + <td align="center" style="background-color:rgb(238, 0, 0)">red2</td> + <td align="left">rgb(238, 0, 0)</td> + <td align="left">#EE0000</td> + + </tr> + + <tr> + <td align="right">firebrick</td> + <td align="center" style="background-color:rgb(178, 34, 34)">firebrick</td> + <td align="left">rgb(178, 34, 34)</td> + <td align="left">#B22222</td> + + </tr> + + <tr> + <td align="right">brown</td> + <td align="center" style="background-color:rgb(165, 42, 42)">brown</td> + <td align="left">rgb(165, 42, 42)</td> + <td align="left">#A52A2A</td> + + </tr> + + <tr> + <td align="right">red3</td> + <td align="center" style="background-color:rgb(205, 0, 0)">red3</td> + <td align="left">rgb(205, 0, 0)</td> + <td align="left">#CD0000</td> + + </tr> + + <tr> + <td align="right">IndianRed4</td> + <td align="center" style="background-color:rgb(139, 58, 58)">IndianRed4</td> + <td align="left">rgb(139, 58, 58)</td> + <td align="left">#8B3A3A</td> + + </tr> + + <tr> + <td align="right">brown4</td> + <td align="center" style="background-color:rgb(139, 35, 35)">brown4</td> + <td align="left">rgb(139, 35, 35)</td> + <td align="left">#8B2323</td> + + </tr> + + <tr> + <td align="right">firebrick4</td> + <td align="center" style="background-color:rgb(139, 26, 26)">firebrick4</td> + <td align="left">rgb(139, 26, 26)</td> + <td align="left">#8B1A1A</td> + + </tr> + + <tr> + <td align="right">DarkRed</td> + <td align="center" style="background-color:rgb(139, 0, 0)">DarkRed</td> + <td align="left">rgb(139, 0, 0)</td> + <td align="left">#8B0000</td> + + </tr> + + <tr> + <td align="right">red4</td> + <td align="center" style="background-color:rgb(139, 0, 0)">red4</td> + <td align="left">rgb(139, 0, 0)</td> + <td align="left">#8B0000</td> + + </tr> + + <tr> + <td align="right">maroon</td> + <td align="center" style="background-color:rgb(128, 0, 0)">maroon</td> + <td align="left">rgb(128, 0, 0)</td> + <td align="left">#800000</td> + + </tr> + + <tr> + <td align="right">LightPink1</td> + <td align="center" style="background-color:rgb(255, 174, 185)">LightPink1</td> + <td align="left">rgb(255, 174, 185)</td> + <td align="left">#FFAEB9</td> + + </tr> + + <tr> + <td align="right">LightPink3</td> + <td align="center" style="background-color:rgb(205, 140, 149)">LightPink3</td> + <td align="left">rgb(205, 140, 149)</td> + <td align="left">#CD8C95</td> + + </tr> + + <tr> + <td align="right">LightPink4</td> + <td align="center" style="background-color:rgb(139, 95, 101)">LightPink4</td> + <td align="left">rgb(139, 95, 101)</td> + <td align="left">#8B5F65</td> + + </tr> + + <tr> + <td align="right">LightPink2</td> + <td align="center" style="background-color:rgb(238, 162, 173)">LightPink2</td> + <td align="left">rgb(238, 162, 173)</td> + <td align="left">#EEA2AD</td> + + </tr> + + <tr> + <td align="right">LightPink</td> + <td align="center" style="background-color:rgb(255, 182, 193)">LightPink</td> + <td align="left">rgb(255, 182, 193)</td> + <td align="left">#FFB6C1</td> + + </tr> + + <tr> + <td align="right">pink</td> + <td align="center" style="background-color:rgb(255, 192, 203)">pink</td> + <td align="left">rgb(255, 192, 203)</td> + <td align="left">#FFC0CB</td> + + </tr> + + <tr> + <td align="right">crimson</td> + <td align="center" style="background-color:rgb(220, 20, 60)">crimson</td> + <td align="left">rgb(220, 20, 60)</td> + <td align="left">#DC143C</td> + + </tr> + + <tr> + <td align="right">pink1</td> + <td align="center" style="background-color:rgb(255, 181, 197)">pink1</td> + <td align="left">rgb(255, 181, 197)</td> + <td align="left">#FFB5C5</td> + + </tr> + + <tr> + <td align="right">pink2</td> + <td align="center" style="background-color:rgb(238, 169, 184)">pink2</td> + <td align="left">rgb(238, 169, 184)</td> + <td align="left">#EEA9B8</td> + + </tr> + + <tr> + <td align="right">pink3</td> + <td align="center" style="background-color:rgb(205, 145, 158)">pink3</td> + <td align="left">rgb(205, 145, 158)</td> + <td align="left">#CD919E</td> + + </tr> + + <tr> + <td align="right">pink4</td> + <td align="center" style="background-color:rgb(139, 99, 108)">pink4</td> + <td align="left">rgb(139, 99, 108)</td> + <td align="left">#8B636C</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed4</td> + <td align="center" style="background-color:rgb(139, 71, 93)">PaleVioletRed4</td> + <td align="left">rgb(139, 71, 93)</td> + <td align="left">#8B475D</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed</td> + <td align="center" style="background-color:rgb(219, 112, 147)">PaleVioletRed</td> + <td align="left">rgb(219, 112, 147)</td> + <td align="left">#DB7093</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed2</td> + <td align="center" style="background-color:rgb(238, 121, 159)">PaleVioletRed2</td> + <td align="left">rgb(238, 121, 159)</td> + <td align="left">#EE799F</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed1</td> + <td align="center" style="background-color:rgb(255, 130, 171)">PaleVioletRed1</td> + <td align="left">rgb(255, 130, 171)</td> + <td align="left">#FF82AB</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed3</td> + <td align="center" style="background-color:rgb(205, 104, 137)">PaleVioletRed3</td> + <td align="left">rgb(205, 104, 137)</td> + <td align="left">#CD6889</td> + + </tr> + + <tr> + <td align="right">LavenderBlush</td> + <td align="center" style="background-color:rgb(255, 240, 245)">LavenderBlush</td> + <td align="left">rgb(255, 240, 245)</td> + <td align="left">#FFF0F5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush1</td> + <td align="center" style="background-color:rgb(255, 240, 245)">LavenderBlush1</td> + <td align="left">rgb(255, 240, 245)</td> + <td align="left">#FFF0F5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush3</td> + <td align="center" style="background-color:rgb(205, 193, 197)">LavenderBlush3</td> + <td align="left">rgb(205, 193, 197)</td> + <td align="left">#CDC1C5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush2</td> + <td align="center" style="background-color:rgb(238, 224, 229)">LavenderBlush2</td> + <td align="left">rgb(238, 224, 229)</td> + <td align="left">#EEE0E5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush4</td> + <td align="center" style="background-color:rgb(139, 131, 134)">LavenderBlush4</td> + <td align="left">rgb(139, 131, 134)</td> + <td align="left">#8B8386</td> + + </tr> + + <tr> + <td align="right">maroon</td> + <td align="center" style="background-color:rgb(176, 48, 96)">maroon</td> + <td align="left">rgb(176, 48, 96)</td> + <td align="left">#B03060</td> + + </tr> + + <tr> + <td align="right">HotPink3</td> + <td align="center" style="background-color:rgb(205, 96, 144)">HotPink3</td> + <td align="left">rgb(205, 96, 144)</td> + <td align="left">#CD6090</td> + + </tr> + + <tr> + <td align="right">VioletRed3</td> + <td align="center" style="background-color:rgb(205, 50, 120)">VioletRed3</td> + <td align="left">rgb(205, 50, 120)</td> + <td align="left">#CD3278</td> + + </tr> + + <tr> + <td align="right">VioletRed1</td> + <td align="center" style="background-color:rgb(255, 62, 150)">VioletRed1</td> + <td align="left">rgb(255, 62, 150)</td> + <td align="left">#FF3E96</td> + + </tr> + + <tr> + <td align="right">VioletRed2</td> + <td align="center" style="background-color:rgb(238, 58, 140)">VioletRed2</td> + <td align="left">rgb(238, 58, 140)</td> + <td align="left">#EE3A8C</td> + + </tr> + + <tr> + <td align="right">VioletRed4</td> + <td align="center" style="background-color:rgb(139, 34, 82)">VioletRed4</td> + <td align="left">rgb(139, 34, 82)</td> + <td align="left">#8B2252</td> + + </tr> + + <tr> + <td align="right">HotPink2</td> + <td align="center" style="background-color:rgb(238, 106, 167)">HotPink2</td> + <td align="left">rgb(238, 106, 167)</td> + <td align="left">#EE6AA7</td> + + </tr> + + <tr> + <td align="right">HotPink1</td> + <td align="center" style="background-color:rgb(255, 110, 180)">HotPink1</td> + <td align="left">rgb(255, 110, 180)</td> + <td align="left">#FF6EB4</td> + + </tr> + + <tr> + <td align="right">HotPink4</td> + <td align="center" style="background-color:rgb(139, 58, 98)">HotPink4</td> + <td align="left">rgb(139, 58, 98)</td> + <td align="left">#8B3A62</td> + + </tr> + + <tr> + <td align="right">HotPink</td> + <td align="center" style="background-color:rgb(255, 105, 180)">HotPink</td> + <td align="left">rgb(255, 105, 180)</td> + <td align="left">#FF69B4</td> + + </tr> + + <tr> + <td align="right">DeepPink</td> + <td align="center" style="background-color:rgb(255, 20, 147)">DeepPink</td> + <td align="left">rgb(255, 20, 147)</td> + <td align="left">#FF1493</td> + + </tr> + + <tr> + <td align="right">DeepPink1</td> + <td align="center" style="background-color:rgb(255, 20, 147)">DeepPink1</td> + <td align="left">rgb(255, 20, 147)</td> + <td align="left">#FF1493</td> + + </tr> + + <tr> + <td align="right">DeepPink2</td> + <td align="center" style="background-color:rgb(238, 18, 137)">DeepPink2</td> + <td align="left">rgb(238, 18, 137)</td> + <td align="left">#EE1289</td> + + </tr> + + <tr> + <td align="right">DeepPink3</td> + <td align="center" style="background-color:rgb(205, 16, 118)">DeepPink3</td> + <td align="left">rgb(205, 16, 118)</td> + <td align="left">#CD1076</td> + + </tr> + + <tr> + <td align="right">DeepPink4</td> + <td align="center" style="background-color:rgb(139, 10, 80)">DeepPink4</td> + <td align="left">rgb(139, 10, 80)</td> + <td align="left">#8B0A50</td> + + </tr> + + <tr> + <td align="right">maroon1</td> + <td align="center" style="background-color:rgb(255, 52, 179)">maroon1</td> + <td align="left">rgb(255, 52, 179)</td> + <td align="left">#FF34B3</td> + + </tr> + + <tr> + <td align="right">maroon2</td> + <td align="center" style="background-color:rgb(238, 48, 167)">maroon2</td> + <td align="left">rgb(238, 48, 167)</td> + <td align="left">#EE30A7</td> + + </tr> + + <tr> + <td align="right">maroon3</td> + <td align="center" style="background-color:rgb(205, 41, 144)">maroon3</td> + <td align="left">rgb(205, 41, 144)</td> + <td align="left">#CD2990</td> + + </tr> + + <tr> + <td align="right">maroon4</td> + <td align="center" style="background-color:rgb(139, 28, 98)">maroon4</td> + <td align="left">rgb(139, 28, 98)</td> + <td align="left">#8B1C62</td> + + </tr> + + <tr> + <td align="right">MediumVioletRed</td> + <td align="center" style="background-color:rgb(199, 21, 133)">MediumVioletRed</td> + <td align="left">rgb(199, 21, 133)</td> + <td align="left">#C71585</td> + + </tr> + + <tr> + <td align="right">VioletRed</td> + <td align="center" style="background-color:rgb(208, 32, 144)">VioletRed</td> + <td align="left">rgb(208, 32, 144)</td> + <td align="left">#D02090</td> + + </tr> + + <tr> + <td align="right">orchid2</td> + <td align="center" style="background-color:rgb(238, 122, 233)">orchid2</td> + <td align="left">rgb(238, 122, 233)</td> + <td align="left">#EE7AE9</td> + + </tr> + + <tr> + <td align="right">orchid</td> + <td align="center" style="background-color:rgb(218, 112, 214)">orchid</td> + <td align="left">rgb(218, 112, 214)</td> + <td align="left">#DA70D6</td> + + </tr> + + <tr> + <td align="right">orchid1</td> + <td align="center" style="background-color:rgb(255, 131, 250)">orchid1</td> + <td align="left">rgb(255, 131, 250)</td> + <td align="left">#FF83FA</td> + + </tr> + + <tr> + <td align="right">orchid3</td> + <td align="center" style="background-color:rgb(205, 105, 201)">orchid3</td> + <td align="left">rgb(205, 105, 201)</td> + <td align="left">#CD69C9</td> + + </tr> + + <tr> + <td align="right">orchid4</td> + <td align="center" style="background-color:rgb(139, 71, 137)">orchid4</td> + <td align="left">rgb(139, 71, 137)</td> + <td align="left">#8B4789</td> + + </tr> + + <tr> + <td align="right">thistle1</td> + <td align="center" style="background-color:rgb(255, 225, 255)">thistle1</td> + <td align="left">rgb(255, 225, 255)</td> + <td align="left">#FFE1FF</td> + + </tr> + + <tr> + <td align="right">thistle2</td> + <td align="center" style="background-color:rgb(238, 210, 238)">thistle2</td> + <td align="left">rgb(238, 210, 238)</td> + <td align="left">#EED2EE</td> + + </tr> + + <tr> + <td align="right">plum1</td> + <td align="center" style="background-color:rgb(255, 187, 255)">plum1</td> + <td align="left">rgb(255, 187, 255)</td> + <td align="left">#FFBBFF</td> + + </tr> + + <tr> + <td align="right">plum2</td> + <td align="center" style="background-color:rgb(238, 174, 238)">plum2</td> + <td align="left">rgb(238, 174, 238)</td> + <td align="left">#EEAEEE</td> + + </tr> + + <tr> + <td align="right">thistle</td> + <td align="center" style="background-color:rgb(216, 191, 216)">thistle</td> + <td align="left">rgb(216, 191, 216)</td> + <td align="left">#D8BFD8</td> + + </tr> + + <tr> + <td align="right">thistle3</td> + <td align="center" style="background-color:rgb(205, 181, 205)">thistle3</td> + <td align="left">rgb(205, 181, 205)</td> + <td align="left">#CDB5CD</td> + + </tr> + + <tr> + <td align="right">plum</td> + <td align="center" style="background-color:rgb(221, 160, 221)">plum</td> + <td align="left">rgb(221, 160, 221)</td> + <td align="left">#DDA0DD</td> + + </tr> + + <tr> + <td align="right">violet</td> + <td align="center" style="background-color:rgb(238, 130, 238)">violet</td> + <td align="left">rgb(238, 130, 238)</td> + <td align="left">#EE82EE</td> + + </tr> + + <tr> + <td align="right">plum3</td> + <td align="center" style="background-color:rgb(205, 150, 205)">plum3</td> + <td align="left">rgb(205, 150, 205)</td> + <td align="left">#CD96CD</td> + + </tr> + + <tr> + <td align="right">thistle4</td> + <td align="center" style="background-color:rgb(139, 123, 139)">thistle4</td> + <td align="left">rgb(139, 123, 139)</td> + <td align="left">#8B7B8B</td> + + </tr> + + <tr> + <td align="right">fuchsia</td> + <td align="center" style="background-color:rgb(255, 0, 255)">fuchsia</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">magenta</td> + <td align="center" style="background-color:rgb(255, 0, 255)">magenta</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">magenta1</td> + <td align="center" style="background-color:rgb(255, 0, 255)">magenta1</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">plum4</td> + <td align="center" style="background-color:rgb(139, 102, 139)">plum4</td> + <td align="left">rgb(139, 102, 139)</td> + <td align="left">#8B668B</td> + + </tr> + + <tr> + <td align="right">magenta2</td> + <td align="center" style="background-color:rgb(238, 0, 238)">magenta2</td> + <td align="left">rgb(238, 0, 238)</td> + <td align="left">#EE00EE</td> + + </tr> + + <tr> + <td align="right">magenta3</td> + <td align="center" style="background-color:rgb(205, 0, 205)">magenta3</td> + <td align="left">rgb(205, 0, 205)</td> + <td align="left">#CD00CD</td> + + </tr> + + <tr> + <td align="right">DarkMagenta</td> + <td align="center" style="background-color:rgb(139, 0, 139)">DarkMagenta</td> + <td align="left">rgb(139, 0, 139)</td> + <td align="left">#8B008B</td> + + </tr> + + <tr> + <td align="right">magenta4</td> + <td align="center" style="background-color:rgb(139, 0, 139)">magenta4</td> + <td align="left">rgb(139, 0, 139)</td> + <td align="left">#8B008B</td> + + </tr> + + <tr> + <td align="right">purple</td> + <td align="center" style="background-color:rgb(128, 0, 128)">purple</td> + <td align="left">rgb(128, 0, 128)</td> + <td align="left">#800080</td> + + </tr> + + <tr> + <td align="right">MediumOrchid</td> + <td align="center" style="background-color:rgb(186, 85, 211)">MediumOrchid</td> + <td align="left">rgb(186, 85, 211)</td> + <td align="left">#BA55D3</td> + + </tr> + + <tr> + <td align="right">MediumOrchid1</td> + <td align="center" style="background-color:rgb(224, 102, 255)">MediumOrchid1</td> + <td align="left">rgb(224, 102, 255)</td> + <td align="left">#E066FF</td> + + </tr> + + <tr> + <td align="right">MediumOrchid2</td> + <td align="center" style="background-color:rgb(209, 95, 238)">MediumOrchid2</td> + <td align="left">rgb(209, 95, 238)</td> + <td align="left">#D15FEE</td> + + </tr> + + <tr> + <td align="right">MediumOrchid3</td> + <td align="center" style="background-color:rgb(180, 82, 205)">MediumOrchid3</td> + <td align="left">rgb(180, 82, 205)</td> + <td align="left">#B452CD</td> + + </tr> + + <tr> + <td align="right">MediumOrchid4</td> + <td align="center" style="background-color:rgb(122, 55, 139)">MediumOrchid4</td> + <td align="left">rgb(122, 55, 139)</td> + <td align="left">#7A378B</td> + + </tr> + + <tr> + <td align="right">DarkViolet</td> + <td align="center" style="background-color:rgb(148, 0, 211)">DarkViolet</td> + <td align="left">rgb(148, 0, 211)</td> + <td align="left">#9400D3</td> + + </tr> + + <tr> + <td align="right">DarkOrchid</td> + <td align="center" style="background-color:rgb(153, 50, 204)">DarkOrchid</td> + <td align="left">rgb(153, 50, 204)</td> + <td align="left">#9932CC</td> + + </tr> + + <tr> + <td align="right">DarkOrchid1</td> + <td align="center" style="background-color:rgb(191, 62, 255)">DarkOrchid1</td> + <td align="left">rgb(191, 62, 255)</td> + <td align="left">#BF3EFF</td> + + </tr> + + <tr> + <td align="right">DarkOrchid3</td> + <td align="center" style="background-color:rgb(154, 50, 205)">DarkOrchid3</td> + <td align="left">rgb(154, 50, 205)</td> + <td align="left">#9A32CD</td> + + </tr> + + <tr> + <td align="right">DarkOrchid2</td> + <td align="center" style="background-color:rgb(178, 58, 238)">DarkOrchid2</td> + <td align="left">rgb(178, 58, 238)</td> + <td align="left">#B23AEE</td> + + </tr> + + <tr> + <td align="right">DarkOrchid4</td> + <td align="center" style="background-color:rgb(104, 34, 139)">DarkOrchid4</td> + <td align="left">rgb(104, 34, 139)</td> + <td align="left">#68228B</td> + + </tr> + + <tr> + <td align="right">purple</td> + <td align="center" style="background-color:rgb(160, 32, 240)">purple</td> + <td align="left">rgb(160, 32, 240)</td> + <td align="left">#A020F0</td> + + </tr> + + <tr> + <td align="right">indigo</td> + <td align="center" style="background-color:rgb( 75, 0, 130)">indigo</td> + <td align="left">rgb( 75, 0, 130)</td> + <td align="left">#4B0082</td> + + </tr> + + <tr> + <td align="right">BlueViolet</td> + <td align="center" style="background-color:rgb(138, 43, 226)">BlueViolet</td> + <td align="left">rgb(138, 43, 226)</td> + <td align="left">#8A2BE2</td> + + </tr> + + <tr> + <td align="right">purple2</td> + <td align="center" style="background-color:rgb(145, 44, 238)">purple2</td> + <td align="left">rgb(145, 44, 238)</td> + <td align="left">#912CEE</td> + + </tr> + + <tr> + <td align="right">purple3</td> + <td align="center" style="background-color:rgb(125, 38, 205)">purple3</td> + <td align="left">rgb(125, 38, 205)</td> + <td align="left">#7D26CD</td> + + </tr> + + <tr> + <td align="right">purple4</td> + <td align="center" style="background-color:rgb( 85, 26, 139)">purple4</td> + <td align="left">rgb( 85, 26, 139)</td> + <td align="left">#551A8B</td> + + </tr> + + <tr> + <td align="right">purple1</td> + <td align="center" style="background-color:rgb(155, 48, 255)">purple1</td> + <td align="left">rgb(155, 48, 255)</td> + <td align="left">#9B30FF</td> + + </tr> + + <tr> + <td align="right">MediumPurple</td> + <td align="center" style="background-color:rgb(147, 112, 219)">MediumPurple</td> + <td align="left">rgb(147, 112, 219)</td> + <td align="left">#9370DB</td> + + </tr> + + <tr> + <td align="right">MediumPurple1</td> + <td align="center" style="background-color:rgb(171, 130, 255)">MediumPurple1</td> + <td align="left">rgb(171, 130, 255)</td> + <td align="left">#AB82FF</td> + + </tr> + + <tr> + <td align="right">MediumPurple2</td> + <td align="center" style="background-color:rgb(159, 121, 238)">MediumPurple2</td> + <td align="left">rgb(159, 121, 238)</td> + <td align="left">#9F79EE</td> + + </tr> + + <tr> + <td align="right">MediumPurple3</td> + <td align="center" style="background-color:rgb(137, 104, 205)">MediumPurple3</td> + <td align="left">rgb(137, 104, 205)</td> + <td align="left">#8968CD</td> + + </tr> + + <tr> + <td align="right">MediumPurple4</td> + <td align="center" style="background-color:rgb( 93, 71, 139)">MediumPurple4</td> + <td align="left">rgb( 93, 71, 139)</td> + <td align="left">#5D478B</td> + + </tr> + + <tr> + <td align="right">DarkSlateBlue</td> + <td align="center" style="background-color:rgb( 72, 61, 139)">DarkSlateBlue</td> + <td align="left">rgb( 72, 61, 139)</td> + <td align="left">#483D8B</td> + + </tr> + + <tr> + <td align="right">LightSlateBlue</td> + <td align="center" style="background-color:rgb(132, 112, 255)">LightSlateBlue</td> + <td align="left">rgb(132, 112, 255)</td> + <td align="left">#8470FF</td> + + </tr> + + <tr> + <td align="right">MediumSlateBlue</td> + <td align="center" style="background-color:rgb(123, 104, 238)">MediumSlateBlue</td> + <td align="left">rgb(123, 104, 238)</td> + <td align="left">#7B68EE</td> + + </tr> + + <tr> + <td align="right">SlateBlue</td> + <td align="center" style="background-color:rgb(106, 90, 205)">SlateBlue</td> + <td align="left">rgb(106, 90, 205)</td> + <td align="left">#6A5ACD</td> + + </tr> + + <tr> + <td align="right">SlateBlue1</td> + <td align="center" style="background-color:rgb(131, 111, 255)">SlateBlue1</td> + <td align="left">rgb(131, 111, 255)</td> + <td align="left">#836FFF</td> + + </tr> + + <tr> + <td align="right">SlateBlue2</td> + <td align="center" style="background-color:rgb(122, 103, 238)">SlateBlue2</td> + <td align="left">rgb(122, 103, 238)</td> + <td align="left">#7A67EE</td> + + </tr> + + <tr> + <td align="right">SlateBlue3</td> + <td align="center" style="background-color:rgb(105, 89, 205)">SlateBlue3</td> + <td align="left">rgb(105, 89, 205)</td> + <td align="left">#6959CD</td> + + </tr> + + <tr> + <td align="right">SlateBlue4</td> + <td align="center" style="background-color:rgb( 71, 60, 139)">SlateBlue4</td> + <td align="left">rgb( 71, 60, 139)</td> + <td align="left">#473C8B</td> + + </tr> + + <tr> + <td align="right">GhostWhite</td> + <td align="center" style="background-color:rgb(248, 248, 255)">GhostWhite</td> + <td align="left">rgb(248, 248, 255)</td> + <td align="left">#F8F8FF</td> + + </tr> + + <tr> + <td align="right">lavender</td> + <td align="center" style="background-color:rgb(230, 230, 250)">lavender</td> + <td align="left">rgb(230, 230, 250)</td> + <td align="left">#E6E6FA</td> + + </tr> + + <tr> + <td align="right">blue</td> + <td align="center" style="background-color:rgb( 0, 0, 255)">blue</td> + <td align="left">rgb( 0, 0, 255)</td> + <td align="left">#0000FF</td> + + </tr> + + <tr> + <td align="right">blue1</td> + <td align="center" style="background-color:rgb( 0, 0, 255)">blue1</td> + <td align="left">rgb( 0, 0, 255)</td> + <td align="left">#0000FF</td> + + </tr> + + <tr> + <td align="right">blue2</td> + <td align="center" style="background-color:rgb( 0, 0, 238)">blue2</td> + <td align="left">rgb( 0, 0, 238)</td> + <td align="left">#0000EE</td> + + </tr> + + <tr> + <td align="right">blue3</td> + <td align="center" style="background-color:rgb( 0, 0, 205)">blue3</td> + <td align="left">rgb( 0, 0, 205)</td> + <td align="left">#0000CD</td> + + </tr> + + <tr> + <td align="right">MediumBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 205)">MediumBlue</td> + <td align="left">rgb( 0, 0, 205)</td> + <td align="left">#0000CD</td> + + </tr> + + <tr> + <td align="right">blue4</td> + <td align="center" style="background-color:rgb( 0, 0, 139)">blue4</td> + <td align="left">rgb( 0, 0, 139)</td> + <td align="left">#00008B</td> + + </tr> + + <tr> + <td align="right">DarkBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 139)">DarkBlue</td> + <td align="left">rgb( 0, 0, 139)</td> + <td align="left">#00008B</td> + + </tr> + + <tr> + <td align="right">MidnightBlue</td> + <td align="center" style="background-color:rgb( 25, 25, 112)">MidnightBlue</td> + <td align="left">rgb( 25, 25, 112)</td> + <td align="left">#191970</td> + + </tr> + + <tr> + <td align="right">navy</td> + <td align="center" style="background-color:rgb( 0, 0, 128)">navy</td> + <td align="left">rgb( 0, 0, 128)</td> + <td align="left">#000080</td> + + </tr> + + <tr> + <td align="right">NavyBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 128)">NavyBlue</td> + <td align="left">rgb( 0, 0, 128)</td> + <td align="left">#000080</td> + + </tr> + + <tr> + <td align="right">RoyalBlue</td> + <td align="center" style="background-color:rgb( 65, 105, 225)">RoyalBlue</td> + <td align="left">rgb( 65, 105, 225)</td> + <td align="left">#4169E1</td> + + </tr> + + <tr> + <td align="right">RoyalBlue1</td> + <td align="center" style="background-color:rgb( 72, 118, 255)">RoyalBlue1</td> + <td align="left">rgb( 72, 118, 255)</td> + <td align="left">#4876FF</td> + + </tr> + + <tr> + <td align="right">RoyalBlue2</td> + <td align="center" style="background-color:rgb( 67, 110, 238)">RoyalBlue2</td> + <td align="left">rgb( 67, 110, 238)</td> + <td align="left">#436EEE</td> + + </tr> + + <tr> + <td align="right">RoyalBlue3</td> + <td align="center" style="background-color:rgb( 58, 95, 205)">RoyalBlue3</td> + <td align="left">rgb( 58, 95, 205)</td> + <td align="left">#3A5FCD</td> + + </tr> + + <tr> + <td align="right">RoyalBlue4</td> + <td align="center" style="background-color:rgb( 39, 64, 139)">RoyalBlue4</td> + <td align="left">rgb( 39, 64, 139)</td> + <td align="left">#27408B</td> + + </tr> + + <tr> + <td align="right">CornflowerBlue</td> + <td align="center" style="background-color:rgb(100, 149, 237)">CornflowerBlue</td> + <td align="left">rgb(100, 149, 237)</td> + <td align="left">#6495ED</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue</td> + <td align="center" style="background-color:rgb(176, 196, 222)">LightSteelBlue</td> + <td align="left">rgb(176, 196, 222)</td> + <td align="left">#B0C4DE</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue1</td> + <td align="center" style="background-color:rgb(202, 225, 255)">LightSteelBlue1</td> + <td align="left">rgb(202, 225, 255)</td> + <td align="left">#CAE1FF</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue2</td> + <td align="center" style="background-color:rgb(188, 210, 238)">LightSteelBlue2</td> + <td align="left">rgb(188, 210, 238)</td> + <td align="left">#BCD2EE</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue3</td> + <td align="center" style="background-color:rgb(162, 181, 205)">LightSteelBlue3</td> + <td align="left">rgb(162, 181, 205)</td> + <td align="left">#A2B5CD</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue4</td> + <td align="center" style="background-color:rgb(110, 123, 139)">LightSteelBlue4</td> + <td align="left">rgb(110, 123, 139)</td> + <td align="left">#6E7B8B</td> + + </tr> + + <tr> + <td align="right">SlateGray4</td> + <td align="center" style="background-color:rgb(108, 123, 139)">SlateGray4</td> + <td align="left">rgb(108, 123, 139)</td> + <td align="left">#6C7B8B</td> + + </tr> + + <tr> + <td align="right">SlateGray1</td> + <td align="center" style="background-color:rgb(198, 226, 255)">SlateGray1</td> + <td align="left">rgb(198, 226, 255)</td> + <td align="left">#C6E2FF</td> + + </tr> + + <tr> + <td align="right">SlateGray2</td> + <td align="center" style="background-color:rgb(185, 211, 238)">SlateGray2</td> + <td align="left">rgb(185, 211, 238)</td> + <td align="left">#B9D3EE</td> + + </tr> + + <tr> + <td align="right">SlateGray3</td> + <td align="center" style="background-color:rgb(159, 182, 205)">SlateGray3</td> + <td align="left">rgb(159, 182, 205)</td> + <td align="left">#9FB6CD</td> + + </tr> + + <tr> + <td align="right">LightSlateGray</td> + <td align="center" style="background-color:rgb(119, 136, 153)">LightSlateGray</td> + <td align="left">rgb(119, 136, 153)</td> + <td align="left">#778899</td> + + </tr> + + <tr> + <td align="right">LightSlateGrey</td> + <td align="center" style="background-color:rgb(119, 136, 153)">LightSlateGrey</td> + <td align="left">rgb(119, 136, 153)</td> + <td align="left">#778899</td> + + </tr> + + <tr> + <td align="right">SlateGray</td> + <td align="center" style="background-color:rgb(112, 128, 144)">SlateGray</td> + <td align="left">rgb(112, 128, 144)</td> + <td align="left">#708090</td> + + </tr> + + <tr> + <td align="right">SlateGrey</td> + <td align="center" style="background-color:rgb(112, 128, 144)">SlateGrey</td> + <td align="left">rgb(112, 128, 144)</td> + <td align="left">#708090</td> + + </tr> + + <tr> + <td align="right">DodgerBlue</td> + <td align="center" style="background-color:rgb( 30, 144, 255)">DodgerBlue</td> + <td align="left">rgb( 30, 144, 255)</td> + <td align="left">#1E90FF</td> + + </tr> + + <tr> + <td align="right">DodgerBlue1</td> + <td align="center" style="background-color:rgb( 30, 144, 255)">DodgerBlue1</td> + <td align="left">rgb( 30, 144, 255)</td> + <td align="left">#1E90FF</td> + + </tr> + + <tr> + <td align="right">DodgerBlue2</td> + <td align="center" style="background-color:rgb( 28, 134, 238)">DodgerBlue2</td> + <td align="left">rgb( 28, 134, 238)</td> + <td align="left">#1C86EE</td> + + </tr> + + <tr> + <td align="right">DodgerBlue4</td> + <td align="center" style="background-color:rgb( 16, 78, 139)">DodgerBlue4</td> + <td align="left">rgb( 16, 78, 139)</td> + <td align="left">#104E8B</td> + + </tr> + + <tr> + <td align="right">DodgerBlue3</td> + <td align="center" style="background-color:rgb( 24, 116, 205)">DodgerBlue3</td> + <td align="left">rgb( 24, 116, 205)</td> + <td align="left">#1874CD</td> + + </tr> + + <tr> + <td align="right">AliceBlue</td> + <td align="center" style="background-color:rgb(240, 248, 255)">AliceBlue</td> + <td align="left">rgb(240, 248, 255)</td> + <td align="left">#F0F8FF</td> + + </tr> + + <tr> + <td align="right">SteelBlue4</td> + <td align="center" style="background-color:rgb( 54, 100, 139)">SteelBlue4</td> + <td align="left">rgb( 54, 100, 139)</td> + <td align="left">#36648B</td> + + </tr> + + <tr> + <td align="right">SteelBlue</td> + <td align="center" style="background-color:rgb( 70, 130, 180)">SteelBlue</td> + <td align="left">rgb( 70, 130, 180)</td> + <td align="left">#4682B4</td> + + </tr> + + <tr> + <td align="right">SteelBlue1</td> + <td align="center" style="background-color:rgb( 99, 184, 255)">SteelBlue1</td> + <td align="left">rgb( 99, 184, 255)</td> + <td align="left">#63B8FF</td> + + </tr> + + <tr> + <td align="right">SteelBlue2</td> + <td align="center" style="background-color:rgb( 92, 172, 238)">SteelBlue2</td> + <td align="left">rgb( 92, 172, 238)</td> + <td align="left">#5CACEE</td> + + </tr> + + <tr> + <td align="right">SteelBlue3</td> + <td align="center" style="background-color:rgb( 79, 148, 205)">SteelBlue3</td> + <td align="left">rgb( 79, 148, 205)</td> + <td align="left">#4F94CD</td> + + </tr> + + <tr> + <td align="right">SkyBlue4</td> + <td align="center" style="background-color:rgb( 74, 112, 139)">SkyBlue4</td> + <td align="left">rgb( 74, 112, 139)</td> + <td align="left">#4A708B</td> + + </tr> + + <tr> + <td align="right">SkyBlue1</td> + <td align="center" style="background-color:rgb(135, 206, 255)">SkyBlue1</td> + <td align="left">rgb(135, 206, 255)</td> + <td align="left">#87CEFF</td> + + </tr> + + <tr> + <td align="right">SkyBlue2</td> + <td align="center" style="background-color:rgb(126, 192, 238)">SkyBlue2</td> + <td align="left">rgb(126, 192, 238)</td> + <td align="left">#7EC0EE</td> + + </tr> + + <tr> + <td align="right">SkyBlue3</td> + <td align="center" style="background-color:rgb(108, 166, 205)">SkyBlue3</td> + <td align="left">rgb(108, 166, 205)</td> + <td align="left">#6CA6CD</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue</td> + <td align="center" style="background-color:rgb(135, 206, 250)">LightSkyBlue</td> + <td align="left">rgb(135, 206, 250)</td> + <td align="left">#87CEFA</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue4</td> + <td align="center" style="background-color:rgb( 96, 123, 139)">LightSkyBlue4</td> + <td align="left">rgb( 96, 123, 139)</td> + <td align="left">#607B8B</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue1</td> + <td align="center" style="background-color:rgb(176, 226, 255)">LightSkyBlue1</td> + <td align="left">rgb(176, 226, 255)</td> + <td align="left">#B0E2FF</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue2</td> + <td align="center" style="background-color:rgb(164, 211, 238)">LightSkyBlue2</td> + <td align="left">rgb(164, 211, 238)</td> + <td align="left">#A4D3EE</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue3</td> + <td align="center" style="background-color:rgb(141, 182, 205)">LightSkyBlue3</td> + <td align="left">rgb(141, 182, 205)</td> + <td align="left">#8DB6CD</td> + + </tr> + + <tr> + <td align="right">SkyBlue</td> + <td align="center" style="background-color:rgb(135, 206, 235)">SkyBlue</td> + <td align="left">rgb(135, 206, 235)</td> + <td align="left">#87CEEB</td> + + </tr> + + <tr> + <td align="right">LightBlue3</td> + <td align="center" style="background-color:rgb(154, 192, 205)">LightBlue3</td> + <td align="left">rgb(154, 192, 205)</td> + <td align="left">#9AC0CD</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue</td> + <td align="center" style="background-color:rgb( 0, 191, 255)">DeepSkyBlue</td> + <td align="left">rgb( 0, 191, 255)</td> + <td align="left">#00BFFF</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue1</td> + <td align="center" style="background-color:rgb( 0, 191, 255)">DeepSkyBlue1</td> + <td align="left">rgb( 0, 191, 255)</td> + <td align="left">#00BFFF</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue2</td> + <td align="center" style="background-color:rgb( 0, 178, 238)">DeepSkyBlue2</td> + <td align="left">rgb( 0, 178, 238)</td> + <td align="left">#00B2EE</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue4</td> + <td align="center" style="background-color:rgb( 0, 104, 139)">DeepSkyBlue4</td> + <td align="left">rgb( 0, 104, 139)</td> + <td align="left">#00688B</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue3</td> + <td align="center" style="background-color:rgb( 0, 154, 205)">DeepSkyBlue3</td> + <td align="left">rgb( 0, 154, 205)</td> + <td align="left">#009ACD</td> + + </tr> + + <tr> + <td align="right">LightBlue1</td> + <td align="center" style="background-color:rgb(191, 239, 255)">LightBlue1</td> + <td align="left">rgb(191, 239, 255)</td> + <td align="left">#BFEFFF</td> + + </tr> + + <tr> + <td align="right">LightBlue2</td> + <td align="center" style="background-color:rgb(178, 223, 238)">LightBlue2</td> + <td align="left">rgb(178, 223, 238)</td> + <td align="left">#B2DFEE</td> + + </tr> + + <tr> + <td align="right">LightBlue</td> + <td align="center" style="background-color:rgb(173, 216, 230)">LightBlue</td> + <td align="left">rgb(173, 216, 230)</td> + <td align="left">#ADD8E6</td> + + </tr> + + <tr> + <td align="right">LightBlue4</td> + <td align="center" style="background-color:rgb(104, 131, 139)">LightBlue4</td> + <td align="left">rgb(104, 131, 139)</td> + <td align="left">#68838B</td> + + </tr> + + <tr> + <td align="right">PowderBlue</td> + <td align="center" style="background-color:rgb(176, 224, 230)">PowderBlue</td> + <td align="left">rgb(176, 224, 230)</td> + <td align="left">#B0E0E6</td> + + </tr> + + <tr> + <td align="right">CadetBlue1</td> + <td align="center" style="background-color:rgb(152, 245, 255)">CadetBlue1</td> + <td align="left">rgb(152, 245, 255)</td> + <td align="left">#98F5FF</td> + + </tr> + + <tr> + <td align="right">CadetBlue2</td> + <td align="center" style="background-color:rgb(142, 229, 238)">CadetBlue2</td> + <td align="left">rgb(142, 229, 238)</td> + <td align="left">#8EE5EE</td> + + </tr> + + <tr> + <td align="right">CadetBlue3</td> + <td align="center" style="background-color:rgb(122, 197, 205)">CadetBlue3</td> + <td align="left">rgb(122, 197, 205)</td> + <td align="left">#7AC5CD</td> + + </tr> + + <tr> + <td align="right">CadetBlue4</td> + <td align="center" style="background-color:rgb( 83, 134, 139)">CadetBlue4</td> + <td align="left">rgb( 83, 134, 139)</td> + <td align="left">#53868B</td> + + </tr> + + <tr> + <td align="right">turquoise1</td> + <td align="center" style="background-color:rgb( 0, 245, 255)">turquoise1</td> + <td align="left">rgb( 0, 245, 255)</td> + <td align="left">#00F5FF</td> + + </tr> + + <tr> + <td align="right">turquoise2</td> + <td align="center" style="background-color:rgb( 0, 229, 238)">turquoise2</td> + <td align="left">rgb( 0, 229, 238)</td> + <td align="left">#00E5EE</td> + + </tr> + + <tr> + <td align="right">turquoise3</td> + <td align="center" style="background-color:rgb( 0, 197, 205)">turquoise3</td> + <td align="left">rgb( 0, 197, 205)</td> + <td align="left">#00C5CD</td> + + </tr> + + <tr> + <td align="right">turquoise4</td> + <td align="center" style="background-color:rgb( 0, 134, 139)">turquoise4</td> + <td align="left">rgb( 0, 134, 139)</td> + <td align="left">#00868B</td> + + </tr> + + <tr> + <td align="right">cadet blue</td> + <td align="center" style="background-color:rgb( 95, 158, 160)">cadet blue</td> + <td align="left">rgb( 95, 158, 160)</td> + <td align="left">#5F9EA0</td> + + </tr> + + <tr> + <td align="right">CadetBlue</td> + <td align="center" style="background-color:rgb( 95, 158, 160)">CadetBlue</td> + <td align="left">rgb( 95, 158, 160)</td> + <td align="left">#5F9EA0</td> + + </tr> + + <tr> + <td align="right">DarkTurquoise</td> + <td align="center" style="background-color:rgb( 0, 206, 209)">DarkTurquoise</td> + <td align="left">rgb( 0, 206, 209)</td> + <td align="left">#00CED1</td> + + </tr> + + <tr> + <td align="right">azure</td> + <td align="center" style="background-color:rgb(240, 255, 255)">azure</td> + <td align="left">rgb(240, 255, 255)</td> + <td align="left">#F0FFFF</td> + + </tr> + + <tr> + <td align="right">azure1</td> + <td align="center" style="background-color:rgb(240, 255, 255)">azure1</td> + <td align="left">rgb(240, 255, 255)</td> + <td align="left">#F0FFFF</td> + + </tr> + + <tr> + <td align="right">LightCyan</td> + <td align="center" style="background-color:rgb(224, 255, 255)">LightCyan</td> + <td align="left">rgb(224, 255, 255)</td> + <td align="left">#E0FFFF</td> + + </tr> + + <tr> + <td align="right">LightCyan1</td> + <td align="center" style="background-color:rgb(224, 255, 255)">LightCyan1</td> + <td align="left">rgb(224, 255, 255)</td> + <td align="left">#E0FFFF</td> + + </tr> + + <tr> + <td align="right">azure2</td> + <td align="center" style="background-color:rgb(224, 238, 238)">azure2</td> + <td align="left">rgb(224, 238, 238)</td> + <td align="left">#E0EEEE</td> + + </tr> + + <tr> + <td align="right">LightCyan2</td> + <td align="center" style="background-color:rgb(209, 238, 238)">LightCyan2</td> + <td align="left">rgb(209, 238, 238)</td> + <td align="left">#D1EEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise1</td> + <td align="center" style="background-color:rgb(187, 255, 255)">PaleTurquoise1</td> + <td align="left">rgb(187, 255, 255)</td> + <td align="left">#BBFFFF</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise</td> + <td align="center" style="background-color:rgb(175, 238, 238)">PaleTurquoise</td> + <td align="left">rgb(175, 238, 238)</td> + <td align="left">#AFEEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise2</td> + <td align="center" style="background-color:rgb(174, 238, 238)">PaleTurquoise2</td> + <td align="left">rgb(174, 238, 238)</td> + <td align="left">#AEEEEE</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray1</td> + <td align="center" style="background-color:rgb(151, 255, 255)">DarkSlateGray1</td> + <td align="left">rgb(151, 255, 255)</td> + <td align="left">#97FFFF</td> + + </tr> + + <tr> + <td align="right">azure3</td> + <td align="center" style="background-color:rgb(193, 205, 205)">azure3</td> + <td align="left">rgb(193, 205, 205)</td> + <td align="left">#C1CDCD</td> + + </tr> + + <tr> + <td align="right">LightCyan3</td> + <td align="center" style="background-color:rgb(180, 205, 205)">LightCyan3</td> + <td align="left">rgb(180, 205, 205)</td> + <td align="left">#B4CDCD</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray2</td> + <td align="center" style="background-color:rgb(141, 238, 238)">DarkSlateGray2</td> + <td align="left">rgb(141, 238, 238)</td> + <td align="left">#8DEEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise3</td> + <td align="center" style="background-color:rgb(150, 205, 205)">PaleTurquoise3</td> + <td align="left">rgb(150, 205, 205)</td> + <td align="left">#96CDCD</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray3</td> + <td align="center" style="background-color:rgb(121, 205, 205)">DarkSlateGray3</td> + <td align="left">rgb(121, 205, 205)</td> + <td align="left">#79CDCD</td> + + </tr> + + <tr> + <td align="right">azure4</td> + <td align="center" style="background-color:rgb(131, 139, 139)">azure4</td> + <td align="left">rgb(131, 139, 139)</td> + <td align="left">#838B8B</td> + + </tr> + + <tr> + <td align="right">LightCyan4</td> + <td align="center" style="background-color:rgb(122, 139, 139)">LightCyan4</td> + <td align="left">rgb(122, 139, 139)</td> + <td align="left">#7A8B8B</td> + + </tr> + + <tr> + <td align="right">aqua</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">aqua</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">cyan</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">cyan</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">cyan1</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">cyan1</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise4</td> + <td align="center" style="background-color:rgb(102, 139, 139)">PaleTurquoise4</td> + <td align="left">rgb(102, 139, 139)</td> + <td align="left">#668B8B</td> + + </tr> + + <tr> + <td align="right">cyan2</td> + <td align="center" style="background-color:rgb( 0, 238, 238)">cyan2</td> + <td align="left">rgb( 0, 238, 238)</td> + <td align="left">#00EEEE</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray4</td> + <td align="center" style="background-color:rgb( 82, 139, 139)">DarkSlateGray4</td> + <td align="left">rgb( 82, 139, 139)</td> + <td align="left">#528B8B</td> + + </tr> + + <tr> + <td align="right">cyan3</td> + <td align="center" style="background-color:rgb( 0, 205, 205)">cyan3</td> + <td align="left">rgb( 0, 205, 205)</td> + <td align="left">#00CDCD</td> + + </tr> + + <tr> + <td align="right">cyan4</td> + <td align="center" style="background-color:rgb( 0, 139, 139)">cyan4</td> + <td align="left">rgb( 0, 139, 139)</td> + <td align="left">#008B8B</td> + + </tr> + + <tr> + <td align="right">DarkCyan</td> + <td align="center" style="background-color:rgb( 0, 139, 139)">DarkCyan</td> + <td align="left">rgb( 0, 139, 139)</td> + <td align="left">#008B8B</td> + + </tr> + + <tr> + <td align="right">teal</td> + <td align="center" style="background-color:rgb( 0, 128, 128)">teal</td> + <td align="left">rgb( 0, 128, 128)</td> + <td align="left">#008080</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray</td> + <td align="center" style="background-color:rgb( 47, 79, 79)">DarkSlateGray</td> + <td align="left">rgb( 47, 79, 79)</td> + <td align="left">#2F4F4F</td> + + </tr> + + <tr> + <td align="right">DarkSlateGrey</td> + <td align="center" style="background-color:rgb( 47, 79, 79)">DarkSlateGrey</td> + <td align="left">rgb( 47, 79, 79)</td> + <td align="left">#2F4F4F</td> + + </tr> + + <tr> + <td align="right">MediumTurquoise</td> + <td align="center" style="background-color:rgb( 72, 209, 204)">MediumTurquoise</td> + <td align="left">rgb( 72, 209, 204)</td> + <td align="left">#48D1CC</td> + + </tr> + + <tr> + <td align="right">LightSeaGreen</td> + <td align="center" style="background-color:rgb( 32, 178, 170)">LightSeaGreen</td> + <td align="left">rgb( 32, 178, 170)</td> + <td align="left">#20B2AA</td> + + </tr> + + <tr> + <td align="right">turquoise</td> + <td align="center" style="background-color:rgb( 64, 224, 208)">turquoise</td> + <td align="left">rgb( 64, 224, 208)</td> + <td align="left">#40E0D0</td> + + </tr> + + <tr> + <td align="right">aquamarine4</td> + <td align="center" style="background-color:rgb( 69, 139, 116)">aquamarine4</td> + <td align="left">rgb( 69, 139, 116)</td> + <td align="left">#458B74</td> + + </tr> + + <tr> + <td align="right">aquamarine</td> + <td align="center" style="background-color:rgb(127, 255, 212)">aquamarine</td> + <td align="left">rgb(127, 255, 212)</td> + <td align="left">#7FFFD4</td> + + </tr> + + <tr> + <td align="right">aquamarine1</td> + <td align="center" style="background-color:rgb(127, 255, 212)">aquamarine1</td> + <td align="left">rgb(127, 255, 212)</td> + <td align="left">#7FFFD4</td> + + </tr> + + <tr> + <td align="right">aquamarine2</td> + <td align="center" style="background-color:rgb(118, 238, 198)">aquamarine2</td> + <td align="left">rgb(118, 238, 198)</td> + <td align="left">#76EEC6</td> + + </tr> + + <tr> + <td align="right">aquamarine3</td> + <td align="center" style="background-color:rgb(102, 205, 170)">aquamarine3</td> + <td align="left">rgb(102, 205, 170)</td> + <td align="left">#66CDAA</td> + + </tr> + + <tr> + <td align="right">MediumAquamarine</td> + <td align="center" style="background-color:rgb(102, 205, 170)">MediumAquamarine</td> + <td align="left">rgb(102, 205, 170)</td> + <td align="left">#66CDAA</td> + + </tr> + + <tr> + <td align="right">MediumSpringGreen</td> + <td align="center" style="background-color:rgb( 0, 250, 154)">MediumSpringGreen</td> + <td align="left">rgb( 0, 250, 154)</td> + <td align="left">#00FA9A</td> + + </tr> + + <tr> + <td align="right">MintCream</td> + <td align="center" style="background-color:rgb(245, 255, 250)">MintCream</td> + <td align="left">rgb(245, 255, 250)</td> + <td align="left">#F5FFFA</td> + + </tr> + + <tr> + <td align="right">SpringGreen</td> + <td align="center" style="background-color:rgb( 0, 255, 127)">SpringGreen</td> + <td align="left">rgb( 0, 255, 127)</td> + <td align="left">#00FF7F</td> + + </tr> + + <tr> + <td align="right">SpringGreen1</td> + <td align="center" style="background-color:rgb( 0, 255, 127)">SpringGreen1</td> + <td align="left">rgb( 0, 255, 127)</td> + <td align="left">#00FF7F</td> + + </tr> + + <tr> + <td align="right">SpringGreen2</td> + <td align="center" style="background-color:rgb( 0, 238, 118)">SpringGreen2</td> + <td align="left">rgb( 0, 238, 118)</td> + <td align="left">#00EE76</td> + + </tr> + + <tr> + <td align="right">SpringGreen3</td> + <td align="center" style="background-color:rgb( 0, 205, 102)">SpringGreen3</td> + <td align="left">rgb( 0, 205, 102)</td> + <td align="left">#00CD66</td> + + </tr> + + <tr> + <td align="right">SpringGreen4</td> + <td align="center" style="background-color:rgb( 0, 139, 69)">SpringGreen4</td> + <td align="left">rgb( 0, 139, 69)</td> + <td align="left">#008B45</td> + + </tr> + + <tr> + <td align="right">MediumSeaGreen</td> + <td align="center" style="background-color:rgb( 60, 179, 113)">MediumSeaGreen</td> + <td align="left">rgb( 60, 179, 113)</td> + <td align="left">#3CB371</td> + + </tr> + + <tr> + <td align="right">SeaGreen</td> + <td align="center" style="background-color:rgb( 46, 139, 87)">SeaGreen</td> + <td align="left">rgb( 46, 139, 87)</td> + <td align="left">#2E8B57</td> + + </tr> + + <tr> + <td align="right">SeaGreen3</td> + <td align="center" style="background-color:rgb( 67, 205, 128)">SeaGreen3</td> + <td align="left">rgb( 67, 205, 128)</td> + <td align="left">#43CD80</td> + + </tr> + + <tr> + <td align="right">SeaGreen1</td> + <td align="center" style="background-color:rgb( 84, 255, 159)">SeaGreen1</td> + <td align="left">rgb( 84, 255, 159)</td> + <td align="left">#54FF9F</td> + + </tr> + + <tr> + <td align="right">SeaGreen4</td> + <td align="center" style="background-color:rgb( 46, 139, 87)">SeaGreen4</td> + <td align="left">rgb( 46, 139, 87)</td> + <td align="left">#2E8B57</td> + + </tr> + + <tr> + <td align="right">SeaGreen2</td> + <td align="center" style="background-color:rgb( 78, 238, 148)">SeaGreen2</td> + <td align="left">rgb( 78, 238, 148)</td> + <td align="left">#4EEE94</td> + + </tr> + + <tr> + <td align="right">MediumForestGreen</td> + <td align="center" style="background-color:rgb( 50, 129, 75)">MediumForestGreen</td> + <td align="left">rgb( 50, 129, 75)</td> + <td align="left">#32814B</td> + + </tr> + + <tr> + <td align="right">honeydew</td> + <td align="center" style="background-color:rgb(240, 255, 240)">honeydew</td> + <td align="left">rgb(240, 255, 240)</td> + <td align="left">#F0FFF0</td> + + </tr> + + <tr> + <td align="right">honeydew1</td> + <td align="center" style="background-color:rgb(240, 255, 240)">honeydew1</td> + <td align="left">rgb(240, 255, 240)</td> + <td align="left">#F0FFF0</td> + + </tr> + + <tr> + <td align="right">honeydew2</td> + <td align="center" style="background-color:rgb(224, 238, 224)">honeydew2</td> + <td align="left">rgb(224, 238, 224)</td> + <td align="left">#E0EEE0</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen1</td> + <td align="center" style="background-color:rgb(193, 255, 193)">DarkSeaGreen1</td> + <td align="left">rgb(193, 255, 193)</td> + <td align="left">#C1FFC1</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen2</td> + <td align="center" style="background-color:rgb(180, 238, 180)">DarkSeaGreen2</td> + <td align="left">rgb(180, 238, 180)</td> + <td align="left">#B4EEB4</td> + + </tr> + + <tr> + <td align="right">PaleGreen1</td> + <td align="center" style="background-color:rgb(154, 255, 154)">PaleGreen1</td> + <td align="left">rgb(154, 255, 154)</td> + <td align="left">#9AFF9A</td> + + </tr> + + <tr> + <td align="right">PaleGreen</td> + <td align="center" style="background-color:rgb(152, 251, 152)">PaleGreen</td> + <td align="left">rgb(152, 251, 152)</td> + <td align="left">#98FB98</td> + + </tr> + + <tr> + <td align="right">honeydew3</td> + <td align="center" style="background-color:rgb(193, 205, 193)">honeydew3</td> + <td align="left">rgb(193, 205, 193)</td> + <td align="left">#C1CDC1</td> + + </tr> + + <tr> + <td align="right">LightGreen</td> + <td align="center" style="background-color:rgb(144, 238, 144)">LightGreen</td> + <td align="left">rgb(144, 238, 144)</td> + <td align="left">#90EE90</td> + + </tr> + + <tr> + <td align="right">PaleGreen2</td> + <td align="center" style="background-color:rgb(144, 238, 144)">PaleGreen2</td> + <td align="left">rgb(144, 238, 144)</td> + <td align="left">#90EE90</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen3</td> + <td align="center" style="background-color:rgb(155, 205, 155)">DarkSeaGreen3</td> + <td align="left">rgb(155, 205, 155)</td> + <td align="left">#9BCD9B</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen</td> + <td align="center" style="background-color:rgb(143, 188, 143)">DarkSeaGreen</td> + <td align="left">rgb(143, 188, 143)</td> + <td align="left">#8FBC8F</td> + + </tr> + + <tr> + <td align="right">PaleGreen3</td> + <td align="center" style="background-color:rgb(124, 205, 124)">PaleGreen3</td> + <td align="left">rgb(124, 205, 124)</td> + <td align="left">#7CCD7C</td> + + </tr> + + <tr> + <td align="right">honeydew4</td> + <td align="center" style="background-color:rgb(131, 139, 131)">honeydew4</td> + <td align="left">rgb(131, 139, 131)</td> + <td align="left">#838B83</td> + + </tr> + + <tr> + <td align="right">green1</td> + <td align="center" style="background-color:rgb( 0, 255, 0)">green1</td> + <td align="left">rgb( 0, 255, 0)</td> + <td align="left">#00FF00</td> + + </tr> + + <tr> + <td align="right">lime</td> + <td align="center" style="background-color:rgb( 0, 255, 0)">lime</td> + <td align="left">rgb( 0, 255, 0)</td> + <td align="left">#00FF00</td> + + </tr> + + <tr> + <td align="right">LimeGreen</td> + <td align="center" style="background-color:rgb( 50, 205, 50)">LimeGreen</td> + <td align="left">rgb( 50, 205, 50)</td> + <td align="left">#32CD32</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen4</td> + <td align="center" style="background-color:rgb(105, 139, 105)">DarkSeaGreen4</td> + <td align="left">rgb(105, 139, 105)</td> + <td align="left">#698B69</td> + + </tr> + + <tr> + <td align="right">green2</td> + <td align="center" style="background-color:rgb( 0, 238, 0)">green2</td> + <td align="left">rgb( 0, 238, 0)</td> + <td align="left">#00EE00</td> + + </tr> + + <tr> + <td align="right">PaleGreen4</td> + <td align="center" style="background-color:rgb( 84, 139, 84)">PaleGreen4</td> + <td align="left">rgb( 84, 139, 84)</td> + <td align="left">#548B54</td> + + </tr> + + <tr> + <td align="right">green3</td> + <td align="center" style="background-color:rgb( 0, 205, 0)">green3</td> + <td align="left">rgb( 0, 205, 0)</td> + <td align="left">#00CD00</td> + + </tr> + + <tr> + <td align="right">ForestGreen</td> + <td align="center" style="background-color:rgb( 34, 139, 34)">ForestGreen</td> + <td align="left">rgb( 34, 139, 34)</td> + <td align="left">#228B22</td> + + </tr> + + <tr> + <td align="right">green4</td> + <td align="center" style="background-color:rgb( 0, 139, 0)">green4</td> + <td align="left">rgb( 0, 139, 0)</td> + <td align="left">#008B00</td> + + </tr> + + <tr> + <td align="right">green</td> + <td align="center" style="background-color:rgb( 0, 128, 0)">green</td> + <td align="left">rgb( 0, 128, 0)</td> + <td align="left">#008000</td> + + </tr> + + <tr> + <td align="right">DarkGreen</td> + <td align="center" style="background-color:rgb( 0, 100, 0)">DarkGreen</td> + <td align="left">rgb( 0, 100, 0)</td> + <td align="left">#006400</td> + + </tr> + + <tr> + <td align="right">LawnGreen</td> + <td align="center" style="background-color:rgb(124, 252, 0)">LawnGreen</td> + <td align="left">rgb(124, 252, 0)</td> + <td align="left">#7CFC00</td> + + </tr> + + <tr> + <td align="right">chartreuse</td> + <td align="center" style="background-color:rgb(127, 255, 0)">chartreuse</td> + <td align="left">rgb(127, 255, 0)</td> + <td align="left">#7FFF00</td> + + </tr> + + <tr> + <td align="right">chartreuse1</td> + <td align="center" style="background-color:rgb(127, 255, 0)">chartreuse1</td> + <td align="left">rgb(127, 255, 0)</td> + <td align="left">#7FFF00</td> + + </tr> + + <tr> + <td align="right">chartreuse2</td> + <td align="center" style="background-color:rgb(118, 238, 0)">chartreuse2</td> + <td align="left">rgb(118, 238, 0)</td> + <td align="left">#76EE00</td> + + </tr> + + <tr> + <td align="right">chartreuse3</td> + <td align="center" style="background-color:rgb(102, 205, 0)">chartreuse3</td> + <td align="left">rgb(102, 205, 0)</td> + <td align="left">#66CD00</td> + + </tr> + + <tr> + <td align="right">chartreuse4</td> + <td align="center" style="background-color:rgb( 69, 139, 0)">chartreuse4</td> + <td align="left">rgb( 69, 139, 0)</td> + <td align="left">#458B00</td> + + </tr> + + <tr> + <td align="right">GreenYellow</td> + <td align="center" style="background-color:rgb(173, 255, 47)">GreenYellow</td> + <td align="left">rgb(173, 255, 47)</td> + <td align="left">#ADFF2F</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen3</td> + <td align="center" style="background-color:rgb(162, 205, 90)">DarkOliveGreen3</td> + <td align="left">rgb(162, 205, 90)</td> + <td align="left">#A2CD5A</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen1</td> + <td align="center" style="background-color:rgb(202, 255, 112)">DarkOliveGreen1</td> + <td align="left">rgb(202, 255, 112)</td> + <td align="left">#CAFF70</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen2</td> + <td align="center" style="background-color:rgb(188, 238, 104)">DarkOliveGreen2</td> + <td align="left">rgb(188, 238, 104)</td> + <td align="left">#BCEE68</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen4</td> + <td align="center" style="background-color:rgb(110, 139, 61)">DarkOliveGreen4</td> + <td align="left">rgb(110, 139, 61)</td> + <td align="left">#6E8B3D</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen</td> + <td align="center" style="background-color:rgb( 85, 107, 47)">DarkOliveGreen</td> + <td align="left">rgb( 85, 107, 47)</td> + <td align="left">#556B2F</td> + + </tr> + + <tr> + <td align="right">OliveDrab</td> + <td align="center" style="background-color:rgb(107, 142, 35)">OliveDrab</td> + <td align="left">rgb(107, 142, 35)</td> + <td align="left">#6B8E23</td> + + </tr> + + <tr> + <td align="right">OliveDrab1</td> + <td align="center" style="background-color:rgb(192, 255, 62)">OliveDrab1</td> + <td align="left">rgb(192, 255, 62)</td> + <td align="left">#C0FF3E</td> + + </tr> + + <tr> + <td align="right">OliveDrab2</td> + <td align="center" style="background-color:rgb(179, 238, 58)">OliveDrab2</td> + <td align="left">rgb(179, 238, 58)</td> + <td align="left">#B3EE3A</td> + + </tr> + + <tr> + <td align="right">OliveDrab3</td> + <td align="center" style="background-color:rgb(154, 205, 50)">OliveDrab3</td> + <td align="left">rgb(154, 205, 50)</td> + <td align="left">#9ACD32</td> + + </tr> + + <tr> + <td align="right">YellowGreen</td> + <td align="center" style="background-color:rgb(154, 205, 50)">YellowGreen</td> + <td align="left">rgb(154, 205, 50)</td> + <td align="left">#9ACD32</td> + + </tr> + + <tr> + <td align="right">OliveDrab4</td> + <td align="center" style="background-color:rgb(105, 139, 34)">OliveDrab4</td> + <td align="left">rgb(105, 139, 34)</td> + <td align="left">#698B22</td> + + </tr> + + <tr> + <td align="right">ivory</td> + <td align="center" style="background-color:rgb(255, 255, 240)">ivory</td> + <td align="left">rgb(255, 255, 240)</td> + <td align="left">#FFFFF0</td> + + </tr> + + <tr> + <td align="right">ivory1</td> + <td align="center" style="background-color:rgb(255, 255, 240)">ivory1</td> + <td align="left">rgb(255, 255, 240)</td> + <td align="left">#FFFFF0</td> + + </tr> + + <tr> + <td align="right">LightYellow</td> + <td align="center" style="background-color:rgb(255, 255, 224)">LightYellow</td> + <td align="left">rgb(255, 255, 224)</td> + <td align="left">#FFFFE0</td> + + </tr> + + <tr> + <td align="right">LightYellow1</td> + <td align="center" style="background-color:rgb(255, 255, 224)">LightYellow1</td> + <td align="left">rgb(255, 255, 224)</td> + <td align="left">#FFFFE0</td> + + </tr> + + <tr> + <td align="right">beige</td> + <td align="center" style="background-color:rgb(245, 245, 220)">beige</td> + <td align="left">rgb(245, 245, 220)</td> + <td align="left">#F5F5DC</td> + + </tr> + + <tr> + <td align="right">ivory2</td> + <td align="center" style="background-color:rgb(238, 238, 224)">ivory2</td> + <td align="left">rgb(238, 238, 224)</td> + <td align="left">#EEEEE0</td> + + </tr> + + <tr> + <td align="right">LightGoldenrodYellow</td> + <td align="center" style="background-color:rgb(250, 250, 210)">LightGoldenrodYellow</td> + <td align="left">rgb(250, 250, 210)</td> + <td align="left">#FAFAD2</td> + + </tr> + + <tr> + <td align="right">LightYellow2</td> + <td align="center" style="background-color:rgb(238, 238, 209)">LightYellow2</td> + <td align="left">rgb(238, 238, 209)</td> + <td align="left">#EEEED1</td> + + </tr> + + <tr> + <td align="right">ivory3</td> + <td align="center" style="background-color:rgb(205, 205, 193)">ivory3</td> + <td align="left">rgb(205, 205, 193)</td> + <td align="left">#CDCDC1</td> + + </tr> + + <tr> + <td align="right">LightYellow3</td> + <td align="center" style="background-color:rgb(205, 205, 180)">LightYellow3</td> + <td align="left">rgb(205, 205, 180)</td> + <td align="left">#CDCDB4</td> + + </tr> + + <tr> + <td align="right">ivory4</td> + <td align="center" style="background-color:rgb(139, 139, 131)">ivory4</td> + <td align="left">rgb(139, 139, 131)</td> + <td align="left">#8B8B83</td> + + </tr> + + <tr> + <td align="right">LightYellow4</td> + <td align="center" style="background-color:rgb(139, 139, 122)">LightYellow4</td> + <td align="left">rgb(139, 139, 122)</td> + <td align="left">#8B8B7A</td> + + </tr> + + <tr> + <td align="right">yellow</td> + <td align="center" style="background-color:rgb(255, 255, 0)">yellow</td> + <td align="left">rgb(255, 255, 0)</td> + <td align="left">#FFFF00</td> + + </tr> + + <tr> + <td align="right">yellow1</td> + <td align="center" style="background-color:rgb(255, 255, 0)">yellow1</td> + <td align="left">rgb(255, 255, 0)</td> + <td align="left">#FFFF00</td> + + </tr> + + <tr> + <td align="right">yellow2</td> + <td align="center" style="background-color:rgb(238, 238, 0)">yellow2</td> + <td align="left">rgb(238, 238, 0)</td> + <td align="left">#EEEE00</td> + + </tr> + + <tr> + <td align="right">yellow3</td> + <td align="center" style="background-color:rgb(205, 205, 0)">yellow3</td> + <td align="left">rgb(205, 205, 0)</td> + <td align="left">#CDCD00</td> + + </tr> + + <tr> + <td align="right">yellow4</td> + <td align="center" style="background-color:rgb(139, 139, 0)">yellow4</td> + <td align="left">rgb(139, 139, 0)</td> + <td align="left">#8B8B00</td> + + </tr> + + <tr> + <td align="right">olive</td> + <td align="center" style="background-color:rgb(128, 128, 0)">olive</td> + <td align="left">rgb(128, 128, 0)</td> + <td align="left">#808000</td> + + </tr> + + <tr> + <td align="right">DarkKhaki</td> + <td align="center" style="background-color:rgb(189, 183, 107)">DarkKhaki</td> + <td align="left">rgb(189, 183, 107)</td> + <td align="left">#BDB76B</td> + + </tr> + + <tr> + <td align="right">khaki2</td> + <td align="center" style="background-color:rgb(238, 230, 133)">khaki2</td> + <td align="left">rgb(238, 230, 133)</td> + <td align="left">#EEE685</td> + + </tr> + + <tr> + <td align="right">LemonChiffon4</td> + <td align="center" style="background-color:rgb(139, 137, 112)">LemonChiffon4</td> + <td align="left">rgb(139, 137, 112)</td> + <td align="left">#8B8970</td> + + </tr> + + <tr> + <td align="right">khaki1</td> + <td align="center" style="background-color:rgb(255, 246, 143)">khaki1</td> + <td align="left">rgb(255, 246, 143)</td> + <td align="left">#FFF68F</td> + + </tr> + + <tr> + <td align="right">khaki3</td> + <td align="center" style="background-color:rgb(205, 198, 115)">khaki3</td> + <td align="left">rgb(205, 198, 115)</td> + <td align="left">#CDC673</td> + + </tr> + + <tr> + <td align="right">khaki4</td> + <td align="center" style="background-color:rgb(139, 134, 78)">khaki4</td> + <td align="left">rgb(139, 134, 78)</td> + <td align="left">#8B864E</td> + + </tr> + + <tr> + <td align="right">PaleGoldenrod</td> + <td align="center" style="background-color:rgb(238, 232, 170)">PaleGoldenrod</td> + <td align="left">rgb(238, 232, 170)</td> + <td align="left">#EEE8AA</td> + + </tr> + + <tr> + <td align="right">LemonChiffon</td> + <td align="center" style="background-color:rgb(255, 250, 205)">LemonChiffon</td> + <td align="left">rgb(255, 250, 205)</td> + <td align="left">#FFFACD</td> + + </tr> + + <tr> + <td align="right">LemonChiffon1</td> + <td align="center" style="background-color:rgb(255, 250, 205)">LemonChiffon1</td> + <td align="left">rgb(255, 250, 205)</td> + <td align="left">#FFFACD</td> + + </tr> + + <tr> + <td align="right">khaki</td> + <td align="center" style="background-color:rgb(240, 230, 140)">khaki</td> + <td align="left">rgb(240, 230, 140)</td> + <td align="left">#F0E68C</td> + + </tr> + + <tr> + <td align="right">LemonChiffon3</td> + <td align="center" style="background-color:rgb(205, 201, 165)">LemonChiffon3</td> + <td align="left">rgb(205, 201, 165)</td> + <td align="left">#CDC9A5</td> + + </tr> + + <tr> + <td align="right">LemonChiffon2</td> + <td align="center" style="background-color:rgb(238, 233, 191)">LemonChiffon2</td> + <td align="left">rgb(238, 233, 191)</td> + <td align="left">#EEE9BF</td> + + </tr> + + <tr> + <td align="right">MediumGoldenRod</td> + <td align="center" style="background-color:rgb(209, 193, 102)">MediumGoldenRod</td> + <td align="left">rgb(209, 193, 102)</td> + <td align="left">#D1C166</td> + + </tr> + + <tr> + <td align="right">cornsilk4</td> + <td align="center" style="background-color:rgb(139, 136, 120)">cornsilk4</td> + <td align="left">rgb(139, 136, 120)</td> + <td align="left">#8B8878</td> + + </tr> + + <tr> + <td align="right">gold</td> + <td align="center" style="background-color:rgb(255, 215, 0)">gold</td> + <td align="left">rgb(255, 215, 0)</td> + <td align="left">#FFD700</td> + + </tr> + + <tr> + <td align="right">gold1</td> + <td align="center" style="background-color:rgb(255, 215, 0)">gold1</td> + <td align="left">rgb(255, 215, 0)</td> + <td align="left">#FFD700</td> + + </tr> + + <tr> + <td align="right">gold2</td> + <td align="center" style="background-color:rgb(238, 201, 0)">gold2</td> + <td align="left">rgb(238, 201, 0)</td> + <td align="left">#EEC900</td> + + </tr> + + <tr> + <td align="right">gold3</td> + <td align="center" style="background-color:rgb(205, 173, 0)">gold3</td> + <td align="left">rgb(205, 173, 0)</td> + <td align="left">#CDAD00</td> + + </tr> + + <tr> + <td align="right">gold4</td> + <td align="center" style="background-color:rgb(139, 117, 0)">gold4</td> + <td align="left">rgb(139, 117, 0)</td> + <td align="left">#8B7500</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod</td> + <td align="center" style="background-color:rgb(238, 221, 130)">LightGoldenrod</td> + <td align="left">rgb(238, 221, 130)</td> + <td align="left">#EEDD82</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod4</td> + <td align="center" style="background-color:rgb(139, 129, 76)">LightGoldenrod4</td> + <td align="left">rgb(139, 129, 76)</td> + <td align="left">#8B814C</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod1</td> + <td align="center" style="background-color:rgb(255, 236, 139)">LightGoldenrod1</td> + <td align="left">rgb(255, 236, 139)</td> + <td align="left">#FFEC8B</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod3</td> + <td align="center" style="background-color:rgb(205, 190, 112)">LightGoldenrod3</td> + <td align="left">rgb(205, 190, 112)</td> + <td align="left">#CDBE70</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod2</td> + <td align="center" style="background-color:rgb(238, 220, 130)">LightGoldenrod2</td> + <td align="left">rgb(238, 220, 130)</td> + <td align="left">#EEDC82</td> + + </tr> + + <tr> + <td align="right">cornsilk3</td> + <td align="center" style="background-color:rgb(205, 200, 177)">cornsilk3</td> + <td align="left">rgb(205, 200, 177)</td> + <td align="left">#CDC8B1</td> + + </tr> + + <tr> + <td align="right">cornsilk2</td> + <td align="center" style="background-color:rgb(238, 232, 205)">cornsilk2</td> + <td align="left">rgb(238, 232, 205)</td> + <td align="left">#EEE8CD</td> + + </tr> + + <tr> + <td align="right">cornsilk</td> + <td align="center" style="background-color:rgb(255, 248, 220)">cornsilk</td> + <td align="left">rgb(255, 248, 220)</td> + <td align="left">#FFF8DC</td> + + </tr> + + <tr> + <td align="right">cornsilk1</td> + <td align="center" style="background-color:rgb(255, 248, 220)">cornsilk1</td> + <td align="left">rgb(255, 248, 220)</td> + <td align="left">#FFF8DC</td> + + </tr> + + <tr> + <td align="right">goldenrod</td> + <td align="center" style="background-color:rgb(218, 165, 32)">goldenrod</td> + <td align="left">rgb(218, 165, 32)</td> + <td align="left">#DAA520</td> + + </tr> + + <tr> + <td align="right">goldenrod1</td> + <td align="center" style="background-color:rgb(255, 193, 37)">goldenrod1</td> + <td align="left">rgb(255, 193, 37)</td> + <td align="left">#FFC125</td> + + </tr> + + <tr> + <td align="right">goldenrod2</td> + <td align="center" style="background-color:rgb(238, 180, 34)">goldenrod2</td> + <td align="left">rgb(238, 180, 34)</td> + <td align="left">#EEB422</td> + + </tr> + + <tr> + <td align="right">goldenrod3</td> + <td align="center" style="background-color:rgb(205, 155, 29)">goldenrod3</td> + <td align="left">rgb(205, 155, 29)</td> + <td align="left">#CD9B1D</td> + + </tr> + + <tr> + <td align="right">goldenrod4</td> + <td align="center" style="background-color:rgb(139, 105, 20)">goldenrod4</td> + <td align="left">rgb(139, 105, 20)</td> + <td align="left">#8B6914</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod</td> + <td align="center" style="background-color:rgb(184, 134, 11)">DarkGoldenrod</td> + <td align="left">rgb(184, 134, 11)</td> + <td align="left">#B8860B</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod1</td> + <td align="center" style="background-color:rgb(255, 185, 15)">DarkGoldenrod1</td> + <td align="left">rgb(255, 185, 15)</td> + <td align="left">#FFB90F</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod2</td> + <td align="center" style="background-color:rgb(238, 173, 14)">DarkGoldenrod2</td> + <td align="left">rgb(238, 173, 14)</td> + <td align="left">#EEAD0E</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod3</td> + <td align="center" style="background-color:rgb(205, 149, 12)">DarkGoldenrod3</td> + <td align="left">rgb(205, 149, 12)</td> + <td align="left">#CD950C</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod4</td> + <td align="center" style="background-color:rgb(139, 101, 8)">DarkGoldenrod4</td> + <td align="left">rgb(139, 101, 8)</td> + <td align="left">#8B6508</td> + + </tr> + + <tr> + <td align="right">FloralWhite</td> + <td align="center" style="background-color:rgb(255, 250, 240)">FloralWhite</td> + <td align="left">rgb(255, 250, 240)</td> + <td align="left">#FFFAF0</td> + + </tr> + + <tr> + <td align="right">wheat2</td> + <td align="center" style="background-color:rgb(238, 216, 174)">wheat2</td> + <td align="left">rgb(238, 216, 174)</td> + <td align="left">#EED8AE</td> + + </tr> + + <tr> + <td align="right">OldLace</td> + <td align="center" style="background-color:rgb(253, 245, 230)">OldLace</td> + <td align="left">rgb(253, 245, 230)</td> + <td align="left">#FDF5E6</td> + + </tr> + + <tr> + <td align="right">wheat</td> + <td align="center" style="background-color:rgb(245, 222, 179)">wheat</td> + <td align="left">rgb(245, 222, 179)</td> + <td align="left">#F5DEB3</td> + + </tr> + + <tr> + <td align="right">wheat1</td> + <td align="center" style="background-color:rgb(255, 231, 186)">wheat1</td> + <td align="left">rgb(255, 231, 186)</td> + <td align="left">#FFE7BA</td> + + </tr> + + <tr> + <td align="right">wheat3</td> + <td align="center" style="background-color:rgb(205, 186, 150)">wheat3</td> + <td align="left">rgb(205, 186, 150)</td> + <td align="left">#CDBA96</td> + + </tr> + + <tr> + <td align="right">orange</td> + <td align="center" style="background-color:rgb(255, 165, 0)">orange</td> + <td align="left">rgb(255, 165, 0)</td> + <td align="left">#FFA500</td> + + </tr> + + <tr> + <td align="right">orange1</td> + <td align="center" style="background-color:rgb(255, 165, 0)">orange1</td> + <td align="left">rgb(255, 165, 0)</td> + <td align="left">#FFA500</td> + + </tr> + + <tr> + <td align="right">orange2</td> + <td align="center" style="background-color:rgb(238, 154, 0)">orange2</td> + <td align="left">rgb(238, 154, 0)</td> + <td align="left">#EE9A00</td> + + </tr> + + <tr> + <td align="right">orange3</td> + <td align="center" style="background-color:rgb(205, 133, 0)">orange3</td> + <td align="left">rgb(205, 133, 0)</td> + <td align="left">#CD8500</td> + + </tr> + + <tr> + <td align="right">orange4</td> + <td align="center" style="background-color:rgb(139, 90, 0)">orange4</td> + <td align="left">rgb(139, 90, 0)</td> + <td align="left">#8B5A00</td> + + </tr> + + <tr> + <td align="right">wheat4</td> + <td align="center" style="background-color:rgb(139, 126, 102)">wheat4</td> + <td align="left">rgb(139, 126, 102)</td> + <td align="left">#8B7E66</td> + + </tr> + + <tr> + <td align="right">moccasin</td> + <td align="center" style="background-color:rgb(255, 228, 181)">moccasin</td> + <td align="left">rgb(255, 228, 181)</td> + <td align="left">#FFE4B5</td> + + </tr> + + <tr> + <td align="right">PapayaWhip</td> + <td align="center" style="background-color:rgb(255, 239, 213)">PapayaWhip</td> + <td align="left">rgb(255, 239, 213)</td> + <td align="left">#FFEFD5</td> + + </tr> + + <tr> + <td align="right">NavajoWhite3</td> + <td align="center" style="background-color:rgb(205, 179, 139)">NavajoWhite3</td> + <td align="left">rgb(205, 179, 139)</td> + <td align="left">#CDB38B</td> + + </tr> + + <tr> + <td align="right">BlanchedAlmond</td> + <td align="center" style="background-color:rgb(255, 235, 205)">BlanchedAlmond</td> + <td align="left">rgb(255, 235, 205)</td> + <td align="left">#FFEBCD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite</td> + <td align="center" style="background-color:rgb(255, 222, 173)">NavajoWhite</td> + <td align="left">rgb(255, 222, 173)</td> + <td align="left">#FFDEAD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite1</td> + <td align="center" style="background-color:rgb(255, 222, 173)">NavajoWhite1</td> + <td align="left">rgb(255, 222, 173)</td> + <td align="left">#FFDEAD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite2</td> + <td align="center" style="background-color:rgb(238, 207, 161)">NavajoWhite2</td> + <td align="left">rgb(238, 207, 161)</td> + <td align="left">#EECFA1</td> + + </tr> + + <tr> + <td align="right">NavajoWhite4</td> + <td align="center" style="background-color:rgb(139, 121, 94)">NavajoWhite4</td> + <td align="left">rgb(139, 121, 94)</td> + <td align="left">#8B795E</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite4</td> + <td align="center" style="background-color:rgb(139, 131, 120)">AntiqueWhite4</td> + <td align="left">rgb(139, 131, 120)</td> + <td align="left">#8B8378</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite</td> + <td align="center" style="background-color:rgb(250, 235, 215)">AntiqueWhite</td> + <td align="left">rgb(250, 235, 215)</td> + <td align="left">#FAEBD7</td> + + </tr> + + <tr> + <td align="right">tan</td> + <td align="center" style="background-color:rgb(210, 180, 140)">tan</td> + <td align="left">rgb(210, 180, 140)</td> + <td align="left">#D2B48C</td> + + </tr> + + <tr> + <td align="right">bisque4</td> + <td align="center" style="background-color:rgb(139, 125, 107)">bisque4</td> + <td align="left">rgb(139, 125, 107)</td> + <td align="left">#8B7D6B</td> + + </tr> + + <tr> + <td align="right">burlywood</td> + <td align="center" style="background-color:rgb(222, 184, 135)">burlywood</td> + <td align="left">rgb(222, 184, 135)</td> + <td align="left">#DEB887</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite2</td> + <td align="center" style="background-color:rgb(238, 223, 204)">AntiqueWhite2</td> + <td align="left">rgb(238, 223, 204)</td> + <td align="left">#EEDFCC</td> + + </tr> + + <tr> + <td align="right">burlywood1</td> + <td align="center" style="background-color:rgb(255, 211, 155)">burlywood1</td> + <td align="left">rgb(255, 211, 155)</td> + <td align="left">#FFD39B</td> + + </tr> + + <tr> + <td align="right">burlywood3</td> + <td align="center" style="background-color:rgb(205, 170, 125)">burlywood3</td> + <td align="left">rgb(205, 170, 125)</td> + <td align="left">#CDAA7D</td> + + </tr> + + <tr> + <td align="right">burlywood2</td> + <td align="center" style="background-color:rgb(238, 197, 145)">burlywood2</td> + <td align="left">rgb(238, 197, 145)</td> + <td align="left">#EEC591</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite1</td> + <td align="center" style="background-color:rgb(255, 239, 219)">AntiqueWhite1</td> + <td align="left">rgb(255, 239, 219)</td> + <td align="left">#FFEFDB</td> + + </tr> + + <tr> + <td align="right">burlywood4</td> + <td align="center" style="background-color:rgb(139, 115, 85)">burlywood4</td> + <td align="left">rgb(139, 115, 85)</td> + <td align="left">#8B7355</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite3</td> + <td align="center" style="background-color:rgb(205, 192, 176)">AntiqueWhite3</td> + <td align="left">rgb(205, 192, 176)</td> + <td align="left">#CDC0B0</td> + + </tr> + + <tr> + <td align="right">DarkOrange</td> + <td align="center" style="background-color:rgb(255, 140, 0)">DarkOrange</td> + <td align="left">rgb(255, 140, 0)</td> + <td align="left">#FF8C00</td> + + </tr> + + <tr> + <td align="right">bisque2</td> + <td align="center" style="background-color:rgb(238, 213, 183)">bisque2</td> + <td align="left">rgb(238, 213, 183)</td> + <td align="left">#EED5B7</td> + + </tr> + + <tr> + <td align="right">bisque</td> + <td align="center" style="background-color:rgb(255, 228, 196)">bisque</td> + <td align="left">rgb(255, 228, 196)</td> + <td align="left">#FFE4C4</td> + + </tr> + + <tr> + <td align="right">bisque1</td> + <td align="center" style="background-color:rgb(255, 228, 196)">bisque1</td> + <td align="left">rgb(255, 228, 196)</td> + <td align="left">#FFE4C4</td> + + </tr> + + <tr> + <td align="right">bisque3</td> + <td align="center" style="background-color:rgb(205, 183, 158)">bisque3</td> + <td align="left">rgb(205, 183, 158)</td> + <td align="left">#CDB79E</td> + + </tr> + + <tr> + <td align="right">DarkOrange1</td> + <td align="center" style="background-color:rgb(255, 127, 0)">DarkOrange1</td> + <td align="left">rgb(255, 127, 0)</td> + <td align="left">#FF7F00</td> + + </tr> + + <tr> + <td align="right">linen</td> + <td align="center" style="background-color:rgb(250, 240, 230)">linen</td> + <td align="left">rgb(250, 240, 230)</td> + <td align="left">#FAF0E6</td> + + </tr> + + <tr> + <td align="right">DarkOrange2</td> + <td align="center" style="background-color:rgb(238, 118, 0)">DarkOrange2</td> + <td align="left">rgb(238, 118, 0)</td> + <td align="left">#EE7600</td> + + </tr> + + <tr> + <td align="right">DarkOrange3</td> + <td align="center" style="background-color:rgb(205, 102, 0)">DarkOrange3</td> + <td align="left">rgb(205, 102, 0)</td> + <td align="left">#CD6600</td> + + </tr> + + <tr> + <td align="right">DarkOrange4</td> + <td align="center" style="background-color:rgb(139, 69, 0)">DarkOrange4</td> + <td align="left">rgb(139, 69, 0)</td> + <td align="left">#8B4500</td> + + </tr> + + <tr> + <td align="right">peru</td> + <td align="center" style="background-color:rgb(205, 133, 63)">peru</td> + <td align="left">rgb(205, 133, 63)</td> + <td align="left">#CD853F</td> + + </tr> + + <tr> + <td align="right">tan1</td> + <td align="center" style="background-color:rgb(255, 165, 79)">tan1</td> + <td align="left">rgb(255, 165, 79)</td> + <td align="left">#FFA54F</td> + + </tr> + + <tr> + <td align="right">tan2</td> + <td align="center" style="background-color:rgb(238, 154, 73)">tan2</td> + <td align="left">rgb(238, 154, 73)</td> + <td align="left">#EE9A49</td> + + </tr> + + <tr> + <td align="right">tan3</td> + <td align="center" style="background-color:rgb(205, 133, 63)">tan3</td> + <td align="left">rgb(205, 133, 63)</td> + <td align="left">#CD853F</td> + + </tr> + + <tr> + <td align="right">tan4</td> + <td align="center" style="background-color:rgb(139, 90, 43)">tan4</td> + <td align="left">rgb(139, 90, 43)</td> + <td align="left">#8B5A2B</td> + + </tr> + + <tr> + <td align="right">PeachPuff</td> + <td align="center" style="background-color:rgb(255, 218, 185)">PeachPuff</td> + <td align="left">rgb(255, 218, 185)</td> + <td align="left">#FFDAB9</td> + + </tr> + + <tr> + <td align="right">PeachPuff1</td> + <td align="center" style="background-color:rgb(255, 218, 185)">PeachPuff1</td> + <td align="left">rgb(255, 218, 185)</td> + <td align="left">#FFDAB9</td> + + </tr> + + <tr> + <td align="right">PeachPuff4</td> + <td align="center" style="background-color:rgb(139, 119, 101)">PeachPuff4</td> + <td align="left">rgb(139, 119, 101)</td> + <td align="left">#8B7765</td> + + </tr> + + <tr> + <td align="right">PeachPuff2</td> + <td align="center" style="background-color:rgb(238, 203, 173)">PeachPuff2</td> + <td align="left">rgb(238, 203, 173)</td> + <td align="left">#EECBAD</td> + + </tr> + + <tr> + <td align="right">PeachPuff3</td> + <td align="center" style="background-color:rgb(205, 175, 149)">PeachPuff3</td> + <td align="left">rgb(205, 175, 149)</td> + <td align="left">#CDAF95</td> + + </tr> + + <tr> + <td align="right">SandyBrown</td> + <td align="center" style="background-color:rgb(244, 164, 96)">SandyBrown</td> + <td align="left">rgb(244, 164, 96)</td> + <td align="left">#F4A460</td> + + </tr> + + <tr> + <td align="right">seashell4</td> + <td align="center" style="background-color:rgb(139, 134, 130)">seashell4</td> + <td align="left">rgb(139, 134, 130)</td> + <td align="left">#8B8682</td> + + </tr> + + <tr> + <td align="right">seashell2</td> + <td align="center" style="background-color:rgb(238, 229, 222)">seashell2</td> + <td align="left">rgb(238, 229, 222)</td> + <td align="left">#EEE5DE</td> + + </tr> + + <tr> + <td align="right">seashell3</td> + <td align="center" style="background-color:rgb(205, 197, 191)">seashell3</td> + <td align="left">rgb(205, 197, 191)</td> + <td align="left">#CDC5BF</td> + + </tr> + + <tr> + <td align="right">chocolate</td> + <td align="center" style="background-color:rgb(210, 105, 30)">chocolate</td> + <td align="left">rgb(210, 105, 30)</td> + <td align="left">#D2691E</td> + + </tr> + + <tr> + <td align="right">chocolate1</td> + <td align="center" style="background-color:rgb(255, 127, 36)">chocolate1</td> + <td align="left">rgb(255, 127, 36)</td> + <td align="left">#FF7F24</td> + + </tr> + + <tr> + <td align="right">chocolate2</td> + <td align="center" style="background-color:rgb(238, 118, 33)">chocolate2</td> + <td align="left">rgb(238, 118, 33)</td> + <td align="left">#EE7621</td> + + </tr> + + <tr> + <td align="right">chocolate3</td> + <td align="center" style="background-color:rgb(205, 102, 29)">chocolate3</td> + <td align="left">rgb(205, 102, 29)</td> + <td align="left">#CD661D</td> + + </tr> + + <tr> + <td align="right">chocolate4</td> + <td align="center" style="background-color:rgb(139, 69, 19)">chocolate4</td> + <td align="left">rgb(139, 69, 19)</td> + <td align="left">#8B4513</td> + + </tr> + + <tr> + <td align="right">SaddleBrown</td> + <td align="center" style="background-color:rgb(139, 69, 19)">SaddleBrown</td> + <td align="left">rgb(139, 69, 19)</td> + <td align="left">#8B4513</td> + + </tr> + + <tr> + <td align="right">seashell</td> + <td align="center" style="background-color:rgb(255, 245, 238)">seashell</td> + <td align="left">rgb(255, 245, 238)</td> + <td align="left">#FFF5EE</td> + + </tr> + + <tr> + <td align="right">seashell1</td> + <td align="center" style="background-color:rgb(255, 245, 238)">seashell1</td> + <td align="left">rgb(255, 245, 238)</td> + <td align="left">#FFF5EE</td> + + </tr> + + <tr> + <td align="right">sienna4</td> + <td align="center" style="background-color:rgb(139, 71, 38)">sienna4</td> + <td align="left">rgb(139, 71, 38)</td> + <td align="left">#8B4726</td> + + </tr> + + <tr> + <td align="right">sienna</td> + <td align="center" style="background-color:rgb(160, 82, 45)">sienna</td> + <td align="left">rgb(160, 82, 45)</td> + <td align="left">#A0522D</td> + + </tr> + + <tr> + <td align="right">sienna1</td> + <td align="center" style="background-color:rgb(255, 130, 71)">sienna1</td> + <td align="left">rgb(255, 130, 71)</td> + <td align="left">#FF8247</td> + + </tr> + + <tr> + <td align="right">sienna2</td> + <td align="center" style="background-color:rgb(238, 121, 66)">sienna2</td> + <td align="left">rgb(238, 121, 66)</td> + <td align="left">#EE7942</td> + + </tr> + + <tr> + <td align="right">sienna3</td> + <td align="center" style="background-color:rgb(205, 104, 57)">sienna3</td> + <td align="left">rgb(205, 104, 57)</td> + <td align="left">#CD6839</td> + + </tr> + + <tr> + <td align="right">LightSalmon3</td> + <td align="center" style="background-color:rgb(205, 129, 98)">LightSalmon3</td> + <td align="left">rgb(205, 129, 98)</td> + <td align="left">#CD8162</td> + + </tr> + + <tr> + <td align="right">LightSalmon</td> + <td align="center" style="background-color:rgb(255, 160, 122)">LightSalmon</td> + <td align="left">rgb(255, 160, 122)</td> + <td align="left">#FFA07A</td> + + </tr> + + <tr> + <td align="right">LightSalmon1</td> + <td align="center" style="background-color:rgb(255, 160, 122)">LightSalmon1</td> + <td align="left">rgb(255, 160, 122)</td> + <td align="left">#FFA07A</td> + + </tr> + + <tr> + <td align="right">LightSalmon4</td> + <td align="center" style="background-color:rgb(139, 87, 66)">LightSalmon4</td> + <td align="left">rgb(139, 87, 66)</td> + <td align="left">#8B5742</td> + + </tr> + + <tr> + <td align="right">LightSalmon2</td> + <td align="center" style="background-color:rgb(238, 149, 114)">LightSalmon2</td> + <td align="left">rgb(238, 149, 114)</td> + <td align="left">#EE9572</td> + + </tr> + + <tr> + <td align="right">coral</td> + <td align="center" style="background-color:rgb(255, 127, 80)">coral</td> + <td align="left">rgb(255, 127, 80)</td> + <td align="left">#FF7F50</td> + + </tr> + + <tr> + <td align="right">OrangeRed</td> + <td align="center" style="background-color:rgb(255, 69, 0)">OrangeRed</td> + <td align="left">rgb(255, 69, 0)</td> + <td align="left">#FF4500</td> + + </tr> + + <tr> + <td align="right">OrangeRed1</td> + <td align="center" style="background-color:rgb(255, 69, 0)">OrangeRed1</td> + <td align="left">rgb(255, 69, 0)</td> + <td align="left">#FF4500</td> + + </tr> + + <tr> + <td align="right">OrangeRed2</td> + <td align="center" style="background-color:rgb(238, 64, 0)">OrangeRed2</td> + <td align="left">rgb(238, 64, 0)</td> + <td align="left">#EE4000</td> + + </tr> + + <tr> + <td align="right">OrangeRed3</td> + <td align="center" style="background-color:rgb(205, 55, 0)">OrangeRed3</td> + <td align="left">rgb(205, 55, 0)</td> + <td align="left">#CD3700</td> + + </tr> + + <tr> + <td align="right">OrangeRed4</td> + <td align="center" style="background-color:rgb(139, 37, 0)">OrangeRed4</td> + <td align="left">rgb(139, 37, 0)</td> + <td align="left">#8B2500</td> + + </tr> + + <tr> + <td align="right">DarkSalmon</td> + <td align="center" style="background-color:rgb(233, 150, 122)">DarkSalmon</td> + <td align="left">rgb(233, 150, 122)</td> + <td align="left">#E9967A</td> + + </tr> + + <tr> + <td align="right">salmon1</td> + <td align="center" style="background-color:rgb(255, 140, 105)">salmon1</td> + <td align="left">rgb(255, 140, 105)</td> + <td align="left">#FF8C69</td> + + </tr> + + <tr> + <td align="right">salmon2</td> + <td align="center" style="background-color:rgb(238, 130, 98)">salmon2</td> + <td align="left">rgb(238, 130, 98)</td> + <td align="left">#EE8262</td> + + </tr> + + <tr> + <td align="right">salmon3</td> + <td align="center" style="background-color:rgb(205, 112, 84)">salmon3</td> + <td align="left">rgb(205, 112, 84)</td> + <td align="left">#CD7054</td> + + </tr> + + <tr> + <td align="right">salmon4</td> + <td align="center" style="background-color:rgb(139, 76, 57)">salmon4</td> + <td align="left">rgb(139, 76, 57)</td> + <td align="left">#8B4C39</td> + + </tr> + + <tr> + <td align="right">coral1</td> + <td align="center" style="background-color:rgb(255, 114, 86)">coral1</td> + <td align="left">rgb(255, 114, 86)</td> + <td align="left">#FF7256</td> + + </tr> + + <tr> + <td align="right">coral2</td> + <td align="center" style="background-color:rgb(238, 106, 80)">coral2</td> + <td align="left">rgb(238, 106, 80)</td> + <td align="left">#EE6A50</td> + + </tr> + + <tr> + <td align="right">coral3</td> + <td align="center" style="background-color:rgb(205, 91, 69)">coral3</td> + <td align="left">rgb(205, 91, 69)</td> + <td align="left">#CD5B45</td> + + </tr> + + <tr> + <td align="right">coral4</td> + <td align="center" style="background-color:rgb(139, 62, 47)">coral4</td> + <td align="left">rgb(139, 62, 47)</td> + <td align="left">#8B3E2F</td> + + </tr> + + <tr> + <td align="right">tomato4</td> + <td align="center" style="background-color:rgb(139, 54, 38)">tomato4</td> + <td align="left">rgb(139, 54, 38)</td> + <td align="left">#8B3626</td> + + </tr> + + <tr> + <td align="right">tomato</td> + <td align="center" style="background-color:rgb(255, 99, 71)">tomato</td> + <td align="left">rgb(255, 99, 71)</td> + <td align="left">#FF6347</td> + + </tr> + + <tr> + <td align="right">tomato1</td> + <td align="center" style="background-color:rgb(255, 99, 71)">tomato1</td> + <td align="left">rgb(255, 99, 71)</td> + <td align="left">#FF6347</td> + + </tr> + + <tr> + <td align="right">tomato2</td> + <td align="center" style="background-color:rgb(238, 92, 66)">tomato2</td> + <td align="left">rgb(238, 92, 66)</td> + <td align="left">#EE5C42</td> + + </tr> + + <tr> + <td align="right">tomato3</td> + <td align="center" style="background-color:rgb(205, 79, 57)">tomato3</td> + <td align="left">rgb(205, 79, 57)</td> + <td align="left">#CD4F39</td> + + </tr> + + <tr> + <td align="right">MistyRose4</td> + <td align="center" style="background-color:rgb(139, 125, 123)">MistyRose4</td> + <td align="left">rgb(139, 125, 123)</td> + <td align="left">#8B7D7B</td> + + </tr> + + <tr> + <td align="right">MistyRose2</td> + <td align="center" style="background-color:rgb(238, 213, 210)">MistyRose2</td> + <td align="left">rgb(238, 213, 210)</td> + <td align="left">#EED5D2</td> + + </tr> + + <tr> + <td align="right">MistyRose</td> + <td align="center" style="background-color:rgb(255, 228, 225)">MistyRose</td> + <td align="left">rgb(255, 228, 225)</td> + <td align="left">#FFE4E1</td> + + </tr> + + <tr> + <td align="right">MistyRose1</td> + <td align="center" style="background-color:rgb(255, 228, 225)">MistyRose1</td> + <td align="left">rgb(255, 228, 225)</td> + <td align="left">#FFE4E1</td> + + </tr> + + <tr> + <td align="right">salmon</td> + <td align="center" style="background-color:rgb(250, 128, 114)">salmon</td> + <td align="left">rgb(250, 128, 114)</td> + <td align="left">#FA8072</td> + + </tr> + + <tr> + <td align="right">MistyRose3</td> + <td align="center" style="background-color:rgb(205, 183, 181)">MistyRose3</td> + <td align="left">rgb(205, 183, 181)</td> + <td align="left">#CDB7B5</td> + + </tr> + + <tr> + <td align="right">white</td> + <td align="center" style="background-color:rgb(255, 255, 255)">white</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">gray100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">gray100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">grey100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">grey100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">grey100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">grey100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">gray99</td> + <td align="center" style="background-color:rgb(252, 252, 252)">gray99</td> + <td align="left">rgb(252, 252, 252)</td> + <td align="left">#FCFCFC</td> + + </tr> + + <tr> + <td align="right">grey99</td> + <td align="center" style="background-color:rgb(252, 252, 252)">grey99</td> + <td align="left">rgb(252, 252, 252)</td> + <td align="left">#FCFCFC</td> + + </tr> + + <tr> + <td align="right">gray98</td> + <td align="center" style="background-color:rgb(250, 250, 250)">gray98</td> + <td align="left">rgb(250, 250, 250)</td> + <td align="left">#FAFAFA</td> + + </tr> + + <tr> + <td align="right">grey98</td> + <td align="center" style="background-color:rgb(250, 250, 250)">grey98</td> + <td align="left">rgb(250, 250, 250)</td> + <td align="left">#FAFAFA</td> + + </tr> + + <tr> + <td align="right">gray97</td> + <td align="center" style="background-color:rgb(247, 247, 247)">gray97</td> + <td align="left">rgb(247, 247, 247)</td> + <td align="left">#F7F7F7</td> + + </tr> + + <tr> + <td align="right">grey97</td> + <td align="center" style="background-color:rgb(247, 247, 247)">grey97</td> + <td align="left">rgb(247, 247, 247)</td> + <td align="left">#F7F7F7</td> + + </tr> + + <tr> + <td align="right">gray96</td> + <td align="center" style="background-color:rgb(245, 245, 245)">gray96</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">grey96</td> + <td align="center" style="background-color:rgb(245, 245, 245)">grey96</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">WhiteSmoke</td> + <td align="center" style="background-color:rgb(245, 245, 245)">WhiteSmoke</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">gray95</td> + <td align="center" style="background-color:rgb(242, 242, 242)">gray95</td> + <td align="left">rgb(242, 242, 242)</td> + <td align="left">#F2F2F2</td> + + </tr> + + <tr> + <td align="right">grey95</td> + <td align="center" style="background-color:rgb(242, 242, 242)">grey95</td> + <td align="left">rgb(242, 242, 242)</td> + <td align="left">#F2F2F2</td> + + </tr> + + <tr> + <td align="right">gray94</td> + <td align="center" style="background-color:rgb(240, 240, 240)">gray94</td> + <td align="left">rgb(240, 240, 240)</td> + <td align="left">#F0F0F0</td> + + </tr> + + <tr> + <td align="right">grey94</td> + <td align="center" style="background-color:rgb(240, 240, 240)">grey94</td> + <td align="left">rgb(240, 240, 240)</td> + <td align="left">#F0F0F0</td> + + </tr> + + <tr> + <td align="right">gray93</td> + <td align="center" style="background-color:rgb(237, 237, 237)">gray93</td> + <td align="left">rgb(237, 237, 237)</td> + <td align="left">#EDEDED</td> + + </tr> + + <tr> + <td align="right">grey93</td> + <td align="center" style="background-color:rgb(237, 237, 237)">grey93</td> + <td align="left">rgb(237, 237, 237)</td> + <td align="left">#EDEDED</td> + + </tr> + + <tr> + <td align="right">gray92</td> + <td align="center" style="background-color:rgb(235, 235, 235)">gray92</td> + <td align="left">rgb(235, 235, 235)</td> + <td align="left">#EBEBEB</td> + + </tr> + + <tr> + <td align="right">grey92</td> + <td align="center" style="background-color:rgb(235, 235, 235)">grey92</td> + <td align="left">rgb(235, 235, 235)</td> + <td align="left">#EBEBEB</td> + + </tr> + + <tr> + <td align="right">gray91</td> + <td align="center" style="background-color:rgb(232, 232, 232)">gray91</td> + <td align="left">rgb(232, 232, 232)</td> + <td align="left">#E8E8E8</td> + + </tr> + + <tr> + <td align="right">grey91</td> + <td align="center" style="background-color:rgb(232, 232, 232)">grey91</td> + <td align="left">rgb(232, 232, 232)</td> + <td align="left">#E8E8E8</td> + + </tr> + + <tr> + <td align="right">gray90</td> + <td align="center" style="background-color:rgb(229, 229, 229)">gray90</td> + <td align="left">rgb(229, 229, 229)</td> + <td align="left">#E5E5E5</td> + + </tr> + + <tr> + <td align="right">grey90</td> + <td align="center" style="background-color:rgb(229, 229, 229)">grey90</td> + <td align="left">rgb(229, 229, 229)</td> + <td align="left">#E5E5E5</td> + + </tr> + + <tr> + <td align="right">gray89</td> + <td align="center" style="background-color:rgb(227, 227, 227)">gray89</td> + <td align="left">rgb(227, 227, 227)</td> + <td align="left">#E3E3E3</td> + + </tr> + + <tr> + <td align="right">grey89</td> + <td align="center" style="background-color:rgb(227, 227, 227)">grey89</td> + <td align="left">rgb(227, 227, 227)</td> + <td align="left">#E3E3E3</td> + + </tr> + + <tr> + <td align="right">gray88</td> + <td align="center" style="background-color:rgb(224, 224, 224)">gray88</td> + <td align="left">rgb(224, 224, 224)</td> + <td align="left">#E0E0E0</td> + + </tr> + + <tr> + <td align="right">grey88</td> + <td align="center" style="background-color:rgb(224, 224, 224)">grey88</td> + <td align="left">rgb(224, 224, 224)</td> + <td align="left">#E0E0E0</td> + + </tr> + + <tr> + <td align="right">gray87</td> + <td align="center" style="background-color:rgb(222, 222, 222)">gray87</td> + <td align="left">rgb(222, 222, 222)</td> + <td align="left">#DEDEDE</td> + + </tr> + + <tr> + <td align="right">grey87</td> + <td align="center" style="background-color:rgb(222, 222, 222)">grey87</td> + <td align="left">rgb(222, 222, 222)</td> + <td align="left">#DEDEDE</td> + + </tr> + + <tr> + <td align="right">gainsboro</td> + <td align="center" style="background-color:rgb(220, 220, 220)">gainsboro</td> + <td align="left">rgb(220, 220, 220)</td> + <td align="left">#DCDCDC</td> + + </tr> + + <tr> + <td align="right">gray86</td> + <td align="center" style="background-color:rgb(219, 219, 219)">gray86</td> + <td align="left">rgb(219, 219, 219)</td> + <td align="left">#DBDBDB</td> + + </tr> + + <tr> + <td align="right">grey86</td> + <td align="center" style="background-color:rgb(219, 219, 219)">grey86</td> + <td align="left">rgb(219, 219, 219)</td> + <td align="left">#DBDBDB</td> + + </tr> + + <tr> + <td align="right">gray85</td> + <td align="center" style="background-color:rgb(217, 217, 217)">gray85</td> + <td align="left">rgb(217, 217, 217)</td> + <td align="left">#D9D9D9</td> + + </tr> + + <tr> + <td align="right">grey85</td> + <td align="center" style="background-color:rgb(217, 217, 217)">grey85</td> + <td align="left">rgb(217, 217, 217)</td> + <td align="left">#D9D9D9</td> + + </tr> + + <tr> + <td align="right">gray84</td> + <td align="center" style="background-color:rgb(214, 214, 214)">gray84</td> + <td align="left">rgb(214, 214, 214)</td> + <td align="left">#D6D6D6</td> + + </tr> + + <tr> + <td align="right">grey84</td> + <td align="center" style="background-color:rgb(214, 214, 214)">grey84</td> + <td align="left">rgb(214, 214, 214)</td> + <td align="left">#D6D6D6</td> + + </tr> + + <tr> + <td align="right">gray83</td> + <td align="center" style="background-color:rgb(212, 212, 212)">gray83</td> + <td align="left">rgb(212, 212, 212)</td> + <td align="left">#D4D4D4</td> + + </tr> + + <tr> + <td align="right">grey83</td> + <td align="center" style="background-color:rgb(212, 212, 212)">grey83</td> + <td align="left">rgb(212, 212, 212)</td> + <td align="left">#D4D4D4</td> + + </tr> + + <tr> + <td align="right">LightGray</td> + <td align="center" style="background-color:rgb(211, 211, 211)">LightGray</td> + <td align="left">rgb(211, 211, 211)</td> + <td align="left">#D3D3D3</td> + + </tr> + + <tr> + <td align="right">LightGrey</td> + <td align="center" style="background-color:rgb(211, 211, 211)">LightGrey</td> + <td align="left">rgb(211, 211, 211)</td> + <td align="left">#D3D3D3</td> + + </tr> + + <tr> + <td align="right">gray82</td> + <td align="center" style="background-color:rgb(209, 209, 209)">gray82</td> + <td align="left">rgb(209, 209, 209)</td> + <td align="left">#D1D1D1</td> + + </tr> + + <tr> + <td align="right">grey82</td> + <td align="center" style="background-color:rgb(209, 209, 209)">grey82</td> + <td align="left">rgb(209, 209, 209)</td> + <td align="left">#D1D1D1</td> + + </tr> + + <tr> + <td align="right">gray81</td> + <td align="center" style="background-color:rgb(207, 207, 207)">gray81</td> + <td align="left">rgb(207, 207, 207)</td> + <td align="left">#CFCFCF</td> + + </tr> + + <tr> + <td align="right">grey81</td> + <td align="center" style="background-color:rgb(207, 207, 207)">grey81</td> + <td align="left">rgb(207, 207, 207)</td> + <td align="left">#CFCFCF</td> + + </tr> + + <tr> + <td align="right">gray80</td> + <td align="center" style="background-color:rgb(204, 204, 204)">gray80</td> + <td align="left">rgb(204, 204, 204)</td> + <td align="left">#CCCCCC</td> + + </tr> + + <tr> + <td align="right">grey80</td> + <td align="center" style="background-color:rgb(204, 204, 204)">grey80</td> + <td align="left">rgb(204, 204, 204)</td> + <td align="left">#CCCCCC</td> + + </tr> + + <tr> + <td align="right">gray79</td> + <td align="center" style="background-color:rgb(201, 201, 201)">gray79</td> + <td align="left">rgb(201, 201, 201)</td> + <td align="left">#C9C9C9</td> + + </tr> + + <tr> + <td align="right">grey79</td> + <td align="center" style="background-color:rgb(201, 201, 201)">grey79</td> + <td align="left">rgb(201, 201, 201)</td> + <td align="left">#C9C9C9</td> + + </tr> + + <tr> + <td align="right">gray78</td> + <td align="center" style="background-color:rgb(199, 199, 199)">gray78</td> + <td align="left">rgb(199, 199, 199)</td> + <td align="left">#C7C7C7</td> + + </tr> + + <tr> + <td align="right">grey78</td> + <td align="center" style="background-color:rgb(199, 199, 199)">grey78</td> + <td align="left">rgb(199, 199, 199)</td> + <td align="left">#C7C7C7</td> + + </tr> + + <tr> + <td align="right">gray77</td> + <td align="center" style="background-color:rgb(196, 196, 196)">gray77</td> + <td align="left">rgb(196, 196, 196)</td> + <td align="left">#C4C4C4</td> + + </tr> + + <tr> + <td align="right">grey77</td> + <td align="center" style="background-color:rgb(196, 196, 196)">grey77</td> + <td align="left">rgb(196, 196, 196)</td> + <td align="left">#C4C4C4</td> + + </tr> + + <tr> + <td align="right">gray76</td> + <td align="center" style="background-color:rgb(194, 194, 194)">gray76</td> + <td align="left">rgb(194, 194, 194)</td> + <td align="left">#C2C2C2</td> + + </tr> + + <tr> + <td align="right">grey76</td> + <td align="center" style="background-color:rgb(194, 194, 194)">grey76</td> + <td align="left">rgb(194, 194, 194)</td> + <td align="left">#C2C2C2</td> + + </tr> + + <tr> + <td align="right">silver</td> + <td align="center" style="background-color:rgb(192, 192, 192)">silver</td> + <td align="left">rgb(192, 192, 192)</td> + <td align="left">#C0C0C0</td> + + </tr> + + <tr> + <td align="right">gray75</td> + <td align="center" style="background-color:rgb(191, 191, 191)">gray75</td> + <td align="left">rgb(191, 191, 191)</td> + <td align="left">#BFBFBF</td> + + </tr> + + <tr> + <td align="right">grey75</td> + <td align="center" style="background-color:rgb(191, 191, 191)">grey75</td> + <td align="left">rgb(191, 191, 191)</td> + <td align="left">#BFBFBF</td> + + </tr> + + <tr> + <td align="right">gray74</td> + <td align="center" style="background-color:rgb(189, 189, 189)">gray74</td> + <td align="left">rgb(189, 189, 189)</td> + <td align="left">#BDBDBD</td> + + </tr> + + <tr> + <td align="right">grey74</td> + <td align="center" style="background-color:rgb(189, 189, 189)">grey74</td> + <td align="left">rgb(189, 189, 189)</td> + <td align="left">#BDBDBD</td> + + </tr> + + <tr> + <td align="right">gray73</td> + <td align="center" style="background-color:rgb(186, 186, 186)">gray73</td> + <td align="left">rgb(186, 186, 186)</td> + <td align="left">#BABABA</td> + + </tr> + + <tr> + <td align="right">grey73</td> + <td align="center" style="background-color:rgb(186, 186, 186)">grey73</td> + <td align="left">rgb(186, 186, 186)</td> + <td align="left">#BABABA</td> + + </tr> + + <tr> + <td align="right">gray72</td> + <td align="center" style="background-color:rgb(184, 184, 184)">gray72</td> + <td align="left">rgb(184, 184, 184)</td> + <td align="left">#B8B8B8</td> + + </tr> + + <tr> + <td align="right">grey72</td> + <td align="center" style="background-color:rgb(184, 184, 184)">grey72</td> + <td align="left">rgb(184, 184, 184)</td> + <td align="left">#B8B8B8</td> + + </tr> + + <tr> + <td align="right">gray71</td> + <td align="center" style="background-color:rgb(181, 181, 181)">gray71</td> + <td align="left">rgb(181, 181, 181)</td> + <td align="left">#B5B5B5</td> + + </tr> + + <tr> + <td align="right">grey71</td> + <td align="center" style="background-color:rgb(181, 181, 181)">grey71</td> + <td align="left">rgb(181, 181, 181)</td> + <td align="left">#B5B5B5</td> + + </tr> + + <tr> + <td align="right">gray70</td> + <td align="center" style="background-color:rgb(179, 179, 179)">gray70</td> + <td align="left">rgb(179, 179, 179)</td> + <td align="left">#B3B3B3</td> + + </tr> + + <tr> + <td align="right">grey70</td> + <td align="center" style="background-color:rgb(179, 179, 179)">grey70</td> + <td align="left">rgb(179, 179, 179)</td> + <td align="left">#B3B3B3</td> + + </tr> + + <tr> + <td align="right">gray69</td> + <td align="center" style="background-color:rgb(176, 176, 176)">gray69</td> + <td align="left">rgb(176, 176, 176)</td> + <td align="left">#B0B0B0</td> + + </tr> + + <tr> + <td align="right">grey69</td> + <td align="center" style="background-color:rgb(176, 176, 176)">grey69</td> + <td align="left">rgb(176, 176, 176)</td> + <td align="left">#B0B0B0</td> + + </tr> + + <tr> + <td align="right">gray68</td> + <td align="center" style="background-color:rgb(173, 173, 173)">gray68</td> + <td align="left">rgb(173, 173, 173)</td> + <td align="left">#ADADAD</td> + + </tr> + + <tr> + <td align="right">grey68</td> + <td align="center" style="background-color:rgb(173, 173, 173)">grey68</td> + <td align="left">rgb(173, 173, 173)</td> + <td align="left">#ADADAD</td> + + </tr> + + <tr> + <td align="right">gray67</td> + <td align="center" style="background-color:rgb(171, 171, 171)">gray67</td> + <td align="left">rgb(171, 171, 171)</td> + <td align="left">#ABABAB</td> + + </tr> + + <tr> + <td align="right">grey67</td> + <td align="center" style="background-color:rgb(171, 171, 171)">grey67</td> + <td align="left">rgb(171, 171, 171)</td> + <td align="left">#ABABAB</td> + + </tr> + + <tr> + <td align="right">DarkGray</td> + <td align="center" style="background-color:rgb(169, 169, 169)">DarkGray</td> + <td align="left">rgb(169, 169, 169)</td> + <td align="left">#A9A9A9</td> + + </tr> + + <tr> + <td align="right">DarkGrey</td> + <td align="center" style="background-color:rgb(169, 169, 169)">DarkGrey</td> + <td align="left">rgb(169, 169, 169)</td> + <td align="left">#A9A9A9</td> + + </tr> + + <tr> + <td align="right">gray66</td> + <td align="center" style="background-color:rgb(168, 168, 168)">gray66</td> + <td align="left">rgb(168, 168, 168)</td> + <td align="left">#A8A8A8</td> + + </tr> + + <tr> + <td align="right">grey66</td> + <td align="center" style="background-color:rgb(168, 168, 168)">grey66</td> + <td align="left">rgb(168, 168, 168)</td> + <td align="left">#A8A8A8</td> + + </tr> + + <tr> + <td align="right">gray65</td> + <td align="center" style="background-color:rgb(166, 166, 166)">gray65</td> + <td align="left">rgb(166, 166, 166)</td> + <td align="left">#A6A6A6</td> + + </tr> + + <tr> + <td align="right">grey65</td> + <td align="center" style="background-color:rgb(166, 166, 166)">grey65</td> + <td align="left">rgb(166, 166, 166)</td> + <td align="left">#A6A6A6</td> + + </tr> + + <tr> + <td align="right">gray64</td> + <td align="center" style="background-color:rgb(163, 163, 163)">gray64</td> + <td align="left">rgb(163, 163, 163)</td> + <td align="left">#A3A3A3</td> + + </tr> + + <tr> + <td align="right">grey64</td> + <td align="center" style="background-color:rgb(163, 163, 163)">grey64</td> + <td align="left">rgb(163, 163, 163)</td> + <td align="left">#A3A3A3</td> + + </tr> + + <tr> + <td align="right">gray63</td> + <td align="center" style="background-color:rgb(161, 161, 161)">gray63</td> + <td align="left">rgb(161, 161, 161)</td> + <td align="left">#A1A1A1</td> + + </tr> + + <tr> + <td align="right">grey63</td> + <td align="center" style="background-color:rgb(161, 161, 161)">grey63</td> + <td align="left">rgb(161, 161, 161)</td> + <td align="left">#A1A1A1</td> + + </tr> + + <tr> + <td align="right">gray62</td> + <td align="center" style="background-color:rgb(158, 158, 158)">gray62</td> + <td align="left">rgb(158, 158, 158)</td> + <td align="left">#9E9E9E</td> + + </tr> + + <tr> + <td align="right">grey62</td> + <td align="center" style="background-color:rgb(158, 158, 158)">grey62</td> + <td align="left">rgb(158, 158, 158)</td> + <td align="left">#9E9E9E</td> + + </tr> + + <tr> + <td align="right">gray61</td> + <td align="center" style="background-color:rgb(156, 156, 156)">gray61</td> + <td align="left">rgb(156, 156, 156)</td> + <td align="left">#9C9C9C</td> + + </tr> + + <tr> + <td align="right">grey61</td> + <td align="center" style="background-color:rgb(156, 156, 156)">grey61</td> + <td align="left">rgb(156, 156, 156)</td> + <td align="left">#9C9C9C</td> + + </tr> + + <tr> + <td align="right">gray60</td> + <td align="center" style="background-color:rgb(153, 153, 153)">gray60</td> + <td align="left">rgb(153, 153, 153)</td> + <td align="left">#999999</td> + + </tr> + + <tr> + <td align="right">grey60</td> + <td align="center" style="background-color:rgb(153, 153, 153)">grey60</td> + <td align="left">rgb(153, 153, 153)</td> + <td align="left">#999999</td> + + </tr> + + <tr> + <td align="right">gray59</td> + <td align="center" style="background-color:rgb(150, 150, 150)">gray59</td> + <td align="left">rgb(150, 150, 150)</td> + <td align="left">#969696</td> + + </tr> + + <tr> + <td align="right">grey59</td> + <td align="center" style="background-color:rgb(150, 150, 150)">grey59</td> + <td align="left">rgb(150, 150, 150)</td> + <td align="left">#969696</td> + + </tr> + + <tr> + <td align="right">gray58</td> + <td align="center" style="background-color:rgb(148, 148, 148)">gray58</td> + <td align="left">rgb(148, 148, 148)</td> + <td align="left">#949494</td> + + </tr> + + <tr> + <td align="right">grey58</td> + <td align="center" style="background-color:rgb(148, 148, 148)">grey58</td> + <td align="left">rgb(148, 148, 148)</td> + <td align="left">#949494</td> + + </tr> + + <tr> + <td align="right">gray57</td> + <td align="center" style="background-color:rgb(145, 145, 145)">gray57</td> + <td align="left">rgb(145, 145, 145)</td> + <td align="left">#919191</td> + + </tr> + + <tr> + <td align="right">grey57</td> + <td align="center" style="background-color:rgb(145, 145, 145)">grey57</td> + <td align="left">rgb(145, 145, 145)</td> + <td align="left">#919191</td> + + </tr> + + <tr> + <td align="right">gray56</td> + <td align="center" style="background-color:rgb(143, 143, 143)">gray56</td> + <td align="left">rgb(143, 143, 143)</td> + <td align="left">#8F8F8F</td> + + </tr> + + <tr> + <td align="right">grey56</td> + <td align="center" style="background-color:rgb(143, 143, 143)">grey56</td> + <td align="left">rgb(143, 143, 143)</td> + <td align="left">#8F8F8F</td> + + </tr> + + <tr> + <td align="right">gray55</td> + <td align="center" style="background-color:rgb(140, 140, 140)">gray55</td> + <td align="left">rgb(140, 140, 140)</td> + <td align="left">#8C8C8C</td> + + </tr> + + <tr> + <td align="right">grey55</td> + <td align="center" style="background-color:rgb(140, 140, 140)">grey55</td> + <td align="left">rgb(140, 140, 140)</td> + <td align="left">#8C8C8C</td> + + </tr> + + <tr> + <td align="right">gray54</td> + <td align="center" style="background-color:rgb(138, 138, 138)">gray54</td> + <td align="left">rgb(138, 138, 138)</td> + <td align="left">#8A8A8A</td> + + </tr> + + <tr> + <td align="right">grey54</td> + <td align="center" style="background-color:rgb(138, 138, 138)">grey54</td> + <td align="left">rgb(138, 138, 138)</td> + <td align="left">#8A8A8A</td> + + </tr> + + <tr> + <td align="right">gray53</td> + <td align="center" style="background-color:rgb(135, 135, 135)">gray53</td> + <td align="left">rgb(135, 135, 135)</td> + <td align="left">#878787</td> + + </tr> + + <tr> + <td align="right">grey53</td> + <td align="center" style="background-color:rgb(135, 135, 135)">grey53</td> + <td align="left">rgb(135, 135, 135)</td> + <td align="left">#878787</td> + + </tr> + + <tr> + <td align="right">gray52</td> + <td align="center" style="background-color:rgb(133, 133, 133)">gray52</td> + <td align="left">rgb(133, 133, 133)</td> + <td align="left">#858585</td> + + </tr> + + <tr> + <td align="right">grey52</td> + <td align="center" style="background-color:rgb(133, 133, 133)">grey52</td> + <td align="left">rgb(133, 133, 133)</td> + <td align="left">#858585</td> + + </tr> + + <tr> + <td align="right">gray51</td> + <td align="center" style="background-color:rgb(130, 130, 130)">gray51</td> + <td align="left">rgb(130, 130, 130)</td> + <td align="left">#828282</td> + + </tr> + + <tr> + <td align="right">grey51</td> + <td align="center" style="background-color:rgb(130, 130, 130)">grey51</td> + <td align="left">rgb(130, 130, 130)</td> + <td align="left">#828282</td> + + </tr> + + <tr> + <td align="right">fractal</td> + <td align="center" style="background-color:rgb(128, 128, 128)">fractal</td> + <td align="left">rgb(128, 128, 128)</td> + <td align="left">#808080</td> + + </tr> + + <tr> + <td align="right">gray50</td> + <td align="center" style="background-color:rgb(127, 127, 127)">gray50</td> + <td align="left">rgb(127, 127, 127)</td> + <td align="left">#7F7F7F</td> + + </tr> + + <tr> + <td align="right">grey50</td> + <td align="center" style="background-color:rgb(127, 127, 127)">grey50</td> + <td align="left">rgb(127, 127, 127)</td> + <td align="left">#7F7F7F</td> + + </tr> + + <tr> + <td align="right">gray</td> + <td align="center" style="background-color:rgb(126, 126, 126)">gray</td> + <td align="left">rgb(126, 126, 126)</td> + <td align="left">#7E7E7E</td> + + </tr> + + <tr> + <td align="right">gray49</td> + <td align="center" style="background-color:rgb(125, 125, 125)">gray49</td> + <td align="left">rgb(125, 125, 125)</td> + <td align="left">#7D7D7D</td> + + </tr> + + <tr> + <td align="right">grey49</td> + <td align="center" style="background-color:rgb(125, 125, 125)">grey49</td> + <td align="left">rgb(125, 125, 125)</td> + <td align="left">#7D7D7D</td> + + </tr> + + <tr> + <td align="right">gray48</td> + <td align="center" style="background-color:rgb(122, 122, 122)">gray48</td> + <td align="left">rgb(122, 122, 122)</td> + <td align="left">#7A7A7A</td> + + </tr> + + <tr> + <td align="right">grey48</td> + <td align="center" style="background-color:rgb(122, 122, 122)">grey48</td> + <td align="left">rgb(122, 122, 122)</td> + <td align="left">#7A7A7A</td> + + </tr> + + <tr> + <td align="right">gray47</td> + <td align="center" style="background-color:rgb(120, 120, 120)">gray47</td> + <td align="left">rgb(120, 120, 120)</td> + <td align="left">#787878</td> + + </tr> + + <tr> + <td align="right">grey47</td> + <td align="center" style="background-color:rgb(120, 120, 120)">grey47</td> + <td align="left">rgb(120, 120, 120)</td> + <td align="left">#787878</td> + + </tr> + + <tr> + <td align="right">gray46</td> + <td align="center" style="background-color:rgb(117, 117, 117)">gray46</td> + <td align="left">rgb(117, 117, 117)</td> + <td align="left">#757575</td> + + </tr> + + <tr> + <td align="right">grey46</td> + <td align="center" style="background-color:rgb(117, 117, 117)">grey46</td> + <td align="left">rgb(117, 117, 117)</td> + <td align="left">#757575</td> + + </tr> + + <tr> + <td align="right">gray45</td> + <td align="center" style="background-color:rgb(115, 115, 115)">gray45</td> + <td align="left">rgb(115, 115, 115)</td> + <td align="left">#737373</td> + + </tr> + + <tr> + <td align="right">grey45</td> + <td align="center" style="background-color:rgb(115, 115, 115)">grey45</td> + <td align="left">rgb(115, 115, 115)</td> + <td align="left">#737373</td> + + </tr> + + <tr> + <td align="right">gray44</td> + <td align="center" style="background-color:rgb(112, 112, 112)">gray44</td> + <td align="left">rgb(112, 112, 112)</td> + <td align="left">#707070</td> + + </tr> + + <tr> + <td align="right">grey44</td> + <td align="center" style="background-color:rgb(112, 112, 112)">grey44</td> + <td align="left">rgb(112, 112, 112)</td> + <td align="left">#707070</td> + + </tr> + + <tr> + <td align="right">gray43</td> + <td align="center" style="background-color:rgb(110, 110, 110)">gray43</td> + <td align="left">rgb(110, 110, 110)</td> + <td align="left">#6E6E6E</td> + + </tr> + + <tr> + <td align="right">grey43</td> + <td align="center" style="background-color:rgb(110, 110, 110)">grey43</td> + <td align="left">rgb(110, 110, 110)</td> + <td align="left">#6E6E6E</td> + + </tr> + + <tr> + <td align="right">gray42</td> + <td align="center" style="background-color:rgb(107, 107, 107)">gray42</td> + <td align="left">rgb(107, 107, 107)</td> + <td align="left">#6B6B6B</td> + + </tr> + + <tr> + <td align="right">grey42</td> + <td align="center" style="background-color:rgb(107, 107, 107)">grey42</td> + <td align="left">rgb(107, 107, 107)</td> + <td align="left">#6B6B6B</td> + + </tr> + + <tr> + <td align="right">DimGray</td> + <td align="center" style="background-color:rgb(105, 105, 105)">DimGray</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">DimGrey</td> + <td align="center" style="background-color:rgb(105, 105, 105)">DimGrey</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">gray41</td> + <td align="center" style="background-color:rgb(105, 105, 105)">gray41</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">grey41</td> + <td align="center" style="background-color:rgb(105, 105, 105)">grey41</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">gray40</td> + <td align="center" style="background-color:rgb(102, 102, 102)">gray40</td> + <td align="left">rgb(102, 102, 102)</td> + <td align="left">#666666</td> + + </tr> + + <tr> + <td align="right">grey40</td> + <td align="center" style="background-color:rgb(102, 102, 102)">grey40</td> + <td align="left">rgb(102, 102, 102)</td> + <td align="left">#666666</td> + + </tr> + + <tr> + <td align="right">gray39</td> + <td align="center" style="background-color:rgb( 99, 99, 99)">gray39</td> + <td align="left">rgb( 99, 99, 99)</td> + <td align="left">#636363</td> + + </tr> + + <tr> + <td align="right">grey39</td> + <td align="center" style="background-color:rgb( 99, 99, 99)">grey39</td> + <td align="left">rgb( 99, 99, 99)</td> + <td align="left">#636363</td> + + </tr> + + <tr> + <td align="right">gray38</td> + <td align="center" style="background-color:rgb( 97, 97, 97)">gray38</td> + <td align="left">rgb( 97, 97, 97)</td> + <td align="left">#616161</td> + + </tr> + + <tr> + <td align="right">grey38</td> + <td align="center" style="background-color:rgb( 97, 97, 97)">grey38</td> + <td align="left">rgb( 97, 97, 97)</td> + <td align="left">#616161</td> + + </tr> + + <tr> + <td align="right">gray37</td> + <td align="center" style="background-color:rgb( 94, 94, 94)">gray37</td> + <td align="left">rgb( 94, 94, 94)</td> + <td align="left">#5E5E5E</td> + + </tr> + + <tr> + <td align="right">grey37</td> + <td align="center" style="background-color:rgb( 94, 94, 94)">grey37</td> + <td align="left">rgb( 94, 94, 94)</td> + <td align="left">#5E5E5E</td> + + </tr> + + <tr> + <td align="right">gray36</td> + <td align="center" style="background-color:rgb( 92, 92, 92)">gray36</td> + <td align="left">rgb( 92, 92, 92)</td> + <td align="left">#5C5C5C</td> + + </tr> + + <tr> + <td align="right">grey36</td> + <td align="center" style="background-color:rgb( 92, 92, 92)">grey36</td> + <td align="left">rgb( 92, 92, 92)</td> + <td align="left">#5C5C5C</td> + + </tr> + + <tr> + <td align="right">gray35</td> + <td align="center" style="background-color:rgb( 89, 89, 89)">gray35</td> + <td align="left">rgb( 89, 89, 89)</td> + <td align="left">#595959</td> + + </tr> + + <tr> + <td align="right">grey35</td> + <td align="center" style="background-color:rgb( 89, 89, 89)">grey35</td> + <td align="left">rgb( 89, 89, 89)</td> + <td align="left">#595959</td> + + </tr> + + <tr> + <td align="right">gray34</td> + <td align="center" style="background-color:rgb( 87, 87, 87)">gray34</td> + <td align="left">rgb( 87, 87, 87)</td> + <td align="left">#575757</td> + + </tr> + + <tr> + <td align="right">grey34</td> + <td align="center" style="background-color:rgb( 87, 87, 87)">grey34</td> + <td align="left">rgb( 87, 87, 87)</td> + <td align="left">#575757</td> + + </tr> + + <tr> + <td align="right">gray33</td> + <td align="center" style="background-color:rgb( 84, 84, 84)">gray33</td> + <td align="left">rgb( 84, 84, 84)</td> + <td align="left">#545454</td> + + </tr> + + <tr> + <td align="right">grey33</td> + <td align="center" style="background-color:rgb( 84, 84, 84)">grey33</td> + <td align="left">rgb( 84, 84, 84)</td> + <td align="left">#545454</td> + + </tr> + + <tr> + <td align="right">gray32</td> + <td align="center" style="background-color:rgb( 82, 82, 82)">gray32</td> + <td align="left">rgb( 82, 82, 82)</td> + <td align="left">#525252</td> + + </tr> + + <tr> + <td align="right">grey32</td> + <td align="center" style="background-color:rgb( 82, 82, 82)">grey32</td> + <td align="left">rgb( 82, 82, 82)</td> + <td align="left">#525252</td> + + </tr> + + <tr> + <td align="right">gray31</td> + <td align="center" style="background-color:rgb( 79, 79, 79)">gray31</td> + <td align="left">rgb( 79, 79, 79)</td> + <td align="left">#4F4F4F</td> + + </tr> + + <tr> + <td align="right">grey31</td> + <td align="center" style="background-color:rgb( 79, 79, 79)">grey31</td> + <td align="left">rgb( 79, 79, 79)</td> + <td align="left">#4F4F4F</td> + + </tr> + + <tr> + <td align="right">gray30</td> + <td align="center" style="background-color:rgb( 77, 77, 77)">gray30</td> + <td align="left">rgb( 77, 77, 77)</td> + <td align="left">#4D4D4D</td> + + </tr> + + <tr> + <td align="right">grey30</td> + <td align="center" style="background-color:rgb( 77, 77, 77)">grey30</td> + <td align="left">rgb( 77, 77, 77)</td> + <td align="left">#4D4D4D</td> + + </tr> + + <tr> + <td align="right">gray29</td> + <td align="center" style="background-color:rgb( 74, 74, 74)">gray29</td> + <td align="left">rgb( 74, 74, 74)</td> + <td align="left">#4A4A4A</td> + + </tr> + + <tr> + <td align="right">grey29</td> + <td align="center" style="background-color:rgb( 74, 74, 74)">grey29</td> + <td align="left">rgb( 74, 74, 74)</td> + <td align="left">#4A4A4A</td> + + </tr> + + <tr> + <td align="right">gray28</td> + <td align="center" style="background-color:rgb( 71, 71, 71)">gray28</td> + <td align="left">rgb( 71, 71, 71)</td> + <td align="left">#474747</td> + + </tr> + + <tr> + <td align="right">grey28</td> + <td align="center" style="background-color:rgb( 71, 71, 71)">grey28</td> + <td align="left">rgb( 71, 71, 71)</td> + <td align="left">#474747</td> + + </tr> + + <tr> + <td align="right">gray27</td> + <td align="center" style="background-color:rgb( 69, 69, 69)">gray27</td> + <td align="left">rgb( 69, 69, 69)</td> + <td align="left">#454545</td> + + </tr> + + <tr> + <td align="right">grey27</td> + <td align="center" style="background-color:rgb( 69, 69, 69)">grey27</td> + <td align="left">rgb( 69, 69, 69)</td> + <td align="left">#454545</td> + + </tr> + + <tr> + <td align="right">gray26</td> + <td align="center" style="background-color:rgb( 66, 66, 66)">gray26</td> + <td align="left">rgb( 66, 66, 66)</td> + <td align="left">#424242</td> + + </tr> + + <tr> + <td align="right">grey26</td> + <td align="center" style="background-color:rgb( 66, 66, 66)">grey26</td> + <td align="left">rgb( 66, 66, 66)</td> + <td align="left">#424242</td> + + </tr> + + <tr> + <td align="right">gray25</td> + <td align="center" style="background-color:rgb( 64, 64, 64)">gray25</td> + <td align="left">rgb( 64, 64, 64)</td> + <td align="left">#404040</td> + + </tr> + + <tr> + <td align="right">grey25</td> + <td align="center" style="background-color:rgb( 64, 64, 64)">grey25</td> + <td align="left">rgb( 64, 64, 64)</td> + <td align="left">#404040</td> + + </tr> + + <tr> + <td align="right">gray24</td> + <td align="center" style="background-color:rgb( 61, 61, 61)">gray24</td> + <td align="left">rgb( 61, 61, 61)</td> + <td align="left">#3D3D3D</td> + + </tr> + + <tr> + <td align="right">grey24</td> + <td align="center" style="background-color:rgb( 61, 61, 61)">grey24</td> + <td align="left">rgb( 61, 61, 61)</td> + <td align="left">#3D3D3D</td> + + </tr> + + <tr> + <td align="right">gray23</td> + <td align="center" style="background-color:rgb( 59, 59, 59)">gray23</td> + <td align="left">rgb( 59, 59, 59)</td> + <td align="left">#3B3B3B</td> + + </tr> + + <tr> + <td align="right">grey23</td> + <td align="center" style="background-color:rgb( 59, 59, 59)">grey23</td> + <td align="left">rgb( 59, 59, 59)</td> + <td align="left">#3B3B3B</td> + + </tr> + + <tr> + <td align="right">gray22</td> + <td align="center" style="background-color:rgb( 56, 56, 56)">gray22</td> + <td align="left">rgb( 56, 56, 56)</td> + <td align="left">#383838</td> + + </tr> + + <tr> + <td align="right">grey22</td> + <td align="center" style="background-color:rgb( 56, 56, 56)">grey22</td> + <td align="left">rgb( 56, 56, 56)</td> + <td align="left">#383838</td> + + </tr> + + <tr> + <td align="right">gray21</td> + <td align="center" style="background-color:rgb( 54, 54, 54)">gray21</td> + <td align="left">rgb( 54, 54, 54)</td> + <td align="left">#363636</td> + + </tr> + + <tr> + <td align="right">grey21</td> + <td align="center" style="background-color:rgb( 54, 54, 54)">grey21</td> + <td align="left">rgb( 54, 54, 54)</td> + <td align="left">#363636</td> + + </tr> + + <tr> + <td align="right">gray20</td> + <td align="center" style="background-color:rgb( 51, 51, 51)">gray20</td> + <td align="left">rgb( 51, 51, 51)</td> + <td align="left">#333333</td> + + </tr> + + <tr> + <td align="right">grey20</td> + <td align="center" style="background-color:rgb( 51, 51, 51)">grey20</td> + <td align="left">rgb( 51, 51, 51)</td> + <td align="left">#333333</td> + + </tr> + + <tr> + <td align="right">gray19</td> + <td align="center" style="background-color:rgb( 48, 48, 48)">gray19</td> + <td align="left">rgb( 48, 48, 48)</td> + <td align="left">#303030</td> + + </tr> + + <tr> + <td align="right">grey19</td> + <td align="center" style="background-color:rgb( 48, 48, 48)">grey19</td> + <td align="left">rgb( 48, 48, 48)</td> + <td align="left">#303030</td> + + </tr> + + <tr> + <td align="right">gray18</td> + <td align="center" style="background-color:rgb( 46, 46, 46)">gray18</td> + <td align="left">rgb( 46, 46, 46)</td> + <td align="left">#2E2E2E</td> + + </tr> + + <tr> + <td align="right">grey18</td> + <td align="center" style="background-color:rgb( 46, 46, 46)">grey18</td> + <td align="left">rgb( 46, 46, 46)</td> + <td align="left">#2E2E2E</td> + + </tr> + + <tr> + <td align="right">gray17</td> + <td align="center" style="background-color:rgb( 43, 43, 43)">gray17</td> + <td align="left">rgb( 43, 43, 43)</td> + <td align="left">#2B2B2B</td> + + </tr> + + <tr> + <td align="right">grey17</td> + <td align="center" style="background-color:rgb( 43, 43, 43)">grey17</td> + <td align="left">rgb( 43, 43, 43)</td> + <td align="left">#2B2B2B</td> + + </tr> + + <tr> + <td align="right">gray16</td> + <td align="center" style="background-color:rgb( 41, 41, 41)">gray16</td> + <td align="left">rgb( 41, 41, 41)</td> + <td align="left">#292929</td> + + </tr> + + <tr> + <td align="right">grey16</td> + <td align="center" style="background-color:rgb( 41, 41, 41)">grey16</td> + <td align="left">rgb( 41, 41, 41)</td> + <td align="left">#292929</td> + + </tr> + + <tr> + <td align="right">gray15</td> + <td align="center" style="background-color:rgb( 38, 38, 38)">gray15</td> + <td align="left">rgb( 38, 38, 38)</td> + <td align="left">#262626</td> + + </tr> + + <tr> + <td align="right">grey15</td> + <td align="center" style="background-color:rgb( 38, 38, 38)">grey15</td> + <td align="left">rgb( 38, 38, 38)</td> + <td align="left">#262626</td> + + </tr> + + <tr> + <td align="right">gray14</td> + <td align="center" style="background-color:rgb( 36, 36, 36)">gray14</td> + <td align="left">rgb( 36, 36, 36)</td> + <td align="left">#242424</td> + + </tr> + + <tr> + <td align="right">grey14</td> + <td align="center" style="background-color:rgb( 36, 36, 36)">grey14</td> + <td align="left">rgb( 36, 36, 36)</td> + <td align="left">#242424</td> + + </tr> + + <tr> + <td align="right">gray13</td> + <td align="center" style="background-color:rgb( 33, 33, 33)">gray13</td> + <td align="left">rgb( 33, 33, 33)</td> + <td align="left">#212121</td> + + </tr> + + <tr> + <td align="right">grey13</td> + <td align="center" style="background-color:rgb( 33, 33, 33)">grey13</td> + <td align="left">rgb( 33, 33, 33)</td> + <td align="left">#212121</td> + + </tr> + + <tr> + <td align="right">gray12</td> + <td align="center" style="background-color:rgb( 31, 31, 31)">gray12</td> + <td align="left">rgb( 31, 31, 31)</td> + <td align="left">#1F1F1F</td> + + </tr> + + <tr> + <td align="right">grey12</td> + <td align="center" style="background-color:rgb( 31, 31, 31)">grey12</td> + <td align="left">rgb( 31, 31, 31)</td> + <td align="left">#1F1F1F</td> + + </tr> + + <tr> + <td align="right">gray11</td> + <td align="center" style="background-color:rgb( 28, 28, 28)">gray11</td> + <td align="left">rgb( 28, 28, 28)</td> + <td align="left">#1C1C1C</td> + + </tr> + + <tr> + <td align="right">grey11</td> + <td align="center" style="background-color:rgb( 28, 28, 28)">grey11</td> + <td align="left">rgb( 28, 28, 28)</td> + <td align="left">#1C1C1C</td> + + </tr> + + <tr> + <td align="right">gray10</td> + <td align="center" style="background-color:rgb( 26, 26, 26)">gray10</td> + <td align="left">rgb( 26, 26, 26)</td> + <td align="left">#1A1A1A</td> + + </tr> + + <tr> + <td align="right">grey10</td> + <td align="center" style="background-color:rgb( 26, 26, 26)">grey10</td> + <td align="left">rgb( 26, 26, 26)</td> + <td align="left">#1A1A1A</td> + + </tr> + + <tr> + <td align="right">gray9</td> + <td align="center" style="background-color:rgb( 23, 23, 23)">gray9</td> + <td align="left">rgb( 23, 23, 23)</td> + <td align="left">#171717</td> + + </tr> + + <tr> + <td align="right">grey9</td> + <td align="center" style="background-color:rgb( 23, 23, 23)">grey9</td> + <td align="left">rgb( 23, 23, 23)</td> + <td align="left">#171717</td> + + </tr> + + <tr> + <td align="right">gray8</td> + <td align="center" style="background-color:rgb( 20, 20, 20)">gray8</td> + <td align="left">rgb( 20, 20, 20)</td> + <td align="left">#141414</td> + + </tr> + + <tr> + <td align="right">grey8</td> + <td align="center" style="background-color:rgb( 20, 20, 20)">grey8</td> + <td align="left">rgb( 20, 20, 20)</td> + <td align="left">#141414</td> + + </tr> + + <tr> + <td align="right">gray7</td> + <td align="center" style="background-color:rgb( 18, 18, 18)">gray7</td> + <td align="left">rgb( 18, 18, 18)</td> + <td align="left">#121212</td> + + </tr> + + <tr> + <td align="right">grey7</td> + <td align="center" style="background-color:rgb( 18, 18, 18)">grey7</td> + <td align="left">rgb( 18, 18, 18)</td> + <td align="left">#121212</td> + + </tr> + + <tr> + <td align="right">gray6</td> + <td align="center" style="background-color:rgb( 15, 15, 15)">gray6</td> + <td align="left">rgb( 15, 15, 15)</td> + <td align="left">#0F0F0F</td> + + </tr> + + <tr> + <td align="right">grey6</td> + <td align="center" style="background-color:rgb( 15, 15, 15)">grey6</td> + <td align="left">rgb( 15, 15, 15)</td> + <td align="left">#0F0F0F</td> + + </tr> + + <tr> + <td align="right">gray5</td> + <td align="center" style="background-color:rgb( 13, 13, 13)">gray5</td> + <td align="left">rgb( 13, 13, 13)</td> + <td align="left">#0D0D0D</td> + + </tr> + + <tr> + <td align="right">grey5</td> + <td align="center" style="background-color:rgb( 13, 13, 13)">grey5</td> + <td align="left">rgb( 13, 13, 13)</td> + <td align="left">#0D0D0D</td> + + </tr> + + <tr> + <td align="right">gray4</td> + <td align="center" style="background-color:rgb( 10, 10, 10)">gray4</td> + <td align="left">rgb( 10, 10, 10)</td> + <td align="left">#0A0A0A</td> + + </tr> + + <tr> + <td align="right">grey4</td> + <td align="center" style="background-color:rgb( 10, 10, 10)">grey4</td> + <td align="left">rgb( 10, 10, 10)</td> + <td align="left">#0A0A0A</td> + + </tr> + + <tr> + <td align="right">gray3</td> + <td align="center" style="background-color:rgb( 8, 8, 8)">gray3</td> + <td align="left">rgb( 8, 8, 8)</td> + <td align="left">#080808</td> + + </tr> + + <tr> + <td align="right">grey3</td> + <td align="center" style="background-color:rgb( 8, 8, 8)">grey3</td> + <td align="left">rgb( 8, 8, 8)</td> + <td align="left">#080808</td> + + </tr> + + <tr> + <td align="right">gray2</td> + <td align="center" style="background-color:rgb( 5, 5, 5)">gray2</td> + <td align="left">rgb( 5, 5, 5)</td> + <td align="left">#050505</td> + + </tr> + + <tr> + <td align="right">grey2</td> + <td align="center" style="background-color:rgb( 5, 5, 5)">grey2</td> + <td align="left">rgb( 5, 5, 5)</td> + <td align="left">#050505</td> + + </tr> + + <tr> + <td align="right">gray1</td> + <td align="center" style="background-color:rgb( 3, 3, 3)">gray1</td> + <td align="left">rgb( 3, 3, 3)</td> + <td align="left">#030303</td> + + </tr> + + <tr> + <td align="right">grey1</td> + <td align="center" style="background-color:rgb( 3, 3, 3)">grey1</td> + <td align="left">rgb( 3, 3, 3)</td> + <td align="left">#030303</td> + + </tr> + + <tr> + <td align="right">black</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">black</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">gray0</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">gray0</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">grey0</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">grey0</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">opaque</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">opaque</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">none</td> + <td align="center" style="background-color:white">none</td> + <td align="left">rgba( 0, 0, 0, 0.0)</td> + <td align="left">#00000000</td> + + </tr> + + <tr> + <td align="right">transparent</td> + <td align="center" style="background-color:white">transparent</td> + <td align="left">rgba( 0, 0, 0, 0.0)</td> + <td align="left">#00000000</td> + + </tr> + + </tbody> +</table> + +</div> + +</div> + +</body></html> diff --git a/frontend/imgrid/colors/colors/junk/colorsbest.html b/frontend/imgrid/colors/colors/junk/colorsbest.html new file mode 100755 index 0000000..047eb6b --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/colorsbest.html @@ -0,0 +1,3606 @@ +<html> +<head> + +<style type='text/css'> + +body +{ +max-width:100%; +max-height:100%; +font-family:helvetica; +font-size:10px; +} + + +#container div +{ +display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +min-height: 30px; +zoom: 1; +*display: inline; +cursor:pointer; +} + +#container +{ +margin:0 auto; +width:600px; +padding-top:100px; +text-align:center; +} + +#colornames +{ +color:white; +position:fixed; +font-size:50px; +top:50px; +right:60%; +width:400px; +} + +#hexswitch + { + position:fixed; + top:20px; + right:10%; + height:100px; + width:300px; + font-size:20px + border-style: groove; + border-width: 4px; + background-color:goldenrod; + text-align:center; + } +#infoswitch + { + position:fixed; + top: 60px; + right:50%; + font-size:20px; + background-color:magenta; + text-align:center; + z-index:100; + } + +#namespace + { + position:fixed; + top:500px; + right:20px; + } + + + +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{ +height:30px; +width:10px; +} +</style></head><body> +<div id='container'> +<div id='d0' class='colors'> +snow</div> +<div id='d1' class='colors'> +snow1</div> +<div id='d2' class='colors'> +snow2</div> +<div id='d3' class='colors'> +RosyBrown1</div> +<div id='d4' class='colors'> +RosyBrown2</div> +<div id='d5' class='colors'> +snow3</div> +<div id='d6' class='colors'> +LightCoral</div> +<div id='d7' class='colors'> +IndianRed1</div> +<div id='d8' class='colors'> +RosyBrown3</div> +<div id='d9' class='colors'> +IndianRed2</div> +<div id='d10' class='colors'> +RosyBrown</div> +<div id='d11' class='colors'> +brown1</div> +<div id='d12' class='colors'> +firebrick1</div> +<div id='d13' class='colors'> +brown2</div> +<div id='d14' class='colors'> +IndianRed</div> +<div id='d15' class='colors'> +IndianRed3</div> +<div id='d16' class='colors'> +firebrick2</div> +<div id='d17' class='colors'> +snow4</div> +<div id='d18' class='colors'> +brown3</div> +<div id='d19' class='colors'> +red</div> +<div id='d20' class='colors'> +red1</div> +<div id='d21' class='colors'> +RosyBrown4</div> +<div id='d22' class='colors'> +firebrick3</div> +<div id='d23' class='colors'> +red2</div> +<div id='d24' class='colors'> +firebrick</div> +<div id='d25' class='colors'> +brown</div> +<div id='d26' class='colors'> +red3</div> +<div id='d27' class='colors'> +IndianRed4</div> +<div id='d28' class='colors'> +brown4</div> +<div id='d29' class='colors'> +firebrick4</div> +<div id='d30' class='colors'> +DarkRed</div> +<div id='d31' class='colors'> +red4</div> +<div id='d32' class='colors'> +maroon</div> +<div id='d33' class='colors'> +LightPink1</div> +<div id='d34' class='colors'> +LightPink3</div> +<div id='d35' class='colors'> +LightPink4</div> +<div id='d36' class='colors'> +LightPink2</div> +<div id='d37' class='colors'> +LightPink</div> +<div id='d38' class='colors'> +pink</div> +<div id='d39' class='colors'> +crimson</div> +<div id='d40' class='colors'> +pink1</div> +<div id='d41' class='colors'> +pink2</div> +<div id='d42' class='colors'> +pink3</div> +<div id='d43' class='colors'> +pink4</div> +<div id='d44' class='colors'> +PaleVioletRed4</div> +<div id='d45' class='colors'> +PaleVioletRed</div> +<div id='d46' class='colors'> +PaleVioletRed2</div> +<div id='d47' class='colors'> +PaleVioletRed1</div> +<div id='d48' class='colors'> +PaleVioletRed3</div> +<div id='d49' class='colors'> +LavenderBlush</div> +<div id='d50' class='colors'> +LavenderBlush1</div> +<div id='d51' class='colors'> +LavenderBlush3</div> +<div id='d52' class='colors'> +LavenderBlush2</div> +<div id='d53' class='colors'> +LavenderBlush4</div> +<div id='d54' class='colors'> +maroon</div> +<div id='d55' class='colors'> +HotPink3</div> +<div id='d56' class='colors'> +VioletRed3</div> +<div id='d57' class='colors'> +VioletRed1</div> +<div id='d58' class='colors'> +VioletRed2</div> +<div id='d59' class='colors'> +VioletRed4</div> +<div id='d60' class='colors'> +HotPink2</div> +<div id='d61' class='colors'> +HotPink1</div> +<div id='d62' class='colors'> +HotPink4</div> +<div id='d63' class='colors'> +HotPink</div> +<div id='d64' class='colors'> +DeepPink</div> +<div id='d65' class='colors'> +DeepPink1</div> +<div id='d66' class='colors'> +DeepPink2</div> +<div id='d67' class='colors'> +DeepPink3</div> +<div id='d68' class='colors'> +DeepPink4</div> +<div id='d69' class='colors'> +maroon1</div> +<div id='d70' class='colors'> +maroon2</div> +<div id='d71' class='colors'> +maroon3</div> +<div id='d72' class='colors'> +maroon4</div> +<div id='d73' class='colors'> +MediumVioletRed</div> +<div id='d74' class='colors'> +VioletRed</div> +<div id='d75' class='colors'> +orchid2</div> +<div id='d76' class='colors'> +orchid</div> +<div id='d77' class='colors'> +orchid1</div> +<div id='d78' class='colors'> +orchid3</div> +<div id='d79' class='colors'> +orchid4</div> +<div id='d80' class='colors'> +thistle1</div> +<div id='d81' class='colors'> +thistle2</div> +<div id='d82' class='colors'> +plum1</div> +<div id='d83' class='colors'> +plum2</div> +<div id='d84' class='colors'> +thistle</div> +<div id='d85' class='colors'> +thistle3</div> +<div id='d86' class='colors'> +plum</div> +<div id='d87' class='colors'> +violet</div> +<div id='d88' class='colors'> +plum3</div> +<div id='d89' class='colors'> +thistle4</div> +<div id='d90' class='colors'> +fuchsia</div> +<div id='d91' class='colors'> +magenta</div> +<div id='d92' class='colors'> +magenta1</div> +<div id='d93' class='colors'> +plum4</div> +<div id='d94' class='colors'> +magenta2</div> +<div id='d95' class='colors'> +magenta3</div> +<div id='d96' class='colors'> +DarkMagenta</div> +<div id='d97' class='colors'> +magenta4</div> +<div id='d98' class='colors'> +purple</div> +<div id='d99' class='colors'> +MediumOrchid</div> +<div id='d100' class='colors'> +MediumOrchid1</div> +<div id='d101' class='colors'> +MediumOrchid2</div> +<div id='d102' class='colors'> +MediumOrchid3</div> +<div id='d103' class='colors'> +MediumOrchid4</div> +<div id='d104' class='colors'> +DarkViolet</div> +<div id='d105' class='colors'> +DarkOrchid</div> +<div id='d106' class='colors'> +DarkOrchid1</div> +<div id='d107' class='colors'> +DarkOrchid3</div> +<div id='d108' class='colors'> +DarkOrchid2</div> +<div id='d109' class='colors'> +DarkOrchid4</div> +<div id='d110' class='colors'> +purple</div> +<div id='d111' class='colors'> +indigo</div> +<div id='d112' class='colors'> +BlueViolet</div> +<div id='d113' class='colors'> +purple2</div> +<div id='d114' class='colors'> +purple3</div> +<div id='d115' class='colors'> +purple4</div> +<div id='d116' class='colors'> +purple1</div> +<div id='d117' class='colors'> +MediumPurple</div> +<div id='d118' class='colors'> +MediumPurple1</div> +<div id='d119' class='colors'> +MediumPurple2</div> +<div id='d120' class='colors'> +MediumPurple3</div> +<div id='d121' class='colors'> +MediumPurple4</div> +<div id='d122' class='colors'> +DarkSlateBlue</div> +<div id='d123' class='colors'> +LightSlateBlue</div> +<div id='d124' class='colors'> +MediumSlateBlue</div> +<div id='d125' class='colors'> +SlateBlue</div> +<div id='d126' class='colors'> +SlateBlue1</div> +<div id='d127' class='colors'> +SlateBlue2</div> +<div id='d128' class='colors'> +SlateBlue3</div> +<div id='d129' class='colors'> +SlateBlue4</div> +<div id='d130' class='colors'> +GhostWhite</div> +<div id='d131' class='colors'> +lavender</div> +<div id='d132' class='colors'> +blue</div> +<div id='d133' class='colors'> +blue1</div> +<div id='d134' class='colors'> +blue2</div> +<div id='d135' class='colors'> +blue3</div> +<div id='d136' class='colors'> +MediumBlue</div> +<div id='d137' class='colors'> +blue4</div> +<div id='d138' class='colors'> +DarkBlue</div> +<div id='d139' class='colors'> +MidnightBlue</div> +<div id='d140' class='colors'> +navy</div> +<div id='d141' class='colors'> +NavyBlue</div> +<div id='d142' class='colors'> +RoyalBlue</div> +<div id='d143' class='colors'> +RoyalBlue1</div> +<div id='d144' class='colors'> +RoyalBlue2</div> +<div id='d145' class='colors'> +RoyalBlue3</div> +<div id='d146' class='colors'> +RoyalBlue4</div> +<div id='d147' class='colors'> +CornflowerBlue</div> +<div id='d148' class='colors'> +LightSteelBlue</div> +<div id='d149' class='colors'> +LightSteelBlue1</div> +<div id='d150' class='colors'> +LightSteelBlue2</div> +<div id='d151' class='colors'> +LightSteelBlue3</div> +<div id='d152' class='colors'> +LightSteelBlue4</div> +<div id='d153' class='colors'> +SlateGray4</div> +<div id='d154' class='colors'> +SlateGray1</div> +<div id='d155' class='colors'> +SlateGray2</div> +<div id='d156' class='colors'> +SlateGray3</div> +<div id='d157' class='colors'> +LightSlateGray</div> +<div id='d158' class='colors'> +LightSlateGrey</div> +<div id='d159' class='colors'> +SlateGray</div> +<div id='d160' class='colors'> +SlateGrey</div> +<div id='d161' class='colors'> +DodgerBlue</div> +<div id='d162' class='colors'> +DodgerBlue1</div> +<div id='d163' class='colors'> +DodgerBlue2</div> +<div id='d164' class='colors'> +DodgerBlue4</div> +<div id='d165' class='colors'> +DodgerBlue3</div> +<div id='d166' class='colors'> +AliceBlue</div> +<div id='d167' class='colors'> +SteelBlue4</div> +<div id='d168' class='colors'> +SteelBlue</div> +<div id='d169' class='colors'> +SteelBlue1</div> +<div id='d170' class='colors'> +SteelBlue2</div> +<div id='d171' class='colors'> +SteelBlue3</div> +<div id='d172' class='colors'> +SkyBlue4</div> +<div id='d173' class='colors'> +SkyBlue1</div> +<div id='d174' class='colors'> +SkyBlue2</div> +<div id='d175' class='colors'> +SkyBlue3</div> +<div id='d176' class='colors'> +LightSkyBlue</div> +<div id='d177' class='colors'> +LightSkyBlue4</div> +<div id='d178' class='colors'> +LightSkyBlue1</div> +<div id='d179' class='colors'> +LightSkyBlue2</div> +<div id='d180' class='colors'> +LightSkyBlue3</div> +<div id='d181' class='colors'> +SkyBlue</div> +<div id='d182' class='colors'> +LightBlue3</div> +<div id='d183' class='colors'> +DeepSkyBlue</div> +<div id='d184' class='colors'> +DeepSkyBlue1</div> +<div id='d185' class='colors'> +DeepSkyBlue2</div> +<div id='d186' class='colors'> +DeepSkyBlue4</div> +<div id='d187' class='colors'> +DeepSkyBlue3</div> +<div id='d188' class='colors'> +LightBlue1</div> +<div id='d189' class='colors'> +LightBlue2</div> +<div id='d190' class='colors'> +LightBlue</div> +<div id='d191' class='colors'> +LightBlue4</div> +<div id='d192' class='colors'> +PowderBlue</div> +<div id='d193' class='colors'> +CadetBlue1</div> +<div id='d194' class='colors'> +CadetBlue2</div> +<div id='d195' class='colors'> +CadetBlue3</div> +<div id='d196' class='colors'> +CadetBlue4</div> +<div id='d197' class='colors'> +turquoise1</div> +<div id='d198' class='colors'> +turquoise2</div> +<div id='d199' class='colors'> +turquoise3</div> +<div id='d200' class='colors'> +turquoise4</div> +<div id='d201' class='colors'> +cadet blue</div> +<div id='d202' class='colors'> +CadetBlue</div> +<div id='d203' class='colors'> +DarkTurquoise</div> +<div id='d204' class='colors'> +azure</div> +<div id='d205' class='colors'> +azure1</div> +<div id='d206' class='colors'> +LightCyan</div> +<div id='d207' class='colors'> +LightCyan1</div> +<div id='d208' class='colors'> +azure2</div> +<div id='d209' class='colors'> +LightCyan2</div> +<div id='d210' class='colors'> +PaleTurquoise1</div> +<div id='d211' class='colors'> +PaleTurquoise</div> +<div id='d212' class='colors'> +PaleTurquoise2</div> +<div id='d213' class='colors'> +DarkSlateGray1</div> +<div id='d214' class='colors'> +azure3</div> +<div id='d215' class='colors'> +LightCyan3</div> +<div id='d216' class='colors'> +DarkSlateGray2</div> +<div id='d217' class='colors'> +PaleTurquoise3</div> +<div id='d218' class='colors'> +DarkSlateGray3</div> +<div id='d219' class='colors'> +azure4</div> +<div id='d220' class='colors'> +LightCyan4</div> +<div id='d221' class='colors'> +aqua</div> +<div id='d222' class='colors'> +cyan</div> +<div id='d223' class='colors'> +cyan1</div> +<div id='d224' class='colors'> +PaleTurquoise4</div> +<div id='d225' class='colors'> +cyan2</div> +<div id='d226' class='colors'> +DarkSlateGray4</div> +<div id='d227' class='colors'> +cyan3</div> +<div id='d228' class='colors'> +cyan4</div> +<div id='d229' class='colors'> +DarkCyan</div> +<div id='d230' class='colors'> +teal</div> +<div id='d231' class='colors'> +DarkSlateGray</div> +<div id='d232' class='colors'> +DarkSlateGrey</div> +<div id='d233' class='colors'> +MediumTurquoise</div> +<div id='d234' class='colors'> +LightSeaGreen</div> +<div id='d235' class='colors'> +turquoise</div> +<div id='d236' class='colors'> +aquamarine4</div> +<div id='d237' class='colors'> +aquamarine</div> +<div id='d238' class='colors'> +aquamarine1</div> +<div id='d239' class='colors'> +aquamarine2</div> +<div id='d240' class='colors'> +aquamarine3</div> +<div id='d241' class='colors'> +MediumAquamarine</div> +<div id='d242' class='colors'> +MediumSpringGreen</div> +<div id='d243' class='colors'> +MintCream</div> +<div id='d244' class='colors'> +SpringGreen</div> +<div id='d245' class='colors'> +SpringGreen1</div> +<div id='d246' class='colors'> +SpringGreen2</div> +<div id='d247' class='colors'> +SpringGreen3</div> +<div id='d248' class='colors'> +SpringGreen4</div> +<div id='d249' class='colors'> +MediumSeaGreen</div> +<div id='d250' class='colors'> +SeaGreen</div> +<div id='d251' class='colors'> +SeaGreen3</div> +<div id='d252' class='colors'> +SeaGreen1</div> +<div id='d253' class='colors'> +SeaGreen4</div> +<div id='d254' class='colors'> +SeaGreen2</div> +<div id='d255' class='colors'> +MediumForestGreen</div> +<div id='d256' class='colors'> +honeydew</div> +<div id='d257' class='colors'> +honeydew1</div> +<div id='d258' class='colors'> +honeydew2</div> +<div id='d259' class='colors'> +DarkSeaGreen1</div> +<div id='d260' class='colors'> +DarkSeaGreen2</div> +<div id='d261' class='colors'> +PaleGreen1</div> +<div id='d262' class='colors'> +PaleGreen</div> +<div id='d263' class='colors'> +honeydew3</div> +<div id='d264' class='colors'> +LightGreen</div> +<div id='d265' class='colors'> +PaleGreen2</div> +<div id='d266' class='colors'> +DarkSeaGreen3</div> +<div id='d267' class='colors'> +DarkSeaGreen</div> +<div id='d268' class='colors'> +PaleGreen3</div> +<div id='d269' class='colors'> +honeydew4</div> +<div id='d270' class='colors'> +green1</div> +<div id='d271' class='colors'> +lime</div> +<div id='d272' class='colors'> +LimeGreen</div> +<div id='d273' class='colors'> +DarkSeaGreen4</div> +<div id='d274' class='colors'> +green2</div> +<div id='d275' class='colors'> +PaleGreen4</div> +<div id='d276' class='colors'> +green3</div> +<div id='d277' class='colors'> +ForestGreen</div> +<div id='d278' class='colors'> +green4</div> +<div id='d279' class='colors'> +green</div> +<div id='d280' class='colors'> +DarkGreen</div> +<div id='d281' class='colors'> +LawnGreen</div> +<div id='d282' class='colors'> +chartreuse</div> +<div id='d283' class='colors'> +chartreuse1</div> +<div id='d284' class='colors'> +chartreuse2</div> +<div id='d285' class='colors'> +chartreuse3</div> +<div id='d286' class='colors'> +chartreuse4</div> +<div id='d287' class='colors'> +GreenYellow</div> +<div id='d288' class='colors'> +DarkOliveGreen3</div> +<div id='d289' class='colors'> +DarkOliveGreen1</div> +<div id='d290' class='colors'> +DarkOliveGreen2</div> +<div id='d291' class='colors'> +DarkOliveGreen4</div> +<div id='d292' class='colors'> +DarkOliveGreen</div> +<div id='d293' class='colors'> +OliveDrab</div> +<div id='d294' class='colors'> +OliveDrab1</div> +<div id='d295' class='colors'> +OliveDrab2</div> +<div id='d296' class='colors'> +OliveDrab3</div> +<div id='d297' class='colors'> +YellowGreen</div> +<div id='d298' class='colors'> +OliveDrab4</div> +<div id='d299' class='colors'> +ivory</div> +<div id='d300' class='colors'> +ivory1</div> +<div id='d301' class='colors'> +LightYellow</div> +<div id='d302' class='colors'> +LightYellow1</div> +<div id='d303' class='colors'> +beige</div> +<div id='d304' class='colors'> +ivory2</div> +<div id='d305' class='colors'> +LightGoldenrodYellow</div> +<div id='d306' class='colors'> +LightYellow2</div> +<div id='d307' class='colors'> +ivory3</div> +<div id='d308' class='colors'> +LightYellow3</div> +<div id='d309' class='colors'> +ivory4</div> +<div id='d310' class='colors'> +LightYellow4</div> +<div id='d311' class='colors'> +yellow</div> +<div id='d312' class='colors'> +yellow1</div> +<div id='d313' class='colors'> +yellow2</div> +<div id='d314' class='colors'> +yellow3</div> +<div id='d315' class='colors'> +yellow4</div> +<div id='d316' class='colors'> +olive</div> +<div id='d317' class='colors'> +DarkKhaki</div> +<div id='d318' class='colors'> +khaki2</div> +<div id='d319' class='colors'> +LemonChiffon4</div> +<div id='d320' class='colors'> +khaki1</div> +<div id='d321' class='colors'> +khaki3</div> +<div id='d322' class='colors'> +khaki4</div> +<div id='d323' class='colors'> +PaleGoldenrod</div> +<div id='d324' class='colors'> +LemonChiffon</div> +<div id='d325' class='colors'> +LemonChiffon1</div> +<div id='d326' class='colors'> +khaki</div> +<div id='d327' class='colors'> +LemonChiffon3</div> +<div id='d328' class='colors'> +LemonChiffon2</div> +<div id='d329' class='colors'> +MediumGoldenRod</div> +<div id='d330' class='colors'> +cornsilk4</div> +<div id='d331' class='colors'> +gold</div> +<div id='d332' class='colors'> +gold1</div> +<div id='d333' class='colors'> +gold2</div> +<div id='d334' class='colors'> +gold3</div> +<div id='d335' class='colors'> +gold4</div> +<div id='d336' class='colors'> +LightGoldenrod</div> +<div id='d337' class='colors'> +LightGoldenrod4</div> +<div id='d338' class='colors'> +LightGoldenrod1</div> +<div id='d339' class='colors'> +LightGoldenrod3</div> +<div id='d340' class='colors'> +LightGoldenrod2</div> +<div id='d341' class='colors'> +cornsilk3</div> +<div id='d342' class='colors'> +cornsilk2</div> +<div id='d343' class='colors'> +cornsilk</div> +<div id='d344' class='colors'> +cornsilk1</div> +<div id='d345' class='colors'> +goldenrod</div> +<div id='d346' class='colors'> +goldenrod1</div> +<div id='d347' class='colors'> +goldenrod2</div> +<div id='d348' class='colors'> +goldenrod3</div> +<div id='d349' class='colors'> +goldenrod4</div> +<div id='d350' class='colors'> +DarkGoldenrod</div> +<div id='d351' class='colors'> +DarkGoldenrod1</div> +<div id='d352' class='colors'> +DarkGoldenrod2</div> +<div id='d353' class='colors'> +DarkGoldenrod3</div> +<div id='d354' class='colors'> +DarkGoldenrod4</div> +<div id='d355' class='colors'> +FloralWhite</div> +<div id='d356' class='colors'> +wheat2</div> +<div id='d357' class='colors'> +OldLace</div> +<div id='d358' class='colors'> +wheat</div> +<div id='d359' class='colors'> +wheat1</div> +<div id='d360' class='colors'> +wheat3</div> +<div id='d361' class='colors'> +orange</div> +<div id='d362' class='colors'> +orange1</div> +<div id='d363' class='colors'> +orange2</div> +<div id='d364' class='colors'> +orange3</div> +<div id='d365' class='colors'> +orange4</div> +<div id='d366' class='colors'> +wheat4</div> +<div id='d367' class='colors'> +moccasin</div> +<div id='d368' class='colors'> +PapayaWhip</div> +<div id='d369' class='colors'> +NavajoWhite3</div> +<div id='d370' class='colors'> +BlanchedAlmond</div> +<div id='d371' class='colors'> +NavajoWhite</div> +<div id='d372' class='colors'> +NavajoWhite1</div> +<div id='d373' class='colors'> +NavajoWhite2</div> +<div id='d374' class='colors'> +NavajoWhite4</div> +<div id='d375' class='colors'> +AntiqueWhite4</div> +<div id='d376' class='colors'> +AntiqueWhite</div> +<div id='d377' class='colors'> +tan</div> +<div id='d378' class='colors'> +bisque4</div> +<div id='d379' class='colors'> +burlywood</div> +<div id='d380' class='colors'> +AntiqueWhite2</div> +<div id='d381' class='colors'> +burlywood1</div> +<div id='d382' class='colors'> +burlywood3</div> +<div id='d383' class='colors'> +burlywood2</div> +<div id='d384' class='colors'> +AntiqueWhite1</div> +<div id='d385' class='colors'> +burlywood4</div> +<div id='d386' class='colors'> +AntiqueWhite3</div> +<div id='d387' class='colors'> +DarkOrange</div> +<div id='d388' class='colors'> +bisque2</div> +<div id='d389' class='colors'> +bisque</div> +<div id='d390' class='colors'> +bisque1</div> +<div id='d391' class='colors'> +bisque3</div> +<div id='d392' class='colors'> +DarkOrange1</div> +<div id='d393' class='colors'> +linen</div> +<div id='d394' class='colors'> +DarkOrange2</div> +<div id='d395' class='colors'> +DarkOrange3</div> +<div id='d396' class='colors'> +DarkOrange4</div> +<div id='d397' class='colors'> +peru</div> +<div id='d398' class='colors'> +tan1</div> +<div id='d399' class='colors'> +tan2</div> +<div id='d400' class='colors'> +tan3</div> +<div id='d401' class='colors'> +tan4</div> +<div id='d402' class='colors'> +PeachPuff</div> +<div id='d403' class='colors'> +PeachPuff1</div> +<div id='d404' class='colors'> +PeachPuff4</div> +<div id='d405' class='colors'> +PeachPuff2</div> +<div id='d406' class='colors'> +PeachPuff3</div> +<div id='d407' class='colors'> +SandyBrown</div> +<div id='d408' class='colors'> +seashell4</div> +<div id='d409' class='colors'> +seashell2</div> +<div id='d410' class='colors'> +seashell3</div> +<div id='d411' class='colors'> +chocolate</div> +<div id='d412' class='colors'> +chocolate1</div> +<div id='d413' class='colors'> +chocolate2</div> +<div id='d414' class='colors'> +chocolate3</div> +<div id='d415' class='colors'> +chocolate4</div> +<div id='d416' class='colors'> +SaddleBrown</div> +<div id='d417' class='colors'> +seashell</div> +<div id='d418' class='colors'> +seashell1</div> +<div id='d419' class='colors'> +sienna4</div> +<div id='d420' class='colors'> +sienna</div> +<div id='d421' class='colors'> +sienna1</div> +<div id='d422' class='colors'> +sienna2</div> +<div id='d423' class='colors'> +sienna3</div> +<div id='d424' class='colors'> +LightSalmon3</div> +<div id='d425' class='colors'> +LightSalmon</div> +<div id='d426' class='colors'> +LightSalmon1</div> +<div id='d427' class='colors'> +LightSalmon4</div> +<div id='d428' class='colors'> +LightSalmon2</div> +<div id='d429' class='colors'> +coral</div> +<div id='d430' class='colors'> +OrangeRed</div> +<div id='d431' class='colors'> +OrangeRed1</div> +<div id='d432' class='colors'> +OrangeRed2</div> +<div id='d433' class='colors'> +OrangeRed3</div> +<div id='d434' class='colors'> +OrangeRed4</div> +<div id='d435' class='colors'> +DarkSalmon</div> +<div id='d436' class='colors'> +salmon1</div> +<div id='d437' class='colors'> +salmon2</div> +<div id='d438' class='colors'> +salmon3</div> +<div id='d439' class='colors'> +salmon4</div> +<div id='d440' class='colors'> +coral1</div> +<div id='d441' class='colors'> +coral2</div> +<div id='d442' class='colors'> +coral3</div> +<div id='d443' class='colors'> +coral4</div> +<div id='d444' class='colors'> +tomato4</div> +<div id='d445' class='colors'> +tomato</div> +<div id='d446' class='colors'> +tomato1</div> +<div id='d447' class='colors'> +tomato2</div> +<div id='d448' class='colors'> +tomato3</div> +<div id='d449' class='colors'> +MistyRose4</div> +<div id='d450' class='colors'> +MistyRose2</div> +<div id='d451' class='colors'> +MistyRose</div> +<div id='d452' class='colors'> +MistyRose1</div> +<div id='d453' class='colors'> +salmon</div> +<div id='d454' class='colors'> +MistyRose3</div> +<div id='d455' class='colors'> +white</div> +<div id='d456' class='colors'> +gray100</div> +<div id='d457' class='colors'> +grey100</div> +<div id='d458' class='colors'> +grey100</div> +<div id='d459' class='colors'> +gray99</div> +<div id='d460' class='colors'> +grey99</div> +<div id='d461' class='colors'> +gray98</div> +<div id='d462' class='colors'> +grey98</div> +<div id='d463' class='colors'> +gray97</div> +<div id='d464' class='colors'> +grey97</div> +<div id='d465' class='colors'> +gray96</div> +<div id='d466' class='colors'> +grey96</div> +<div id='d467' class='colors'> +WhiteSmoke</div> +<div id='d468' class='colors'> +gray95</div> +<div id='d469' class='colors'> +grey95</div> +<div id='d470' class='colors'> +gray94</div> +<div id='d471' class='colors'> +grey94</div> +<div id='d472' class='colors'> +gray93</div> +<div id='d473' class='colors'> +grey93</div> +<div id='d474' class='colors'> +gray92</div> +<div id='d475' class='colors'> +grey92</div> +<div id='d476' class='colors'> +gray91</div> +<div id='d477' class='colors'> +grey91</div> +<div id='d478' class='colors'> +gray90</div> +<div id='d479' class='colors'> +grey90</div> +<div id='d480' class='colors'> +gray89</div> +<div id='d481' class='colors'> +grey89</div> +<div id='d482' class='colors'> +gray88</div> +<div id='d483' class='colors'> +grey88</div> +<div id='d484' class='colors'> +gray87</div> +<div id='d485' class='colors'> +grey87</div> +<div id='d486' class='colors'> +gainsboro</div> +<div id='d487' class='colors'> +gray86</div> +<div id='d488' class='colors'> +grey86</div> +<div id='d489' class='colors'> +gray85</div> +<div id='d490' class='colors'> +grey85</div> +<div id='d491' class='colors'> +gray84</div> +<div id='d492' class='colors'> +grey84</div> +<div id='d493' class='colors'> +gray83</div> +<div id='d494' class='colors'> +grey83</div> +<div id='d495' class='colors'> +LightGray</div> +<div id='d496' class='colors'> +LightGrey</div> +<div id='d497' class='colors'> +gray82</div> +<div id='d498' class='colors'> +grey82</div> +<div id='d499' class='colors'> +gray81</div> +<div id='d500' class='colors'> +grey81</div> +<div id='d501' class='colors'> +gray80</div> +<div id='d502' class='colors'> +grey80</div> +<div id='d503' class='colors'> +gray79</div> +<div id='d504' class='colors'> +grey79</div> +<div id='d505' class='colors'> +gray78</div> +<div id='d506' class='colors'> +grey78</div> +<div id='d507' class='colors'> +gray77</div> +<div id='d508' class='colors'> +grey77</div> +<div id='d509' class='colors'> +gray76</div> +<div id='d510' class='colors'> +grey76</div> +<div id='d511' class='colors'> +silver</div> +<div id='d512' class='colors'> +gray75</div> +<div id='d513' class='colors'> +grey75</div> +<div id='d514' class='colors'> +gray74</div> +<div id='d515' class='colors'> +grey74</div> +<div id='d516' class='colors'> +gray73</div> +<div id='d517' class='colors'> +grey73</div> +<div id='d518' class='colors'> +gray72</div> +<div id='d519' class='colors'> +grey72</div> +<div id='d520' class='colors'> +gray71</div> +<div id='d521' class='colors'> +grey71</div> +<div id='d522' class='colors'> +gray70</div> +<div id='d523' class='colors'> +grey70</div> +<div id='d524' class='colors'> +gray69</div> +<div id='d525' class='colors'> +grey69</div> +<div id='d526' class='colors'> +gray68</div> +<div id='d527' class='colors'> +grey68</div> +<div id='d528' class='colors'> +gray67</div> +<div id='d529' class='colors'> +grey67</div> +<div id='d530' class='colors'> +DarkGray</div> +<div id='d531' class='colors'> +DarkGrey</div> +<div id='d532' class='colors'> +gray66</div> +<div id='d533' class='colors'> +grey66</div> +<div id='d534' class='colors'> +gray65</div> +<div id='d535' class='colors'> +grey65</div> +<div id='d536' class='colors'> +gray64</div> +<div id='d537' class='colors'> +grey64</div> +<div id='d538' class='colors'> +gray63</div> +<div id='d539' class='colors'> +grey63</div> +<div id='d540' class='colors'> +gray62</div> +<div id='d541' class='colors'> +grey62</div> +<div id='d542' class='colors'> +gray61</div> +<div id='d543' class='colors'> +grey61</div> +<div id='d544' class='colors'> +gray60</div> +<div id='d545' class='colors'> +grey60</div> +<div id='d546' class='colors'> +gray59</div> +<div id='d547' class='colors'> +grey59</div> +<div id='d548' class='colors'> +gray58</div> +<div id='d549' class='colors'> +grey58</div> +<div id='d550' class='colors'> +gray57</div> +<div id='d551' class='colors'> +grey57</div> +<div id='d552' class='colors'> +gray56</div> +<div id='d553' class='colors'> +grey56</div> +<div id='d554' class='colors'> +gray55</div> +<div id='d555' class='colors'> +grey55</div> +<div id='d556' class='colors'> +gray54</div> +<div id='d557' class='colors'> +grey54</div> +<div id='d558' class='colors'> +gray53</div> +<div id='d559' class='colors'> +grey53</div> +<div id='d560' class='colors'> +gray52</div> +<div id='d561' class='colors'> +grey52</div> +<div id='d562' class='colors'> +gray51</div> +<div id='d563' class='colors'> +grey51</div> +<div id='d564' class='colors'> +fractal</div> +<div id='d565' class='colors'> +gray50</div> +<div id='d566' class='colors'> +grey50</div> +<div id='d567' class='colors'> +gray</div> +<div id='d568' class='colors'> +gray49</div> +<div id='d569' class='colors'> +grey49</div> +<div id='d570' class='colors'> +gray48</div> +<div id='d571' class='colors'> +grey48</div> +<div id='d572' class='colors'> +gray47</div> +<div id='d573' class='colors'> +grey47</div> +<div id='d574' class='colors'> +gray46</div> +<div id='d575' class='colors'> +grey46</div> +<div id='d576' class='colors'> +gray45</div> +<div id='d577' class='colors'> +grey45</div> +<div id='d578' class='colors'> +gray44</div> +<div id='d579' class='colors'> +grey44</div> +<div id='d580' class='colors'> +gray43</div> +<div id='d581' class='colors'> +grey43</div> +<div id='d582' class='colors'> +gray42</div> +<div id='d583' class='colors'> +grey42</div> +<div id='d584' class='colors'> +DimGray</div> +<div id='d585' class='colors'> +DimGrey</div> +<div id='d586' class='colors'> +gray41</div> +<div id='d587' class='colors'> +grey41</div> +<div id='d588' class='colors'> +gray40</div> +<div id='d589' class='colors'> +grey40</div> +<div id='d590' class='colors'> +gray39</div> +<div id='d591' class='colors'> +grey39</div> +<div id='d592' class='colors'> +gray38</div> +<div id='d593' class='colors'> +grey38</div> +<div id='d594' class='colors'> +gray37</div> +<div id='d595' class='colors'> +grey37</div> +<div id='d596' class='colors'> +gray36</div> +<div id='d597' class='colors'> +grey36</div> +<div id='d598' class='colors'> +gray35</div> +<div id='d599' class='colors'> +grey35</div> +<div id='d600' class='colors'> +gray34</div> +<div id='d601' class='colors'> +grey34</div> +<div id='d602' class='colors'> +gray33</div> +<div id='d603' class='colors'> +grey33</div> +<div id='d604' class='colors'> +gray32</div> +<div id='d605' class='colors'> +grey32</div> +<div id='d606' class='colors'> +gray31</div> +<div id='d607' class='colors'> +grey31</div> +<div id='d608' class='colors'> +gray30</div> +<div id='d609' class='colors'> +grey30</div> +<div id='d610' class='colors'> +gray29</div> +<div id='d611' class='colors'> +grey29</div> +<div id='d612' class='colors'> +gray28</div> +<div id='d613' class='colors'> +grey28</div> +<div id='d614' class='colors'> +gray27</div> +<div id='d615' class='colors'> +grey27</div> +<div id='d616' class='colors'> +gray26</div> +<div id='d617' class='colors'> +grey26</div> +<div id='d618' class='colors'> +gray25</div> +<div id='d619' class='colors'> +grey25</div> +<div id='d620' class='colors'> +gray24</div> +<div id='d621' class='colors'> +grey24</div> +<div id='d622' class='colors'> +gray23</div> +<div id='d623' class='colors'> +grey23</div> +<div id='d624' class='colors'> +gray22</div> +<div id='d625' class='colors'> +grey22</div> +<div id='d626' class='colors'> +gray21</div> +<div id='d627' class='colors'> +grey21</div> +<div id='d628' class='colors'> +gray20</div> +<div id='d629' class='colors'> +grey20</div> +<div id='d630' class='colors'> +gray19</div> +<div id='d631' class='colors'> +grey19</div> +<div id='d632' class='colors'> +gray18</div> +<div id='d633' class='colors'> +grey18</div> +<div id='d634' class='colors'> +gray17</div> +<div id='d635' class='colors'> +grey17</div> +<div id='d636' class='colors'> +gray16</div> +<div id='d637' class='colors'> +grey16</div> +<div id='d638' class='colors'> +gray15</div> +<div id='d639' class='colors'> +grey15</div> +<div id='d640' class='colors'> +gray14</div> +<div id='d641' class='colors'> +grey14</div> +<div id='d642' class='colors'> +gray13</div> +<div id='d643' class='colors'> +grey13</div> +<div id='d644' class='colors'> +gray12</div> +<div id='d645' class='colors'> +grey12</div> +<div id='d646' class='colors'> +gray11</div> +<div id='d647' class='colors'> +grey11</div> +<div id='d648' class='colors'> +gray10</div> +<div id='d649' class='colors'> +grey10</div> +<div id='d650' class='colors'> +gray9</div> +<div id='d651' class='colors'> +grey9</div> +<div id='d652' class='colors'> +gray8</div> +<div id='d653' class='colors'> +grey8</div> +<div id='d654' class='colors'> +gray7</div> +<div id='d655' class='colors'> +grey7</div> +<div id='d656' class='colors'> +gray6</div> +<div id='d657' class='colors'> +grey6</div> +<div id='d658' class='colors'> +gray5</div> +<div id='d659' class='colors'> +grey5</div> +<div id='d660' class='colors'> +gray4</div> +<div id='d661' class='colors'> +grey4</div> +<div id='d662' class='colors'> +gray3</div> +<div id='d663' class='colors'> +grey3</div> +<div id='d664' class='colors'> +gray2</div> +<div id='d665' class='colors'> +grey2</div> +<div id='d666' class='colors'> +gray1</div> +<div id='d667' class='colors'> +grey1</div> +<div id='d668' class='colors'> +black</div> +<div id='d669' class='colors'> +gray0</div> +<div id='d670' class='colors'> +grey0</div> +<div id='d671' class='colors'> +opaque</div> +<div id='d672' class='colors'> +none</div> +<div id='d673' class='colors'> +transparent</div> +</div> + +<div id='colornames'> +WHERE THE COLORNAMES WILL GO +</div> + +<div id='hexswitch'>CLICK TO SHOW HEXES</div> +<div id='infoswitch'>CLICK TO SHOW INFO</div> +<input id='namespace' type='text'></input> +<script type='text/javascript' src='js/jquery-1.6.4.min.js'></script> +<script type='text/javascript' src='js/colordict.js'></script> + +<script type='text/javascript'> +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newwidth = goldenize(result) + widthval = newwidth.toString()+'px' + $(idandselectr).css('width', widthval) + } +makegolden('.colors', 'height') + +//threewayselector for what goes in the divs +infostate = 1 +function switchinfo() + { + if(infostate == 0) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(divtoname[divlist[i]]) + }; + infostate = 1 + } + else if(infostate == 1) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html("") + }; + infostate = 2 + } + else if(infostate == 2) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(nametohex[divtoname[divlist[i]]]) + }; + infostate = 0 + } + } + +$('#infoswitch').click(function(){switchinfo()}) + +//takes a div name and returns a colorname + +function showcolorname(divstr) + + { + colorname = divtoname['#'+divstr] + hex = nametohex[colorname] + imname = hextoname[hex] + if (hexes == true) + { + imname = hex + } + return imname + } +function bigname(divstr) + { + colorname = showcolorname(divstr) + $('#colornames').html(colorname) + } +function writeit(text) + { + $('#colornames').append(text) + } +function makebig(divstr) + { + firstheight = $('#'+divstr).height() + newheight = goldenize(goldenize(firstheight)) + $('#'+divstr).height(newheight) + } +function makesmall(divstr) + { + oldheight = $('.colors').height() + $('#'+divstr).height(oldheight) + } +var choice; +$('.colors').hover(function() { + bigname(this.id); +// makebig(this.id); +// makegolden('#'+this.id, 'height')}, +//function(){ +// makesmall(this.id); +// makegolden('#'+this.id, 'height') +}); +$('.colors').mouseover(function(){ + if(this.id != 'd0'){ + makebig(this.id); + makegolden('#'+this.id, 'height') + }}) +$('.colors').mouseout(function(){ + makesmall(this.id); + makegolden('#'+this.id,'height'); + }) +$(".colors").hover(function(){ +$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); + }); +$('body').css('background-color', 'black') +$('.colors').css('margin-top', '2px') +var hexes = false +function hexswitch() + { + if(hexes == false) + { + $('#hexswitch').html('CLICK TO SHOW COLOR NAMES') + hexes = true; + } + + else + { + $('#hexswitch').html('CLICK TO SHOW HEX NAMES') + hexes = false; + } + } +$('#hexswitch').click(function(){hexswitch()}) + +$('.colors').click(function(){ + putitin() + }) + +function putitin() + { + $('#namespace').val($('#colornames').html()) + } + +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/colors/junk/divlist.js b/frontend/imgrid/colors/colors/junk/divlist.js new file mode 100755 index 0000000..49ee990 --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/divlist.js @@ -0,0 +1,2 @@ +var divlist = ['#d0', '#d1', '#d2', '#d3', '#d4', '#d5', '#d6', '#d7', '#d8', '#d9', '#d10', '#d11', '#d12', '#d13', '#d14', '#d15', '#d16', '#d17', '#d18', '#d19', '#d20', '#d21', '#d22', '#d23', '#d24', '#d25', '#d26', '#d27', '#d28', '#d29', '#d30', '#d31', '#d32', '#d33', '#d34', '#d35', '#d36', '#d37', '#d38', '#d39', '#d40', '#d41', '#d42', '#d43', '#d44', '#d45', '#d46', '#d47', '#d48', '#d49', '#d50', '#d51', '#d52', '#d53', '#d54', '#d55', '#d56', '#d57', '#d58', '#d59', '#d60', '#d61', '#d62', '#d63', '#d64', '#d65', '#d66', '#d67', '#d68', '#d69', '#d70', '#d71', '#d72', '#d73', '#d74', '#d75', '#d76', '#d77', '#d78', '#d79', '#d80', '#d81', '#d82', '#d83', '#d84', '#d85', '#d86', '#d87', '#d88', '#d89', '#d90', '#d91', '#d92', '#d93', '#d94', '#d95', '#d96', '#d97', '#d98', '#d99', '#d100', '#d101', '#d102', '#d103', '#d104', '#d105', '#d106', '#d107', '#d108', '#d109', '#d110', '#d111', '#d112', '#d113', '#d114', '#d115', '#d116', '#d117', '#d118', '#d119', '#d120', '#d121', '#d122', '#d123', '#d124', '#d125', '#d126', '#d127', '#d128', '#d129', '#d130', '#d131', '#d132', '#d133', '#d134', '#d135', '#d136', '#d137', '#d138', '#d139', '#d140', '#d141', '#d142', '#d143', '#d144', '#d145', '#d146', '#d147', '#d148', '#d149', '#d150', '#d151', '#d152', '#d153', '#d154', '#d155', '#d156', '#d157', '#d158', '#d159', '#d160', '#d161', '#d162', '#d163', '#d164', '#d165', '#d166', '#d167', '#d168', '#d169', '#d170', '#d171', '#d172', '#d173', '#d174', '#d175', '#d176', '#d177', '#d178', '#d179', '#d180', '#d181', '#d182', '#d183', '#d184', '#d185', '#d186', '#d187', '#d188', '#d189', '#d190', '#d191', '#d192', '#d193', '#d194', '#d195', '#d196', '#d197', '#d198', '#d199', '#d200', '#d201', '#d202', '#d203', '#d204', '#d205', '#d206', '#d207', '#d208', '#d209', '#d210', '#d211', '#d212', '#d213', '#d214', '#d215', '#d216', '#d217', '#d218', '#d219', '#d220', '#d221', '#d222', '#d223', '#d224', '#d225', '#d226', '#d227', '#d228', '#d229', '#d230', '#d231', '#d232', '#d233', '#d234', '#d235', '#d236', '#d237', '#d238', '#d239', '#d240', '#d241', '#d242', '#d243', '#d244', '#d245', '#d246', '#d247', '#d248', '#d249', '#d250', '#d251', '#d252', '#d253', '#d254', '#d255', '#d256', '#d257', '#d258', '#d259', '#d260', '#d261', '#d262', '#d263', '#d264', '#d265', '#d266', '#d267', '#d268', '#d269', '#d270', '#d271', '#d272', '#d273', '#d274', '#d275', '#d276', '#d277', '#d278', '#d279', '#d280', '#d281', '#d282', '#d283', '#d284', '#d285', '#d286', '#d287', '#d288', '#d289', '#d290', '#d291', '#d292', '#d293', '#d294', '#d295', '#d296', '#d297', '#d298', '#d299', '#d300', '#d301', '#d302', '#d303', '#d304', '#d305', '#d306', '#d307', '#d308', '#d309', '#d310', '#d311', '#d312', '#d313', '#d314', '#d315', '#d316', '#d317', '#d318', '#d319', '#d320', '#d321', '#d322', '#d323', '#d324', '#d325', '#d326', '#d327', '#d328', '#d329', '#d330', '#d331', '#d332', '#d333', '#d334', '#d335', '#d336', '#d337', '#d338', '#d339', '#d340', '#d341', '#d342', '#d343', '#d344', '#d345', '#d346', '#d347', '#d348', '#d349', '#d350', '#d351', '#d352', '#d353', '#d354', '#d355', '#d356', '#d357', '#d358', '#d359', '#d360', '#d361', '#d362', '#d363', '#d364', '#d365', '#d366', '#d367', '#d368', '#d369', '#d370', '#d371', '#d372', '#d373', '#d374', '#d375', '#d376', '#d377', '#d378', '#d379', '#d380', '#d381', '#d382', '#d383', '#d384', '#d385', '#d386', '#d387', '#d388', '#d389', '#d390', '#d391', '#d392', '#d393', '#d394', '#d395', '#d396', '#d397', '#d398', '#d399', '#d400', '#d401', '#d402', '#d403', '#d404', '#d405', '#d406', '#d407', '#d408', '#d409', '#d410', '#d411', '#d412', '#d413', '#d414', '#d415', '#d416', '#d417', '#d418', '#d419', '#d420', '#d421', '#d422', '#d423', '#d424', '#d425', '#d426', '#d427', '#d428', '#d429', '#d430', '#d431', '#d432', '#d433', '#d434', '#d435', '#d436', '#d437', '#d438', '#d439', '#d440', '#d441', '#d442', '#d443', '#d444', '#d445', '#d446', '#d447', '#d448', '#d449', '#d450', '#d451', '#d452', '#d453', '#d454', '#d455', '#d456', '#d457', '#d458', '#d459', '#d460', '#d461', '#d462', '#d463', '#d464', '#d465', '#d466', '#d467', '#d468', '#d469', '#d470', '#d471', '#d472', '#d473', '#d474', '#d475', '#d476', '#d477', '#d478', '#d479', '#d480', '#d481', '#d482', '#d483', '#d484', '#d485', '#d486', '#d487', '#d488', '#d489', '#d490', '#d491', '#d492', '#d493', '#d494', '#d495', '#d496', '#d497', '#d498', '#d499', '#d500', '#d501', '#d502', '#d503', '#d504', '#d505', '#d506', '#d507', '#d508', '#d509', '#d510', '#d511', '#d512', '#d513', '#d514', '#d515', '#d516', '#d517', '#d518', '#d519', '#d520', '#d521', '#d522', '#d523', '#d524', '#d525', '#d526', '#d527', '#d528', '#d529', '#d530', '#d531', '#d532', '#d533', '#d534', '#d535', '#d536', '#d537', '#d538', '#d539', '#d540', '#d541', '#d542', '#d543', '#d544', '#d545', '#d546', '#d547', '#d548', '#d549', '#d550', '#d551', '#d552', '#d553', '#d554', '#d555', '#d556', '#d557', '#d558', '#d559', '#d560', '#d561', '#d562', '#d563', '#d564', '#d565', '#d566', '#d567', '#d568', '#d569', '#d570', '#d571', '#d572', '#d573', '#d574', '#d575', '#d576', '#d577', '#d578', '#d579', '#d580', '#d581', '#d582', '#d583', '#d584', '#d585', '#d586', '#d587', '#d588', '#d589', '#d590', '#d591', '#d592', '#d593', '#d594', '#d595', '#d596', '#d597', '#d598', '#d599', '#d600', '#d601', '#d602', '#d603', '#d604', '#d605', '#d606', '#d607', '#d608', '#d609', '#d610', '#d611', '#d612', '#d613', '#d614', '#d615', '#d616', '#d617', '#d618', '#d619', '#d620', '#d621', '#d622', '#d623', '#d624', '#d625', '#d626', '#d627', '#d628', '#d629', '#d630', '#d631', '#d632', '#d633', '#d634', '#d635', '#d636', '#d637', '#d638', '#d639', '#d640', '#d641', '#d642', '#d643', '#d644', '#d645', '#d646', '#d647', '#d648', '#d649', '#d650', '#d651', '#d652', '#d653', '#d654', '#d655', '#d656', '#d657', '#d658', '#d659', '#d660', '#d661', '#d662', '#d663', '#d664', '#d665', '#d666', '#d667', '#d668', '#d669', '#d670', '#d671', '#d672', '#d673'] +var divtoname = {'#d322': 'khaki4', '#d600': 'gray34', '#d118': 'MediumPurple1', '#d119': 'MediumPurple2', '#d114': 'purple3', '#d115': 'purple4', '#d116': 'purple1', '#d117': 'MediumPurple', '#d110': 'purple', '#d111': 'indigo', '#d112': 'BlueViolet', '#d113': 'purple2', '#d529': 'grey67', '#d231': 'DarkSlateGray', '#d339': 'LightGoldenrod3', '#d233': 'MediumTurquoise', '#d232': 'DarkSlateGrey', '#d235': 'turquoise', '#d234': 'LightSeaGreen', '#d237': 'aquamarine', '#d236': 'aquamarine4', '#d239': 'aquamarine2', '#d238': 'aquamarine1', '#d332': 'gold1', '#d333': 'gold2', '#d334': 'gold3', '#d335': 'gold4', '#d336': 'LightGoldenrod', '#d337': 'LightGoldenrod4', '#d424': 'LightSalmon3', '#d425': 'LightSalmon', '#d426': 'LightSalmon1', '#d427': 'LightSalmon4', '#d420': 'sienna', '#d421': 'sienna1', '#d422': 'sienna2', '#d423': 'sienna3', '#d587': 'grey41', '#d586': 'gray41', '#d585': 'DimGrey', '#d584': 'DimGray', '#d428': 'LightSalmon2', '#d429': 'coral', '#d581': 'grey43', '#d580': 'gray43', '#d89': 'thistle4', '#d88': 'plum3', '#d349': 'goldenrod4', '#d348': 'goldenrod3', '#d81': 'thistle2', '#d80': 'thistle1', '#d83': 'plum2', '#d82': 'plum1', '#d85': 'thistle3', '#d84': 'thistle', '#d87': 'violet', '#d86': 'plum', '#d601': 'grey34', '#d67': 'DeepPink3', '#d66': 'DeepPink2', '#d65': 'DeepPink1', '#d64': 'DeepPink', '#d63': 'HotPink', '#d62': 'HotPink4', '#d61': 'HotPink1', '#d60': 'HotPink2', '#d69': 'maroon1', '#d68': 'DeepPink4', '#d510': 'grey76', '#d511': 'silver', '#d512': 'gray75', '#d513': 'grey75', '#d514': 'gray74', '#d515': 'grey74', '#d516': 'gray73', '#d517': 'grey73', '#d518': 'gray72', '#d519': 'grey72', '#d150': 'LightSteelBlue2', '#d151': 'LightSteelBlue3', '#d152': 'LightSteelBlue4', '#d153': 'SlateGray4', '#d154': 'SlateGray1', '#d155': 'SlateGray2', '#d156': 'SlateGray3', '#d157': 'LightSlateGray', '#d158': 'LightSlateGrey', '#d159': 'SlateGray', '#d565': 'gray50', '#d564': 'fractal', '#d567': 'gray', '#d566': 'grey50', '#d561': 'grey52', '#d560': 'gray52', '#d563': 'grey51', '#d562': 'gray51', '#d604': 'gray32', '#d605': 'grey32', '#d606': 'gray31', '#d607': 'grey31', '#d569': 'grey49', '#d568': 'gray49', '#d602': 'gray33', '#d603': 'grey33', '#d125': 'SlateBlue', '#d124': 'MediumSlateBlue', '#d127': 'SlateBlue2', '#d126': 'SlateBlue1', '#d121': 'MediumPurple4', '#d120': 'MediumPurple3', '#d123': 'LightSlateBlue', '#d122': 'DarkSlateBlue', '#d359': 'wheat1', '#d129': 'SlateBlue4', '#d128': 'SlateBlue3', '#d301': 'LightYellow', '#d300': 'ivory1', '#d303': 'beige', '#d302': 'LightYellow1', '#d305': 'LightGoldenrodYellow', '#d304': 'ivory2', '#d307': 'ivory3', '#d306': 'LightYellow2', '#d309': 'ivory4', '#d308': 'LightYellow3', '#d462': 'grey98', '#d351': 'DarkGoldenrod1', '#d464': 'grey97', '#d465': 'gray96', '#d466': 'grey96', '#d467': 'WhiteSmoke', '#d463': 'gray97', '#d268': 'PaleGreen3', '#d269': 'honeydew4', '#d266': 'DarkSeaGreen3', '#d267': 'DarkSeaGreen', '#d264': 'LightGreen', '#d265': 'PaleGreen2', '#d262': 'PaleGreen', '#d263': 'honeydew3', '#d260': 'DarkSeaGreen2', '#d261': 'PaleGreen1', '#d598': 'gray35', '#d29': 'firebrick4', '#d28': 'brown4', '#d23': 'red2', '#d22': 'firebrick3', '#d21': 'RosyBrown4', '#d20': 'red1', '#d27': 'IndianRed4', '#d26': 'red3', '#d25': 'brown', '#d24': 'firebrick', '#d599': 'grey35', '#d338': 'LightGoldenrod1', '#d419': 'sienna4', '#d418': 'seashell1', '#d230': 'teal', '#d415': 'chocolate4', '#d414': 'chocolate3', '#d417': 'seashell', '#d416': 'SaddleBrown', '#d411': 'chocolate', '#d410': 'seashell3', '#d413': 'chocolate2', '#d412': 'chocolate1', '#d398': 'tan1', '#d399': 'tan2', '#d392': 'DarkOrange1', '#d393': 'linen', '#d390': 'bisque1', '#d391': 'bisque3', '#d396': 'DarkOrange4', '#d397': 'peru', '#d394': 'DarkOrange2', '#d395': 'DarkOrange3', '#d194': 'CadetBlue2', '#d195': 'CadetBlue3', '#d196': 'CadetBlue4', '#d197': 'turquoise1', '#d190': 'LightBlue', '#d191': 'LightBlue4', '#d192': 'PowderBlue', '#d193': 'CadetBlue1', '#d198': 'turquoise2', '#d199': 'turquoise3', '#d330': 'cornsilk4', '#d331': 'gold', '#d640': 'gray14', '#d641': 'grey14', '#d642': 'gray13', '#d643': 'grey13', '#d644': 'gray12', '#d645': 'grey12', '#d646': 'gray11', '#d647': 'grey11', '#d648': 'gray10', '#d649': 'grey10', '#d668': 'black', '#d486': 'gainsboro', '#d487': 'gray86', '#d484': 'gray87', '#d485': 'grey87', '#d482': 'gray88', '#d483': 'grey88', '#d480': 'gray89', '#d481': 'grey89', '#d521': 'grey71', '#d520': 'gray71', '#d523': 'grey70', '#d522': 'gray70', '#d525': 'grey69', '#d524': 'gray69', '#d488': 'grey86', '#d489': 'gray85', '#d430': 'OrangeRed', '#d660': 'gray4', '#d169': 'SteelBlue1', '#d168': 'SteelBlue', '#d661': 'grey4', '#d161': 'DodgerBlue', '#d160': 'SlateGrey', '#d163': 'DodgerBlue2', '#d162': 'DodgerBlue1', '#d165': 'DodgerBlue3', '#d164': 'DodgerBlue4', '#d167': 'SteelBlue4', '#d166': 'AliceBlue', '#d635': 'grey17', '#d634': 'gray17', '#d637': 'grey16', '#d636': 'gray16', '#d631': 'grey19', '#d630': 'gray19', '#d633': 'grey18', '#d632': 'gray18', '#d639': 'grey15', '#d638': 'gray15', '#d368': 'PapayaWhip', '#d222': 'cyan', '#d223': 'cyan1', '#d220': 'LightCyan4', '#d221': 'aqua', '#d226': 'DarkSlateGray4', '#d227': 'cyan3', '#d224': 'PaleTurquoise4', '#d225': 'cyan2', '#d228': 'cyan4', '#d229': 'DarkCyan', '#d590': 'gray39', '#d538': 'gray63', '#d539': 'grey63', '#d591': 'grey39', '#d451': 'MistyRose', '#d450': 'MistyRose2', '#d453': 'salmon', '#d452': 'MistyRose1', '#d455': 'white', '#d454': 'MistyRose3', '#d457': 'grey100', '#d456': 'gray100', '#d459': 'gray99', '#d458': 'grey100', '#d592': 'gray38', '#d593': 'grey38', '#d594': 'gray37', '#d595': 'grey37', '#d596': 'gray36', '#d597': 'grey36', '#d297': 'YellowGreen', '#d296': 'OliveDrab3', '#d295': 'OliveDrab2', '#d294': 'OliveDrab1', '#d293': 'OliveDrab', '#d292': 'DarkOliveGreen', '#d291': 'DarkOliveGreen4', '#d290': 'DarkOliveGreen2', '#d356': 'wheat2', '#d357': 'OldLace', '#d354': 'DarkGoldenrod4', '#d355': 'FloralWhite', '#d352': 'DarkGoldenrod2', '#d353': 'DarkGoldenrod3', '#d299': 'ivory', '#d298': 'OliveDrab4', '#d468': 'gray95', '#d534': 'gray65', '#d535': 'grey65', '#d52': 'LavenderBlush2', '#d53': 'LavenderBlush4', '#d50': 'LavenderBlush1', '#d51': 'LavenderBlush3', '#d56': 'VioletRed3', '#d57': 'VioletRed1', '#d54': 'maroon', '#d55': 'HotPink3', '#d58': 'VioletRed2', '#d59': 'VioletRed4', '#d469': 'grey95', '#d558': 'gray53', '#d559': 'grey53', '#d576': 'gray45', '#d577': 'grey45', '#d574': 'gray46', '#d575': 'grey46', '#d572': 'gray47', '#d573': 'grey47', '#d570': 'gray48', '#d571': 'grey48', '#d671': 'opaque', '#d670': 'grey0', '#d673': 'transparent', '#d672': 'none', '#d578': 'gray44', '#d579': 'grey44', '#d589': 'grey40', '#d588': 'gray40', '#d4': 'RosyBrown2', '#d5': 'snow3', '#d6': 'LightCoral', '#d7': 'IndianRed1', '#d0': 'snow', '#d1': 'snow1', '#d2': 'snow2', '#d3': 'RosyBrown1', '#d8': 'RosyBrown3', '#d9': 'IndianRed2', '#d136': 'MediumBlue', '#d137': 'blue4', '#d134': 'blue2', '#d135': 'blue3', '#d132': 'blue', '#d133': 'blue1', '#d130': 'GhostWhite', '#d131': 'lavender', '#d583': 'grey42', '#d138': 'DarkBlue', '#d139': 'MidnightBlue', '#d312': 'yellow1', '#d313': 'yellow2', '#d310': 'LightYellow4', '#d311': 'yellow', '#d316': 'olive', '#d317': 'DarkKhaki', '#d314': 'yellow3', '#d315': 'yellow4', '#d318': 'khaki2', '#d319': 'LemonChiffon4', '#d259': 'DarkSeaGreen1', '#d258': 'honeydew2', '#d253': 'SeaGreen4', '#d252': 'SeaGreen1', '#d251': 'SeaGreen3', '#d250': 'SeaGreen', '#d257': 'honeydew1', '#d256': 'honeydew', '#d255': 'MediumForestGreen', '#d254': 'SeaGreen2', '#d345': 'goldenrod', '#d344': 'cornsilk1', '#d612': 'gray28', '#d347': 'goldenrod2', '#d461': 'gray98', '#d346': 'goldenrod1', '#d479': 'grey90', '#d341': 'cornsilk3', '#d478': 'gray90', '#d340': 'LightGoldenrod2', '#d343': 'cornsilk', '#d342': 'cornsilk2', '#d528': 'gray67', '#d408': 'seashell4', '#d409': 'seashell2', '#d406': 'PeachPuff3', '#d407': 'SandyBrown', '#d404': 'PeachPuff4', '#d405': 'PeachPuff2', '#d402': 'PeachPuff', '#d403': 'PeachPuff1', '#d400': 'tan3', '#d401': 'tan4', '#d552': 'gray56', '#d460': 'grey99', '#d16': 'firebrick2', '#d17': 'snow4', '#d14': 'IndianRed', '#d15': 'IndianRed3', '#d12': 'firebrick1', '#d13': 'brown2', '#d10': 'RosyBrown', '#d11': 'brown1', '#d532': 'gray66', '#d533': 'grey66', '#d530': 'DarkGray', '#d531': 'DarkGrey', '#d536': 'gray64', '#d537': 'grey64', '#d18': 'brown3', '#d19': 'red', '#d329': 'MediumGoldenRod', '#d328': 'LemonChiffon2', '#d178': 'LightSkyBlue1', '#d179': 'LightSkyBlue2', '#d172': 'SkyBlue4', '#d173': 'SkyBlue1', '#d170': 'SteelBlue2', '#d171': 'SteelBlue3', '#d176': 'LightSkyBlue', '#d177': 'LightSkyBlue4', '#d174': 'SkyBlue2', '#d175': 'SkyBlue3', '#d626': 'gray21', '#d627': 'grey21', '#d624': 'gray22', '#d625': 'grey22', '#d622': 'gray23', '#d623': 'grey23', '#d620': 'gray24', '#d621': 'grey24', '#d628': 'gray20', '#d629': 'grey20', '#d219': 'azure4', '#d218': 'DarkSlateGray3', '#d217': 'PaleTurquoise3', '#d216': 'DarkSlateGray2', '#d215': 'LightCyan3', '#d214': 'azure3', '#d213': 'DarkSlateGray1', '#d212': 'PaleTurquoise2', '#d211': 'PaleTurquoise', '#d210': 'PaleTurquoise1', '#d669': 'gray0', '#d582': 'gray42', '#d442': 'coral3', '#d443': 'coral4', '#d440': 'coral1', '#d441': 'coral2', '#d446': 'tomato1', '#d447': 'tomato2', '#d444': 'tomato4', '#d445': 'tomato', '#d448': 'tomato3', '#d449': 'MistyRose4', '#d280': 'DarkGreen', '#d281': 'LawnGreen', '#d282': 'chartreuse', '#d283': 'chartreuse1', '#d284': 'chartreuse2', '#d285': 'chartreuse3', '#d286': 'chartreuse4', '#d287': 'GreenYellow', '#d288': 'DarkOliveGreen3', '#d289': 'DarkOliveGreen1', '#d361': 'orange', '#d360': 'wheat3', '#d367': 'moccasin', '#d366': 'wheat4', '#d365': 'orange4', '#d364': 'orange3', '#d49': 'LavenderBlush', '#d48': 'PaleVioletRed3', '#d45': 'PaleVioletRed', '#d44': 'PaleVioletRed4', '#d47': 'PaleVioletRed1', '#d46': 'PaleVioletRed2', '#d41': 'pink2', '#d40': 'pink1', '#d43': 'pink4', '#d42': 'pink3', '#d358': 'wheat', '#d527': 'grey68', '#d526': 'gray68', '#d614': 'gray27', '#d543': 'grey61', '#d542': 'gray61', '#d541': 'grey62', '#d540': 'gray62', '#d547': 'grey59', '#d546': 'gray59', '#d545': 'grey60', '#d544': 'gray60', '#d662': 'gray3', '#d663': 'grey3', '#d549': 'grey58', '#d548': 'gray58', '#d666': 'gray1', '#d667': 'grey1', '#d664': 'gray2', '#d665': 'grey2', '#d103': 'MediumOrchid4', '#d102': 'MediumOrchid3', '#d101': 'MediumOrchid2', '#d100': 'MediumOrchid1', '#d107': 'DarkOrchid3', '#d106': 'DarkOrchid1', '#d105': 'DarkOrchid', '#d104': 'DarkViolet', '#d109': 'DarkOrchid4', '#d108': 'DarkOrchid2', '#d244': 'SpringGreen', '#d245': 'SpringGreen1', '#d246': 'SpringGreen2', '#d247': 'SpringGreen3', '#d240': 'aquamarine3', '#d241': 'MediumAquamarine', '#d242': 'MediumSpringGreen', '#d243': 'MintCream', '#d327': 'LemonChiffon3', '#d326': 'khaki', '#d325': 'LemonChiffon1', '#d324': 'LemonChiffon', '#d248': 'SpringGreen4', '#d249': 'MediumSeaGreen', '#d321': 'khaki3', '#d320': 'khaki1', '#d350': 'DarkGoldenrod', '#d439': 'salmon4', '#d438': 'salmon3', '#d98': 'purple', '#d99': 'MediumOrchid', '#d96': 'DarkMagenta', '#d97': 'magenta4', '#d94': 'magenta2', '#d95': 'magenta3', '#d92': 'magenta1', '#d93': 'plum4', '#d90': 'fuchsia', '#d91': 'magenta', '#d433': 'OrangeRed3', '#d432': 'OrangeRed2', '#d431': 'OrangeRed1', '#d74': 'VioletRed', '#d75': 'orchid2', '#d76': 'orchid', '#d77': 'orchid1', '#d70': 'maroon2', '#d71': 'maroon3', '#d72': 'maroon4', '#d73': 'MediumVioletRed', '#d437': 'salmon2', '#d78': 'orchid3', '#d79': 'orchid4', '#d436': 'salmon1', '#d435': 'DarkSalmon', '#d434': 'OrangeRed4', '#d507': 'gray77', '#d506': 'grey78', '#d505': 'gray78', '#d504': 'grey79', '#d503': 'gray79', '#d502': 'grey80', '#d501': 'gray80', '#d500': 'grey81', '#d509': 'gray76', '#d508': 'grey77', '#d473': 'grey93', '#d369': 'NavajoWhite3', '#d147': 'CornflowerBlue', '#d146': 'RoyalBlue4', '#d145': 'RoyalBlue3', '#d144': 'RoyalBlue2', '#d143': 'RoyalBlue1', '#d142': 'RoyalBlue', '#d141': 'NavyBlue', '#d140': 'navy', '#d149': 'LightSteelBlue1', '#d148': 'LightSteelBlue', '#d472': 'gray93', '#d613': 'grey28', '#d363': 'orange2', '#d611': 'grey29', '#d610': 'gray29', '#d617': 'grey26', '#d616': 'gray26', '#d615': 'grey27', '#d362': 'orange1', '#d619': 'grey25', '#d618': 'gray25', '#d208': 'azure2', '#d209': 'LightCyan2', '#d200': 'turquoise4', '#d201': 'cadet blue', '#d202': 'CadetBlue', '#d203': 'DarkTurquoise', '#d204': 'azure', '#d205': 'azure1', '#d206': 'LightCyan', '#d207': 'LightCyan1', '#d608': 'gray30', '#d609': 'grey30', '#d374': 'NavajoWhite4', '#d375': 'AntiqueWhite4', '#d376': 'AntiqueWhite', '#d377': 'tan', '#d370': 'BlanchedAlmond', '#d371': 'NavajoWhite', '#d372': 'NavajoWhite1', '#d373': 'NavajoWhite2', '#d477': 'grey91', '#d476': 'gray91', '#d475': 'grey92', '#d474': 'gray92', '#d378': 'bisque4', '#d379': 'burlywood', '#d471': 'grey94', '#d470': 'gray94', '#d279': 'green', '#d278': 'green4', '#d275': 'PaleGreen4', '#d274': 'green2', '#d277': 'ForestGreen', '#d276': 'green3', '#d271': 'lime', '#d270': 'green1', '#d273': 'DarkSeaGreen4', '#d272': 'LimeGreen', '#d38': 'pink', '#d39': 'crimson', '#d30': 'DarkRed', '#d31': 'red4', '#d32': 'maroon', '#d33': 'LightPink1', '#d34': 'LightPink3', '#d35': 'LightPink4', '#d36': 'LightPink2', '#d37': 'LightPink', '#d658': 'gray5', '#d389': 'bisque', '#d388': 'bisque2', '#d381': 'burlywood1', '#d380': 'AntiqueWhite2', '#d383': 'burlywood2', '#d382': 'burlywood3', '#d385': 'burlywood4', '#d384': 'AntiqueWhite1', '#d387': 'DarkOrange', '#d386': 'AntiqueWhite3', '#d189': 'LightBlue2', '#d188': 'LightBlue1', '#d183': 'DeepSkyBlue', '#d182': 'LightBlue3', '#d181': 'SkyBlue', '#d180': 'LightSkyBlue3', '#d187': 'DeepSkyBlue3', '#d186': 'DeepSkyBlue4', '#d185': 'DeepSkyBlue2', '#d184': 'DeepSkyBlue1', '#d657': 'grey6', '#d656': 'gray6', '#d655': 'grey7', '#d654': 'gray7', '#d653': 'grey8', '#d652': 'gray8', '#d651': 'grey9', '#d650': 'gray9', '#d550': 'gray57', '#d659': 'grey5', '#d551': 'grey57', '#d495': 'LightGray', '#d494': 'grey83', '#d497': 'gray82', '#d496': 'LightGrey', '#d491': 'gray84', '#d490': 'grey85', '#d493': 'gray83', '#d492': 'grey84', '#d554': 'gray55', '#d555': 'grey55', '#d556': 'gray54', '#d557': 'grey54', '#d499': 'gray81', '#d498': 'grey82', '#d323': 'PaleGoldenrod', '#d553': 'grey56'}
\ No newline at end of file diff --git a/frontend/imgrid/colors/colors/junk/divlistmaker b/frontend/imgrid/colors/colors/junk/divlistmaker new file mode 100755 index 0000000..b461bc9 --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/divlistmaker @@ -0,0 +1,32 @@ +#!/usr/bin/python2.7 + + + +divlist = [] +for x in range(674): + divlist.append("#d"+str(x)) + +print str(divlist) + +f = open('colordict.js', 'a') + +f.write("var divlist = ") +f.write(str(divlist)) +f.close() + +f = open('colors.html', 'r') +lines = f.readlines() +colornames = [] +for line in lines: + if 'right' in line and 'td' in line: + colornames.append(line[22:-6]) + +divtoname = {} +for i in divlist: + divtoname[i] = colornames[divlist.index(i)] + +print divtoname +f = open('colordict.js', 'a') +f.write("\nvar divtoname = ") +f.write(str(divtoname)) + diff --git a/frontend/imgrid/colors/colors/junk/mapmaker.html b/frontend/imgrid/colors/colors/junk/mapmaker.html new file mode 100755 index 0000000..05ca832 --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/mapmaker.html @@ -0,0 +1,3586 @@ +<html> +<head> + +<style type='text/css'> + +body +{ +max-width:100%; +max-height:100%; +font-family:helvetica; +font-size:2px; +} + + +#container div +{ +display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +height: 4px; +zoom: 1; +*display: inline; +} + +#container +{ +margin:0 auto; +width:30px; +padding-top:60px; +padding-bottom:50px; +padding-left:10px; +padding-right:10px; +text-align:center; +} + +#colornames +{ +color:white; +position:fixed; +font-size:50px; +top:50px; +right:60%; +width:400px; +} + +#hexswitch + { + position:fixed; + top:20px; + right:10%; + height:100px; + width:300px; + font-size:20px + border-style: groove; + border-width: 4px; + background-color:goldenrod; + text-align:center; + } +#infoswitch + { + position:fixed; + top: 60px; + right:5%; + font-size:20px + background-color:gray; + text-align:center; + } +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{ +height:30px; +width:10px; +} +</style></head><body> +<div id='container'> +<div id='d0' class='colors'> +snow</div> +<div id='d1' class='colors'> +snow1</div> +<div id='d2' class='colors'> +snow2</div> +<div id='d3' class='colors'> +RosyBrown1</div> +<div id='d4' class='colors'> +RosyBrown2</div> +<div id='d5' class='colors'> +snow3</div> +<div id='d6' class='colors'> +LightCoral</div> +<div id='d7' class='colors'> +IndianRed1</div> +<div id='d8' class='colors'> +RosyBrown3</div> +<div id='d9' class='colors'> +IndianRed2</div> +<div id='d10' class='colors'> +RosyBrown</div> +<div id='d11' class='colors'> +brown1</div> +<div id='d12' class='colors'> +firebrick1</div> +<div id='d13' class='colors'> +brown2</div> +<div id='d14' class='colors'> +IndianRed</div> +<div id='d15' class='colors'> +IndianRed3</div> +<div id='d16' class='colors'> +firebrick2</div> +<div id='d17' class='colors'> +snow4</div> +<div id='d18' class='colors'> +brown3</div> +<div id='d19' class='colors'> +red</div> +<div id='d20' class='colors'> +red1</div> +<div id='d21' class='colors'> +RosyBrown4</div> +<div id='d22' class='colors'> +firebrick3</div> +<div id='d23' class='colors'> +red2</div> +<div id='d24' class='colors'> +firebrick</div> +<div id='d25' class='colors'> +brown</div> +<div id='d26' class='colors'> +red3</div> +<div id='d27' class='colors'> +IndianRed4</div> +<div id='d28' class='colors'> +brown4</div> +<div id='d29' class='colors'> +firebrick4</div> +<div id='d30' class='colors'> +DarkRed</div> +<div id='d31' class='colors'> +red4</div> +<div id='d32' class='colors'> +maroon</div> +<div id='d33' class='colors'> +LightPink1</div> +<div id='d34' class='colors'> +LightPink3</div> +<div id='d35' class='colors'> +LightPink4</div> +<div id='d36' class='colors'> +LightPink2</div> +<div id='d37' class='colors'> +LightPink</div> +<div id='d38' class='colors'> +pink</div> +<div id='d39' class='colors'> +crimson</div> +<div id='d40' class='colors'> +pink1</div> +<div id='d41' class='colors'> +pink2</div> +<div id='d42' class='colors'> +pink3</div> +<div id='d43' class='colors'> +pink4</div> +<div id='d44' class='colors'> +PaleVioletRed4</div> +<div id='d45' class='colors'> +PaleVioletRed</div> +<div id='d46' class='colors'> +PaleVioletRed2</div> +<div id='d47' class='colors'> +PaleVioletRed1</div> +<div id='d48' class='colors'> +PaleVioletRed3</div> +<div id='d49' class='colors'> +LavenderBlush</div> +<div id='d50' class='colors'> +LavenderBlush1</div> +<div id='d51' class='colors'> +LavenderBlush3</div> +<div id='d52' class='colors'> +LavenderBlush2</div> +<div id='d53' class='colors'> +LavenderBlush4</div> +<div id='d54' class='colors'> +maroon</div> +<div id='d55' class='colors'> +HotPink3</div> +<div id='d56' class='colors'> +VioletRed3</div> +<div id='d57' class='colors'> +VioletRed1</div> +<div id='d58' class='colors'> +VioletRed2</div> +<div id='d59' class='colors'> +VioletRed4</div> +<div id='d60' class='colors'> +HotPink2</div> +<div id='d61' class='colors'> +HotPink1</div> +<div id='d62' class='colors'> +HotPink4</div> +<div id='d63' class='colors'> +HotPink</div> +<div id='d64' class='colors'> +DeepPink</div> +<div id='d65' class='colors'> +DeepPink1</div> +<div id='d66' class='colors'> +DeepPink2</div> +<div id='d67' class='colors'> +DeepPink3</div> +<div id='d68' class='colors'> +DeepPink4</div> +<div id='d69' class='colors'> +maroon1</div> +<div id='d70' class='colors'> +maroon2</div> +<div id='d71' class='colors'> +maroon3</div> +<div id='d72' class='colors'> +maroon4</div> +<div id='d73' class='colors'> +MediumVioletRed</div> +<div id='d74' class='colors'> +VioletRed</div> +<div id='d75' class='colors'> +orchid2</div> +<div id='d76' class='colors'> +orchid</div> +<div id='d77' class='colors'> +orchid1</div> +<div id='d78' class='colors'> +orchid3</div> +<div id='d79' class='colors'> +orchid4</div> +<div id='d80' class='colors'> +thistle1</div> +<div id='d81' class='colors'> +thistle2</div> +<div id='d82' class='colors'> +plum1</div> +<div id='d83' class='colors'> +plum2</div> +<div id='d84' class='colors'> +thistle</div> +<div id='d85' class='colors'> +thistle3</div> +<div id='d86' class='colors'> +plum</div> +<div id='d87' class='colors'> +violet</div> +<div id='d88' class='colors'> +plum3</div> +<div id='d89' class='colors'> +thistle4</div> +<div id='d90' class='colors'> +fuchsia</div> +<div id='d91' class='colors'> +magenta</div> +<div id='d92' class='colors'> +magenta1</div> +<div id='d93' class='colors'> +plum4</div> +<div id='d94' class='colors'> +magenta2</div> +<div id='d95' class='colors'> +magenta3</div> +<div id='d96' class='colors'> +DarkMagenta</div> +<div id='d97' class='colors'> +magenta4</div> +<div id='d98' class='colors'> +purple</div> +<div id='d99' class='colors'> +MediumOrchid</div> +<div id='d100' class='colors'> +MediumOrchid1</div> +<div id='d101' class='colors'> +MediumOrchid2</div> +<div id='d102' class='colors'> +MediumOrchid3</div> +<div id='d103' class='colors'> +MediumOrchid4</div> +<div id='d104' class='colors'> +DarkViolet</div> +<div id='d105' class='colors'> +DarkOrchid</div> +<div id='d106' class='colors'> +DarkOrchid1</div> +<div id='d107' class='colors'> +DarkOrchid3</div> +<div id='d108' class='colors'> +DarkOrchid2</div> +<div id='d109' class='colors'> +DarkOrchid4</div> +<div id='d110' class='colors'> +purple</div> +<div id='d111' class='colors'> +indigo</div> +<div id='d112' class='colors'> +BlueViolet</div> +<div id='d113' class='colors'> +purple2</div> +<div id='d114' class='colors'> +purple3</div> +<div id='d115' class='colors'> +purple4</div> +<div id='d116' class='colors'> +purple1</div> +<div id='d117' class='colors'> +MediumPurple</div> +<div id='d118' class='colors'> +MediumPurple1</div> +<div id='d119' class='colors'> +MediumPurple2</div> +<div id='d120' class='colors'> +MediumPurple3</div> +<div id='d121' class='colors'> +MediumPurple4</div> +<div id='d122' class='colors'> +DarkSlateBlue</div> +<div id='d123' class='colors'> +LightSlateBlue</div> +<div id='d124' class='colors'> +MediumSlateBlue</div> +<div id='d125' class='colors'> +SlateBlue</div> +<div id='d126' class='colors'> +SlateBlue1</div> +<div id='d127' class='colors'> +SlateBlue2</div> +<div id='d128' class='colors'> +SlateBlue3</div> +<div id='d129' class='colors'> +SlateBlue4</div> +<div id='d130' class='colors'> +GhostWhite</div> +<div id='d131' class='colors'> +lavender</div> +<div id='d132' class='colors'> +blue</div> +<div id='d133' class='colors'> +blue1</div> +<div id='d134' class='colors'> +blue2</div> +<div id='d135' class='colors'> +blue3</div> +<div id='d136' class='colors'> +MediumBlue</div> +<div id='d137' class='colors'> +blue4</div> +<div id='d138' class='colors'> +DarkBlue</div> +<div id='d139' class='colors'> +MidnightBlue</div> +<div id='d140' class='colors'> +navy</div> +<div id='d141' class='colors'> +NavyBlue</div> +<div id='d142' class='colors'> +RoyalBlue</div> +<div id='d143' class='colors'> +RoyalBlue1</div> +<div id='d144' class='colors'> +RoyalBlue2</div> +<div id='d145' class='colors'> +RoyalBlue3</div> +<div id='d146' class='colors'> +RoyalBlue4</div> +<div id='d147' class='colors'> +CornflowerBlue</div> +<div id='d148' class='colors'> +LightSteelBlue</div> +<div id='d149' class='colors'> +LightSteelBlue1</div> +<div id='d150' class='colors'> +LightSteelBlue2</div> +<div id='d151' class='colors'> +LightSteelBlue3</div> +<div id='d152' class='colors'> +LightSteelBlue4</div> +<div id='d153' class='colors'> +SlateGray4</div> +<div id='d154' class='colors'> +SlateGray1</div> +<div id='d155' class='colors'> +SlateGray2</div> +<div id='d156' class='colors'> +SlateGray3</div> +<div id='d157' class='colors'> +LightSlateGray</div> +<div id='d158' class='colors'> +LightSlateGrey</div> +<div id='d159' class='colors'> +SlateGray</div> +<div id='d160' class='colors'> +SlateGrey</div> +<div id='d161' class='colors'> +DodgerBlue</div> +<div id='d162' class='colors'> +DodgerBlue1</div> +<div id='d163' class='colors'> +DodgerBlue2</div> +<div id='d164' class='colors'> +DodgerBlue4</div> +<div id='d165' class='colors'> +DodgerBlue3</div> +<div id='d166' class='colors'> +AliceBlue</div> +<div id='d167' class='colors'> +SteelBlue4</div> +<div id='d168' class='colors'> +SteelBlue</div> +<div id='d169' class='colors'> +SteelBlue1</div> +<div id='d170' class='colors'> +SteelBlue2</div> +<div id='d171' class='colors'> +SteelBlue3</div> +<div id='d172' class='colors'> +SkyBlue4</div> +<div id='d173' class='colors'> +SkyBlue1</div> +<div id='d174' class='colors'> +SkyBlue2</div> +<div id='d175' class='colors'> +SkyBlue3</div> +<div id='d176' class='colors'> +LightSkyBlue</div> +<div id='d177' class='colors'> +LightSkyBlue4</div> +<div id='d178' class='colors'> +LightSkyBlue1</div> +<div id='d179' class='colors'> +LightSkyBlue2</div> +<div id='d180' class='colors'> +LightSkyBlue3</div> +<div id='d181' class='colors'> +SkyBlue</div> +<div id='d182' class='colors'> +LightBlue3</div> +<div id='d183' class='colors'> +DeepSkyBlue</div> +<div id='d184' class='colors'> +DeepSkyBlue1</div> +<div id='d185' class='colors'> +DeepSkyBlue2</div> +<div id='d186' class='colors'> +DeepSkyBlue4</div> +<div id='d187' class='colors'> +DeepSkyBlue3</div> +<div id='d188' class='colors'> +LightBlue1</div> +<div id='d189' class='colors'> +LightBlue2</div> +<div id='d190' class='colors'> +LightBlue</div> +<div id='d191' class='colors'> +LightBlue4</div> +<div id='d192' class='colors'> +PowderBlue</div> +<div id='d193' class='colors'> +CadetBlue1</div> +<div id='d194' class='colors'> +CadetBlue2</div> +<div id='d195' class='colors'> +CadetBlue3</div> +<div id='d196' class='colors'> +CadetBlue4</div> +<div id='d197' class='colors'> +turquoise1</div> +<div id='d198' class='colors'> +turquoise2</div> +<div id='d199' class='colors'> +turquoise3</div> +<div id='d200' class='colors'> +turquoise4</div> +<div id='d201' class='colors'> +cadet blue</div> +<div id='d202' class='colors'> +CadetBlue</div> +<div id='d203' class='colors'> +DarkTurquoise</div> +<div id='d204' class='colors'> +azure</div> +<div id='d205' class='colors'> +azure1</div> +<div id='d206' class='colors'> +LightCyan</div> +<div id='d207' class='colors'> +LightCyan1</div> +<div id='d208' class='colors'> +azure2</div> +<div id='d209' class='colors'> +LightCyan2</div> +<div id='d210' class='colors'> +PaleTurquoise1</div> +<div id='d211' class='colors'> +PaleTurquoise</div> +<div id='d212' class='colors'> +PaleTurquoise2</div> +<div id='d213' class='colors'> +DarkSlateGray1</div> +<div id='d214' class='colors'> +azure3</div> +<div id='d215' class='colors'> +LightCyan3</div> +<div id='d216' class='colors'> +DarkSlateGray2</div> +<div id='d217' class='colors'> +PaleTurquoise3</div> +<div id='d218' class='colors'> +DarkSlateGray3</div> +<div id='d219' class='colors'> +azure4</div> +<div id='d220' class='colors'> +LightCyan4</div> +<div id='d221' class='colors'> +aqua</div> +<div id='d222' class='colors'> +cyan</div> +<div id='d223' class='colors'> +cyan1</div> +<div id='d224' class='colors'> +PaleTurquoise4</div> +<div id='d225' class='colors'> +cyan2</div> +<div id='d226' class='colors'> +DarkSlateGray4</div> +<div id='d227' class='colors'> +cyan3</div> +<div id='d228' class='colors'> +cyan4</div> +<div id='d229' class='colors'> +DarkCyan</div> +<div id='d230' class='colors'> +teal</div> +<div id='d231' class='colors'> +DarkSlateGray</div> +<div id='d232' class='colors'> +DarkSlateGrey</div> +<div id='d233' class='colors'> +MediumTurquoise</div> +<div id='d234' class='colors'> +LightSeaGreen</div> +<div id='d235' class='colors'> +turquoise</div> +<div id='d236' class='colors'> +aquamarine4</div> +<div id='d237' class='colors'> +aquamarine</div> +<div id='d238' class='colors'> +aquamarine1</div> +<div id='d239' class='colors'> +aquamarine2</div> +<div id='d240' class='colors'> +aquamarine3</div> +<div id='d241' class='colors'> +MediumAquamarine</div> +<div id='d242' class='colors'> +MediumSpringGreen</div> +<div id='d243' class='colors'> +MintCream</div> +<div id='d244' class='colors'> +SpringGreen</div> +<div id='d245' class='colors'> +SpringGreen1</div> +<div id='d246' class='colors'> +SpringGreen2</div> +<div id='d247' class='colors'> +SpringGreen3</div> +<div id='d248' class='colors'> +SpringGreen4</div> +<div id='d249' class='colors'> +MediumSeaGreen</div> +<div id='d250' class='colors'> +SeaGreen</div> +<div id='d251' class='colors'> +SeaGreen3</div> +<div id='d252' class='colors'> +SeaGreen1</div> +<div id='d253' class='colors'> +SeaGreen4</div> +<div id='d254' class='colors'> +SeaGreen2</div> +<div id='d255' class='colors'> +MediumForestGreen</div> +<div id='d256' class='colors'> +honeydew</div> +<div id='d257' class='colors'> +honeydew1</div> +<div id='d258' class='colors'> +honeydew2</div> +<div id='d259' class='colors'> +DarkSeaGreen1</div> +<div id='d260' class='colors'> +DarkSeaGreen2</div> +<div id='d261' class='colors'> +PaleGreen1</div> +<div id='d262' class='colors'> +PaleGreen</div> +<div id='d263' class='colors'> +honeydew3</div> +<div id='d264' class='colors'> +LightGreen</div> +<div id='d265' class='colors'> +PaleGreen2</div> +<div id='d266' class='colors'> +DarkSeaGreen3</div> +<div id='d267' class='colors'> +DarkSeaGreen</div> +<div id='d268' class='colors'> +PaleGreen3</div> +<div id='d269' class='colors'> +honeydew4</div> +<div id='d270' class='colors'> +green1</div> +<div id='d271' class='colors'> +lime</div> +<div id='d272' class='colors'> +LimeGreen</div> +<div id='d273' class='colors'> +DarkSeaGreen4</div> +<div id='d274' class='colors'> +green2</div> +<div id='d275' class='colors'> +PaleGreen4</div> +<div id='d276' class='colors'> +green3</div> +<div id='d277' class='colors'> +ForestGreen</div> +<div id='d278' class='colors'> +green4</div> +<div id='d279' class='colors'> +green</div> +<div id='d280' class='colors'> +DarkGreen</div> +<div id='d281' class='colors'> +LawnGreen</div> +<div id='d282' class='colors'> +chartreuse</div> +<div id='d283' class='colors'> +chartreuse1</div> +<div id='d284' class='colors'> +chartreuse2</div> +<div id='d285' class='colors'> +chartreuse3</div> +<div id='d286' class='colors'> +chartreuse4</div> +<div id='d287' class='colors'> +GreenYellow</div> +<div id='d288' class='colors'> +DarkOliveGreen3</div> +<div id='d289' class='colors'> +DarkOliveGreen1</div> +<div id='d290' class='colors'> +DarkOliveGreen2</div> +<div id='d291' class='colors'> +DarkOliveGreen4</div> +<div id='d292' class='colors'> +DarkOliveGreen</div> +<div id='d293' class='colors'> +OliveDrab</div> +<div id='d294' class='colors'> +OliveDrab1</div> +<div id='d295' class='colors'> +OliveDrab2</div> +<div id='d296' class='colors'> +OliveDrab3</div> +<div id='d297' class='colors'> +YellowGreen</div> +<div id='d298' class='colors'> +OliveDrab4</div> +<div id='d299' class='colors'> +ivory</div> +<div id='d300' class='colors'> +ivory1</div> +<div id='d301' class='colors'> +LightYellow</div> +<div id='d302' class='colors'> +LightYellow1</div> +<div id='d303' class='colors'> +beige</div> +<div id='d304' class='colors'> +ivory2</div> +<div id='d305' class='colors'> +LightGoldenrodYellow</div> +<div id='d306' class='colors'> +LightYellow2</div> +<div id='d307' class='colors'> +ivory3</div> +<div id='d308' class='colors'> +LightYellow3</div> +<div id='d309' class='colors'> +ivory4</div> +<div id='d310' class='colors'> +LightYellow4</div> +<div id='d311' class='colors'> +yellow</div> +<div id='d312' class='colors'> +yellow1</div> +<div id='d313' class='colors'> +yellow2</div> +<div id='d314' class='colors'> +yellow3</div> +<div id='d315' class='colors'> +yellow4</div> +<div id='d316' class='colors'> +olive</div> +<div id='d317' class='colors'> +DarkKhaki</div> +<div id='d318' class='colors'> +khaki2</div> +<div id='d319' class='colors'> +LemonChiffon4</div> +<div id='d320' class='colors'> +khaki1</div> +<div id='d321' class='colors'> +khaki3</div> +<div id='d322' class='colors'> +khaki4</div> +<div id='d323' class='colors'> +PaleGoldenrod</div> +<div id='d324' class='colors'> +LemonChiffon</div> +<div id='d325' class='colors'> +LemonChiffon1</div> +<div id='d326' class='colors'> +khaki</div> +<div id='d327' class='colors'> +LemonChiffon3</div> +<div id='d328' class='colors'> +LemonChiffon2</div> +<div id='d329' class='colors'> +MediumGoldenRod</div> +<div id='d330' class='colors'> +cornsilk4</div> +<div id='d331' class='colors'> +gold</div> +<div id='d332' class='colors'> +gold1</div> +<div id='d333' class='colors'> +gold2</div> +<div id='d334' class='colors'> +gold3</div> +<div id='d335' class='colors'> +gold4</div> +<div id='d336' class='colors'> +LightGoldenrod</div> +<div id='d337' class='colors'> +LightGoldenrod4</div> +<div id='d338' class='colors'> +LightGoldenrod1</div> +<div id='d339' class='colors'> +LightGoldenrod3</div> +<div id='d340' class='colors'> +LightGoldenrod2</div> +<div id='d341' class='colors'> +cornsilk3</div> +<div id='d342' class='colors'> +cornsilk2</div> +<div id='d343' class='colors'> +cornsilk</div> +<div id='d344' class='colors'> +cornsilk1</div> +<div id='d345' class='colors'> +goldenrod</div> +<div id='d346' class='colors'> +goldenrod1</div> +<div id='d347' class='colors'> +goldenrod2</div> +<div id='d348' class='colors'> +goldenrod3</div> +<div id='d349' class='colors'> +goldenrod4</div> +<div id='d350' class='colors'> +DarkGoldenrod</div> +<div id='d351' class='colors'> +DarkGoldenrod1</div> +<div id='d352' class='colors'> +DarkGoldenrod2</div> +<div id='d353' class='colors'> +DarkGoldenrod3</div> +<div id='d354' class='colors'> +DarkGoldenrod4</div> +<div id='d355' class='colors'> +FloralWhite</div> +<div id='d356' class='colors'> +wheat2</div> +<div id='d357' class='colors'> +OldLace</div> +<div id='d358' class='colors'> +wheat</div> +<div id='d359' class='colors'> +wheat1</div> +<div id='d360' class='colors'> +wheat3</div> +<div id='d361' class='colors'> +orange</div> +<div id='d362' class='colors'> +orange1</div> +<div id='d363' class='colors'> +orange2</div> +<div id='d364' class='colors'> +orange3</div> +<div id='d365' class='colors'> +orange4</div> +<div id='d366' class='colors'> +wheat4</div> +<div id='d367' class='colors'> +moccasin</div> +<div id='d368' class='colors'> +PapayaWhip</div> +<div id='d369' class='colors'> +NavajoWhite3</div> +<div id='d370' class='colors'> +BlanchedAlmond</div> +<div id='d371' class='colors'> +NavajoWhite</div> +<div id='d372' class='colors'> +NavajoWhite1</div> +<div id='d373' class='colors'> +NavajoWhite2</div> +<div id='d374' class='colors'> +NavajoWhite4</div> +<div id='d375' class='colors'> +AntiqueWhite4</div> +<div id='d376' class='colors'> +AntiqueWhite</div> +<div id='d377' class='colors'> +tan</div> +<div id='d378' class='colors'> +bisque4</div> +<div id='d379' class='colors'> +burlywood</div> +<div id='d380' class='colors'> +AntiqueWhite2</div> +<div id='d381' class='colors'> +burlywood1</div> +<div id='d382' class='colors'> +burlywood3</div> +<div id='d383' class='colors'> +burlywood2</div> +<div id='d384' class='colors'> +AntiqueWhite1</div> +<div id='d385' class='colors'> +burlywood4</div> +<div id='d386' class='colors'> +AntiqueWhite3</div> +<div id='d387' class='colors'> +DarkOrange</div> +<div id='d388' class='colors'> +bisque2</div> +<div id='d389' class='colors'> +bisque</div> +<div id='d390' class='colors'> +bisque1</div> +<div id='d391' class='colors'> +bisque3</div> +<div id='d392' class='colors'> +DarkOrange1</div> +<div id='d393' class='colors'> +linen</div> +<div id='d394' class='colors'> +DarkOrange2</div> +<div id='d395' class='colors'> +DarkOrange3</div> +<div id='d396' class='colors'> +DarkOrange4</div> +<div id='d397' class='colors'> +peru</div> +<div id='d398' class='colors'> +tan1</div> +<div id='d399' class='colors'> +tan2</div> +<div id='d400' class='colors'> +tan3</div> +<div id='d401' class='colors'> +tan4</div> +<div id='d402' class='colors'> +PeachPuff</div> +<div id='d403' class='colors'> +PeachPuff1</div> +<div id='d404' class='colors'> +PeachPuff4</div> +<div id='d405' class='colors'> +PeachPuff2</div> +<div id='d406' class='colors'> +PeachPuff3</div> +<div id='d407' class='colors'> +SandyBrown</div> +<div id='d408' class='colors'> +seashell4</div> +<div id='d409' class='colors'> +seashell2</div> +<div id='d410' class='colors'> +seashell3</div> +<div id='d411' class='colors'> +chocolate</div> +<div id='d412' class='colors'> +chocolate1</div> +<div id='d413' class='colors'> +chocolate2</div> +<div id='d414' class='colors'> +chocolate3</div> +<div id='d415' class='colors'> +chocolate4</div> +<div id='d416' class='colors'> +SaddleBrown</div> +<div id='d417' class='colors'> +seashell</div> +<div id='d418' class='colors'> +seashell1</div> +<div id='d419' class='colors'> +sienna4</div> +<div id='d420' class='colors'> +sienna</div> +<div id='d421' class='colors'> +sienna1</div> +<div id='d422' class='colors'> +sienna2</div> +<div id='d423' class='colors'> +sienna3</div> +<div id='d424' class='colors'> +LightSalmon3</div> +<div id='d425' class='colors'> +LightSalmon</div> +<div id='d426' class='colors'> +LightSalmon1</div> +<div id='d427' class='colors'> +LightSalmon4</div> +<div id='d428' class='colors'> +LightSalmon2</div> +<div id='d429' class='colors'> +coral</div> +<div id='d430' class='colors'> +OrangeRed</div> +<div id='d431' class='colors'> +OrangeRed1</div> +<div id='d432' class='colors'> +OrangeRed2</div> +<div id='d433' class='colors'> +OrangeRed3</div> +<div id='d434' class='colors'> +OrangeRed4</div> +<div id='d435' class='colors'> +DarkSalmon</div> +<div id='d436' class='colors'> +salmon1</div> +<div id='d437' class='colors'> +salmon2</div> +<div id='d438' class='colors'> +salmon3</div> +<div id='d439' class='colors'> +salmon4</div> +<div id='d440' class='colors'> +coral1</div> +<div id='d441' class='colors'> +coral2</div> +<div id='d442' class='colors'> +coral3</div> +<div id='d443' class='colors'> +coral4</div> +<div id='d444' class='colors'> +tomato4</div> +<div id='d445' class='colors'> +tomato</div> +<div id='d446' class='colors'> +tomato1</div> +<div id='d447' class='colors'> +tomato2</div> +<div id='d448' class='colors'> +tomato3</div> +<div id='d449' class='colors'> +MistyRose4</div> +<div id='d450' class='colors'> +MistyRose2</div> +<div id='d451' class='colors'> +MistyRose</div> +<div id='d452' class='colors'> +MistyRose1</div> +<div id='d453' class='colors'> +salmon</div> +<div id='d454' class='colors'> +MistyRose3</div> +<div id='d455' class='colors'> +white</div> +<div id='d456' class='colors'> +gray100</div> +<div id='d457' class='colors'> +grey100</div> +<div id='d458' class='colors'> +grey100</div> +<div id='d459' class='colors'> +gray99</div> +<div id='d460' class='colors'> +grey99</div> +<div id='d461' class='colors'> +gray98</div> +<div id='d462' class='colors'> +grey98</div> +<div id='d463' class='colors'> +gray97</div> +<div id='d464' class='colors'> +grey97</div> +<div id='d465' class='colors'> +gray96</div> +<div id='d466' class='colors'> +grey96</div> +<div id='d467' class='colors'> +WhiteSmoke</div> +<div id='d468' class='colors'> +gray95</div> +<div id='d469' class='colors'> +grey95</div> +<div id='d470' class='colors'> +gray94</div> +<div id='d471' class='colors'> +grey94</div> +<div id='d472' class='colors'> +gray93</div> +<div id='d473' class='colors'> +grey93</div> +<div id='d474' class='colors'> +gray92</div> +<div id='d475' class='colors'> +grey92</div> +<div id='d476' class='colors'> +gray91</div> +<div id='d477' class='colors'> +grey91</div> +<div id='d478' class='colors'> +gray90</div> +<div id='d479' class='colors'> +grey90</div> +<div id='d480' class='colors'> +gray89</div> +<div id='d481' class='colors'> +grey89</div> +<div id='d482' class='colors'> +gray88</div> +<div id='d483' class='colors'> +grey88</div> +<div id='d484' class='colors'> +gray87</div> +<div id='d485' class='colors'> +grey87</div> +<div id='d486' class='colors'> +gainsboro</div> +<div id='d487' class='colors'> +gray86</div> +<div id='d488' class='colors'> +grey86</div> +<div id='d489' class='colors'> +gray85</div> +<div id='d490' class='colors'> +grey85</div> +<div id='d491' class='colors'> +gray84</div> +<div id='d492' class='colors'> +grey84</div> +<div id='d493' class='colors'> +gray83</div> +<div id='d494' class='colors'> +grey83</div> +<div id='d495' class='colors'> +LightGray</div> +<div id='d496' class='colors'> +LightGrey</div> +<div id='d497' class='colors'> +gray82</div> +<div id='d498' class='colors'> +grey82</div> +<div id='d499' class='colors'> +gray81</div> +<div id='d500' class='colors'> +grey81</div> +<div id='d501' class='colors'> +gray80</div> +<div id='d502' class='colors'> +grey80</div> +<div id='d503' class='colors'> +gray79</div> +<div id='d504' class='colors'> +grey79</div> +<div id='d505' class='colors'> +gray78</div> +<div id='d506' class='colors'> +grey78</div> +<div id='d507' class='colors'> +gray77</div> +<div id='d508' class='colors'> +grey77</div> +<div id='d509' class='colors'> +gray76</div> +<div id='d510' class='colors'> +grey76</div> +<div id='d511' class='colors'> +silver</div> +<div id='d512' class='colors'> +gray75</div> +<div id='d513' class='colors'> +grey75</div> +<div id='d514' class='colors'> +gray74</div> +<div id='d515' class='colors'> +grey74</div> +<div id='d516' class='colors'> +gray73</div> +<div id='d517' class='colors'> +grey73</div> +<div id='d518' class='colors'> +gray72</div> +<div id='d519' class='colors'> +grey72</div> +<div id='d520' class='colors'> +gray71</div> +<div id='d521' class='colors'> +grey71</div> +<div id='d522' class='colors'> +gray70</div> +<div id='d523' class='colors'> +grey70</div> +<div id='d524' class='colors'> +gray69</div> +<div id='d525' class='colors'> +grey69</div> +<div id='d526' class='colors'> +gray68</div> +<div id='d527' class='colors'> +grey68</div> +<div id='d528' class='colors'> +gray67</div> +<div id='d529' class='colors'> +grey67</div> +<div id='d530' class='colors'> +DarkGray</div> +<div id='d531' class='colors'> +DarkGrey</div> +<div id='d532' class='colors'> +gray66</div> +<div id='d533' class='colors'> +grey66</div> +<div id='d534' class='colors'> +gray65</div> +<div id='d535' class='colors'> +grey65</div> +<div id='d536' class='colors'> +gray64</div> +<div id='d537' class='colors'> +grey64</div> +<div id='d538' class='colors'> +gray63</div> +<div id='d539' class='colors'> +grey63</div> +<div id='d540' class='colors'> +gray62</div> +<div id='d541' class='colors'> +grey62</div> +<div id='d542' class='colors'> +gray61</div> +<div id='d543' class='colors'> +grey61</div> +<div id='d544' class='colors'> +gray60</div> +<div id='d545' class='colors'> +grey60</div> +<div id='d546' class='colors'> +gray59</div> +<div id='d547' class='colors'> +grey59</div> +<div id='d548' class='colors'> +gray58</div> +<div id='d549' class='colors'> +grey58</div> +<div id='d550' class='colors'> +gray57</div> +<div id='d551' class='colors'> +grey57</div> +<div id='d552' class='colors'> +gray56</div> +<div id='d553' class='colors'> +grey56</div> +<div id='d554' class='colors'> +gray55</div> +<div id='d555' class='colors'> +grey55</div> +<div id='d556' class='colors'> +gray54</div> +<div id='d557' class='colors'> +grey54</div> +<div id='d558' class='colors'> +gray53</div> +<div id='d559' class='colors'> +grey53</div> +<div id='d560' class='colors'> +gray52</div> +<div id='d561' class='colors'> +grey52</div> +<div id='d562' class='colors'> +gray51</div> +<div id='d563' class='colors'> +grey51</div> +<div id='d564' class='colors'> +fractal</div> +<div id='d565' class='colors'> +gray50</div> +<div id='d566' class='colors'> +grey50</div> +<div id='d567' class='colors'> +gray</div> +<div id='d568' class='colors'> +gray49</div> +<div id='d569' class='colors'> +grey49</div> +<div id='d570' class='colors'> +gray48</div> +<div id='d571' class='colors'> +grey48</div> +<div id='d572' class='colors'> +gray47</div> +<div id='d573' class='colors'> +grey47</div> +<div id='d574' class='colors'> +gray46</div> +<div id='d575' class='colors'> +grey46</div> +<div id='d576' class='colors'> +gray45</div> +<div id='d577' class='colors'> +grey45</div> +<div id='d578' class='colors'> +gray44</div> +<div id='d579' class='colors'> +grey44</div> +<div id='d580' class='colors'> +gray43</div> +<div id='d581' class='colors'> +grey43</div> +<div id='d582' class='colors'> +gray42</div> +<div id='d583' class='colors'> +grey42</div> +<div id='d584' class='colors'> +DimGray</div> +<div id='d585' class='colors'> +DimGrey</div> +<div id='d586' class='colors'> +gray41</div> +<div id='d587' class='colors'> +grey41</div> +<div id='d588' class='colors'> +gray40</div> +<div id='d589' class='colors'> +grey40</div> +<div id='d590' class='colors'> +gray39</div> +<div id='d591' class='colors'> +grey39</div> +<div id='d592' class='colors'> +gray38</div> +<div id='d593' class='colors'> +grey38</div> +<div id='d594' class='colors'> +gray37</div> +<div id='d595' class='colors'> +grey37</div> +<div id='d596' class='colors'> +gray36</div> +<div id='d597' class='colors'> +grey36</div> +<div id='d598' class='colors'> +gray35</div> +<div id='d599' class='colors'> +grey35</div> +<div id='d600' class='colors'> +gray34</div> +<div id='d601' class='colors'> +grey34</div> +<div id='d602' class='colors'> +gray33</div> +<div id='d603' class='colors'> +grey33</div> +<div id='d604' class='colors'> +gray32</div> +<div id='d605' class='colors'> +grey32</div> +<div id='d606' class='colors'> +gray31</div> +<div id='d607' class='colors'> +grey31</div> +<div id='d608' class='colors'> +gray30</div> +<div id='d609' class='colors'> +grey30</div> +<div id='d610' class='colors'> +gray29</div> +<div id='d611' class='colors'> +grey29</div> +<div id='d612' class='colors'> +gray28</div> +<div id='d613' class='colors'> +grey28</div> +<div id='d614' class='colors'> +gray27</div> +<div id='d615' class='colors'> +grey27</div> +<div id='d616' class='colors'> +gray26</div> +<div id='d617' class='colors'> +grey26</div> +<div id='d618' class='colors'> +gray25</div> +<div id='d619' class='colors'> +grey25</div> +<div id='d620' class='colors'> +gray24</div> +<div id='d621' class='colors'> +grey24</div> +<div id='d622' class='colors'> +gray23</div> +<div id='d623' class='colors'> +grey23</div> +<div id='d624' class='colors'> +gray22</div> +<div id='d625' class='colors'> +grey22</div> +<div id='d626' class='colors'> +gray21</div> +<div id='d627' class='colors'> +grey21</div> +<div id='d628' class='colors'> +gray20</div> +<div id='d629' class='colors'> +grey20</div> +<div id='d630' class='colors'> +gray19</div> +<div id='d631' class='colors'> +grey19</div> +<div id='d632' class='colors'> +gray18</div> +<div id='d633' class='colors'> +grey18</div> +<div id='d634' class='colors'> +gray17</div> +<div id='d635' class='colors'> +grey17</div> +<div id='d636' class='colors'> +gray16</div> +<div id='d637' class='colors'> +grey16</div> +<div id='d638' class='colors'> +gray15</div> +<div id='d639' class='colors'> +grey15</div> +<div id='d640' class='colors'> +gray14</div> +<div id='d641' class='colors'> +grey14</div> +<div id='d642' class='colors'> +gray13</div> +<div id='d643' class='colors'> +grey13</div> +<div id='d644' class='colors'> +gray12</div> +<div id='d645' class='colors'> +grey12</div> +<div id='d646' class='colors'> +gray11</div> +<div id='d647' class='colors'> +grey11</div> +<div id='d648' class='colors'> +gray10</div> +<div id='d649' class='colors'> +grey10</div> +<div id='d650' class='colors'> +gray9</div> +<div id='d651' class='colors'> +grey9</div> +<div id='d652' class='colors'> +gray8</div> +<div id='d653' class='colors'> +grey8</div> +<div id='d654' class='colors'> +gray7</div> +<div id='d655' class='colors'> +grey7</div> +<div id='d656' class='colors'> +gray6</div> +<div id='d657' class='colors'> +grey6</div> +<div id='d658' class='colors'> +gray5</div> +<div id='d659' class='colors'> +grey5</div> +<div id='d660' class='colors'> +gray4</div> +<div id='d661' class='colors'> +grey4</div> +<div id='d662' class='colors'> +gray3</div> +<div id='d663' class='colors'> +grey3</div> +<div id='d664' class='colors'> +gray2</div> +<div id='d665' class='colors'> +grey2</div> +<div id='d666' class='colors'> +gray1</div> +<div id='d667' class='colors'> +grey1</div> +<div id='d668' class='colors'> +black</div> +<div id='d669' class='colors'> +gray0</div> +<div id='d670' class='colors'> +grey0</div> +<div id='d671' class='colors'> +opaque</div> +<div id='d672' class='colors'> +none</div> +<div id='d673' class='colors'> +transparent</div> +</div> + +<div id='colornames'> +WHERE THE COLORNAMES WILL GO +</div> + +<div id='hexswitch'>CLICK TO SHOW HEXES</div> +<div id='infoswitch'>CLICK TO SHOW INFO</div> +<script type='text/javascript' src='jquery-1.6.4.min.js'></script><script type='text/javascript' src='colordict.js'></script> +<script type='text/javascript'> +$('.colors').html("") +$('body').css('background-color','white') + +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newwidth = goldenize(result) + widthval = newwidth.toString()+'px' + $(idandselectr).css('width', widthval) + } +makegolden('.colors', 'height') + + +//remove content this function takes the name out of the divs +infoswitch = false; +function removecontent() + { + if(infoswitch == false) + { + $('#infoswitch').click(function() + { + infoswitch = true + if(infoswitch == true){ + $('.colors').html("") + } + }) + } + if(infoswitch == true) + { + $('#infoswitch').click(function() + { + infoswitch = false + }) + } + } +removecontent() + +function colorToHex(color) +{ + if (color.substr(0, 1) === '#') { + return color; + } + var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); + + var red = parseInt(digits[2]); + var green = parseInt(digits[3]); + var blue = parseInt(digits[4]); + + var rgb = blue | (green << 8) | (red << 16); + return digits[1] + '#' + rgb.toString(16); +}; + +//takes a div name and returns a colorname + +function showcolorname(divstr) + + { + bgcolor = $('#'+divstr).css('background-color') + lowercasehex = colorToHex(bgcolor) + hex = lowercasehex.toUpperCase() + imname = hextoname[hex] + if (hexes == true) + { + imname = hex + } + return imname + } +function bigname(divstr) + { + colorname = showcolorname(divstr) + $('#colornames').html(colorname) + } +function writeit(text) + { + $('#colornames').append(text) + } +function makebig(divstr) + { + firstheight = $('#'+divstr).height() + newheight = goldenize(firstheight) + $('#'+divstr).height(newheight) + } +function makesmall(divstr) + { + oldheight = $('.colors').height() + $('#'+divstr).height(oldheight) + } +$('.colors').hover(function() { + bigname(this.id); + makebig(this.id); + makegolden('#'+this.id, 'height')}, +function(){ + makesmall(this.id); + makegolden('#'+this.id, 'height') +}); +$(".colors").hover(function(){ +$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); +}); +$('body').css('background-color', 'white') +$('.colors').css('margin-top', '2px') +var hexes = false +function hexswitch() + { + if(hexes == false) + { + $('#hexswitch').html('CLICK TO SHOW COLOR NAMES') + hexes = true; + } + + else + { + $('#hexswitch').html('CLICK TO SHOW HEX NAMES') + hexes = false; + } + } +$('#hexswitch').click(function(){hexswitch()}) +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/colors/junk/picker.js b/frontend/imgrid/colors/colors/junk/picker.js new file mode 100755 index 0000000..04a49f1 --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/picker.js @@ -0,0 +1,15 @@ +var colorpicker = "<div id='main'>"+"<div id='d0' class='colors'>"+"snow</div>"+"<div id='d1' class='colors'>"+"snow1</div>"+"<div id='d2' class='colors'>"+"snow2</div>"+"<div id='d3' class='colors'>"+"RosyBrown1</div>"+"<div id='d4' class='colors'>"+"RosyBrown2</div>"+"<div id='d5' class='colors'>"+"snow3</div>"+"<div id='d6' class='colors'>"+"LightCoral</div>"+"<div id='d7' class='colors'>"+"IndianRed1</div>"+"<div id='d8' class='colors'>"+"RosyBrown3</div>"+"<div id='d9' class='colors'>"+"IndianRed2</div>"+"<div id='d10' class='colors'>"+"RosyBrown</div>"+"<div id='d11' class='colors'>"+"brown1</div>"+"<div id='d12' class='colors'>"+"firebrick1</div>"+"<div id='d13' class='colors'>"+"brown2</div>"+"<div id='d14' class='colors'>"+"IndianRed</div>"+"<div id='d15' class='colors'>"+"IndianRed3</div>"+"<div id='d16' class='colors'>"+"firebrick2</div>"+"<div id='d17' class='colors'>"+"snow4</div>"+"<div id='d18' class='colors'>"+"brown3</div>"+"<div id='d19' class='colors'>"+"red</div>"+"<div id='d20' class='colors'>"+"red1</div>"+"<div id='d21' class='colors'>"+"RosyBrown4</div>"+"<div id='d22' class='colors'>"+"firebrick3</div>"+"<div id='d23' class='colors'>"+"red2</div>"+"<div id='d24' class='colors'>"+"firebrick</div>"+"<div id='d25' class='colors'>"+"brown</div>"+"<div id='d26' class='colors'>"+"red3</div>"+"<div id='d27' class='colors'>"+"IndianRed4</div>"+"<div id='d28' class='colors'>"+"brown4</div>"+"<div id='d29' class='colors'>"+"firebrick4</div>"+"<div id='d30' class='colors'>"+"DarkRed</div>"+"<div id='d31' class='colors'>"+"red4</div>"+"<div id='d32' class='colors'>"+"maroon</div>"+"<div id='d33' class='colors'>"+"LightPink1</div>"+"<div id='d34' class='colors'>"+"LightPink3</div>"+"<div id='d35' class='colors'>"+"LightPink4</div>"+"<div id='d36' class='colors'>"+"LightPink2</div>"+"<div id='d37' class='colors'>"+"LightPink</div>"+"<div id='d38' class='colors'>"+"pink</div>"+"<div id='d39' class='colors'>"+"crimson</div>"+"<div id='d40' class='colors'>"+"pink1</div>"+"<div id='d41' class='colors'>"+"pink2</div>"+"<div id='d42' class='colors'>"+"pink3</div>"+"<div id='d43' class='colors'>"+"pink4</div>"+"<div id='d44' class='colors'>"+"PaleVioletRed4</div>"+"<div id='d45' class='colors'>"+"PaleVioletRed</div>"+"<div id='d46' class='colors'>"+"PaleVioletRed2</div>"+"<div id='d47' class='colors'>"+"PaleVioletRed1</div>"+"<div id='d48' class='colors'>"+"PaleVioletRed3</div>"+"<div id='d49' class='colors'>"+"LavenderBlush</div>"+"<div id='d50' class='colors'>"+"LavenderBlush1</div>"+"<div id='d51' class='colors'>"+"LavenderBlush3</div>"+"<div id='d52' class='colors'>"+"LavenderBlush2</div>"+"<div id='d53' class='colors'>"+"LavenderBlush4</div>"+"<div id='d54' class='colors'>"+"maroon</div>"+"<div id='d55' class='colors'>"+"HotPink3</div>"+"<div id='d56' class='colors'>"+"VioletRed3</div>"+"<div id='d57' class='colors'>"+"VioletRed1</div>"+"<div id='d58' class='colors'>"+"VioletRed2</div>"+"<div id='d59' class='colors'>"+"VioletRed4</div>"+"<div id='d60' class='colors'>"+"HotPink2</div>"+"<div id='d61' class='colors'>"+"HotPink1</div>"+"<div id='d62' class='colors'>"+"HotPink4</div>"+"<div id='d63' class='colors'>"+"HotPink</div>"+"<div id='d64' class='colors'>"+"DeepPink</div>"+"<div id='d65' class='colors'>"+"DeepPink1</div>"+"<div id='d66' class='colors'>"+"DeepPink2</div>"+"<div id='d67' class='colors'>"+"DeepPink3</div>"+"<div id='d68' class='colors'>"+"DeepPink4</div>"+"<div id='d69' class='colors'>"+"maroon1</div>"+"<div id='d70' class='colors'>"+"maroon2</div>"+"<div id='d71' class='colors'>"+"maroon3</div>"+"<div id='d72' class='colors'>"+"maroon4</div>"+"<div id='d73' class='colors'>"+"MediumVioletRed</div>"+"<div id='d74' class='colors'>"+"VioletRed</div>"+"<div id='d75' class='colors'>"+"orchid2</div>"+"<div id='d76' class='colors'>"+"orchid</div>"+"<div id='d77' class='colors'>"+"orchid1</div>"+"<div id='d78' class='colors'>"+"orchid3</div>"+"<div id='d79' class='colors'>"+"orchid4</div>"+"<div id='d80' class='colors'>"+"thistle1</div>"+"<div id='d81' class='colors'>"+"thistle2</div>"+"<div id='d82' class='colors'>"+"plum1</div>"+"<div id='d83' class='colors'>"+"plum2</div>"+"<div id='d84' class='colors'>"+"thistle</div>"+"<div id='d85' class='colors'>"+"thistle3</div>"+"<div id='d86' class='colors'>"+"plum</div>"+"<div id='d87' class='colors'>"+"violet</div>"+"<div id='d88' class='colors'>"+"plum3</div>"+"<div id='d89' class='colors'>"+"thistle4</div>"+"<div id='d90' class='colors'>"+"fuchsia</div>"+"<div id='d91' class='colors'>"+"magenta</div>"+"<div id='d92' class='colors'>"+"magenta1</div>"+"<div id='d93' class='colors'>"+"plum4</div>"+"<div id='d94' class='colors'>"+"magenta2</div>"+"<div id='d95' class='colors'>"+"magenta3</div>"+"<div id='d96' class='colors'>"+"DarkMagenta</div>"+"<div id='d97' class='colors'>"+"magenta4</div>"+"<div id='d98' class='colors'>"+"purple</div>"+"<div id='d99' class='colors'>"+"MediumOrchid</div>"+"<div id='d100' class='colors'>"+"MediumOrchid1</div>"+"<div id='d101' class='colors'>"+"MediumOrchid2</div>"+"<div id='d102' class='colors'>"+"MediumOrchid3</div>"+"<div id='d103' class='colors'>"+"MediumOrchid4</div>"+"<div id='d104' class='colors'>"+"DarkViolet</div>"+"<div id='d105' class='colors'>"+"DarkOrchid</div>"+"<div id='d106' class='colors'>"+"DarkOrchid1</div>"+"<div id='d107' class='colors'>"+"DarkOrchid3</div>"+"<div id='d108' class='colors'>"+"DarkOrchid2</div>"+"<div id='d109' class='colors'>"+"DarkOrchid4</div>"+"<div id='d110' class='colors'>"+"purple</div>"+"<div id='d111' class='colors'>"+"indigo</div>"+"<div id='d112' class='colors'>"+"BlueViolet</div>"+"<div id='d113' class='colors'>"+"purple2</div>"+"<div id='d114' class='colors'>"+"purple3</div>"+"<div id='d115' class='colors'>"+"purple4</div>"+"<div id='d116' class='colors'>"+"purple1</div>"+"<div id='d117' class='colors'>"+"MediumPurple</div>"+"<div id='d118' class='colors'>"+"MediumPurple1</div>"+"<div id='d119' class='colors'>"+"MediumPurple2</div>"+"<div id='d120' class='colors'>"+"MediumPurple3</div>"+"<div id='d121' class='colors'>"+"MediumPurple4</div>"+"<div id='d122' class='colors'>"+"DarkSlateBlue</div>"+"<div id='d123' class='colors'>"+"LightSlateBlue</div>"+"<div id='d124' class='colors'>"+"MediumSlateBlue</div>"+"<div id='d125' class='colors'>"+"SlateBlue</div>"+"<div id='d126' class='colors'>"+"SlateBlue1</div>"+"<div id='d127' class='colors'>"+"SlateBlue2</div>"+"<div id='d128' class='colors'>"+"SlateBlue3</div>"+"<div id='d129' class='colors'>"+"SlateBlue4</div>"+"<div id='d130' class='colors'>"+"GhostWhite</div>"+"<div id='d131' class='colors'>"+"lavender</div>"+"<div id='d132' class='colors'>"+"blue</div>"+"<div id='d133' class='colors'>"+"blue1</div>"+"<div id='d134' class='colors'>"+"blue2</div>"+"<div id='d135' class='colors'>"+"blue3</div>"+"<div id='d136' class='colors'>"+"MediumBlue</div>"+"<div id='d137' class='colors'>"+"blue4</div>"+"<div id='d138' class='colors'>"+"DarkBlue</div>"+"<div id='d139' class='colors'>"+"MidnightBlue</div>"+"<div id='d140' class='colors'>"+"navy</div>"+"<div id='d141' class='colors'>"+"NavyBlue</div>"+"<div id='d142' class='colors'>"+"RoyalBlue</div>"+"<div id='d143' class='colors'>"+"RoyalBlue1</div>"+"<div id='d144' class='colors'>"+"RoyalBlue2</div>"+"<div id='d145' class='colors'>"+"RoyalBlue3</div>"+"<div id='d146' class='colors'>"+"RoyalBlue4</div>"+"<div id='d147' class='colors'>"+"CornflowerBlue</div>"+"<div id='d148' class='colors'>"+"LightSteelBlue</div>"+"<div id='d149' class='colors'>"+"LightSteelBlue1</div>"+"<div id='d150' class='colors'>"+"LightSteelBlue2</div>"+"<div id='d151' class='colors'>"+"LightSteelBlue3</div>"+"<div id='d152' class='colors'>"+"LightSteelBlue4</div>"+"<div id='d153' class='colors'>"+"SlateGray4</div>"+"<div id='d154' class='colors'>"+"SlateGray1</div>"+"<div id='d155' class='colors'>"+"SlateGray2</div>"+"<div id='d156' class='colors'>"+"SlateGray3</div>"+"<div id='d157' class='colors'>"+"LightSlateGray</div>"+"<div id='d158' class='colors'>"+"LightSlateGrey</div>"+"<div id='d159' class='colors'>"+"SlateGray</div>"+"<div id='d160' class='colors'>"+"SlateGrey</div>"+"<div id='d161' class='colors'>"+"DodgerBlue</div>"+"<div id='d162' class='colors'>"+"DodgerBlue1</div>"+"<div id='d163' class='colors'>"+"DodgerBlue2</div>"+"<div id='d164' class='colors'>"+"DodgerBlue4</div>"+"<div id='d165' class='colors'>"+"DodgerBlue3</div>"+"<div id='d166' class='colors'>"+"AliceBlue</div>"+"<div id='d167' class='colors'>"+"SteelBlue4</div>"+"<div id='d168' class='colors'>"+"SteelBlue</div>"+"<div id='d169' class='colors'>"+"SteelBlue1</div>"+"<div id='d170' class='colors'>"+"SteelBlue2</div>"+"<div id='d171' class='colors'>"+"SteelBlue3</div>"+"<div id='d172' class='colors'>"+"SkyBlue4</div>"+"<div id='d173' class='colors'>"+"SkyBlue1</div>"+"<div id='d174' class='colors'>"+"SkyBlue2</div>"+"<div id='d175' class='colors'>"+"SkyBlue3</div>"+"<div id='d176' class='colors'>"+"LightSkyBlue</div>"+"<div id='d177' class='colors'>"+"LightSkyBlue4</div>"+"<div id='d178' class='colors'>"+"LightSkyBlue1</div>"+"<div id='d179' class='colors'>"+"LightSkyBlue2</div>"+"<div id='d180' class='colors'>"+"LightSkyBlue3</div>"+"<div id='d181' class='colors'>"+"SkyBlue</div>"+"<div id='d182' class='colors'>"+"LightBlue3</div>"+"<div id='d183' class='colors'>"+"DeepSkyBlue</div>"+"<div id='d184' class='colors'>"+"DeepSkyBlue1</div>"+"<div id='d185' class='colors'>"+"DeepSkyBlue2</div>"+"<div id='d186' class='colors'>"+"DeepSkyBlue4</div>"+"<div id='d187' class='colors'>"+"DeepSkyBlue3</div>"+"<div id='d188' class='colors'>"+"LightBlue1</div>"+"<div id='d189' class='colors'>"+"LightBlue2</div>"+"<div id='d190' class='colors'>"+"LightBlue</div>"+"<div id='d191' class='colors'>"+"LightBlue4</div>"+"<div id='d192' class='colors'>"+"PowderBlue</div>"+"<div id='d193' class='colors'>"+"CadetBlue1</div>"+"<div id='d194' class='colors'>"+"CadetBlue2</div>"+"<div id='d195' class='colors'>"+"CadetBlue3</div>"+"<div id='d196' class='colors'>"+"CadetBlue4</div>"+"<div id='d197' class='colors'>"+"turquoise1</div>"+"<div id='d198' class='colors'>"+"turquoise2</div>"+"<div id='d199' class='colors'>"+"turquoise3</div>"+"<div id='d200' class='colors'>"+"turquoise4</div>"+"<div id='d201' class='colors'>"+"cadet blue</div>"+"<div id='d202' class='colors'>"+"CadetBlue</div>"+"<div id='d203' class='colors'>"+"DarkTurquoise</div>"+"<div id='d204' class='colors'>"+"azure</div>"+"<div id='d205' class='colors'>"+"azure1</div>"+"<div id='d206' class='colors'>"+"LightCyan</div>"+"<div id='d207' class='colors'>"+"LightCyan1</div>"+"<div id='d208' class='colors'>"+"azure2</div>"+"<div id='d209' class='colors'>"+"LightCyan2</div>"+"<div id='d210' class='colors'>"+"PaleTurquoise1</div>"+"<div id='d211' class='colors'>"+"PaleTurquoise</div>"+"<div id='d212' class='colors'>"+"PaleTurquoise2</div>"+"<div id='d213' class='colors'>"+"DarkSlateGray1</div>"+"<div id='d214' class='colors'>"+"azure3</div>"+"<div id='d215' class='colors'>"+"LightCyan3</div>"+"<div id='d216' class='colors'>"+"DarkSlateGray2</div>"+"<div id='d217' class='colors'>"+"PaleTurquoise3</div>"+"<div id='d218' class='colors'>"+"DarkSlateGray3</div>"+"<div id='d219' class='colors'>"+"azure4</div>"+"<div id='d220' class='colors'>"+"LightCyan4</div>"+"<div id='d221' class='colors'>"+"aqua</div>"+"<div id='d222' class='colors'>"+"cyan</div>"+"<div id='d223' class='colors'>"+"cyan1</div>"+"<div id='d224' class='colors'>"+"PaleTurquoise4</div>"+"<div id='d225' class='colors'>"+"cyan2</div>"+"<div id='d226' class='colors'>"+"DarkSlateGray4</div>"+"<div id='d227' class='colors'>"+"cyan3</div>"+"<div id='d228' class='colors'>"+"cyan4</div>"+"<div id='d229' class='colors'>"+"DarkCyan</div>"+"<div id='d230' class='colors'>"+"teal</div>"+"<div id='d231' class='colors'>"+"DarkSlateGray</div>"+"<div id='d232' class='colors'>"+"DarkSlateGrey</div>"+"<div id='d233' class='colors'>"+"MediumTurquoise</div>"+"<div id='d234' class='colors'>"+"LightSeaGreen</div>"+"<div id='d235' class='colors'>"+"turquoise</div>"+"<div id='d236' class='colors'>"+"aquamarine4</div>"+"<div id='d237' class='colors'>"+"aquamarine</div>"+"<div id='d238' class='colors'>"+"aquamarine1</div>"+"<div id='d239' class='colors'>"+"aquamarine2</div>"+"<div id='d240' class='colors'>"+"aquamarine3</div>"+"<div id='d241' class='colors'>"+"MediumAquamarine</div>"+"<div id='d242' class='colors'>"+"MediumSpringGreen</div>"+"<div id='d243' class='colors'>"+"MintCream</div>"+"<div id='d244' class='colors'>"+"SpringGreen</div>"+"<div id='d245' class='colors'>"+"SpringGreen1</div>"+"<div id='d246' class='colors'>"+"SpringGreen2</div>"+"<div id='d247' class='colors'>"+"SpringGreen3</div>"+"<div id='d248' class='colors'>"+"SpringGreen4</div>"+"<div id='d249' class='colors'>"+"MediumSeaGreen</div>"+"<div id='d250' class='colors'>"+"SeaGreen</div>"+"<div id='d251' class='colors'>"+"SeaGreen3</div>"+"<div id='d252' class='colors'>"+"SeaGreen1</div>"+"<div id='d253' class='colors'>"+"SeaGreen4</div>"+"<div id='d254' class='colors'>"+"SeaGreen2</div>"+"<div id='d255' class='colors'>"+"MediumForestGreen</div>"+"<div id='d256' class='colors'>"+"honeydew</div>"+"<div id='d257' class='colors'>"+"honeydew1</div>"+"<div id='d258' class='colors'>"+"honeydew2</div>"+"<div id='d259' class='colors'>"+"DarkSeaGreen1</div>"+"<div id='d260' class='colors'>"+"DarkSeaGreen2</div>"+"<div id='d261' class='colors'>"+"PaleGreen1</div>"+"<div id='d262' class='colors'>"+"PaleGreen</div>"+"<div id='d263' class='colors'>"+"honeydew3</div>"+"<div id='d264' class='colors'>"+"LightGreen</div>"+"<div id='d265' class='colors'>"+"PaleGreen2</div>"+"<div id='d266' class='colors'>"+"DarkSeaGreen3</div>"+"<div id='d267' class='colors'>"+"DarkSeaGreen</div>"+"<div id='d268' class='colors'>"+"PaleGreen3</div>"+"<div id='d269' class='colors'>"+"honeydew4</div>"+"<div id='d270' class='colors'>"+"green1</div>"+"<div id='d271' class='colors'>"+"lime</div>"+"<div id='d272' class='colors'>"+"LimeGreen</div>"+"<div id='d273' class='colors'>"+"DarkSeaGreen4</div>"+"<div id='d274' class='colors'>"+"green2</div>"+"<div id='d275' class='colors'>"+"PaleGreen4</div>"+"<div id='d276' class='colors'>"+"green3</div>"+"<div id='d277' class='colors'>"+"ForestGreen</div>"+"<div id='d278' class='colors'>"+"green4</div>"+"<div id='d279' class='colors'>"+"green</div>"+"<div id='d280' class='colors'>"+"DarkGreen</div>"+"<div id='d281' class='colors'>"+"LawnGreen</div>"+"<div id='d282' class='colors'>"+"chartreuse</div>"+"<div id='d283' class='colors'>"+"chartreuse1</div>"+"<div id='d284' class='colors'>"+"chartreuse2</div>"+"<div id='d285' class='colors'>"+"chartreuse3</div>"+"<div id='d286' class='colors'>"+"chartreuse4</div>"+"<div id='d287' class='colors'>"+"GreenYellow</div>"+"<div id='d288' class='colors'>"+"DarkOliveGreen3</div>"+"<div id='d289' class='colors'>"+"DarkOliveGreen1</div>"+"<div id='d290' class='colors'>"+"DarkOliveGreen2</div>"+"<div id='d291' class='colors'>"+"DarkOliveGreen4</div>"+"<div id='d292' class='colors'>"+"DarkOliveGreen</div>"+"<div id='d293' class='colors'>"+"OliveDrab</div>"+"<div id='d294' class='colors'>"+"OliveDrab1</div>"+"<div id='d295' class='colors'>"+"OliveDrab2</div>"+"<div id='d296' class='colors'>"+"OliveDrab3</div>"+"<div id='d297' class='colors'>"+"YellowGreen</div>"+"<div id='d298' class='colors'>"+"OliveDrab4</div>"+"<div id='d299' class='colors'>"+"ivory</div>"+"<div id='d300' class='colors'>"+"ivory1</div>"+"<div id='d301' class='colors'>"+"LightYellow</div>"+"<div id='d302' class='colors'>"+"LightYellow1</div>"+"<div id='d303' class='colors'>"+"beige</div>"+"<div id='d304' class='colors'>"+"ivory2</div>"+"<div id='d305' class='colors'>"+"LightGoldenrodYellow</div>"+"<div id='d306' class='colors'>"+"LightYellow2</div>"+"<div id='d307' class='colors'>"+"ivory3</div>"+"<div id='d308' class='colors'>"+"LightYellow3</div>"+"<div id='d309' class='colors'>"+"ivory4</div>"+"<div id='d310' class='colors'>"+"LightYellow4</div>"+"<div id='d311' class='colors'>"+"yellow</div>"+"<div id='d312' class='colors'>"+"yellow1</div>"+"<div id='d313' class='colors'>"+"yellow2</div>"+"<div id='d314' class='colors'>"+"yellow3</div>"+"<div id='d315' class='colors'>"+"yellow4</div>"+"<div id='d316' class='colors'>"+"olive</div>"+"<div id='d317' class='colors'>"+"DarkKhaki</div>"+"<div id='d318' class='colors'>"+"khaki2</div>"+"<div id='d319' class='colors'>"+"LemonChiffon4</div>"+"<div id='d320' class='colors'>"+"khaki1</div>"+"<div id='d321' class='colors'>"+"khaki3</div>"+"<div id='d322' class='colors'>"+"khaki4</div>"+"<div id='d323' class='colors'>"+"PaleGoldenrod</div>"+"<div id='d324' class='colors'>"+"LemonChiffon</div>"+"<div id='d325' class='colors'>"+"LemonChiffon1</div>"+"<div id='d326' class='colors'>"+"khaki</div>"+"<div id='d327' class='colors'>"+"LemonChiffon3</div>"+"<div id='d328' class='colors'>"+"LemonChiffon2</div>"+"<div id='d329' class='colors'>"+"MediumGoldenRod</div>"+"<div id='d330' class='colors'>"+"cornsilk4</div>"+"<div id='d331' class='colors'>"+"gold</div>"+"<div id='d332' class='colors'>"+"gold1</div>"+"<div id='d333' class='colors'>"+"gold2</div>"+"<div id='d334' class='colors'>"+"gold3</div>"+"<div id='d335' class='colors'>"+"gold4</div>"+"<div id='d336' class='colors'>"+"LightGoldenrod</div>"+"<div id='d337' class='colors'>"+"LightGoldenrod4</div>"+"<div id='d338' class='colors'>"+"LightGoldenrod1</div>"+"<div id='d339' class='colors'>"+"LightGoldenrod3</div>"+"<div id='d340' class='colors'>"+"LightGoldenrod2</div>"+"<div id='d341' class='colors'>"+"cornsilk3</div>"+"<div id='d342' class='colors'>"+"cornsilk2</div>"+"<div id='d343' class='colors'>"+"cornsilk</div>"+"<div id='d344' class='colors'>"+"cornsilk1</div>"+"<div id='d345' class='colors'>"+"goldenrod</div>"+"<div id='d346' class='colors'>"+"goldenrod1</div>"+"<div id='d347' class='colors'>"+"goldenrod2</div>"+"<div id='d348' class='colors'>"+"goldenrod3</div>"+"<div id='d349' class='colors'>"+"goldenrod4</div>"+"<div id='d350' class='colors'>"+"DarkGoldenrod</div>"+"<div id='d351' class='colors'>"+"DarkGoldenrod1</div>"+"<div id='d352' class='colors'>"+"DarkGoldenrod2</div>"+"<div id='d353' class='colors'>"+"DarkGoldenrod3</div>"+"<div id='d354' class='colors'>"+"DarkGoldenrod4</div>"+"<div id='d355' class='colors'>"+"FloralWhite</div>"+"<div id='d356' class='colors'>"+"wheat2</div>"+"<div id='d357' class='colors'>"+"OldLace</div>"+"<div id='d358' class='colors'>"+"wheat</div>"+"<div id='d359' class='colors'>"+"wheat1</div>"+"<div id='d360' class='colors'>"+"wheat3</div>"+"<div id='d361' class='colors'>"+"orange</div>"+"<div id='d362' class='colors'>"+"orange1</div>"+"<div id='d363' class='colors'>"+"orange2</div>"+"<div id='d364' class='colors'>"+"orange3</div>"+"<div id='d365' class='colors'>"+"orange4</div>"+"<div id='d366' class='colors'>"+"wheat4</div>"+"<div id='d367' class='colors'>"+"moccasin</div>"+"<div id='d368' class='colors'>"+"PapayaWhip</div>"+"<div id='d369' class='colors'>"+"NavajoWhite3</div>"+"<div id='d370' class='colors'>"+"BlanchedAlmond</div>"+"<div id='d371' class='colors'>"+"NavajoWhite</div>"+"<div id='d372' class='colors'>"+"NavajoWhite1</div>"+"<div id='d373' class='colors'>"+"NavajoWhite2</div>"+"<div id='d374' class='colors'>"+"NavajoWhite4</div>"+"<div id='d375' class='colors'>"+"AntiqueWhite4</div>"+"<div id='d376' class='colors'>"+"AntiqueWhite</div>"+"<div id='d377' class='colors'>"+"tan</div>"+"<div id='d378' class='colors'>"+"bisque4</div>"+"<div id='d379' class='colors'>"+"burlywood</div>"+"<div id='d380' class='colors'>"+"AntiqueWhite2</div>"+"<div id='d381' class='colors'>"+"burlywood1</div>"+"<div id='d382' class='colors'>"+"burlywood3</div>"+"<div id='d383' class='colors'>"+"burlywood2</div>"+"<div id='d384' class='colors'>"+"AntiqueWhite1</div>"+"<div id='d385' class='colors'>"+"burlywood4</div>"+"<div id='d386' class='colors'>"+"AntiqueWhite3</div>"+"<div id='d387' class='colors'>"+"DarkOrange</div>"+"<div id='d388' class='colors'>"+"bisque2</div>"+"<div id='d389' class='colors'>"+"bisque</div>"+"<div id='d390' class='colors'>"+"bisque1</div>"+"<div id='d391' class='colors'>"+"bisque3</div>"+"<div id='d392' class='colors'>"+"DarkOrange1</div>"+"<div id='d393' class='colors'>"+"linen</div>"+"<div id='d394' class='colors'>"+"DarkOrange2</div>"+"<div id='d395' class='colors'>"+"DarkOrange3</div>"+"<div id='d396' class='colors'>"+"DarkOrange4</div>"+"<div id='d397' class='colors'>"+"peru</div>"+"<div id='d398' class='colors'>"+"tan1</div>"+"<div id='d399' class='colors'>"+"tan2</div>"+"<div id='d400' class='colors'>"+"tan3</div>"+"<div id='d401' class='colors'>"+"tan4</div>"+"<div id='d402' class='colors'>"+"PeachPuff</div>"+"<div id='d403' class='colors'>"+"PeachPuff1</div>"+"<div id='d404' class='colors'>"+"PeachPuff4</div>"+"<div id='d405' class='colors'>"+"PeachPuff2</div>"+"<div id='d406' class='colors'>"+"PeachPuff3</div>"+"<div id='d407' class='colors'>"+"SandyBrown</div>"+"<div id='d408' class='colors'>"+"seashell4</div>"+"<div id='d409' class='colors'>"+"seashell2</div>"+"<div id='d410' class='colors'>"+"seashell3</div>"+"<div id='d411' class='colors'>"+"chocolate</div>"+"<div id='d412' class='colors'>"+"chocolate1</div>"+"<div id='d413' class='colors'>"+"chocolate2</div>"+"<div id='d414' class='colors'>"+"chocolate3</div>"+"<div id='d415' class='colors'>"+"chocolate4</div>"+"<div id='d416' class='colors'>"+"SaddleBrown</div>"+"<div id='d417' class='colors'>"+"seashell</div>"+"<div id='d418' class='colors'>"+"seashell1</div>"+"<div id='d419' class='colors'>"+"sienna4</div>"+"<div id='d420' class='colors'>"+"sienna</div>"+"<div id='d421' class='colors'>"+"sienna1</div>"+"<div id='d422' class='colors'>"+"sienna2</div>"+"<div id='d423' class='colors'>"+"sienna3</div>"+"<div id='d424' class='colors'>"+"LightSalmon3</div>"+"<div id='d425' class='colors'>"+"LightSalmon</div>"+"<div id='d426' class='colors'>"+"LightSalmon1</div>"+"<div id='d427' class='colors'>"+"LightSalmon4</div>"+"<div id='d428' class='colors'>"+"LightSalmon2</div>"+"<div id='d429' class='colors'>"+"coral</div>"+"<div id='d430' class='colors'>"+"OrangeRed</div>"+"<div id='d431' class='colors'>"+"OrangeRed1</div>"+"<div id='d432' class='colors'>"+"OrangeRed2</div>"+"<div id='d433' class='colors'>"+"OrangeRed3</div>"+"<div id='d434' class='colors'>"+"OrangeRed4</div>"+"<div id='d435' class='colors'>"+"DarkSalmon</div>"+"<div id='d436' class='colors'>"+"salmon1</div>"+"<div id='d437' class='colors'>"+"salmon2</div>"+"<div id='d438' class='colors'>"+"salmon3</div>"+"<div id='d439' class='colors'>"+"salmon4</div>"+"<div id='d440' class='colors'>"+"coral1</div>"+"<div id='d441' class='colors'>"+"coral2</div>"+"<div id='d442' class='colors'>"+"coral3</div>"+"<div id='d443' class='colors'>"+"coral4</div>"+"<div id='d444' class='colors'>"+"tomato4</div>"+"<div id='d445' class='colors'>"+"tomato</div>"+"<div id='d446' class='colors'>"+"tomato1</div>"+"<div id='d447' class='colors'>"+"tomato2</div>"+"<div id='d448' class='colors'>"+"tomato3</div>"+"<div id='d449' class='colors'>"+"MistyRose4</div>"+"<div id='d450' class='colors'>"+"MistyRose2</div>"+"<div id='d451' class='colors'>"+"MistyRose</div>"+"<div id='d452' class='colors'>"+"MistyRose1</div>"+"<div id='d453' class='colors'>"+"salmon</div>"+"<div id='d454' class='colors'>"+"MistyRose3</div>"+"<div id='d455' class='colors'>"+"white</div>"+"<div id='d456' class='colors'>"+"gray100</div>"+"<div id='d457' class='colors'>"+"grey100</div>"+"<div id='d458' class='colors'>"+"grey100</div>"+"<div id='d459' class='colors'>"+"gray99</div>"+"<div id='d460' class='colors'>"+"grey99</div>"+"<div id='d461' class='colors'>"+"gray98</div>"+"<div id='d462' class='colors'>"+"grey98</div>"+"<div id='d463' class='colors'>"+"gray97</div>"+"<div id='d464' class='colors'>"+"grey97</div>"+"<div id='d465' class='colors'>"+"gray96</div>"+"<div id='d466' class='colors'>"+"grey96</div>"+"<div id='d467' class='colors'>"+"WhiteSmoke</div>"+"<div id='d468' class='colors'>"+"gray95</div>"+"<div id='d469' class='colors'>"+"grey95</div>"+"<div id='d470' class='colors'>"+"gray94</div>"+"<div id='d471' class='colors'>"+"grey94</div>"+"<div id='d472' class='colors'>"+"gray93</div>"+"<div id='d473' class='colors'>"+"grey93</div>"+"<div id='d474' class='colors'>"+"gray92</div>"+"<div id='d475' class='colors'>"+"grey92</div>"+"<div id='d476' class='colors'>"+"gray91</div>"+"<div id='d477' class='colors'>"+"grey91</div>"+"<div id='d478' class='colors'>"+"gray90</div>"+"<div id='d479' class='colors'>"+"grey90</div>"+"<div id='d480' class='colors'>"+"gray89</div>"+"<div id='d481' class='colors'>"+"grey89</div>"+"<div id='d482' class='colors'>"+"gray88</div>"+"<div id='d483' class='colors'>"+"grey88</div>"+"<div id='d484' class='colors'>"+"gray87</div>"+"<div id='d485' class='colors'>"+"grey87</div>"+"<div id='d486' class='colors'>"+"gainsboro</div>"+"<div id='d487' class='colors'>"+"gray86</div>"+"<div id='d488' class='colors'>"+"grey86</div>"+"<div id='d489' class='colors'>"+"gray85</div>"+"<div id='d490' class='colors'>"+"grey85</div>"+"<div id='d491' class='colors'>"+"gray84</div>"+"<div id='d492' class='colors'>"+"grey84</div>"+"<div id='d493' class='colors'>"+"gray83</div>"+"<div id='d494' class='colors'>"+"grey83</div>"+"<div id='d495' class='colors'>"+"LightGray</div>"+"<div id='d496' class='colors'>"+"LightGrey</div>"+"<div id='d497' class='colors'>"+"gray82</div>"+"<div id='d498' class='colors'>"+"grey82</div>"+"<div id='d499' class='colors'>"+"gray81</div>"+"<div id='d500' class='colors'>"+"grey81</div>"+"<div id='d501' class='colors'>"+"gray80</div>"+"<div id='d502' class='colors'>"+"grey80</div>"+"<div id='d503' class='colors'>"+"gray79</div>"+"<div id='d504' class='colors'>"+"grey79</div>"+"<div id='d505' class='colors'>"+"gray78</div>"+"<div id='d506' class='colors'>"+"grey78</div>"+"<div id='d507' class='colors'>"+"gray77</div>"+"<div id='d508' class='colors'>"+"grey77</div>"+"<div id='d509' class='colors'>"+"gray76</div>"+"<div id='d510' class='colors'>"+"grey76</div>"+"<div id='d511' class='colors'>"+"silver</div>"+"<div id='d512' class='colors'>"+"gray75</div>"+"<div id='d513' class='colors'>"+"grey75</div>"+"<div id='d514' class='colors'>"+"gray74</div>"+"<div id='d515' class='colors'>"+"grey74</div>"+"<div id='d516' class='colors'>"+"gray73</div>"+"<div id='d517' class='colors'>"+"grey73</div>"+"<div id='d518' class='colors'>"+"gray72</div>"+"<div id='d519' class='colors'>"+"grey72</div>"+"<div id='d520' class='colors'>"+"gray71</div>"+"<div id='d521' class='colors'>"+"grey71</div>"+"<div id='d522' class='colors'>"+"gray70</div>"+"<div id='d523' class='colors'>"+"grey70</div>"+"<div id='d524' class='colors'>"+"gray69</div>"+"<div id='d525' class='colors'>"+"grey69</div>"+"<div id='d526' class='colors'>"+"gray68</div>"+"<div id='d527' class='colors'>"+"grey68</div>"+"<div id='d528' class='colors'>"+"gray67</div>"+"<div id='d529' class='colors'>"+"grey67</div>"+"<div id='d530' class='colors'>"+"DarkGray</div>"+"<div id='d531' class='colors'>"+"DarkGrey</div>"+"<div id='d532' class='colors'>"+"gray66</div>"+"<div id='d533' class='colors'>"+"grey66</div>"+"<div id='d534' class='colors'>"+"gray65</div>"+"<div id='d535' class='colors'>"+"grey65</div>"+"<div id='d536' class='colors'>"+"gray64</div>"+"<div id='d537' class='colors'>"+"grey64</div>"+"<div id='d538' class='colors'>"+"gray63</div>"+"<div id='d539' class='colors'>"+"grey63</div>"+"<div id='d540' class='colors'>"+"gray62</div>"+"<div id='d541' class='colors'>"+"grey62</div>"+"<div id='d542' class='colors'>"+"gray61</div>"+"<div id='d543' class='colors'>"+"grey61</div>"+"<div id='d544' class='colors'>"+"gray60</div>"+"<div id='d545' class='colors'>"+"grey60</div>"+"<div id='d546' class='colors'>"+"gray59</div>"+"<div id='d547' class='colors'>"+"grey59</div>"+"<div id='d548' class='colors'>"+"gray58</div>"+"<div id='d549' class='colors'>"+"grey58</div>"+"<div id='d550' class='colors'>"+"gray57</div>"+"<div id='d551' class='colors'>"+"grey57</div>"+"<div id='d552' class='colors'>"+"gray56</div>"+"<div id='d553' class='colors'>"+"grey56</div>"+"<div id='d554' class='colors'>"+"gray55</div>"+"<div id='d555' class='colors'>"+"grey55</div>"+"<div id='d556' class='colors'>"+"gray54</div>"+"<div id='d557' class='colors'>"+"grey54</div>"+"<div id='d558' class='colors'>"+"gray53</div>"+"<div id='d559' class='colors'>"+"grey53</div>"+"<div id='d560' class='colors'>"+"gray52</div>"+"<div id='d561' class='colors'>"+"grey52</div>"+"<div id='d562' class='colors'>"+"gray51</div>"+"<div id='d563' class='colors'>"+"grey51</div>"+"<div id='d564' class='colors'>"+"fractal</div>"+"<div id='d565' class='colors'>"+"gray50</div>"+"<div id='d566' class='colors'>"+"grey50</div>"+"<div id='d567' class='colors'>"+"gray</div>"+"<div id='d568' class='colors'>"+"gray49</div>"+"<div id='d569' class='colors'>"+"grey49</div>"+"<div id='d570' class='colors'>"+"gray48</div>"+"<div id='d571' class='colors'>"+"grey48</div>"+"<div id='d572' class='colors'>"+"gray47</div>"+"<div id='d573' class='colors'>"+"grey47</div>"+"<div id='d574' class='colors'>"+"gray46</div>"+"<div id='d575' class='colors'>"+"grey46</div>"+"<div id='d576' class='colors'>"+"gray45</div>"+"<div id='d577' class='colors'>"+"grey45</div>"+"<div id='d578' class='colors'>"+"gray44</div>"+"<div id='d579' class='colors'>"+"grey44</div>"+"<div id='d580' class='colors'>"+"gray43</div>"+"<div id='d581' class='colors'>"+"grey43</div>"+"<div id='d582' class='colors'>"+"gray42</div>"+"<div id='d583' class='colors'>"+"grey42</div>"+"<div id='d584' class='colors'>"+"DimGray</div>"+"<div id='d585' class='colors'>"+"DimGrey</div>"+"<div id='d586' class='colors'>"+"gray41</div>"+"<div id='d587' class='colors'>"+"grey41</div>"+"<div id='d588' class='colors'>"+"gray40</div>"+"<div id='d589' class='colors'>"+"grey40</div>"+"<div id='d590' class='colors'>"+"gray39</div>"+"<div id='d591' class='colors'>"+"grey39</div>"+"<div id='d592' class='colors'>"+"gray38</div>"+"<div id='d593' class='colors'>"+"grey38</div>"+"<div id='d594' class='colors'>"+"gray37</div>"+"<div id='d595' class='colors'>"+"grey37</div>"+"<div id='d596' class='colors'>"+"gray36</div>"+"<div id='d597' class='colors'>"+"grey36</div>"+"<div id='d598' class='colors'>"+"gray35</div>"+"<div id='d599' class='colors'>"+"grey35</div>"+"<div id='d600' class='colors'>"+"gray34</div>"+"<div id='d601' class='colors'>"+"grey34</div>"+"<div id='d602' class='colors'>"+"gray33</div>"+"<div id='d603' class='colors'>"+"grey33</div>"+"<div id='d604' class='colors'>"+"gray32</div>"+"<div id='d605' class='colors'>"+"grey32</div>"+"<div id='d606' class='colors'>"+"gray31</div>"+"<div id='d607' class='colors'>"+"grey31</div>"+"<div id='d608' class='colors'>"+"gray30</div>"+"<div id='d609' class='colors'>"+"grey30</div>"+"<div id='d610' class='colors'>"+"gray29</div>"+"<div id='d611' class='colors'>"+"grey29</div>"+"<div id='d612' class='colors'>"+"gray28</div>"+"<div id='d613' class='colors'>"+"grey28</div>"+"<div id='d614' class='colors'>"+"gray27</div>"+"<div id='d615' class='colors'>"+"grey27</div>"+"<div id='d616' class='colors'>"+"gray26</div>"+"<div id='d617' class='colors'>"+"grey26</div>"+"<div id='d618' class='colors'>"+"gray25</div>"+"<div id='d619' class='colors'>"+"grey25</div>"+"<div id='d620' class='colors'>"+"gray24</div>"+"<div id='d621' class='colors'>"+"grey24</div>"+"<div id='d622' class='colors'>"+"gray23</div>"+"<div id='d623' class='colors'>"+"grey23</div>"+"<div id='d624' class='colors'>"+"gray22</div>"+"<div id='d625' class='colors'>"+"grey22</div>"+"<div id='d626' class='colors'>"+"gray21</div>"+"<div id='d627' class='colors'>"+"grey21</div>"+"<div id='d628' class='colors'>"+"gray20</div>"+"<div id='d629' class='colors'>"+"grey20</div>"+"<div id='d630' class='colors'>"+"gray19</div>"+"<div id='d631' class='colors'>"+"grey19</div>"+"<div id='d632' class='colors'>"+"gray18</div>"+"<div id='d633' class='colors'>"+"grey18</div>"+"<div id='d634' class='colors'>"+"gray17</div>"+"<div id='d635' class='colors'>"+"grey17</div>"+"<div id='d636' class='colors'>"+"gray16</div>"+"<div id='d637' class='colors'>"+"grey16</div>"+"<div id='d638' class='colors'>"+"gray15</div>"+"<div id='d639' class='colors'>"+"grey15</div>"+"<div id='d640' class='colors'>"+"gray14</div>"+"<div id='d641' class='colors'>"+"grey14</div>"+"<div id='d642' class='colors'>"+"gray13</div>"+"<div id='d643' class='colors'>"+"grey13</div>"+"<div id='d644' class='colors'>"+"gray12</div>"+"<div id='d645' class='colors'>"+"grey12</div>"+"<div id='d646' class='colors'>"+"gray11</div>"+"<div id='d647' class='colors'>"+"grey11</div>"+"<div id='d648' class='colors'>"+"gray10</div>"+"<div id='d649' class='colors'>"+"grey10</div>"+"<div id='d650' class='colors'>"+"gray9</div>"+"<div id='d651' class='colors'>"+"grey9</div>"+"<div id='d652' class='colors'>"+"gray8</div>"+"<div id='d653' class='colors'>"+"grey8</div>"+"<div id='d654' class='colors'>"+"gray7</div>"+"<div id='d655' class='colors'>"+"grey7</div>"+"<div id='d656' class='colors'>"+"gray6</div>"+"<div id='d657' class='colors'>"+"grey6</div>"+"<div id='d658' class='colors'>"+"gray5</div>"+"<div id='d659' class='colors'>"+"grey5</div>"+"<div id='d660' class='colors'>"+"gray4</div>"+"<div id='d661' class='colors'>"+"grey4</div>"+"<div id='d662' class='colors'>"+"gray3</div>"+"<div id='d663' class='colors'>"+"grey3</div>"+"<div id='d664' class='colors'>"+"gray2</div>"+"<div id='d665' class='colors'>"+"grey2</div>"+"<div id='d666' class='colors'>"+"gray1</div>"+"<div id='d667' class='colors'>"+"grey1</div>"+"<div id='d668' class='colors'>"+"black</div>"+"<div id='d669' class='colors'>"+"gray0</div>"+"<div id='d670' class='colors'>"+"grey0</div>"+"<div id='d671' class='colors'>"+"opaque</div>"+"<div id='d672' class='colors'>"+"none</div>"+"<div id='d673' class='colors'>"+"transparent</div>"+"</div>"+"<div id='colornames'>WHERE THE COLORNAMES WILL GO</div>"+"<script type='text/javascript' src='colordict.js'></script>"+"<script type='text/javascript' src='colorpixx.js'></script>" + + +function showpicker() + { + $('#popupContact').html(colorpicker); + $('#swingleft').append("whos the dadd addad"); + $('#popupContact').css('height', '1500px') + } + +$('#colorlist').click(function(){showpicker()}) + + + + diff --git a/frontend/imgrid/colors/colors/junk/scrollio.html b/frontend/imgrid/colors/colors/junk/scrollio.html new file mode 100755 index 0000000..e1443c3 --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/scrollio.html @@ -0,0 +1,3850 @@ +<html> +<head> +<link rel="stylesheet" type="text/css" href="ScrollEffect.css" /> +<script type="text/javascript" src="ScrollEffect.js"></script> + +<style type='text/css'> + +body +{ +margin:0; +} + +#colorpicker +{ +position:absolute; +width:100%; +font-family:helvetica; +font-size:10px; +//background-color: gray; +//background-image: url("http://asdf.us/im/6f/gradient_bgdither_1321255670_pepper.gif"); +background-color: black; +background-image: url("http://dump.fm/static/img/bg.dither.gif") + +} + +#container div +{ +text-align:left; +display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +min-height: 30px; +zoom: 1; +word-wrap: break-word; +*display: inline; +cursor:pointer; +} + +#container +{ +margin:0 auto; +width:31%; +padding-bottom:0px; +padding-right:10px; +padding-left:10px; +text-align:center; +position:absolute; +height:850px; +} + +#viewarea +{ +position: relative; +top: 10%; +width: 31%; +height: 820px; +overflow: hidden; +margin:0 auto; +padding-top:10px; +padding-right:10px; +padding-left:10px; +text-align:center; +border-style:outset; +border-width:10px; +} + +#colornames +{ +color:white; +position:fixed; +font-size:50px; +top:50px; +left:2%; +width:400px; +} + +#switches + { + position:fixed; + top:20px; + right:1%; + height:400px; + width:300px; + font-size:20px; + border-style: groove; + border-width: 4px; + background-color:gray; + padding:2px; + box-shadow: 10px 10px 5px #141414; + } + +#infoswitch, #hexswitch, #backgroundswitch + { + background-image:url(http://asdf.us/im/58/gradient_whitegray80_1321305183_1321305241_pepper.jpg); + cursor:pointer; + } +#preview + { + height:150px; + } + + +#holder + { + float:bottom; + } + +#transparent + { + font-size:12px; + } +#namespace + { + width:inherit; + } +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{ +height:30; +width:10px; +} +</style></head><body> +<div id='colorpicker'> +<div id='viewarea' class="panorama"> +<div id='container'> +<div id='d0' class='colors'> +snow</div> +<div id='d1' class='colors'> +snow1</div> +<div id='d2' class='colors'> +snow2</div> +<div id='d3' class='colors'> +RosyBrown1</div> +<div id='d4' class='colors'> +RosyBrown2</div> +<div id='d5' class='colors'> +snow3</div> +<div id='d6' class='colors'> +LightCoral</div> +<div id='d7' class='colors'> +IndianRed1</div> +<div id='d8' class='colors'> +RosyBrown3</div> +<div id='d9' class='colors'> +IndianRed2</div> +<div id='d10' class='colors'> +RosyBrown</div> +<div id='d11' class='colors'> +brown1</div> +<div id='d12' class='colors'> +firebrick1</div> +<div id='d13' class='colors'> +brown2</div> +<div id='d14' class='colors'> +IndianRed</div> +<div id='d15' class='colors'> +IndianRed3</div> +<div id='d16' class='colors'> +firebrick2</div> +<div id='d17' class='colors'> +snow4</div> +<div id='d18' class='colors'> +brown3</div> +<div id='d19' class='colors'> +red</div> +<div id='d20' class='colors'> +red1</div> +<div id='d21' class='colors'> +RosyBrown4</div> +<div id='d22' class='colors'> +firebrick3</div> +<div id='d23' class='colors'> +red2</div> +<div id='d24' class='colors'> +firebrick</div> +<div id='d25' class='colors'> +brown</div> +<div id='d26' class='colors'> +red3</div> +<div id='d27' class='colors'> +IndianRed4</div> +<div id='d28' class='colors'> +brown4</div> +<div id='d29' class='colors'> +firebrick4</div> +<div id='d30' class='colors'> +DarkRed</div> +<div id='d31' class='colors'> +red4</div> +<div id='d32' class='colors'> +maroon</div> +<div id='d33' class='colors'> +LightPink1</div> +<div id='d34' class='colors'> +LightPink3</div> +<div id='d35' class='colors'> +LightPink4</div> +<div id='d36' class='colors'> +LightPink2</div> +<div id='d37' class='colors'> +LightPink</div> +<div id='d38' class='colors'> +pink</div> +<div id='d39' class='colors'> +crimson</div> +<div id='d40' class='colors'> +pink1</div> +<div id='d41' class='colors'> +pink2</div> +<div id='d42' class='colors'> +pink3</div> +<div id='d43' class='colors'> +pink4</div> +<div id='d44' class='colors'> +PaleVioletRed4</div> +<div id='d45' class='colors'> +PaleVioletRed</div> +<div id='d46' class='colors'> +PaleVioletRed2</div> +<div id='d47' class='colors'> +PaleVioletRed1</div> +<div id='d48' class='colors'> +PaleVioletRed3</div> +<div id='d49' class='colors'> +LavenderBlush</div> +<div id='d50' class='colors'> +LavenderBlush1</div> +<div id='d51' class='colors'> +LavenderBlush3</div> +<div id='d52' class='colors'> +LavenderBlush2</div> +<div id='d53' class='colors'> +LavenderBlush4</div> +<div id='d54' class='colors'> +maroon</div> +<div id='d55' class='colors'> +HotPink3</div> +<div id='d56' class='colors'> +VioletRed3</div> +<div id='d57' class='colors'> +VioletRed1</div> +<div id='d58' class='colors'> +VioletRed2</div> +<div id='d59' class='colors'> +VioletRed4</div> +<div id='d60' class='colors'> +HotPink2</div> +<div id='d61' class='colors'> +HotPink1</div> +<div id='d62' class='colors'> +HotPink4</div> +<div id='d63' class='colors'> +HotPink</div> +<div id='d64' class='colors'> +DeepPink</div> +<div id='d65' class='colors'> +DeepPink1</div> +<div id='d66' class='colors'> +DeepPink2</div> +<div id='d67' class='colors'> +DeepPink3</div> +<div id='d68' class='colors'> +DeepPink4</div> +<div id='d69' class='colors'> +maroon1</div> +<div id='d70' class='colors'> +maroon2</div> +<div id='d71' class='colors'> +maroon3</div> +<div id='d72' class='colors'> +maroon4</div> +<div id='d73' class='colors'> +MediumVioletRed</div> +<div id='d74' class='colors'> +VioletRed</div> +<div id='d75' class='colors'> +orchid2</div> +<div id='d76' class='colors'> +orchid</div> +<div id='d77' class='colors'> +orchid1</div> +<div id='d78' class='colors'> +orchid3</div> +<div id='d79' class='colors'> +orchid4</div> +<div id='d80' class='colors'> +thistle1</div> +<div id='d81' class='colors'> +thistle2</div> +<div id='d82' class='colors'> +plum1</div> +<div id='d83' class='colors'> +plum2</div> +<div id='d84' class='colors'> +thistle</div> +<div id='d85' class='colors'> +thistle3</div> +<div id='d86' class='colors'> +plum</div> +<div id='d87' class='colors'> +violet</div> +<div id='d88' class='colors'> +plum3</div> +<div id='d89' class='colors'> +thistle4</div> +<div id='d90' class='colors'> +fuchsia</div> +<div id='d91' class='colors'> +magenta</div> +<div id='d92' class='colors'> +magenta1</div> +<div id='d93' class='colors'> +plum4</div> +<div id='d94' class='colors'> +magenta2</div> +<div id='d95' class='colors'> +magenta3</div> +<div id='d96' class='colors'> +DarkMagenta</div> +<div id='d97' class='colors'> +magenta4</div> +<div id='d98' class='colors'> +purple</div> +<div id='d99' class='colors'> +MediumOrchid</div> +<div id='d100' class='colors'> +MediumOrchid1</div> +<div id='d101' class='colors'> +MediumOrchid2</div> +<div id='d102' class='colors'> +MediumOrchid3</div> +<div id='d103' class='colors'> +MediumOrchid4</div> +<div id='d104' class='colors'> +DarkViolet</div> +<div id='d105' class='colors'> +DarkOrchid</div> +<div id='d106' class='colors'> +DarkOrchid1</div> +<div id='d107' class='colors'> +DarkOrchid3</div> +<div id='d108' class='colors'> +DarkOrchid2</div> +<div id='d109' class='colors'> +DarkOrchid4</div> +<div id='d110' class='colors'> +purple</div> +<div id='d111' class='colors'> +indigo</div> +<div id='d112' class='colors'> +BlueViolet</div> +<div id='d113' class='colors'> +purple2</div> +<div id='d114' class='colors'> +purple3</div> +<div id='d115' class='colors'> +purple4</div> +<div id='d116' class='colors'> +purple1</div> +<div id='d117' class='colors'> +MediumPurple</div> +<div id='d118' class='colors'> +MediumPurple1</div> +<div id='d119' class='colors'> +MediumPurple2</div> +<div id='d120' class='colors'> +MediumPurple3</div> +<div id='d121' class='colors'> +MediumPurple4</div> +<div id='d122' class='colors'> +DarkSlateBlue</div> +<div id='d123' class='colors'> +LightSlateBlue</div> +<div id='d124' class='colors'> +MediumSlateBlue</div> +<div id='d125' class='colors'> +SlateBlue</div> +<div id='d126' class='colors'> +SlateBlue1</div> +<div id='d127' class='colors'> +SlateBlue2</div> +<div id='d128' class='colors'> +SlateBlue3</div> +<div id='d129' class='colors'> +SlateBlue4</div> +<div id='d130' class='colors'> +GhostWhite</div> +<div id='d131' class='colors'> +lavender</div> +<div id='d132' class='colors'> +blue</div> +<div id='d133' class='colors'> +blue1</div> +<div id='d134' class='colors'> +blue2</div> +<div id='d135' class='colors'> +blue3</div> +<div id='d136' class='colors'> +MediumBlue</div> +<div id='d137' class='colors'> +blue4</div> +<div id='d138' class='colors'> +DarkBlue</div> +<div id='d139' class='colors'> +MidnightBlue</div> +<div id='d140' class='colors'> +navy</div> +<div id='d141' class='colors'> +NavyBlue</div> +<div id='d142' class='colors'> +RoyalBlue</div> +<div id='d143' class='colors'> +RoyalBlue1</div> +<div id='d144' class='colors'> +RoyalBlue2</div> +<div id='d145' class='colors'> +RoyalBlue3</div> +<div id='d146' class='colors'> +RoyalBlue4</div> +<div id='d147' class='colors'> +CornflowerBlue</div> +<div id='d148' class='colors'> +LightSteelBlue</div> +<div id='d149' class='colors'> +LightSteelBlue1</div> +<div id='d150' class='colors'> +LightSteelBlue2</div> +<div id='d151' class='colors'> +LightSteelBlue3</div> +<div id='d152' class='colors'> +LightSteelBlue4</div> +<div id='d153' class='colors'> +SlateGray4</div> +<div id='d154' class='colors'> +SlateGray1</div> +<div id='d155' class='colors'> +SlateGray2</div> +<div id='d156' class='colors'> +SlateGray3</div> +<div id='d157' class='colors'> +LightSlateGray</div> +<div id='d158' class='colors'> +LightSlateGrey</div> +<div id='d159' class='colors'> +SlateGray</div> +<div id='d160' class='colors'> +SlateGrey</div> +<div id='d161' class='colors'> +DodgerBlue</div> +<div id='d162' class='colors'> +DodgerBlue1</div> +<div id='d163' class='colors'> +DodgerBlue2</div> +<div id='d164' class='colors'> +DodgerBlue4</div> +<div id='d165' class='colors'> +DodgerBlue3</div> +<div id='d166' class='colors'> +AliceBlue</div> +<div id='d167' class='colors'> +SteelBlue4</div> +<div id='d168' class='colors'> +SteelBlue</div> +<div id='d169' class='colors'> +SteelBlue1</div> +<div id='d170' class='colors'> +SteelBlue2</div> +<div id='d171' class='colors'> +SteelBlue3</div> +<div id='d172' class='colors'> +SkyBlue4</div> +<div id='d173' class='colors'> +SkyBlue1</div> +<div id='d174' class='colors'> +SkyBlue2</div> +<div id='d175' class='colors'> +SkyBlue3</div> +<div id='d176' class='colors'> +LightSkyBlue</div> +<div id='d177' class='colors'> +LightSkyBlue4</div> +<div id='d178' class='colors'> +LightSkyBlue1</div> +<div id='d179' class='colors'> +LightSkyBlue2</div> +<div id='d180' class='colors'> +LightSkyBlue3</div> +<div id='d181' class='colors'> +SkyBlue</div> +<div id='d182' class='colors'> +LightBlue3</div> +<div id='d183' class='colors'> +DeepSkyBlue</div> +<div id='d184' class='colors'> +DeepSkyBlue1</div> +<div id='d185' class='colors'> +DeepSkyBlue2</div> +<div id='d186' class='colors'> +DeepSkyBlue4</div> +<div id='d187' class='colors'> +DeepSkyBlue3</div> +<div id='d188' class='colors'> +LightBlue1</div> +<div id='d189' class='colors'> +LightBlue2</div> +<div id='d190' class='colors'> +LightBlue</div> +<div id='d191' class='colors'> +LightBlue4</div> +<div id='d192' class='colors'> +PowderBlue</div> +<div id='d193' class='colors'> +CadetBlue1</div> +<div id='d194' class='colors'> +CadetBlue2</div> +<div id='d195' class='colors'> +CadetBlue3</div> +<div id='d196' class='colors'> +CadetBlue4</div> +<div id='d197' class='colors'> +turquoise1</div> +<div id='d198' class='colors'> +turquoise2</div> +<div id='d199' class='colors'> +turquoise3</div> +<div id='d200' class='colors'> +turquoise4</div> +<div id='d201' class='colors'> +cadet blue</div> +<div id='d202' class='colors'> +CadetBlue</div> +<div id='d203' class='colors'> +DarkTurquoise</div> +<div id='d204' class='colors'> +azure</div> +<div id='d205' class='colors'> +azure1</div> +<div id='d206' class='colors'> +LightCyan</div> +<div id='d207' class='colors'> +LightCyan1</div> +<div id='d208' class='colors'> +azure2</div> +<div id='d209' class='colors'> +LightCyan2</div> +<div id='d210' class='colors'> +PaleTurquoise1</div> +<div id='d211' class='colors'> +PaleTurquoise</div> +<div id='d212' class='colors'> +PaleTurquoise2</div> +<div id='d213' class='colors'> +DarkSlateGray1</div> +<div id='d214' class='colors'> +azure3</div> +<div id='d215' class='colors'> +LightCyan3</div> +<div id='d216' class='colors'> +DarkSlateGray2</div> +<div id='d217' class='colors'> +PaleTurquoise3</div> +<div id='d218' class='colors'> +DarkSlateGray3</div> +<div id='d219' class='colors'> +azure4</div> +<div id='d220' class='colors'> +LightCyan4</div> +<div id='d221' class='colors'> +aqua</div> +<div id='d222' class='colors'> +cyan</div> +<div id='d223' class='colors'> +cyan1</div> +<div id='d224' class='colors'> +PaleTurquoise4</div> +<div id='d225' class='colors'> +cyan2</div> +<div id='d226' class='colors'> +DarkSlateGray4</div> +<div id='d227' class='colors'> +cyan3</div> +<div id='d228' class='colors'> +cyan4</div> +<div id='d229' class='colors'> +DarkCyan</div> +<div id='d230' class='colors'> +teal</div> +<div id='d231' class='colors'> +DarkSlateGray</div> +<div id='d232' class='colors'> +DarkSlateGrey</div> +<div id='d233' class='colors'> +MediumTurquoise</div> +<div id='d234' class='colors'> +LightSeaGreen</div> +<div id='d235' class='colors'> +turquoise</div> +<div id='d236' class='colors'> +aquamarine4</div> +<div id='d237' class='colors'> +aquamarine</div> +<div id='d238' class='colors'> +aquamarine1</div> +<div id='d239' class='colors'> +aquamarine2</div> +<div id='d240' class='colors'> +aquamarine3</div> +<div id='d241' class='colors'> +MediumAquamarine</div> +<div id='d242' class='colors'> +MediumSpringGreen</div> +<div id='d243' class='colors'> +MintCream</div> +<div id='d244' class='colors'> +SpringGreen</div> +<div id='d245' class='colors'> +SpringGreen1</div> +<div id='d246' class='colors'> +SpringGreen2</div> +<div id='d247' class='colors'> +SpringGreen3</div> +<div id='d248' class='colors'> +SpringGreen4</div> +<div id='d249' class='colors'> +MediumSeaGreen</div> +<div id='d250' class='colors'> +SeaGreen</div> +<div id='d251' class='colors'> +SeaGreen3</div> +<div id='d252' class='colors'> +SeaGreen1</div> +<div id='d253' class='colors'> +SeaGreen4</div> +<div id='d254' class='colors'> +SeaGreen2</div> +<div id='d255' class='colors'> +MediumForestGreen</div> +<div id='d256' class='colors'> +honeydew</div> +<div id='d257' class='colors'> +honeydew1</div> +<div id='d258' class='colors'> +honeydew2</div> +<div id='d259' class='colors'> +DarkSeaGreen1</div> +<div id='d260' class='colors'> +DarkSeaGreen2</div> +<div id='d261' class='colors'> +PaleGreen1</div> +<div id='d262' class='colors'> +PaleGreen</div> +<div id='d263' class='colors'> +honeydew3</div> +<div id='d264' class='colors'> +LightGreen</div> +<div id='d265' class='colors'> +PaleGreen2</div> +<div id='d266' class='colors'> +DarkSeaGreen3</div> +<div id='d267' class='colors'> +DarkSeaGreen</div> +<div id='d268' class='colors'> +PaleGreen3</div> +<div id='d269' class='colors'> +honeydew4</div> +<div id='d270' class='colors'> +green1</div> +<div id='d271' class='colors'> +lime</div> +<div id='d272' class='colors'> +LimeGreen</div> +<div id='d273' class='colors'> +DarkSeaGreen4</div> +<div id='d274' class='colors'> +green2</div> +<div id='d275' class='colors'> +PaleGreen4</div> +<div id='d276' class='colors'> +green3</div> +<div id='d277' class='colors'> +ForestGreen</div> +<div id='d278' class='colors'> +green4</div> +<div id='d279' class='colors'> +green</div> +<div id='d280' class='colors'> +DarkGreen</div> +<div id='d281' class='colors'> +LawnGreen</div> +<div id='d282' class='colors'> +chartreuse</div> +<div id='d283' class='colors'> +chartreuse1</div> +<div id='d284' class='colors'> +chartreuse2</div> +<div id='d285' class='colors'> +chartreuse3</div> +<div id='d286' class='colors'> +chartreuse4</div> +<div id='d287' class='colors'> +GreenYellow</div> +<div id='d288' class='colors'> +DarkOliveGreen3</div> +<div id='d289' class='colors'> +DarkOliveGreen1</div> +<div id='d290' class='colors'> +DarkOliveGreen2</div> +<div id='d291' class='colors'> +DarkOliveGreen4</div> +<div id='d292' class='colors'> +DarkOliveGreen</div> +<div id='d293' class='colors'> +OliveDrab</div> +<div id='d294' class='colors'> +OliveDrab1</div> +<div id='d295' class='colors'> +OliveDrab2</div> +<div id='d296' class='colors'> +OliveDrab3</div> +<div id='d297' class='colors'> +YellowGreen</div> +<div id='d298' class='colors'> +OliveDrab4</div> +<div id='d299' class='colors'> +ivory</div> +<div id='d300' class='colors'> +ivory1</div> +<div id='d301' class='colors'> +LightYellow</div> +<div id='d302' class='colors'> +LightYellow1</div> +<div id='d303' class='colors'> +beige</div> +<div id='d304' class='colors'> +ivory2</div> +<div id='d305' class='colors'> +LightGoldenrodYellow</div> +<div id='d306' class='colors'> +LightYellow2</div> +<div id='d307' class='colors'> +ivory3</div> +<div id='d308' class='colors'> +LightYellow3</div> +<div id='d309' class='colors'> +ivory4</div> +<div id='d310' class='colors'> +LightYellow4</div> +<div id='d311' class='colors'> +yellow</div> +<div id='d312' class='colors'> +yellow1</div> +<div id='d313' class='colors'> +yellow2</div> +<div id='d314' class='colors'> +yellow3</div> +<div id='d315' class='colors'> +yellow4</div> +<div id='d316' class='colors'> +olive</div> +<div id='d317' class='colors'> +DarkKhaki</div> +<div id='d318' class='colors'> +khaki2</div> +<div id='d319' class='colors'> +LemonChiffon4</div> +<div id='d320' class='colors'> +khaki1</div> +<div id='d321' class='colors'> +khaki3</div> +<div id='d322' class='colors'> +khaki4</div> +<div id='d323' class='colors'> +PaleGoldenrod</div> +<div id='d324' class='colors'> +LemonChiffon</div> +<div id='d325' class='colors'> +LemonChiffon1</div> +<div id='d326' class='colors'> +khaki</div> +<div id='d327' class='colors'> +LemonChiffon3</div> +<div id='d328' class='colors'> +LemonChiffon2</div> +<div id='d329' class='colors'> +MediumGoldenRod</div> +<div id='d330' class='colors'> +cornsilk4</div> +<div id='d331' class='colors'> +gold</div> +<div id='d332' class='colors'> +gold1</div> +<div id='d333' class='colors'> +gold2</div> +<div id='d334' class='colors'> +gold3</div> +<div id='d335' class='colors'> +gold4</div> +<div id='d336' class='colors'> +LightGoldenrod</div> +<div id='d337' class='colors'> +LightGoldenrod4</div> +<div id='d338' class='colors'> +LightGoldenrod1</div> +<div id='d339' class='colors'> +LightGoldenrod3</div> +<div id='d340' class='colors'> +LightGoldenrod2</div> +<div id='d341' class='colors'> +cornsilk3</div> +<div id='d342' class='colors'> +cornsilk2</div> +<div id='d343' class='colors'> +cornsilk</div> +<div id='d344' class='colors'> +cornsilk1</div> +<div id='d345' class='colors'> +goldenrod</div> +<div id='d346' class='colors'> +goldenrod1</div> +<div id='d347' class='colors'> +goldenrod2</div> +<div id='d348' class='colors'> +goldenrod3</div> +<div id='d349' class='colors'> +goldenrod4</div> +<div id='d350' class='colors'> +DarkGoldenrod</div> +<div id='d351' class='colors'> +DarkGoldenrod1</div> +<div id='d352' class='colors'> +DarkGoldenrod2</div> +<div id='d353' class='colors'> +DarkGoldenrod3</div> +<div id='d354' class='colors'> +DarkGoldenrod4</div> +<div id='d355' class='colors'> +FloralWhite</div> +<div id='d356' class='colors'> +wheat2</div> +<div id='d357' class='colors'> +OldLace</div> +<div id='d358' class='colors'> +wheat</div> +<div id='d359' class='colors'> +wheat1</div> +<div id='d360' class='colors'> +wheat3</div> +<div id='d361' class='colors'> +orange</div> +<div id='d362' class='colors'> +orange1</div> +<div id='d363' class='colors'> +orange2</div> +<div id='d364' class='colors'> +orange3</div> +<div id='d365' class='colors'> +orange4</div> +<div id='d366' class='colors'> +wheat4</div> +<div id='d367' class='colors'> +moccasin</div> +<div id='d368' class='colors'> +PapayaWhip</div> +<div id='d369' class='colors'> +NavajoWhite3</div> +<div id='d370' class='colors'> +BlanchedAlmond</div> +<div id='d371' class='colors'> +NavajoWhite</div> +<div id='d372' class='colors'> +NavajoWhite1</div> +<div id='d373' class='colors'> +NavajoWhite2</div> +<div id='d374' class='colors'> +NavajoWhite4</div> +<div id='d375' class='colors'> +AntiqueWhite4</div> +<div id='d376' class='colors'> +AntiqueWhite</div> +<div id='d377' class='colors'> +tan</div> +<div id='d378' class='colors'> +bisque4</div> +<div id='d379' class='colors'> +burlywood</div> +<div id='d380' class='colors'> +AntiqueWhite2</div> +<div id='d381' class='colors'> +burlywood1</div> +<div id='d382' class='colors'> +burlywood3</div> +<div id='d383' class='colors'> +burlywood2</div> +<div id='d384' class='colors'> +AntiqueWhite1</div> +<div id='d385' class='colors'> +burlywood4</div> +<div id='d386' class='colors'> +AntiqueWhite3</div> +<div id='d387' class='colors'> +DarkOrange</div> +<div id='d388' class='colors'> +bisque2</div> +<div id='d389' class='colors'> +bisque</div> +<div id='d390' class='colors'> +bisque1</div> +<div id='d391' class='colors'> +bisque3</div> +<div id='d392' class='colors'> +DarkOrange1</div> +<div id='d393' class='colors'> +linen</div> +<div id='d394' class='colors'> +DarkOrange2</div> +<div id='d395' class='colors'> +DarkOrange3</div> +<div id='d396' class='colors'> +DarkOrange4</div> +<div id='d397' class='colors'> +peru</div> +<div id='d398' class='colors'> +tan1</div> +<div id='d399' class='colors'> +tan2</div> +<div id='d400' class='colors'> +tan3</div> +<div id='d401' class='colors'> +tan4</div> +<div id='d402' class='colors'> +PeachPuff</div> +<div id='d403' class='colors'> +PeachPuff1</div> +<div id='d404' class='colors'> +PeachPuff4</div> +<div id='d405' class='colors'> +PeachPuff2</div> +<div id='d406' class='colors'> +PeachPuff3</div> +<div id='d407' class='colors'> +SandyBrown</div> +<div id='d408' class='colors'> +seashell4</div> +<div id='d409' class='colors'> +seashell2</div> +<div id='d410' class='colors'> +seashell3</div> +<div id='d411' class='colors'> +chocolate</div> +<div id='d412' class='colors'> +chocolate1</div> +<div id='d413' class='colors'> +chocolate2</div> +<div id='d414' class='colors'> +chocolate3</div> +<div id='d415' class='colors'> +chocolate4</div> +<div id='d416' class='colors'> +SaddleBrown</div> +<div id='d417' class='colors'> +seashell</div> +<div id='d418' class='colors'> +seashell1</div> +<div id='d419' class='colors'> +sienna4</div> +<div id='d420' class='colors'> +sienna</div> +<div id='d421' class='colors'> +sienna1</div> +<div id='d422' class='colors'> +sienna2</div> +<div id='d423' class='colors'> +sienna3</div> +<div id='d424' class='colors'> +LightSalmon3</div> +<div id='d425' class='colors'> +LightSalmon</div> +<div id='d426' class='colors'> +LightSalmon1</div> +<div id='d427' class='colors'> +LightSalmon4</div> +<div id='d428' class='colors'> +LightSalmon2</div> +<div id='d429' class='colors'> +coral</div> +<div id='d430' class='colors'> +OrangeRed</div> +<div id='d431' class='colors'> +OrangeRed1</div> +<div id='d432' class='colors'> +OrangeRed2</div> +<div id='d433' class='colors'> +OrangeRed3</div> +<div id='d434' class='colors'> +OrangeRed4</div> +<div id='d435' class='colors'> +DarkSalmon</div> +<div id='d436' class='colors'> +salmon1</div> +<div id='d437' class='colors'> +salmon2</div> +<div id='d438' class='colors'> +salmon3</div> +<div id='d439' class='colors'> +salmon4</div> +<div id='d440' class='colors'> +coral1</div> +<div id='d441' class='colors'> +coral2</div> +<div id='d442' class='colors'> +coral3</div> +<div id='d443' class='colors'> +coral4</div> +<div id='d444' class='colors'> +tomato4</div> +<div id='d445' class='colors'> +tomato</div> +<div id='d446' class='colors'> +tomato1</div> +<div id='d447' class='colors'> +tomato2</div> +<div id='d448' class='colors'> +tomato3</div> +<div id='d449' class='colors'> +MistyRose4</div> +<div id='d450' class='colors'> +MistyRose2</div> +<div id='d451' class='colors'> +MistyRose</div> +<div id='d452' class='colors'> +MistyRose1</div> +<div id='d453' class='colors'> +salmon</div> +<div id='d454' class='colors'> +MistyRose3</div> +<div id='d455' class='colors'> +white</div> +<div id='d456' class='colors'> +gray100</div> +<div id='d457' class='colors'> +grey100</div> +<div id='d458' class='colors'> +grey100</div> +<div id='d459' class='colors'> +gray99</div> +<div id='d460' class='colors'> +grey99</div> +<div id='d461' class='colors'> +gray98</div> +<div id='d462' class='colors'> +grey98</div> +<div id='d463' class='colors'> +gray97</div> +<div id='d464' class='colors'> +grey97</div> +<div id='d465' class='colors'> +gray96</div> +<div id='d466' class='colors'> +grey96</div> +<div id='d467' class='colors'> +WhiteSmoke</div> +<div id='d468' class='colors'> +gray95</div> +<div id='d469' class='colors'> +grey95</div> +<div id='d470' class='colors'> +gray94</div> +<div id='d471' class='colors'> +grey94</div> +<div id='d472' class='colors'> +gray93</div> +<div id='d473' class='colors'> +grey93</div> +<div id='d474' class='colors'> +gray92</div> +<div id='d475' class='colors'> +grey92</div> +<div id='d476' class='colors'> +gray91</div> +<div id='d477' class='colors'> +grey91</div> +<div id='d478' class='colors'> +gray90</div> +<div id='d479' class='colors'> +grey90</div> +<div id='d480' class='colors'> +gray89</div> +<div id='d481' class='colors'> +grey89</div> +<div id='d482' class='colors'> +gray88</div> +<div id='d483' class='colors'> +grey88</div> +<div id='d484' class='colors'> +gray87</div> +<div id='d485' class='colors'> +grey87</div> +<div id='d486' class='colors'> +gainsboro</div> +<div id='d487' class='colors'> +gray86</div> +<div id='d488' class='colors'> +grey86</div> +<div id='d489' class='colors'> +gray85</div> +<div id='d490' class='colors'> +grey85</div> +<div id='d491' class='colors'> +gray84</div> +<div id='d492' class='colors'> +grey84</div> +<div id='d493' class='colors'> +gray83</div> +<div id='d494' class='colors'> +grey83</div> +<div id='d495' class='colors'> +LightGray</div> +<div id='d496' class='colors'> +LightGrey</div> +<div id='d497' class='colors'> +gray82</div> +<div id='d498' class='colors'> +grey82</div> +<div id='d499' class='colors'> +gray81</div> +<div id='d500' class='colors'> +grey81</div> +<div id='d501' class='colors'> +gray80</div> +<div id='d502' class='colors'> +grey80</div> +<div id='d503' class='colors'> +gray79</div> +<div id='d504' class='colors'> +grey79</div> +<div id='d505' class='colors'> +gray78</div> +<div id='d506' class='colors'> +grey78</div> +<div id='d507' class='colors'> +gray77</div> +<div id='d508' class='colors'> +grey77</div> +<div id='d509' class='colors'> +gray76</div> +<div id='d510' class='colors'> +grey76</div> +<div id='d511' class='colors'> +silver</div> +<div id='d512' class='colors'> +gray75</div> +<div id='d513' class='colors'> +grey75</div> +<div id='d514' class='colors'> +gray74</div> +<div id='d515' class='colors'> +grey74</div> +<div id='d516' class='colors'> +gray73</div> +<div id='d517' class='colors'> +grey73</div> +<div id='d518' class='colors'> +gray72</div> +<div id='d519' class='colors'> +grey72</div> +<div id='d520' class='colors'> +gray71</div> +<div id='d521' class='colors'> +grey71</div> +<div id='d522' class='colors'> +gray70</div> +<div id='d523' class='colors'> +grey70</div> +<div id='d524' class='colors'> +gray69</div> +<div id='d525' class='colors'> +grey69</div> +<div id='d526' class='colors'> +gray68</div> +<div id='d527' class='colors'> +grey68</div> +<div id='d528' class='colors'> +gray67</div> +<div id='d529' class='colors'> +grey67</div> +<div id='d530' class='colors'> +DarkGray</div> +<div id='d531' class='colors'> +DarkGrey</div> +<div id='d532' class='colors'> +gray66</div> +<div id='d533' class='colors'> +grey66</div> +<div id='d534' class='colors'> +gray65</div> +<div id='d535' class='colors'> +grey65</div> +<div id='d536' class='colors'> +gray64</div> +<div id='d537' class='colors'> +grey64</div> +<div id='d538' class='colors'> +gray63</div> +<div id='d539' class='colors'> +grey63</div> +<div id='d540' class='colors'> +gray62</div> +<div id='d541' class='colors'> +grey62</div> +<div id='d542' class='colors'> +gray61</div> +<div id='d543' class='colors'> +grey61</div> +<div id='d544' class='colors'> +gray60</div> +<div id='d545' class='colors'> +grey60</div> +<div id='d546' class='colors'> +gray59</div> +<div id='d547' class='colors'> +grey59</div> +<div id='d548' class='colors'> +gray58</div> +<div id='d549' class='colors'> +grey58</div> +<div id='d550' class='colors'> +gray57</div> +<div id='d551' class='colors'> +grey57</div> +<div id='d552' class='colors'> +gray56</div> +<div id='d553' class='colors'> +grey56</div> +<div id='d554' class='colors'> +gray55</div> +<div id='d555' class='colors'> +grey55</div> +<div id='d556' class='colors'> +gray54</div> +<div id='d557' class='colors'> +grey54</div> +<div id='d558' class='colors'> +gray53</div> +<div id='d559' class='colors'> +grey53</div> +<div id='d560' class='colors'> +gray52</div> +<div id='d561' class='colors'> +grey52</div> +<div id='d562' class='colors'> +gray51</div> +<div id='d563' class='colors'> +grey51</div> +<div id='d564' class='colors'> +fractal</div> +<div id='d565' class='colors'> +gray50</div> +<div id='d566' class='colors'> +grey50</div> +<div id='d567' class='colors'> +gray</div> +<div id='d568' class='colors'> +gray49</div> +<div id='d569' class='colors'> +grey49</div> +<div id='d570' class='colors'> +gray48</div> +<div id='d571' class='colors'> +grey48</div> +<div id='d572' class='colors'> +gray47</div> +<div id='d573' class='colors'> +grey47</div> +<div id='d574' class='colors'> +gray46</div> +<div id='d575' class='colors'> +grey46</div> +<div id='d576' class='colors'> +gray45</div> +<div id='d577' class='colors'> +grey45</div> +<div id='d578' class='colors'> +gray44</div> +<div id='d579' class='colors'> +grey44</div> +<div id='d580' class='colors'> +gray43</div> +<div id='d581' class='colors'> +grey43</div> +<div id='d582' class='colors'> +gray42</div> +<div id='d583' class='colors'> +grey42</div> +<div id='d584' class='colors'> +DimGray</div> +<div id='d585' class='colors'> +DimGrey</div> +<div id='d586' class='colors'> +gray41</div> +<div id='d587' class='colors'> +grey41</div> +<div id='d588' class='colors'> +gray40</div> +<div id='d589' class='colors'> +grey40</div> +<div id='d590' class='colors'> +gray39</div> +<div id='d591' class='colors'> +grey39</div> +<div id='d592' class='colors'> +gray38</div> +<div id='d593' class='colors'> +grey38</div> +<div id='d594' class='colors'> +gray37</div> +<div id='d595' class='colors'> +grey37</div> +<div id='d596' class='colors'> +gray36</div> +<div id='d597' class='colors'> +grey36</div> +<div id='d598' class='colors'> +gray35</div> +<div id='d599' class='colors'> +grey35</div> +<div id='d600' class='colors'> +gray34</div> +<div id='d601' class='colors'> +grey34</div> +<div id='d602' class='colors'> +gray33</div> +<div id='d603' class='colors'> +grey33</div> +<div id='d604' class='colors'> +gray32</div> +<div id='d605' class='colors'> +grey32</div> +<div id='d606' class='colors'> +gray31</div> +<div id='d607' class='colors'> +grey31</div> +<div id='d608' class='colors'> +gray30</div> +<div id='d609' class='colors'> +grey30</div> +<div id='d610' class='colors'> +gray29</div> +<div id='d611' class='colors'> +grey29</div> +<div id='d612' class='colors'> +gray28</div> +<div id='d613' class='colors'> +grey28</div> +<div id='d614' class='colors'> +gray27</div> +<div id='d615' class='colors'> +grey27</div> +<div id='d616' class='colors'> +gray26</div> +<div id='d617' class='colors'> +grey26</div> +<div id='d618' class='colors'> +gray25</div> +<div id='d619' class='colors'> +grey25</div> +<div id='d620' class='colors'> +gray24</div> +<div id='d621' class='colors'> +grey24</div> +<div id='d622' class='colors'> +gray23</div> +<div id='d623' class='colors'> +grey23</div> +<div id='d624' class='colors'> +gray22</div> +<div id='d625' class='colors'> +grey22</div> +<div id='d626' class='colors'> +gray21</div> +<div id='d627' class='colors'> +grey21</div> +<div id='d628' class='colors'> +gray20</div> +<div id='d629' class='colors'> +grey20</div> +<div id='d630' class='colors'> +gray19</div> +<div id='d631' class='colors'> +grey19</div> +<div id='d632' class='colors'> +gray18</div> +<div id='d633' class='colors'> +grey18</div> +<div id='d634' class='colors'> +gray17</div> +<div id='d635' class='colors'> +grey17</div> +<div id='d636' class='colors'> +gray16</div> +<div id='d637' class='colors'> +grey16</div> +<div id='d638' class='colors'> +gray15</div> +<div id='d639' class='colors'> +grey15</div> +<div id='d640' class='colors'> +gray14</div> +<div id='d641' class='colors'> +grey14</div> +<div id='d642' class='colors'> +gray13</div> +<div id='d643' class='colors'> +grey13</div> +<div id='d644' class='colors'> +gray12</div> +<div id='d645' class='colors'> +grey12</div> +<div id='d646' class='colors'> +gray11</div> +<div id='d647' class='colors'> +grey11</div> +<div id='d648' class='colors'> +gray10</div> +<div id='d649' class='colors'> +grey10</div> +<div id='d650' class='colors'> +gray9</div> +<div id='d651' class='colors'> +grey9</div> +<div id='d652' class='colors'> +gray8</div> +<div id='d653' class='colors'> +grey8</div> +<div id='d654' class='colors'> +gray7</div> +<div id='d655' class='colors'> +grey7</div> +<div id='d656' class='colors'> +gray6</div> +<div id='d657' class='colors'> +grey6</div> +<div id='d658' class='colors'> +gray5</div> +<div id='d659' class='colors'> +grey5</div> +<div id='d660' class='colors'> +gray4</div> +<div id='d661' class='colors'> +grey4</div> +<div id='d662' class='colors'> +gray3</div> +<div id='d663' class='colors'> +grey3</div> +<div id='d664' class='colors'> +gray2</div> +<div id='d665' class='colors'> +grey2</div> +<div id='d666' class='colors'> +gray1</div> +<div id='d667' class='colors'> +grey1</div> +<div id='d668' class='colors'> +black</div> +<div id='d669' class='colors'> +gray0</div> +<div id='d670' class='colors'> +grey0</div> +<div id='d671' class='colors'> +opaque</div> +<div id='d672' class='colors'> +none</div> +<div id='d673' class='colors'> +transparent</div> +</div> +</div> + +<div id='colornames'> +CLICK TO CHOOSE THE COLOR +</div> + +<div id='switches'> + +<span id='title'>OPTIONS</span> +<div id='hexswitch' class='theswitches'>CLICK TO USE HEX KEYS</div> +<br> +<div id='infoswitch' class='theswitches'>CLICK TO TOGGLE PALATE INFO<span id='infospace'></span></div> +<br> +<div id='backgroundswitch' class='theswitches'>CLICK TO TOGGLE BACKGROUNDS</div> +<br> +<div id='preview'></div> +<div id='nameholder'>YOU WILL CHOOSE:<input id='namespace' type='text'></input></div> +<br> +<span id='transparent'>to choose transparent as a color, click <span id='transbutton'>HERE</span></span> +</div> +</div> +<script type='text/javascript' src='jquery-1.6.4.min.js'></script> +<script type='text/javascript' src='colordict.js'></script> + +<script type='text/javascript'> + + +//setup dimensions +////////////////// + +function regolden(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num/ratio) + return newnum + } +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newval = goldenize(result) + propval = newval.toString()+'px' + if(propertystr == 'height'){ + $(idandselectr).css('width', propval) + } + else if(propertystr == 'width'){ + $(idandselectr).css('height', propval) + } + } +function shrinkwidth(arg){ + for(var i=0; i < 5; i++){ + arg = regolden(arg) + } + division = Math.round(arg) + return division +} + +function makecolorswidth(){ + colorswidth = shrinkwidth(window.innerWidth) + $('.colors').css('width', colorswidth.toString()+'px') +} +function makecolorsheight(){ + result = getproperty('.colors', 'width') + newval = regolden(result) + propval = newval.toString()+'px' + $('.colors').css('height', propval) +} +//the following function sets up the font sizes +//inrelation to the size of the hexswitch font +function setupfonts(){ + var firstfont = getproperty('#hexswitch', 'font-size') + var finalfont = goldenize(firstfont) + $('#namespace').css('font-size', finalfont+'px') + $('#namespace').css('width', $('#switches').css('width')) + var secondfont = getproperty('#namespace', 'font-size') + var finalfont = goldenize(secondfont) + $('#colornames').css('font-size', finalfont+'px') + $('#colornames').css('text-shadow', 'black 1px 2px') + var transfont = regolden(firstfont) + $('#transparent').css('font-size', transfont+'px') +} +function getcontainerwidth(){ + basis = $('.colors').css('width') + basis = parseInt(basis.slice(0,-2)) + secondbasis = '2px' + secondbasis = parseInt(secondbasis.slice(0,-2)) + widthval = (secondbasis*8)+(basis*4)+(goldenize(basis)-basis) + widthval = widthval.toString()+'px' + return widthval +} + +function makecontainerwidth(){ + var containerwidth = getcontainerwidth() + $('#container').css('width',containerwidth) + $('#viewarea').css('width',containerwidth) +} + + +function setupsides() + { + var basis = $('#container').css('width') + basis = parseInt(basis.slice(0,-2)) + remainder = (100-basis)/2 + widths = regolden(basis) + widths = widths.toString()+'px' + lateralbasis = regolden(remainder) + leftside = toString(lateralbasis)+'%' + rightside = toString(100-lateralbasis)+'%' + $('#colornames').css('left', leftside) + $('#switches').css({'width': widths, 'left': rightside}) + } +function previewdimensions(){ + first = $('#switches').css('width') + first = parseInt(first.slice(0,-2)) + width = regolden(first) + height = regolden(width) + width = width.toString()+'px' + height = height.toString()+'px' + $('#preview').css({'width':width, 'height':height}) +} +function setupdimensions(){ +makecolorswidth() +setupfonts() +makecolorsheight() +makecontainerwidth() +setupsides() +makegolden('#switches','width') +previewdimensions() +} +setupdimensions() +$(window).resize(function(){setupdimensions()}) +//$(window).resize()(function(){setupdimensions()}) + +//BEGIN STYLINGS// +////////////////// + + +var old = {}; +function hovercss(sel, uno){ + + var chng = {}; + chng['color'] = 'white'; + chng['text-shadow'] = 'black 1px 2px'; + chng['background-image'] = 'url(http://asdf.us/im/19/gradient_whitegray80_1321305183_1321305241_pepper_1321333403_pepper.jpg)'; + if(uno == 'over'){ + for(var key in chng){ + old[key] = $('#'+sel).css(key) + } + for(var key in chng){ + $('#'+sel).css(key, chng[key]) + } + } + if(uno == 'out'){ + for(var key in old){ + $('#'+sel).css(key, old[key]) + } + } +} +$('.theswitches').hover(function(){hovercss(this.id, 'over')}, function(){hovercss(this.id, 'out')}) + +var transcss = { + 'color':'#141414','box-shadow':'10px 10px 5px #141414', + 'background-color':'#D1D1D1','color':'#141414', + 'border-width':'2px','border-style':'outset','cursor':'pointer'} +$('#transbutton').css(transcss) +var hovertrans = { + 'background-color':'DarkGrey','color':'#383838','box-shadow':'5px 5px 2px #141414' +} +$('#transbutton').hover(function(){$('#transbutton').css(hovertrans)},function(){$('#transbutton').css(transcss)}) +//threewayselector for what goes in the divs +infostate = 1 +function switchinfo() + { + if(infostate == 0) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(divtoname[divlist[i]]) + }; + infostate = 1 + $('#infospace').html('(NAMES)'); + } + else if(infostate == 1) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html("") + }; + infostate = 2 + $('#infospace').html('(NONE)'); + } + else if(infostate == 2) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(nametohex[divtoname[divlist[i]]]) + }; + infostate = 0 + $('#infospace').html('(HEXES)'); + } + } +$('#infoswitch').hover(function(){$('#infospace').show()}, function(){$('#infospace').hide('slow')} ) +$('#infoswitch').click(function(){switchinfo()}) + + +backgroundstate = 2; +function switchbackground() + { + if(backgroundstate == 1) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image','url(http://dump.fm/static/img/bg.dither.gif)') + backgroundstate = 2; + $('#colornames').css('color', 'white') + $('#colornames').css('text-shadow', 'black 1px 2px') + } + else if(backgroundstate == 2) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image', 'none') + backgroundstate = 0 + } + else if(backgroundstate == 0) + { + $('#colorpicker').css('background-color', 'white') + $('#colorpicker').css('background-image', 'none') + $('#colornames').css('color', 'grey') + backgroundstate = 1 + } + } + +$('#backgroundswitch').click(function(){switchbackground()}) + +//takes a div name and returns a colorname + +function showcolorname(divstr) + + { + colorname = divtoname['#'+divstr] + hex = nametohex[colorname] + imname = hextoname[hex] + if (hexes == true) + { + imname = hex + } + + return imname + } +function bigname(divstr) + { + colorname = showcolorname(divstr) + $('#colornames').html(colorname) + + } +function writeit(text) + { + $('#colornames').append(text) + } +function makebig(divstr) + { + firstheight = $('#'+divstr).height() + newheight = goldenize(firstheight) + $('#'+divstr).height(newheight) + } +function makesmall(divstr) + { + oldheight = $('.colors').height() + $('#'+divstr).height(oldheight) + } +var choice; +$('.colors').hover(function() { + bigname(this.id); +// makebig(this.id); +// makegolden('#'+this.id, 'height')}, +//function(){ +// makesmall(this.id); +// makegolden('#'+this.id, 'height') +}); +$('.colors').mouseover(function(){ + if(this.id != 'd0'){ + makebig(this.id); + makegolden('#'+this.id, 'height') + }}) +$('.colors').mouseout(function(){ + makesmall(this.id); + makegolden('#'+this.id,'height'); + }) +$(".colors").hover(function(){ +$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); + }); +$('.colors').css('margin-top', '2px') +var hexes = false +function hexswitch() + { + if(hexes == false) + { + $('#hexswitch').html('CLICK TO USE COLOR NAMES') + hexes = true; + var nameval = $('#namespace').val() + $('#namespace').val(nametohex[nameval]) + } + + else + { + $('#hexswitch').html('CLICK TO USE HEX KEYS') + hexes = false; + var nameval = $('#namespace').val() + $('#namespace').val(hextoname[nameval]) + } + } +$('#hexswitch').click(function(){hexswitch()}) + +$('.colors').click(function(){ + putitin() + }) + +function putitin() + { + thecolor = $('#colornames').html() + $('#namespace').val(thecolor) + if(hexes == false){ + $('#preview').css({'background-color': nametohex[thecolor], 'border-style':'none'}) + } + else{ + $('#preview').css('background-color', thecolor) + } + + } +function transparent() + { + $('#namespace').val('transparent'); + $('#preview').css({'background-color':'transparent','border-style':'dashed','border-width':'2px'}) + } +$('#transbutton').click(function(){transparent()}) + +//$('#switches').bind('mousemove',function(e){ +// $("#colornames").html(" e.pageY: " + e.pageY); +//}); +vt.start("viewarea", "container"); + +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/colors/junk/separate b/frontend/imgrid/colors/colors/junk/separate new file mode 100755 index 0000000..b32bc49 --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/separate @@ -0,0 +1,126 @@ +#!/usr/bin/python2.7 + + +f = open('colors.html', 'r') +lines = f.readlines() +colornames = [] +hexes = [] +for line in lines: + if 'right' in line and 'td' in line: + colornames.append(line[22:-6]) + if '#' in line: + hexes.append(line[21:28]) + if line == lines[len(lines)-1]: + break +print len(hexes) +print len(colornames) +###making a dictionary +hextoname = {} +nametohex = {} +for i in hexes: + hextoname[i] = colornames[hexes.index(i)] +for i in colornames: + nametohex[i] = hexes[colornames.index(i)] +w = open('colordict.js', 'w') +w.write("var hextoname = "+str(hextoname)+"\n") +w.write("var nametohex = "+str(nametohex)+"\n") +w.close() +ds = [] +for x in range(674): + ds.append('d'+str(x)) + +#print hexes +#note last two hex values in lists are wrong for they correspond to none and transparent +w = open('colorsnew.html', 'w') +w.write("""<html>\n<head>\n +<style type='text/css'>\n +body\n{max-width:100%;\nmax-height:100%; \nfont-family:helvetica; \nfont-size:10px; \nword-wrap: break-word;}\n +div\n{display: -moz-inline-stack;\ndisplay:inline-block;\nvertical-align:top;\nmin-height: 30px;\nzoom: 1;\n*display: inline;}\n}\n +#main{width:600px;}\n""") +w.write("#colornames\n{position:fixed;\nfont-size:50px;\ntop:50px;\nright:50%;}") +for x in range(674): + w.write("\n#"+ds[x]+"\n{background-color:"+str(hexes[x])+"}\n") +w.write(".colors\n{height:30px;\nwidth:10px;}\n") +w.write("</style></head>") +w.write("<body>\n<div id='main'>\n") +for x in range(674): + w.write("<div id='"+ds[x]+"' class='colors'>\n"+colornames[x]+"</div>\n") +w.write("</div>\n") +w.write("<div id='colornames'>WHERE THE COLORNAMES WILL GO</div>") +w.write("<script type='text/javascript' src='jquery-1.6.4.min.js'></script>") +w.write("<script type='text/javascript' src='colordict.js'></script>\n") +w.write("\n<script type='text/javascript'>") +w.write("""\nfunction goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idstr, propertystr) + { + grab = $('.'+idstr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idstr, propertystr) + { + result = getproperty(idstr, propertystr) + newwidth = goldenize(result) + widthval = newwidth.toString()+'px' + $('.'+idstr).css('width', widthval) + } +makegolden('colors', 'height') +""") +w.write("""\n +//remove content this function takes the name out of the divs + +function removecontent() + { + $('.colors').html("") + } +removecontent()""") +w.write(""" + +function colorToHex(color) { + if (color.substr(0, 1) === '#') { + return color; + } + var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); + + var red = parseInt(digits[2]); + var green = parseInt(digits[3]); + var blue = parseInt(digits[4]); + + var rgb = blue | (green << 8) | (red << 16); + return digits[1] + '#' + rgb.toString(16); +}; + +//takes a div name and returns a colorname\n +function showcolorname(divstr)\n + {\n + bgcolor = $('#'+divstr).css('background-color') + lowercasehex = colorToHex(bgcolor) + hex = lowercasehex.toUpperCase() + imname = hextoname[hex] +/* if ($('#hexortext:checked').length == 1) + { + imname = hex + }*/ + return imname + } +function bigname(divstr) + { + bebop = showcolorname(toString(divstr)) + $('#colornames').html(bebop) + } +$('.colors').mouseover(function() { + bigname(this.id); +}); + + + +""") +w.write("</script>") +w.write("\n</body>\n</html>") diff --git a/frontend/imgrid/colors/colors/junk/todo.txt b/frontend/imgrid/colors/colors/junk/todo.txt new file mode 100755 index 0000000..ff9ae66 --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/todo.txt @@ -0,0 +1,135 @@ +manyprettygradients: +finish formatting tumblr +put on autoscroll +think about font (minoan) THIS IS WHY WE NEED TEXT BLASTER +turn it to a bot + pre-step: delete everything on there + step 1: gradientscrape longerlogfile + step 2: post those + step 3: make gradientscrape call itself every 30 minutes + step 5: swipe??? + step 4: import the write function from main.py + + + + + + + + + + + + + + + + + + + + + + python 2.6 == /opt/python2.6/bin/python + + + JUANITA = True + #JUANITA = False + + + +from main.py, import * (follow_followers, reblog_posts, post_images) +process_followers() +reblog_posts() +post_images() + +def now (): + return int(time.mktime(time.localtime())) + +def save_seen (ids): + out = open (DUMP_SEEN+".tmp", "w") + for id in ids.keys(): + out.write(id+"\n") + out.close() + system(["/bin/mv", DUMP_SEEN+".tmp", DUMP_SEEN]) + +def slurp (file): + input = open (file, "r") + lines = input.readlines() + input.close() + return lines + +def new_dump (dumps, seen): + id = random.choice(dumps.keys()) + while id in seen: + id = random.choice(dumps.keys()) + thedump = dumps[id] + seen[id] = True + save_seen(seen) + if JUANITA: + print thedump + else: + dump.say(thedump) + wait = random.randint(2,28)*30 + random.randint(1,55) + print "sleeping for", str(wait/60) + "m" + str(wait % 60) + "s..." + print + time.sleep(wait) + +def main (): + score_lines = slurp(DUMP_LIST) + dumps = {} + scored = {} + # first pass to work out the top score for each dump + for line in score_lines: + # 0 id 1 score 2 favers 3 urls + partz = line.split("\t") +#skipping over really old stuff + if int(partz[0]) < 3618853: + continue + + urls = partz[3].split(" ") + skip = False + for url in urls: + if "http" not in url: + skip = True + if skip: + continue + # dictionary: urls => (id, score) + if partz[3] in scored and int(partz[1]) > scored[partz[3]][1]: + scored[partz[3]] = (partz[0], int(partz[1])) + else: + scored[partz[3]] = (partz[0], int(partz[1])) + + except KeyError: + continue + except ValueError: + continue + + # second pass to weed out dumps with scores too high/low + for urls in scored.keys(): + if scored[urls][1] > 0 and scored[urls][1] < 6: + # dictionary: id => urls + dumps[scored[urls][0]] = urls.strip() + + seen_lines = slurp(DUMP_SEEN) + seen = {} + for line in seen_lines: + l = line.strip() + if len(l): + seen[l] = True + + print len(dumps), "dumps in queue" + print len(seen_lines), "dumped already" + + if JUANITA: + for i in xrange(10): + new_dump (dumps, seen) + else: + while (1): + new_dump (dumps, seen) + else: + print "TURNED OFF, sleeping for half an hour..." + time.sleep (30*60) + +main () + diff --git a/frontend/imgrid/colors/colors/junk/withscroller.html b/frontend/imgrid/colors/colors/junk/withscroller.html new file mode 100755 index 0000000..e1443c3 --- /dev/null +++ b/frontend/imgrid/colors/colors/junk/withscroller.html @@ -0,0 +1,3850 @@ +<html> +<head> +<link rel="stylesheet" type="text/css" href="ScrollEffect.css" /> +<script type="text/javascript" src="ScrollEffect.js"></script> + +<style type='text/css'> + +body +{ +margin:0; +} + +#colorpicker +{ +position:absolute; +width:100%; +font-family:helvetica; +font-size:10px; +//background-color: gray; +//background-image: url("http://asdf.us/im/6f/gradient_bgdither_1321255670_pepper.gif"); +background-color: black; +background-image: url("http://dump.fm/static/img/bg.dither.gif") + +} + +#container div +{ +text-align:left; +display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +min-height: 30px; +zoom: 1; +word-wrap: break-word; +*display: inline; +cursor:pointer; +} + +#container +{ +margin:0 auto; +width:31%; +padding-bottom:0px; +padding-right:10px; +padding-left:10px; +text-align:center; +position:absolute; +height:850px; +} + +#viewarea +{ +position: relative; +top: 10%; +width: 31%; +height: 820px; +overflow: hidden; +margin:0 auto; +padding-top:10px; +padding-right:10px; +padding-left:10px; +text-align:center; +border-style:outset; +border-width:10px; +} + +#colornames +{ +color:white; +position:fixed; +font-size:50px; +top:50px; +left:2%; +width:400px; +} + +#switches + { + position:fixed; + top:20px; + right:1%; + height:400px; + width:300px; + font-size:20px; + border-style: groove; + border-width: 4px; + background-color:gray; + padding:2px; + box-shadow: 10px 10px 5px #141414; + } + +#infoswitch, #hexswitch, #backgroundswitch + { + background-image:url(http://asdf.us/im/58/gradient_whitegray80_1321305183_1321305241_pepper.jpg); + cursor:pointer; + } +#preview + { + height:150px; + } + + +#holder + { + float:bottom; + } + +#transparent + { + font-size:12px; + } +#namespace + { + width:inherit; + } +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{ +height:30; +width:10px; +} +</style></head><body> +<div id='colorpicker'> +<div id='viewarea' class="panorama"> +<div id='container'> +<div id='d0' class='colors'> +snow</div> +<div id='d1' class='colors'> +snow1</div> +<div id='d2' class='colors'> +snow2</div> +<div id='d3' class='colors'> +RosyBrown1</div> +<div id='d4' class='colors'> +RosyBrown2</div> +<div id='d5' class='colors'> +snow3</div> +<div id='d6' class='colors'> +LightCoral</div> +<div id='d7' class='colors'> +IndianRed1</div> +<div id='d8' class='colors'> +RosyBrown3</div> +<div id='d9' class='colors'> +IndianRed2</div> +<div id='d10' class='colors'> +RosyBrown</div> +<div id='d11' class='colors'> +brown1</div> +<div id='d12' class='colors'> +firebrick1</div> +<div id='d13' class='colors'> +brown2</div> +<div id='d14' class='colors'> +IndianRed</div> +<div id='d15' class='colors'> +IndianRed3</div> +<div id='d16' class='colors'> +firebrick2</div> +<div id='d17' class='colors'> +snow4</div> +<div id='d18' class='colors'> +brown3</div> +<div id='d19' class='colors'> +red</div> +<div id='d20' class='colors'> +red1</div> +<div id='d21' class='colors'> +RosyBrown4</div> +<div id='d22' class='colors'> +firebrick3</div> +<div id='d23' class='colors'> +red2</div> +<div id='d24' class='colors'> +firebrick</div> +<div id='d25' class='colors'> +brown</div> +<div id='d26' class='colors'> +red3</div> +<div id='d27' class='colors'> +IndianRed4</div> +<div id='d28' class='colors'> +brown4</div> +<div id='d29' class='colors'> +firebrick4</div> +<div id='d30' class='colors'> +DarkRed</div> +<div id='d31' class='colors'> +red4</div> +<div id='d32' class='colors'> +maroon</div> +<div id='d33' class='colors'> +LightPink1</div> +<div id='d34' class='colors'> +LightPink3</div> +<div id='d35' class='colors'> +LightPink4</div> +<div id='d36' class='colors'> +LightPink2</div> +<div id='d37' class='colors'> +LightPink</div> +<div id='d38' class='colors'> +pink</div> +<div id='d39' class='colors'> +crimson</div> +<div id='d40' class='colors'> +pink1</div> +<div id='d41' class='colors'> +pink2</div> +<div id='d42' class='colors'> +pink3</div> +<div id='d43' class='colors'> +pink4</div> +<div id='d44' class='colors'> +PaleVioletRed4</div> +<div id='d45' class='colors'> +PaleVioletRed</div> +<div id='d46' class='colors'> +PaleVioletRed2</div> +<div id='d47' class='colors'> +PaleVioletRed1</div> +<div id='d48' class='colors'> +PaleVioletRed3</div> +<div id='d49' class='colors'> +LavenderBlush</div> +<div id='d50' class='colors'> +LavenderBlush1</div> +<div id='d51' class='colors'> +LavenderBlush3</div> +<div id='d52' class='colors'> +LavenderBlush2</div> +<div id='d53' class='colors'> +LavenderBlush4</div> +<div id='d54' class='colors'> +maroon</div> +<div id='d55' class='colors'> +HotPink3</div> +<div id='d56' class='colors'> +VioletRed3</div> +<div id='d57' class='colors'> +VioletRed1</div> +<div id='d58' class='colors'> +VioletRed2</div> +<div id='d59' class='colors'> +VioletRed4</div> +<div id='d60' class='colors'> +HotPink2</div> +<div id='d61' class='colors'> +HotPink1</div> +<div id='d62' class='colors'> +HotPink4</div> +<div id='d63' class='colors'> +HotPink</div> +<div id='d64' class='colors'> +DeepPink</div> +<div id='d65' class='colors'> +DeepPink1</div> +<div id='d66' class='colors'> +DeepPink2</div> +<div id='d67' class='colors'> +DeepPink3</div> +<div id='d68' class='colors'> +DeepPink4</div> +<div id='d69' class='colors'> +maroon1</div> +<div id='d70' class='colors'> +maroon2</div> +<div id='d71' class='colors'> +maroon3</div> +<div id='d72' class='colors'> +maroon4</div> +<div id='d73' class='colors'> +MediumVioletRed</div> +<div id='d74' class='colors'> +VioletRed</div> +<div id='d75' class='colors'> +orchid2</div> +<div id='d76' class='colors'> +orchid</div> +<div id='d77' class='colors'> +orchid1</div> +<div id='d78' class='colors'> +orchid3</div> +<div id='d79' class='colors'> +orchid4</div> +<div id='d80' class='colors'> +thistle1</div> +<div id='d81' class='colors'> +thistle2</div> +<div id='d82' class='colors'> +plum1</div> +<div id='d83' class='colors'> +plum2</div> +<div id='d84' class='colors'> +thistle</div> +<div id='d85' class='colors'> +thistle3</div> +<div id='d86' class='colors'> +plum</div> +<div id='d87' class='colors'> +violet</div> +<div id='d88' class='colors'> +plum3</div> +<div id='d89' class='colors'> +thistle4</div> +<div id='d90' class='colors'> +fuchsia</div> +<div id='d91' class='colors'> +magenta</div> +<div id='d92' class='colors'> +magenta1</div> +<div id='d93' class='colors'> +plum4</div> +<div id='d94' class='colors'> +magenta2</div> +<div id='d95' class='colors'> +magenta3</div> +<div id='d96' class='colors'> +DarkMagenta</div> +<div id='d97' class='colors'> +magenta4</div> +<div id='d98' class='colors'> +purple</div> +<div id='d99' class='colors'> +MediumOrchid</div> +<div id='d100' class='colors'> +MediumOrchid1</div> +<div id='d101' class='colors'> +MediumOrchid2</div> +<div id='d102' class='colors'> +MediumOrchid3</div> +<div id='d103' class='colors'> +MediumOrchid4</div> +<div id='d104' class='colors'> +DarkViolet</div> +<div id='d105' class='colors'> +DarkOrchid</div> +<div id='d106' class='colors'> +DarkOrchid1</div> +<div id='d107' class='colors'> +DarkOrchid3</div> +<div id='d108' class='colors'> +DarkOrchid2</div> +<div id='d109' class='colors'> +DarkOrchid4</div> +<div id='d110' class='colors'> +purple</div> +<div id='d111' class='colors'> +indigo</div> +<div id='d112' class='colors'> +BlueViolet</div> +<div id='d113' class='colors'> +purple2</div> +<div id='d114' class='colors'> +purple3</div> +<div id='d115' class='colors'> +purple4</div> +<div id='d116' class='colors'> +purple1</div> +<div id='d117' class='colors'> +MediumPurple</div> +<div id='d118' class='colors'> +MediumPurple1</div> +<div id='d119' class='colors'> +MediumPurple2</div> +<div id='d120' class='colors'> +MediumPurple3</div> +<div id='d121' class='colors'> +MediumPurple4</div> +<div id='d122' class='colors'> +DarkSlateBlue</div> +<div id='d123' class='colors'> +LightSlateBlue</div> +<div id='d124' class='colors'> +MediumSlateBlue</div> +<div id='d125' class='colors'> +SlateBlue</div> +<div id='d126' class='colors'> +SlateBlue1</div> +<div id='d127' class='colors'> +SlateBlue2</div> +<div id='d128' class='colors'> +SlateBlue3</div> +<div id='d129' class='colors'> +SlateBlue4</div> +<div id='d130' class='colors'> +GhostWhite</div> +<div id='d131' class='colors'> +lavender</div> +<div id='d132' class='colors'> +blue</div> +<div id='d133' class='colors'> +blue1</div> +<div id='d134' class='colors'> +blue2</div> +<div id='d135' class='colors'> +blue3</div> +<div id='d136' class='colors'> +MediumBlue</div> +<div id='d137' class='colors'> +blue4</div> +<div id='d138' class='colors'> +DarkBlue</div> +<div id='d139' class='colors'> +MidnightBlue</div> +<div id='d140' class='colors'> +navy</div> +<div id='d141' class='colors'> +NavyBlue</div> +<div id='d142' class='colors'> +RoyalBlue</div> +<div id='d143' class='colors'> +RoyalBlue1</div> +<div id='d144' class='colors'> +RoyalBlue2</div> +<div id='d145' class='colors'> +RoyalBlue3</div> +<div id='d146' class='colors'> +RoyalBlue4</div> +<div id='d147' class='colors'> +CornflowerBlue</div> +<div id='d148' class='colors'> +LightSteelBlue</div> +<div id='d149' class='colors'> +LightSteelBlue1</div> +<div id='d150' class='colors'> +LightSteelBlue2</div> +<div id='d151' class='colors'> +LightSteelBlue3</div> +<div id='d152' class='colors'> +LightSteelBlue4</div> +<div id='d153' class='colors'> +SlateGray4</div> +<div id='d154' class='colors'> +SlateGray1</div> +<div id='d155' class='colors'> +SlateGray2</div> +<div id='d156' class='colors'> +SlateGray3</div> +<div id='d157' class='colors'> +LightSlateGray</div> +<div id='d158' class='colors'> +LightSlateGrey</div> +<div id='d159' class='colors'> +SlateGray</div> +<div id='d160' class='colors'> +SlateGrey</div> +<div id='d161' class='colors'> +DodgerBlue</div> +<div id='d162' class='colors'> +DodgerBlue1</div> +<div id='d163' class='colors'> +DodgerBlue2</div> +<div id='d164' class='colors'> +DodgerBlue4</div> +<div id='d165' class='colors'> +DodgerBlue3</div> +<div id='d166' class='colors'> +AliceBlue</div> +<div id='d167' class='colors'> +SteelBlue4</div> +<div id='d168' class='colors'> +SteelBlue</div> +<div id='d169' class='colors'> +SteelBlue1</div> +<div id='d170' class='colors'> +SteelBlue2</div> +<div id='d171' class='colors'> +SteelBlue3</div> +<div id='d172' class='colors'> +SkyBlue4</div> +<div id='d173' class='colors'> +SkyBlue1</div> +<div id='d174' class='colors'> +SkyBlue2</div> +<div id='d175' class='colors'> +SkyBlue3</div> +<div id='d176' class='colors'> +LightSkyBlue</div> +<div id='d177' class='colors'> +LightSkyBlue4</div> +<div id='d178' class='colors'> +LightSkyBlue1</div> +<div id='d179' class='colors'> +LightSkyBlue2</div> +<div id='d180' class='colors'> +LightSkyBlue3</div> +<div id='d181' class='colors'> +SkyBlue</div> +<div id='d182' class='colors'> +LightBlue3</div> +<div id='d183' class='colors'> +DeepSkyBlue</div> +<div id='d184' class='colors'> +DeepSkyBlue1</div> +<div id='d185' class='colors'> +DeepSkyBlue2</div> +<div id='d186' class='colors'> +DeepSkyBlue4</div> +<div id='d187' class='colors'> +DeepSkyBlue3</div> +<div id='d188' class='colors'> +LightBlue1</div> +<div id='d189' class='colors'> +LightBlue2</div> +<div id='d190' class='colors'> +LightBlue</div> +<div id='d191' class='colors'> +LightBlue4</div> +<div id='d192' class='colors'> +PowderBlue</div> +<div id='d193' class='colors'> +CadetBlue1</div> +<div id='d194' class='colors'> +CadetBlue2</div> +<div id='d195' class='colors'> +CadetBlue3</div> +<div id='d196' class='colors'> +CadetBlue4</div> +<div id='d197' class='colors'> +turquoise1</div> +<div id='d198' class='colors'> +turquoise2</div> +<div id='d199' class='colors'> +turquoise3</div> +<div id='d200' class='colors'> +turquoise4</div> +<div id='d201' class='colors'> +cadet blue</div> +<div id='d202' class='colors'> +CadetBlue</div> +<div id='d203' class='colors'> +DarkTurquoise</div> +<div id='d204' class='colors'> +azure</div> +<div id='d205' class='colors'> +azure1</div> +<div id='d206' class='colors'> +LightCyan</div> +<div id='d207' class='colors'> +LightCyan1</div> +<div id='d208' class='colors'> +azure2</div> +<div id='d209' class='colors'> +LightCyan2</div> +<div id='d210' class='colors'> +PaleTurquoise1</div> +<div id='d211' class='colors'> +PaleTurquoise</div> +<div id='d212' class='colors'> +PaleTurquoise2</div> +<div id='d213' class='colors'> +DarkSlateGray1</div> +<div id='d214' class='colors'> +azure3</div> +<div id='d215' class='colors'> +LightCyan3</div> +<div id='d216' class='colors'> +DarkSlateGray2</div> +<div id='d217' class='colors'> +PaleTurquoise3</div> +<div id='d218' class='colors'> +DarkSlateGray3</div> +<div id='d219' class='colors'> +azure4</div> +<div id='d220' class='colors'> +LightCyan4</div> +<div id='d221' class='colors'> +aqua</div> +<div id='d222' class='colors'> +cyan</div> +<div id='d223' class='colors'> +cyan1</div> +<div id='d224' class='colors'> +PaleTurquoise4</div> +<div id='d225' class='colors'> +cyan2</div> +<div id='d226' class='colors'> +DarkSlateGray4</div> +<div id='d227' class='colors'> +cyan3</div> +<div id='d228' class='colors'> +cyan4</div> +<div id='d229' class='colors'> +DarkCyan</div> +<div id='d230' class='colors'> +teal</div> +<div id='d231' class='colors'> +DarkSlateGray</div> +<div id='d232' class='colors'> +DarkSlateGrey</div> +<div id='d233' class='colors'> +MediumTurquoise</div> +<div id='d234' class='colors'> +LightSeaGreen</div> +<div id='d235' class='colors'> +turquoise</div> +<div id='d236' class='colors'> +aquamarine4</div> +<div id='d237' class='colors'> +aquamarine</div> +<div id='d238' class='colors'> +aquamarine1</div> +<div id='d239' class='colors'> +aquamarine2</div> +<div id='d240' class='colors'> +aquamarine3</div> +<div id='d241' class='colors'> +MediumAquamarine</div> +<div id='d242' class='colors'> +MediumSpringGreen</div> +<div id='d243' class='colors'> +MintCream</div> +<div id='d244' class='colors'> +SpringGreen</div> +<div id='d245' class='colors'> +SpringGreen1</div> +<div id='d246' class='colors'> +SpringGreen2</div> +<div id='d247' class='colors'> +SpringGreen3</div> +<div id='d248' class='colors'> +SpringGreen4</div> +<div id='d249' class='colors'> +MediumSeaGreen</div> +<div id='d250' class='colors'> +SeaGreen</div> +<div id='d251' class='colors'> +SeaGreen3</div> +<div id='d252' class='colors'> +SeaGreen1</div> +<div id='d253' class='colors'> +SeaGreen4</div> +<div id='d254' class='colors'> +SeaGreen2</div> +<div id='d255' class='colors'> +MediumForestGreen</div> +<div id='d256' class='colors'> +honeydew</div> +<div id='d257' class='colors'> +honeydew1</div> +<div id='d258' class='colors'> +honeydew2</div> +<div id='d259' class='colors'> +DarkSeaGreen1</div> +<div id='d260' class='colors'> +DarkSeaGreen2</div> +<div id='d261' class='colors'> +PaleGreen1</div> +<div id='d262' class='colors'> +PaleGreen</div> +<div id='d263' class='colors'> +honeydew3</div> +<div id='d264' class='colors'> +LightGreen</div> +<div id='d265' class='colors'> +PaleGreen2</div> +<div id='d266' class='colors'> +DarkSeaGreen3</div> +<div id='d267' class='colors'> +DarkSeaGreen</div> +<div id='d268' class='colors'> +PaleGreen3</div> +<div id='d269' class='colors'> +honeydew4</div> +<div id='d270' class='colors'> +green1</div> +<div id='d271' class='colors'> +lime</div> +<div id='d272' class='colors'> +LimeGreen</div> +<div id='d273' class='colors'> +DarkSeaGreen4</div> +<div id='d274' class='colors'> +green2</div> +<div id='d275' class='colors'> +PaleGreen4</div> +<div id='d276' class='colors'> +green3</div> +<div id='d277' class='colors'> +ForestGreen</div> +<div id='d278' class='colors'> +green4</div> +<div id='d279' class='colors'> +green</div> +<div id='d280' class='colors'> +DarkGreen</div> +<div id='d281' class='colors'> +LawnGreen</div> +<div id='d282' class='colors'> +chartreuse</div> +<div id='d283' class='colors'> +chartreuse1</div> +<div id='d284' class='colors'> +chartreuse2</div> +<div id='d285' class='colors'> +chartreuse3</div> +<div id='d286' class='colors'> +chartreuse4</div> +<div id='d287' class='colors'> +GreenYellow</div> +<div id='d288' class='colors'> +DarkOliveGreen3</div> +<div id='d289' class='colors'> +DarkOliveGreen1</div> +<div id='d290' class='colors'> +DarkOliveGreen2</div> +<div id='d291' class='colors'> +DarkOliveGreen4</div> +<div id='d292' class='colors'> +DarkOliveGreen</div> +<div id='d293' class='colors'> +OliveDrab</div> +<div id='d294' class='colors'> +OliveDrab1</div> +<div id='d295' class='colors'> +OliveDrab2</div> +<div id='d296' class='colors'> +OliveDrab3</div> +<div id='d297' class='colors'> +YellowGreen</div> +<div id='d298' class='colors'> +OliveDrab4</div> +<div id='d299' class='colors'> +ivory</div> +<div id='d300' class='colors'> +ivory1</div> +<div id='d301' class='colors'> +LightYellow</div> +<div id='d302' class='colors'> +LightYellow1</div> +<div id='d303' class='colors'> +beige</div> +<div id='d304' class='colors'> +ivory2</div> +<div id='d305' class='colors'> +LightGoldenrodYellow</div> +<div id='d306' class='colors'> +LightYellow2</div> +<div id='d307' class='colors'> +ivory3</div> +<div id='d308' class='colors'> +LightYellow3</div> +<div id='d309' class='colors'> +ivory4</div> +<div id='d310' class='colors'> +LightYellow4</div> +<div id='d311' class='colors'> +yellow</div> +<div id='d312' class='colors'> +yellow1</div> +<div id='d313' class='colors'> +yellow2</div> +<div id='d314' class='colors'> +yellow3</div> +<div id='d315' class='colors'> +yellow4</div> +<div id='d316' class='colors'> +olive</div> +<div id='d317' class='colors'> +DarkKhaki</div> +<div id='d318' class='colors'> +khaki2</div> +<div id='d319' class='colors'> +LemonChiffon4</div> +<div id='d320' class='colors'> +khaki1</div> +<div id='d321' class='colors'> +khaki3</div> +<div id='d322' class='colors'> +khaki4</div> +<div id='d323' class='colors'> +PaleGoldenrod</div> +<div id='d324' class='colors'> +LemonChiffon</div> +<div id='d325' class='colors'> +LemonChiffon1</div> +<div id='d326' class='colors'> +khaki</div> +<div id='d327' class='colors'> +LemonChiffon3</div> +<div id='d328' class='colors'> +LemonChiffon2</div> +<div id='d329' class='colors'> +MediumGoldenRod</div> +<div id='d330' class='colors'> +cornsilk4</div> +<div id='d331' class='colors'> +gold</div> +<div id='d332' class='colors'> +gold1</div> +<div id='d333' class='colors'> +gold2</div> +<div id='d334' class='colors'> +gold3</div> +<div id='d335' class='colors'> +gold4</div> +<div id='d336' class='colors'> +LightGoldenrod</div> +<div id='d337' class='colors'> +LightGoldenrod4</div> +<div id='d338' class='colors'> +LightGoldenrod1</div> +<div id='d339' class='colors'> +LightGoldenrod3</div> +<div id='d340' class='colors'> +LightGoldenrod2</div> +<div id='d341' class='colors'> +cornsilk3</div> +<div id='d342' class='colors'> +cornsilk2</div> +<div id='d343' class='colors'> +cornsilk</div> +<div id='d344' class='colors'> +cornsilk1</div> +<div id='d345' class='colors'> +goldenrod</div> +<div id='d346' class='colors'> +goldenrod1</div> +<div id='d347' class='colors'> +goldenrod2</div> +<div id='d348' class='colors'> +goldenrod3</div> +<div id='d349' class='colors'> +goldenrod4</div> +<div id='d350' class='colors'> +DarkGoldenrod</div> +<div id='d351' class='colors'> +DarkGoldenrod1</div> +<div id='d352' class='colors'> +DarkGoldenrod2</div> +<div id='d353' class='colors'> +DarkGoldenrod3</div> +<div id='d354' class='colors'> +DarkGoldenrod4</div> +<div id='d355' class='colors'> +FloralWhite</div> +<div id='d356' class='colors'> +wheat2</div> +<div id='d357' class='colors'> +OldLace</div> +<div id='d358' class='colors'> +wheat</div> +<div id='d359' class='colors'> +wheat1</div> +<div id='d360' class='colors'> +wheat3</div> +<div id='d361' class='colors'> +orange</div> +<div id='d362' class='colors'> +orange1</div> +<div id='d363' class='colors'> +orange2</div> +<div id='d364' class='colors'> +orange3</div> +<div id='d365' class='colors'> +orange4</div> +<div id='d366' class='colors'> +wheat4</div> +<div id='d367' class='colors'> +moccasin</div> +<div id='d368' class='colors'> +PapayaWhip</div> +<div id='d369' class='colors'> +NavajoWhite3</div> +<div id='d370' class='colors'> +BlanchedAlmond</div> +<div id='d371' class='colors'> +NavajoWhite</div> +<div id='d372' class='colors'> +NavajoWhite1</div> +<div id='d373' class='colors'> +NavajoWhite2</div> +<div id='d374' class='colors'> +NavajoWhite4</div> +<div id='d375' class='colors'> +AntiqueWhite4</div> +<div id='d376' class='colors'> +AntiqueWhite</div> +<div id='d377' class='colors'> +tan</div> +<div id='d378' class='colors'> +bisque4</div> +<div id='d379' class='colors'> +burlywood</div> +<div id='d380' class='colors'> +AntiqueWhite2</div> +<div id='d381' class='colors'> +burlywood1</div> +<div id='d382' class='colors'> +burlywood3</div> +<div id='d383' class='colors'> +burlywood2</div> +<div id='d384' class='colors'> +AntiqueWhite1</div> +<div id='d385' class='colors'> +burlywood4</div> +<div id='d386' class='colors'> +AntiqueWhite3</div> +<div id='d387' class='colors'> +DarkOrange</div> +<div id='d388' class='colors'> +bisque2</div> +<div id='d389' class='colors'> +bisque</div> +<div id='d390' class='colors'> +bisque1</div> +<div id='d391' class='colors'> +bisque3</div> +<div id='d392' class='colors'> +DarkOrange1</div> +<div id='d393' class='colors'> +linen</div> +<div id='d394' class='colors'> +DarkOrange2</div> +<div id='d395' class='colors'> +DarkOrange3</div> +<div id='d396' class='colors'> +DarkOrange4</div> +<div id='d397' class='colors'> +peru</div> +<div id='d398' class='colors'> +tan1</div> +<div id='d399' class='colors'> +tan2</div> +<div id='d400' class='colors'> +tan3</div> +<div id='d401' class='colors'> +tan4</div> +<div id='d402' class='colors'> +PeachPuff</div> +<div id='d403' class='colors'> +PeachPuff1</div> +<div id='d404' class='colors'> +PeachPuff4</div> +<div id='d405' class='colors'> +PeachPuff2</div> +<div id='d406' class='colors'> +PeachPuff3</div> +<div id='d407' class='colors'> +SandyBrown</div> +<div id='d408' class='colors'> +seashell4</div> +<div id='d409' class='colors'> +seashell2</div> +<div id='d410' class='colors'> +seashell3</div> +<div id='d411' class='colors'> +chocolate</div> +<div id='d412' class='colors'> +chocolate1</div> +<div id='d413' class='colors'> +chocolate2</div> +<div id='d414' class='colors'> +chocolate3</div> +<div id='d415' class='colors'> +chocolate4</div> +<div id='d416' class='colors'> +SaddleBrown</div> +<div id='d417' class='colors'> +seashell</div> +<div id='d418' class='colors'> +seashell1</div> +<div id='d419' class='colors'> +sienna4</div> +<div id='d420' class='colors'> +sienna</div> +<div id='d421' class='colors'> +sienna1</div> +<div id='d422' class='colors'> +sienna2</div> +<div id='d423' class='colors'> +sienna3</div> +<div id='d424' class='colors'> +LightSalmon3</div> +<div id='d425' class='colors'> +LightSalmon</div> +<div id='d426' class='colors'> +LightSalmon1</div> +<div id='d427' class='colors'> +LightSalmon4</div> +<div id='d428' class='colors'> +LightSalmon2</div> +<div id='d429' class='colors'> +coral</div> +<div id='d430' class='colors'> +OrangeRed</div> +<div id='d431' class='colors'> +OrangeRed1</div> +<div id='d432' class='colors'> +OrangeRed2</div> +<div id='d433' class='colors'> +OrangeRed3</div> +<div id='d434' class='colors'> +OrangeRed4</div> +<div id='d435' class='colors'> +DarkSalmon</div> +<div id='d436' class='colors'> +salmon1</div> +<div id='d437' class='colors'> +salmon2</div> +<div id='d438' class='colors'> +salmon3</div> +<div id='d439' class='colors'> +salmon4</div> +<div id='d440' class='colors'> +coral1</div> +<div id='d441' class='colors'> +coral2</div> +<div id='d442' class='colors'> +coral3</div> +<div id='d443' class='colors'> +coral4</div> +<div id='d444' class='colors'> +tomato4</div> +<div id='d445' class='colors'> +tomato</div> +<div id='d446' class='colors'> +tomato1</div> +<div id='d447' class='colors'> +tomato2</div> +<div id='d448' class='colors'> +tomato3</div> +<div id='d449' class='colors'> +MistyRose4</div> +<div id='d450' class='colors'> +MistyRose2</div> +<div id='d451' class='colors'> +MistyRose</div> +<div id='d452' class='colors'> +MistyRose1</div> +<div id='d453' class='colors'> +salmon</div> +<div id='d454' class='colors'> +MistyRose3</div> +<div id='d455' class='colors'> +white</div> +<div id='d456' class='colors'> +gray100</div> +<div id='d457' class='colors'> +grey100</div> +<div id='d458' class='colors'> +grey100</div> +<div id='d459' class='colors'> +gray99</div> +<div id='d460' class='colors'> +grey99</div> +<div id='d461' class='colors'> +gray98</div> +<div id='d462' class='colors'> +grey98</div> +<div id='d463' class='colors'> +gray97</div> +<div id='d464' class='colors'> +grey97</div> +<div id='d465' class='colors'> +gray96</div> +<div id='d466' class='colors'> +grey96</div> +<div id='d467' class='colors'> +WhiteSmoke</div> +<div id='d468' class='colors'> +gray95</div> +<div id='d469' class='colors'> +grey95</div> +<div id='d470' class='colors'> +gray94</div> +<div id='d471' class='colors'> +grey94</div> +<div id='d472' class='colors'> +gray93</div> +<div id='d473' class='colors'> +grey93</div> +<div id='d474' class='colors'> +gray92</div> +<div id='d475' class='colors'> +grey92</div> +<div id='d476' class='colors'> +gray91</div> +<div id='d477' class='colors'> +grey91</div> +<div id='d478' class='colors'> +gray90</div> +<div id='d479' class='colors'> +grey90</div> +<div id='d480' class='colors'> +gray89</div> +<div id='d481' class='colors'> +grey89</div> +<div id='d482' class='colors'> +gray88</div> +<div id='d483' class='colors'> +grey88</div> +<div id='d484' class='colors'> +gray87</div> +<div id='d485' class='colors'> +grey87</div> +<div id='d486' class='colors'> +gainsboro</div> +<div id='d487' class='colors'> +gray86</div> +<div id='d488' class='colors'> +grey86</div> +<div id='d489' class='colors'> +gray85</div> +<div id='d490' class='colors'> +grey85</div> +<div id='d491' class='colors'> +gray84</div> +<div id='d492' class='colors'> +grey84</div> +<div id='d493' class='colors'> +gray83</div> +<div id='d494' class='colors'> +grey83</div> +<div id='d495' class='colors'> +LightGray</div> +<div id='d496' class='colors'> +LightGrey</div> +<div id='d497' class='colors'> +gray82</div> +<div id='d498' class='colors'> +grey82</div> +<div id='d499' class='colors'> +gray81</div> +<div id='d500' class='colors'> +grey81</div> +<div id='d501' class='colors'> +gray80</div> +<div id='d502' class='colors'> +grey80</div> +<div id='d503' class='colors'> +gray79</div> +<div id='d504' class='colors'> +grey79</div> +<div id='d505' class='colors'> +gray78</div> +<div id='d506' class='colors'> +grey78</div> +<div id='d507' class='colors'> +gray77</div> +<div id='d508' class='colors'> +grey77</div> +<div id='d509' class='colors'> +gray76</div> +<div id='d510' class='colors'> +grey76</div> +<div id='d511' class='colors'> +silver</div> +<div id='d512' class='colors'> +gray75</div> +<div id='d513' class='colors'> +grey75</div> +<div id='d514' class='colors'> +gray74</div> +<div id='d515' class='colors'> +grey74</div> +<div id='d516' class='colors'> +gray73</div> +<div id='d517' class='colors'> +grey73</div> +<div id='d518' class='colors'> +gray72</div> +<div id='d519' class='colors'> +grey72</div> +<div id='d520' class='colors'> +gray71</div> +<div id='d521' class='colors'> +grey71</div> +<div id='d522' class='colors'> +gray70</div> +<div id='d523' class='colors'> +grey70</div> +<div id='d524' class='colors'> +gray69</div> +<div id='d525' class='colors'> +grey69</div> +<div id='d526' class='colors'> +gray68</div> +<div id='d527' class='colors'> +grey68</div> +<div id='d528' class='colors'> +gray67</div> +<div id='d529' class='colors'> +grey67</div> +<div id='d530' class='colors'> +DarkGray</div> +<div id='d531' class='colors'> +DarkGrey</div> +<div id='d532' class='colors'> +gray66</div> +<div id='d533' class='colors'> +grey66</div> +<div id='d534' class='colors'> +gray65</div> +<div id='d535' class='colors'> +grey65</div> +<div id='d536' class='colors'> +gray64</div> +<div id='d537' class='colors'> +grey64</div> +<div id='d538' class='colors'> +gray63</div> +<div id='d539' class='colors'> +grey63</div> +<div id='d540' class='colors'> +gray62</div> +<div id='d541' class='colors'> +grey62</div> +<div id='d542' class='colors'> +gray61</div> +<div id='d543' class='colors'> +grey61</div> +<div id='d544' class='colors'> +gray60</div> +<div id='d545' class='colors'> +grey60</div> +<div id='d546' class='colors'> +gray59</div> +<div id='d547' class='colors'> +grey59</div> +<div id='d548' class='colors'> +gray58</div> +<div id='d549' class='colors'> +grey58</div> +<div id='d550' class='colors'> +gray57</div> +<div id='d551' class='colors'> +grey57</div> +<div id='d552' class='colors'> +gray56</div> +<div id='d553' class='colors'> +grey56</div> +<div id='d554' class='colors'> +gray55</div> +<div id='d555' class='colors'> +grey55</div> +<div id='d556' class='colors'> +gray54</div> +<div id='d557' class='colors'> +grey54</div> +<div id='d558' class='colors'> +gray53</div> +<div id='d559' class='colors'> +grey53</div> +<div id='d560' class='colors'> +gray52</div> +<div id='d561' class='colors'> +grey52</div> +<div id='d562' class='colors'> +gray51</div> +<div id='d563' class='colors'> +grey51</div> +<div id='d564' class='colors'> +fractal</div> +<div id='d565' class='colors'> +gray50</div> +<div id='d566' class='colors'> +grey50</div> +<div id='d567' class='colors'> +gray</div> +<div id='d568' class='colors'> +gray49</div> +<div id='d569' class='colors'> +grey49</div> +<div id='d570' class='colors'> +gray48</div> +<div id='d571' class='colors'> +grey48</div> +<div id='d572' class='colors'> +gray47</div> +<div id='d573' class='colors'> +grey47</div> +<div id='d574' class='colors'> +gray46</div> +<div id='d575' class='colors'> +grey46</div> +<div id='d576' class='colors'> +gray45</div> +<div id='d577' class='colors'> +grey45</div> +<div id='d578' class='colors'> +gray44</div> +<div id='d579' class='colors'> +grey44</div> +<div id='d580' class='colors'> +gray43</div> +<div id='d581' class='colors'> +grey43</div> +<div id='d582' class='colors'> +gray42</div> +<div id='d583' class='colors'> +grey42</div> +<div id='d584' class='colors'> +DimGray</div> +<div id='d585' class='colors'> +DimGrey</div> +<div id='d586' class='colors'> +gray41</div> +<div id='d587' class='colors'> +grey41</div> +<div id='d588' class='colors'> +gray40</div> +<div id='d589' class='colors'> +grey40</div> +<div id='d590' class='colors'> +gray39</div> +<div id='d591' class='colors'> +grey39</div> +<div id='d592' class='colors'> +gray38</div> +<div id='d593' class='colors'> +grey38</div> +<div id='d594' class='colors'> +gray37</div> +<div id='d595' class='colors'> +grey37</div> +<div id='d596' class='colors'> +gray36</div> +<div id='d597' class='colors'> +grey36</div> +<div id='d598' class='colors'> +gray35</div> +<div id='d599' class='colors'> +grey35</div> +<div id='d600' class='colors'> +gray34</div> +<div id='d601' class='colors'> +grey34</div> +<div id='d602' class='colors'> +gray33</div> +<div id='d603' class='colors'> +grey33</div> +<div id='d604' class='colors'> +gray32</div> +<div id='d605' class='colors'> +grey32</div> +<div id='d606' class='colors'> +gray31</div> +<div id='d607' class='colors'> +grey31</div> +<div id='d608' class='colors'> +gray30</div> +<div id='d609' class='colors'> +grey30</div> +<div id='d610' class='colors'> +gray29</div> +<div id='d611' class='colors'> +grey29</div> +<div id='d612' class='colors'> +gray28</div> +<div id='d613' class='colors'> +grey28</div> +<div id='d614' class='colors'> +gray27</div> +<div id='d615' class='colors'> +grey27</div> +<div id='d616' class='colors'> +gray26</div> +<div id='d617' class='colors'> +grey26</div> +<div id='d618' class='colors'> +gray25</div> +<div id='d619' class='colors'> +grey25</div> +<div id='d620' class='colors'> +gray24</div> +<div id='d621' class='colors'> +grey24</div> +<div id='d622' class='colors'> +gray23</div> +<div id='d623' class='colors'> +grey23</div> +<div id='d624' class='colors'> +gray22</div> +<div id='d625' class='colors'> +grey22</div> +<div id='d626' class='colors'> +gray21</div> +<div id='d627' class='colors'> +grey21</div> +<div id='d628' class='colors'> +gray20</div> +<div id='d629' class='colors'> +grey20</div> +<div id='d630' class='colors'> +gray19</div> +<div id='d631' class='colors'> +grey19</div> +<div id='d632' class='colors'> +gray18</div> +<div id='d633' class='colors'> +grey18</div> +<div id='d634' class='colors'> +gray17</div> +<div id='d635' class='colors'> +grey17</div> +<div id='d636' class='colors'> +gray16</div> +<div id='d637' class='colors'> +grey16</div> +<div id='d638' class='colors'> +gray15</div> +<div id='d639' class='colors'> +grey15</div> +<div id='d640' class='colors'> +gray14</div> +<div id='d641' class='colors'> +grey14</div> +<div id='d642' class='colors'> +gray13</div> +<div id='d643' class='colors'> +grey13</div> +<div id='d644' class='colors'> +gray12</div> +<div id='d645' class='colors'> +grey12</div> +<div id='d646' class='colors'> +gray11</div> +<div id='d647' class='colors'> +grey11</div> +<div id='d648' class='colors'> +gray10</div> +<div id='d649' class='colors'> +grey10</div> +<div id='d650' class='colors'> +gray9</div> +<div id='d651' class='colors'> +grey9</div> +<div id='d652' class='colors'> +gray8</div> +<div id='d653' class='colors'> +grey8</div> +<div id='d654' class='colors'> +gray7</div> +<div id='d655' class='colors'> +grey7</div> +<div id='d656' class='colors'> +gray6</div> +<div id='d657' class='colors'> +grey6</div> +<div id='d658' class='colors'> +gray5</div> +<div id='d659' class='colors'> +grey5</div> +<div id='d660' class='colors'> +gray4</div> +<div id='d661' class='colors'> +grey4</div> +<div id='d662' class='colors'> +gray3</div> +<div id='d663' class='colors'> +grey3</div> +<div id='d664' class='colors'> +gray2</div> +<div id='d665' class='colors'> +grey2</div> +<div id='d666' class='colors'> +gray1</div> +<div id='d667' class='colors'> +grey1</div> +<div id='d668' class='colors'> +black</div> +<div id='d669' class='colors'> +gray0</div> +<div id='d670' class='colors'> +grey0</div> +<div id='d671' class='colors'> +opaque</div> +<div id='d672' class='colors'> +none</div> +<div id='d673' class='colors'> +transparent</div> +</div> +</div> + +<div id='colornames'> +CLICK TO CHOOSE THE COLOR +</div> + +<div id='switches'> + +<span id='title'>OPTIONS</span> +<div id='hexswitch' class='theswitches'>CLICK TO USE HEX KEYS</div> +<br> +<div id='infoswitch' class='theswitches'>CLICK TO TOGGLE PALATE INFO<span id='infospace'></span></div> +<br> +<div id='backgroundswitch' class='theswitches'>CLICK TO TOGGLE BACKGROUNDS</div> +<br> +<div id='preview'></div> +<div id='nameholder'>YOU WILL CHOOSE:<input id='namespace' type='text'></input></div> +<br> +<span id='transparent'>to choose transparent as a color, click <span id='transbutton'>HERE</span></span> +</div> +</div> +<script type='text/javascript' src='jquery-1.6.4.min.js'></script> +<script type='text/javascript' src='colordict.js'></script> + +<script type='text/javascript'> + + +//setup dimensions +////////////////// + +function regolden(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num/ratio) + return newnum + } +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newval = goldenize(result) + propval = newval.toString()+'px' + if(propertystr == 'height'){ + $(idandselectr).css('width', propval) + } + else if(propertystr == 'width'){ + $(idandselectr).css('height', propval) + } + } +function shrinkwidth(arg){ + for(var i=0; i < 5; i++){ + arg = regolden(arg) + } + division = Math.round(arg) + return division +} + +function makecolorswidth(){ + colorswidth = shrinkwidth(window.innerWidth) + $('.colors').css('width', colorswidth.toString()+'px') +} +function makecolorsheight(){ + result = getproperty('.colors', 'width') + newval = regolden(result) + propval = newval.toString()+'px' + $('.colors').css('height', propval) +} +//the following function sets up the font sizes +//inrelation to the size of the hexswitch font +function setupfonts(){ + var firstfont = getproperty('#hexswitch', 'font-size') + var finalfont = goldenize(firstfont) + $('#namespace').css('font-size', finalfont+'px') + $('#namespace').css('width', $('#switches').css('width')) + var secondfont = getproperty('#namespace', 'font-size') + var finalfont = goldenize(secondfont) + $('#colornames').css('font-size', finalfont+'px') + $('#colornames').css('text-shadow', 'black 1px 2px') + var transfont = regolden(firstfont) + $('#transparent').css('font-size', transfont+'px') +} +function getcontainerwidth(){ + basis = $('.colors').css('width') + basis = parseInt(basis.slice(0,-2)) + secondbasis = '2px' + secondbasis = parseInt(secondbasis.slice(0,-2)) + widthval = (secondbasis*8)+(basis*4)+(goldenize(basis)-basis) + widthval = widthval.toString()+'px' + return widthval +} + +function makecontainerwidth(){ + var containerwidth = getcontainerwidth() + $('#container').css('width',containerwidth) + $('#viewarea').css('width',containerwidth) +} + + +function setupsides() + { + var basis = $('#container').css('width') + basis = parseInt(basis.slice(0,-2)) + remainder = (100-basis)/2 + widths = regolden(basis) + widths = widths.toString()+'px' + lateralbasis = regolden(remainder) + leftside = toString(lateralbasis)+'%' + rightside = toString(100-lateralbasis)+'%' + $('#colornames').css('left', leftside) + $('#switches').css({'width': widths, 'left': rightside}) + } +function previewdimensions(){ + first = $('#switches').css('width') + first = parseInt(first.slice(0,-2)) + width = regolden(first) + height = regolden(width) + width = width.toString()+'px' + height = height.toString()+'px' + $('#preview').css({'width':width, 'height':height}) +} +function setupdimensions(){ +makecolorswidth() +setupfonts() +makecolorsheight() +makecontainerwidth() +setupsides() +makegolden('#switches','width') +previewdimensions() +} +setupdimensions() +$(window).resize(function(){setupdimensions()}) +//$(window).resize()(function(){setupdimensions()}) + +//BEGIN STYLINGS// +////////////////// + + +var old = {}; +function hovercss(sel, uno){ + + var chng = {}; + chng['color'] = 'white'; + chng['text-shadow'] = 'black 1px 2px'; + chng['background-image'] = 'url(http://asdf.us/im/19/gradient_whitegray80_1321305183_1321305241_pepper_1321333403_pepper.jpg)'; + if(uno == 'over'){ + for(var key in chng){ + old[key] = $('#'+sel).css(key) + } + for(var key in chng){ + $('#'+sel).css(key, chng[key]) + } + } + if(uno == 'out'){ + for(var key in old){ + $('#'+sel).css(key, old[key]) + } + } +} +$('.theswitches').hover(function(){hovercss(this.id, 'over')}, function(){hovercss(this.id, 'out')}) + +var transcss = { + 'color':'#141414','box-shadow':'10px 10px 5px #141414', + 'background-color':'#D1D1D1','color':'#141414', + 'border-width':'2px','border-style':'outset','cursor':'pointer'} +$('#transbutton').css(transcss) +var hovertrans = { + 'background-color':'DarkGrey','color':'#383838','box-shadow':'5px 5px 2px #141414' +} +$('#transbutton').hover(function(){$('#transbutton').css(hovertrans)},function(){$('#transbutton').css(transcss)}) +//threewayselector for what goes in the divs +infostate = 1 +function switchinfo() + { + if(infostate == 0) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(divtoname[divlist[i]]) + }; + infostate = 1 + $('#infospace').html('(NAMES)'); + } + else if(infostate == 1) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html("") + }; + infostate = 2 + $('#infospace').html('(NONE)'); + } + else if(infostate == 2) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(nametohex[divtoname[divlist[i]]]) + }; + infostate = 0 + $('#infospace').html('(HEXES)'); + } + } +$('#infoswitch').hover(function(){$('#infospace').show()}, function(){$('#infospace').hide('slow')} ) +$('#infoswitch').click(function(){switchinfo()}) + + +backgroundstate = 2; +function switchbackground() + { + if(backgroundstate == 1) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image','url(http://dump.fm/static/img/bg.dither.gif)') + backgroundstate = 2; + $('#colornames').css('color', 'white') + $('#colornames').css('text-shadow', 'black 1px 2px') + } + else if(backgroundstate == 2) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image', 'none') + backgroundstate = 0 + } + else if(backgroundstate == 0) + { + $('#colorpicker').css('background-color', 'white') + $('#colorpicker').css('background-image', 'none') + $('#colornames').css('color', 'grey') + backgroundstate = 1 + } + } + +$('#backgroundswitch').click(function(){switchbackground()}) + +//takes a div name and returns a colorname + +function showcolorname(divstr) + + { + colorname = divtoname['#'+divstr] + hex = nametohex[colorname] + imname = hextoname[hex] + if (hexes == true) + { + imname = hex + } + + return imname + } +function bigname(divstr) + { + colorname = showcolorname(divstr) + $('#colornames').html(colorname) + + } +function writeit(text) + { + $('#colornames').append(text) + } +function makebig(divstr) + { + firstheight = $('#'+divstr).height() + newheight = goldenize(firstheight) + $('#'+divstr).height(newheight) + } +function makesmall(divstr) + { + oldheight = $('.colors').height() + $('#'+divstr).height(oldheight) + } +var choice; +$('.colors').hover(function() { + bigname(this.id); +// makebig(this.id); +// makegolden('#'+this.id, 'height')}, +//function(){ +// makesmall(this.id); +// makegolden('#'+this.id, 'height') +}); +$('.colors').mouseover(function(){ + if(this.id != 'd0'){ + makebig(this.id); + makegolden('#'+this.id, 'height') + }}) +$('.colors').mouseout(function(){ + makesmall(this.id); + makegolden('#'+this.id,'height'); + }) +$(".colors").hover(function(){ +$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); + }); +$('.colors').css('margin-top', '2px') +var hexes = false +function hexswitch() + { + if(hexes == false) + { + $('#hexswitch').html('CLICK TO USE COLOR NAMES') + hexes = true; + var nameval = $('#namespace').val() + $('#namespace').val(nametohex[nameval]) + } + + else + { + $('#hexswitch').html('CLICK TO USE HEX KEYS') + hexes = false; + var nameval = $('#namespace').val() + $('#namespace').val(hextoname[nameval]) + } + } +$('#hexswitch').click(function(){hexswitch()}) + +$('.colors').click(function(){ + putitin() + }) + +function putitin() + { + thecolor = $('#colornames').html() + $('#namespace').val(thecolor) + if(hexes == false){ + $('#preview').css({'background-color': nametohex[thecolor], 'border-style':'none'}) + } + else{ + $('#preview').css('background-color', thecolor) + } + + } +function transparent() + { + $('#namespace').val('transparent'); + $('#preview').css({'background-color':'transparent','border-style':'dashed','border-width':'2px'}) + } +$('#transbutton').click(function(){transparent()}) + +//$('#switches').bind('mousemove',function(e){ +// $("#colornames").html(" e.pageY: " + e.pageY); +//}); +vt.start("viewarea", "container"); + +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/colors/minimap.html b/frontend/imgrid/colors/colors/minimap.html new file mode 100755 index 0000000..5a5291e --- /dev/null +++ b/frontend/imgrid/colors/colors/minimap.html @@ -0,0 +1,3891 @@ +<html> +<head> + +<style type='text/css'> + +body +{ +margin:0; +} + +#colorpicker +{ + +width:100%; +font-family:helvetica; +font-size:10px; +//background-color: gray; +//background-image: url("http://asdf.us/im/6f/gradient_bgdither_1321255670_pepper.gif"); +background-color: black; +background-image: url("http://dump.fm/static/img/bg.dither.gif") + +} + +#container div +{ +text-align:left; +display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +min-height: 30px; +zoom: 1; +word-wrap: break-word; +*display: inline; +cursor:pointer; +} + +#container +{ +margin:0 auto; +width:31%; +padding-top:100px; +padding-right:10px; +padding-left:10px; +text-align:center; +overflow:auto; +height:1000px; +} + +#colornames +{ +color:white; +position:fixed; +font-size:50px; +top:50px; +left:2%; +width:400px; +} + +#switches + { + position:fixed; + top:20px; + right:1%; + height:400px; + width:300px; + font-size:20px; + border-style: groove; + border-width: 4px; + background-color:gray; + padding:2px; + box-shadow: 10px 10px 5px #141414; + } + +#infoswitch, #hexswitch, #backgroundswitch + { + background-image:url(http://asdf.us/im/58/gradient_whitegray80_1321305183_1321305241_pepper.jpg); + cursor:pointer; + } +#preview + { + height:150px; + } + + +#holder + { + float:bottom; + } + +#transparent + { + font-size:12px; + } +#namespace + { + width:inherit; + } +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{ +height:30; +width:10px; +} +</style></head><body> +<div id='colorpicker'> +<div id='container'> +<div id='d0' class='colors'> +snow</div> +<div id='d1' class='colors'> +snow1</div> +<div id='d2' class='colors'> +snow2</div> +<div id='d3' class='colors'> +RosyBrown1</div> +<div id='d4' class='colors'> +RosyBrown2</div> +<div id='d5' class='colors'> +snow3</div> +<div id='d6' class='colors'> +LightCoral</div> +<div id='d7' class='colors'> +IndianRed1</div> +<div id='d8' class='colors'> +RosyBrown3</div> +<div id='d9' class='colors'> +IndianRed2</div> +<div id='d10' class='colors'> +RosyBrown</div> +<div id='d11' class='colors'> +brown1</div> +<div id='d12' class='colors'> +firebrick1</div> +<div id='d13' class='colors'> +brown2</div> +<div id='d14' class='colors'> +IndianRed</div> +<div id='d15' class='colors'> +IndianRed3</div> +<div id='d16' class='colors'> +firebrick2</div> +<div id='d17' class='colors'> +snow4</div> +<div id='d18' class='colors'> +brown3</div> +<div id='d19' class='colors'> +red</div> +<div id='d20' class='colors'> +red1</div> +<div id='d21' class='colors'> +RosyBrown4</div> +<div id='d22' class='colors'> +firebrick3</div> +<div id='d23' class='colors'> +red2</div> +<div id='d24' class='colors'> +firebrick</div> +<div id='d25' class='colors'> +brown</div> +<div id='d26' class='colors'> +red3</div> +<div id='d27' class='colors'> +IndianRed4</div> +<div id='d28' class='colors'> +brown4</div> +<div id='d29' class='colors'> +firebrick4</div> +<div id='d30' class='colors'> +DarkRed</div> +<div id='d31' class='colors'> +red4</div> +<div id='d32' class='colors'> +maroon</div> +<div id='d33' class='colors'> +LightPink1</div> +<div id='d34' class='colors'> +LightPink3</div> +<div id='d35' class='colors'> +LightPink4</div> +<div id='d36' class='colors'> +LightPink2</div> +<div id='d37' class='colors'> +LightPink</div> +<div id='d38' class='colors'> +pink</div> +<div id='d39' class='colors'> +crimson</div> +<div id='d40' class='colors'> +pink1</div> +<div id='d41' class='colors'> +pink2</div> +<div id='d42' class='colors'> +pink3</div> +<div id='d43' class='colors'> +pink4</div> +<div id='d44' class='colors'> +PaleVioletRed4</div> +<div id='d45' class='colors'> +PaleVioletRed</div> +<div id='d46' class='colors'> +PaleVioletRed2</div> +<div id='d47' class='colors'> +PaleVioletRed1</div> +<div id='d48' class='colors'> +PaleVioletRed3</div> +<div id='d49' class='colors'> +LavenderBlush</div> +<div id='d50' class='colors'> +LavenderBlush1</div> +<div id='d51' class='colors'> +LavenderBlush3</div> +<div id='d52' class='colors'> +LavenderBlush2</div> +<div id='d53' class='colors'> +LavenderBlush4</div> +<div id='d54' class='colors'> +maroon</div> +<div id='d55' class='colors'> +HotPink3</div> +<div id='d56' class='colors'> +VioletRed3</div> +<div id='d57' class='colors'> +VioletRed1</div> +<div id='d58' class='colors'> +VioletRed2</div> +<div id='d59' class='colors'> +VioletRed4</div> +<div id='d60' class='colors'> +HotPink2</div> +<div id='d61' class='colors'> +HotPink1</div> +<div id='d62' class='colors'> +HotPink4</div> +<div id='d63' class='colors'> +HotPink</div> +<div id='d64' class='colors'> +DeepPink</div> +<div id='d65' class='colors'> +DeepPink1</div> +<div id='d66' class='colors'> +DeepPink2</div> +<div id='d67' class='colors'> +DeepPink3</div> +<div id='d68' class='colors'> +DeepPink4</div> +<div id='d69' class='colors'> +maroon1</div> +<div id='d70' class='colors'> +maroon2</div> +<div id='d71' class='colors'> +maroon3</div> +<div id='d72' class='colors'> +maroon4</div> +<div id='d73' class='colors'> +MediumVioletRed</div> +<div id='d74' class='colors'> +VioletRed</div> +<div id='d75' class='colors'> +orchid2</div> +<div id='d76' class='colors'> +orchid</div> +<div id='d77' class='colors'> +orchid1</div> +<div id='d78' class='colors'> +orchid3</div> +<div id='d79' class='colors'> +orchid4</div> +<div id='d80' class='colors'> +thistle1</div> +<div id='d81' class='colors'> +thistle2</div> +<div id='d82' class='colors'> +plum1</div> +<div id='d83' class='colors'> +plum2</div> +<div id='d84' class='colors'> +thistle</div> +<div id='d85' class='colors'> +thistle3</div> +<div id='d86' class='colors'> +plum</div> +<div id='d87' class='colors'> +violet</div> +<div id='d88' class='colors'> +plum3</div> +<div id='d89' class='colors'> +thistle4</div> +<div id='d90' class='colors'> +fuchsia</div> +<div id='d91' class='colors'> +magenta</div> +<div id='d92' class='colors'> +magenta1</div> +<div id='d93' class='colors'> +plum4</div> +<div id='d94' class='colors'> +magenta2</div> +<div id='d95' class='colors'> +magenta3</div> +<div id='d96' class='colors'> +DarkMagenta</div> +<div id='d97' class='colors'> +magenta4</div> +<div id='d98' class='colors'> +purple</div> +<div id='d99' class='colors'> +MediumOrchid</div> +<div id='d100' class='colors'> +MediumOrchid1</div> +<div id='d101' class='colors'> +MediumOrchid2</div> +<div id='d102' class='colors'> +MediumOrchid3</div> +<div id='d103' class='colors'> +MediumOrchid4</div> +<div id='d104' class='colors'> +DarkViolet</div> +<div id='d105' class='colors'> +DarkOrchid</div> +<div id='d106' class='colors'> +DarkOrchid1</div> +<div id='d107' class='colors'> +DarkOrchid3</div> +<div id='d108' class='colors'> +DarkOrchid2</div> +<div id='d109' class='colors'> +DarkOrchid4</div> +<div id='d110' class='colors'> +purple</div> +<div id='d111' class='colors'> +indigo</div> +<div id='d112' class='colors'> +BlueViolet</div> +<div id='d113' class='colors'> +purple2</div> +<div id='d114' class='colors'> +purple3</div> +<div id='d115' class='colors'> +purple4</div> +<div id='d116' class='colors'> +purple1</div> +<div id='d117' class='colors'> +MediumPurple</div> +<div id='d118' class='colors'> +MediumPurple1</div> +<div id='d119' class='colors'> +MediumPurple2</div> +<div id='d120' class='colors'> +MediumPurple3</div> +<div id='d121' class='colors'> +MediumPurple4</div> +<div id='d122' class='colors'> +DarkSlateBlue</div> +<div id='d123' class='colors'> +LightSlateBlue</div> +<div id='d124' class='colors'> +MediumSlateBlue</div> +<div id='d125' class='colors'> +SlateBlue</div> +<div id='d126' class='colors'> +SlateBlue1</div> +<div id='d127' class='colors'> +SlateBlue2</div> +<div id='d128' class='colors'> +SlateBlue3</div> +<div id='d129' class='colors'> +SlateBlue4</div> +<div id='d130' class='colors'> +GhostWhite</div> +<div id='d131' class='colors'> +lavender</div> +<div id='d132' class='colors'> +blue</div> +<div id='d133' class='colors'> +blue1</div> +<div id='d134' class='colors'> +blue2</div> +<div id='d135' class='colors'> +blue3</div> +<div id='d136' class='colors'> +MediumBlue</div> +<div id='d137' class='colors'> +blue4</div> +<div id='d138' class='colors'> +DarkBlue</div> +<div id='d139' class='colors'> +MidnightBlue</div> +<div id='d140' class='colors'> +navy</div> +<div id='d141' class='colors'> +NavyBlue</div> +<div id='d142' class='colors'> +RoyalBlue</div> +<div id='d143' class='colors'> +RoyalBlue1</div> +<div id='d144' class='colors'> +RoyalBlue2</div> +<div id='d145' class='colors'> +RoyalBlue3</div> +<div id='d146' class='colors'> +RoyalBlue4</div> +<div id='d147' class='colors'> +CornflowerBlue</div> +<div id='d148' class='colors'> +LightSteelBlue</div> +<div id='d149' class='colors'> +LightSteelBlue1</div> +<div id='d150' class='colors'> +LightSteelBlue2</div> +<div id='d151' class='colors'> +LightSteelBlue3</div> +<div id='d152' class='colors'> +LightSteelBlue4</div> +<div id='d153' class='colors'> +SlateGray4</div> +<div id='d154' class='colors'> +SlateGray1</div> +<div id='d155' class='colors'> +SlateGray2</div> +<div id='d156' class='colors'> +SlateGray3</div> +<div id='d157' class='colors'> +LightSlateGray</div> +<div id='d158' class='colors'> +LightSlateGrey</div> +<div id='d159' class='colors'> +SlateGray</div> +<div id='d160' class='colors'> +SlateGrey</div> +<div id='d161' class='colors'> +DodgerBlue</div> +<div id='d162' class='colors'> +DodgerBlue1</div> +<div id='d163' class='colors'> +DodgerBlue2</div> +<div id='d164' class='colors'> +DodgerBlue4</div> +<div id='d165' class='colors'> +DodgerBlue3</div> +<div id='d166' class='colors'> +AliceBlue</div> +<div id='d167' class='colors'> +SteelBlue4</div> +<div id='d168' class='colors'> +SteelBlue</div> +<div id='d169' class='colors'> +SteelBlue1</div> +<div id='d170' class='colors'> +SteelBlue2</div> +<div id='d171' class='colors'> +SteelBlue3</div> +<div id='d172' class='colors'> +SkyBlue4</div> +<div id='d173' class='colors'> +SkyBlue1</div> +<div id='d174' class='colors'> +SkyBlue2</div> +<div id='d175' class='colors'> +SkyBlue3</div> +<div id='d176' class='colors'> +LightSkyBlue</div> +<div id='d177' class='colors'> +LightSkyBlue4</div> +<div id='d178' class='colors'> +LightSkyBlue1</div> +<div id='d179' class='colors'> +LightSkyBlue2</div> +<div id='d180' class='colors'> +LightSkyBlue3</div> +<div id='d181' class='colors'> +SkyBlue</div> +<div id='d182' class='colors'> +LightBlue3</div> +<div id='d183' class='colors'> +DeepSkyBlue</div> +<div id='d184' class='colors'> +DeepSkyBlue1</div> +<div id='d185' class='colors'> +DeepSkyBlue2</div> +<div id='d186' class='colors'> +DeepSkyBlue4</div> +<div id='d187' class='colors'> +DeepSkyBlue3</div> +<div id='d188' class='colors'> +LightBlue1</div> +<div id='d189' class='colors'> +LightBlue2</div> +<div id='d190' class='colors'> +LightBlue</div> +<div id='d191' class='colors'> +LightBlue4</div> +<div id='d192' class='colors'> +PowderBlue</div> +<div id='d193' class='colors'> +CadetBlue1</div> +<div id='d194' class='colors'> +CadetBlue2</div> +<div id='d195' class='colors'> +CadetBlue3</div> +<div id='d196' class='colors'> +CadetBlue4</div> +<div id='d197' class='colors'> +turquoise1</div> +<div id='d198' class='colors'> +turquoise2</div> +<div id='d199' class='colors'> +turquoise3</div> +<div id='d200' class='colors'> +turquoise4</div> +<div id='d201' class='colors'> +cadet blue</div> +<div id='d202' class='colors'> +CadetBlue</div> +<div id='d203' class='colors'> +DarkTurquoise</div> +<div id='d204' class='colors'> +azure</div> +<div id='d205' class='colors'> +azure1</div> +<div id='d206' class='colors'> +LightCyan</div> +<div id='d207' class='colors'> +LightCyan1</div> +<div id='d208' class='colors'> +azure2</div> +<div id='d209' class='colors'> +LightCyan2</div> +<div id='d210' class='colors'> +PaleTurquoise1</div> +<div id='d211' class='colors'> +PaleTurquoise</div> +<div id='d212' class='colors'> +PaleTurquoise2</div> +<div id='d213' class='colors'> +DarkSlateGray1</div> +<div id='d214' class='colors'> +azure3</div> +<div id='d215' class='colors'> +LightCyan3</div> +<div id='d216' class='colors'> +DarkSlateGray2</div> +<div id='d217' class='colors'> +PaleTurquoise3</div> +<div id='d218' class='colors'> +DarkSlateGray3</div> +<div id='d219' class='colors'> +azure4</div> +<div id='d220' class='colors'> +LightCyan4</div> +<div id='d221' class='colors'> +aqua</div> +<div id='d222' class='colors'> +cyan</div> +<div id='d223' class='colors'> +cyan1</div> +<div id='d224' class='colors'> +PaleTurquoise4</div> +<div id='d225' class='colors'> +cyan2</div> +<div id='d226' class='colors'> +DarkSlateGray4</div> +<div id='d227' class='colors'> +cyan3</div> +<div id='d228' class='colors'> +cyan4</div> +<div id='d229' class='colors'> +DarkCyan</div> +<div id='d230' class='colors'> +teal</div> +<div id='d231' class='colors'> +DarkSlateGray</div> +<div id='d232' class='colors'> +DarkSlateGrey</div> +<div id='d233' class='colors'> +MediumTurquoise</div> +<div id='d234' class='colors'> +LightSeaGreen</div> +<div id='d235' class='colors'> +turquoise</div> +<div id='d236' class='colors'> +aquamarine4</div> +<div id='d237' class='colors'> +aquamarine</div> +<div id='d238' class='colors'> +aquamarine1</div> +<div id='d239' class='colors'> +aquamarine2</div> +<div id='d240' class='colors'> +aquamarine3</div> +<div id='d241' class='colors'> +MediumAquamarine</div> +<div id='d242' class='colors'> +MediumSpringGreen</div> +<div id='d243' class='colors'> +MintCream</div> +<div id='d244' class='colors'> +SpringGreen</div> +<div id='d245' class='colors'> +SpringGreen1</div> +<div id='d246' class='colors'> +SpringGreen2</div> +<div id='d247' class='colors'> +SpringGreen3</div> +<div id='d248' class='colors'> +SpringGreen4</div> +<div id='d249' class='colors'> +MediumSeaGreen</div> +<div id='d250' class='colors'> +SeaGreen</div> +<div id='d251' class='colors'> +SeaGreen3</div> +<div id='d252' class='colors'> +SeaGreen1</div> +<div id='d253' class='colors'> +SeaGreen4</div> +<div id='d254' class='colors'> +SeaGreen2</div> +<div id='d255' class='colors'> +MediumForestGreen</div> +<div id='d256' class='colors'> +honeydew</div> +<div id='d257' class='colors'> +honeydew1</div> +<div id='d258' class='colors'> +honeydew2</div> +<div id='d259' class='colors'> +DarkSeaGreen1</div> +<div id='d260' class='colors'> +DarkSeaGreen2</div> +<div id='d261' class='colors'> +PaleGreen1</div> +<div id='d262' class='colors'> +PaleGreen</div> +<div id='d263' class='colors'> +honeydew3</div> +<div id='d264' class='colors'> +LightGreen</div> +<div id='d265' class='colors'> +PaleGreen2</div> +<div id='d266' class='colors'> +DarkSeaGreen3</div> +<div id='d267' class='colors'> +DarkSeaGreen</div> +<div id='d268' class='colors'> +PaleGreen3</div> +<div id='d269' class='colors'> +honeydew4</div> +<div id='d270' class='colors'> +green1</div> +<div id='d271' class='colors'> +lime</div> +<div id='d272' class='colors'> +LimeGreen</div> +<div id='d273' class='colors'> +DarkSeaGreen4</div> +<div id='d274' class='colors'> +green2</div> +<div id='d275' class='colors'> +PaleGreen4</div> +<div id='d276' class='colors'> +green3</div> +<div id='d277' class='colors'> +ForestGreen</div> +<div id='d278' class='colors'> +green4</div> +<div id='d279' class='colors'> +green</div> +<div id='d280' class='colors'> +DarkGreen</div> +<div id='d281' class='colors'> +LawnGreen</div> +<div id='d282' class='colors'> +chartreuse</div> +<div id='d283' class='colors'> +chartreuse1</div> +<div id='d284' class='colors'> +chartreuse2</div> +<div id='d285' class='colors'> +chartreuse3</div> +<div id='d286' class='colors'> +chartreuse4</div> +<div id='d287' class='colors'> +GreenYellow</div> +<div id='d288' class='colors'> +DarkOliveGreen3</div> +<div id='d289' class='colors'> +DarkOliveGreen1</div> +<div id='d290' class='colors'> +DarkOliveGreen2</div> +<div id='d291' class='colors'> +DarkOliveGreen4</div> +<div id='d292' class='colors'> +DarkOliveGreen</div> +<div id='d293' class='colors'> +OliveDrab</div> +<div id='d294' class='colors'> +OliveDrab1</div> +<div id='d295' class='colors'> +OliveDrab2</div> +<div id='d296' class='colors'> +OliveDrab3</div> +<div id='d297' class='colors'> +YellowGreen</div> +<div id='d298' class='colors'> +OliveDrab4</div> +<div id='d299' class='colors'> +ivory</div> +<div id='d300' class='colors'> +ivory1</div> +<div id='d301' class='colors'> +LightYellow</div> +<div id='d302' class='colors'> +LightYellow1</div> +<div id='d303' class='colors'> +beige</div> +<div id='d304' class='colors'> +ivory2</div> +<div id='d305' class='colors'> +LightGoldenrodYellow</div> +<div id='d306' class='colors'> +LightYellow2</div> +<div id='d307' class='colors'> +ivory3</div> +<div id='d308' class='colors'> +LightYellow3</div> +<div id='d309' class='colors'> +ivory4</div> +<div id='d310' class='colors'> +LightYellow4</div> +<div id='d311' class='colors'> +yellow</div> +<div id='d312' class='colors'> +yellow1</div> +<div id='d313' class='colors'> +yellow2</div> +<div id='d314' class='colors'> +yellow3</div> +<div id='d315' class='colors'> +yellow4</div> +<div id='d316' class='colors'> +olive</div> +<div id='d317' class='colors'> +DarkKhaki</div> +<div id='d318' class='colors'> +khaki2</div> +<div id='d319' class='colors'> +LemonChiffon4</div> +<div id='d320' class='colors'> +khaki1</div> +<div id='d321' class='colors'> +khaki3</div> +<div id='d322' class='colors'> +khaki4</div> +<div id='d323' class='colors'> +PaleGoldenrod</div> +<div id='d324' class='colors'> +LemonChiffon</div> +<div id='d325' class='colors'> +LemonChiffon1</div> +<div id='d326' class='colors'> +khaki</div> +<div id='d327' class='colors'> +LemonChiffon3</div> +<div id='d328' class='colors'> +LemonChiffon2</div> +<div id='d329' class='colors'> +MediumGoldenRod</div> +<div id='d330' class='colors'> +cornsilk4</div> +<div id='d331' class='colors'> +gold</div> +<div id='d332' class='colors'> +gold1</div> +<div id='d333' class='colors'> +gold2</div> +<div id='d334' class='colors'> +gold3</div> +<div id='d335' class='colors'> +gold4</div> +<div id='d336' class='colors'> +LightGoldenrod</div> +<div id='d337' class='colors'> +LightGoldenrod4</div> +<div id='d338' class='colors'> +LightGoldenrod1</div> +<div id='d339' class='colors'> +LightGoldenrod3</div> +<div id='d340' class='colors'> +LightGoldenrod2</div> +<div id='d341' class='colors'> +cornsilk3</div> +<div id='d342' class='colors'> +cornsilk2</div> +<div id='d343' class='colors'> +cornsilk</div> +<div id='d344' class='colors'> +cornsilk1</div> +<div id='d345' class='colors'> +goldenrod</div> +<div id='d346' class='colors'> +goldenrod1</div> +<div id='d347' class='colors'> +goldenrod2</div> +<div id='d348' class='colors'> +goldenrod3</div> +<div id='d349' class='colors'> +goldenrod4</div> +<div id='d350' class='colors'> +DarkGoldenrod</div> +<div id='d351' class='colors'> +DarkGoldenrod1</div> +<div id='d352' class='colors'> +DarkGoldenrod2</div> +<div id='d353' class='colors'> +DarkGoldenrod3</div> +<div id='d354' class='colors'> +DarkGoldenrod4</div> +<div id='d355' class='colors'> +FloralWhite</div> +<div id='d356' class='colors'> +wheat2</div> +<div id='d357' class='colors'> +OldLace</div> +<div id='d358' class='colors'> +wheat</div> +<div id='d359' class='colors'> +wheat1</div> +<div id='d360' class='colors'> +wheat3</div> +<div id='d361' class='colors'> +orange</div> +<div id='d362' class='colors'> +orange1</div> +<div id='d363' class='colors'> +orange2</div> +<div id='d364' class='colors'> +orange3</div> +<div id='d365' class='colors'> +orange4</div> +<div id='d366' class='colors'> +wheat4</div> +<div id='d367' class='colors'> +moccasin</div> +<div id='d368' class='colors'> +PapayaWhip</div> +<div id='d369' class='colors'> +NavajoWhite3</div> +<div id='d370' class='colors'> +BlanchedAlmond</div> +<div id='d371' class='colors'> +NavajoWhite</div> +<div id='d372' class='colors'> +NavajoWhite1</div> +<div id='d373' class='colors'> +NavajoWhite2</div> +<div id='d374' class='colors'> +NavajoWhite4</div> +<div id='d375' class='colors'> +AntiqueWhite4</div> +<div id='d376' class='colors'> +AntiqueWhite</div> +<div id='d377' class='colors'> +tan</div> +<div id='d378' class='colors'> +bisque4</div> +<div id='d379' class='colors'> +burlywood</div> +<div id='d380' class='colors'> +AntiqueWhite2</div> +<div id='d381' class='colors'> +burlywood1</div> +<div id='d382' class='colors'> +burlywood3</div> +<div id='d383' class='colors'> +burlywood2</div> +<div id='d384' class='colors'> +AntiqueWhite1</div> +<div id='d385' class='colors'> +burlywood4</div> +<div id='d386' class='colors'> +AntiqueWhite3</div> +<div id='d387' class='colors'> +DarkOrange</div> +<div id='d388' class='colors'> +bisque2</div> +<div id='d389' class='colors'> +bisque</div> +<div id='d390' class='colors'> +bisque1</div> +<div id='d391' class='colors'> +bisque3</div> +<div id='d392' class='colors'> +DarkOrange1</div> +<div id='d393' class='colors'> +linen</div> +<div id='d394' class='colors'> +DarkOrange2</div> +<div id='d395' class='colors'> +DarkOrange3</div> +<div id='d396' class='colors'> +DarkOrange4</div> +<div id='d397' class='colors'> +peru</div> +<div id='d398' class='colors'> +tan1</div> +<div id='d399' class='colors'> +tan2</div> +<div id='d400' class='colors'> +tan3</div> +<div id='d401' class='colors'> +tan4</div> +<div id='d402' class='colors'> +PeachPuff</div> +<div id='d403' class='colors'> +PeachPuff1</div> +<div id='d404' class='colors'> +PeachPuff4</div> +<div id='d405' class='colors'> +PeachPuff2</div> +<div id='d406' class='colors'> +PeachPuff3</div> +<div id='d407' class='colors'> +SandyBrown</div> +<div id='d408' class='colors'> +seashell4</div> +<div id='d409' class='colors'> +seashell2</div> +<div id='d410' class='colors'> +seashell3</div> +<div id='d411' class='colors'> +chocolate</div> +<div id='d412' class='colors'> +chocolate1</div> +<div id='d413' class='colors'> +chocolate2</div> +<div id='d414' class='colors'> +chocolate3</div> +<div id='d415' class='colors'> +chocolate4</div> +<div id='d416' class='colors'> +SaddleBrown</div> +<div id='d417' class='colors'> +seashell</div> +<div id='d418' class='colors'> +seashell1</div> +<div id='d419' class='colors'> +sienna4</div> +<div id='d420' class='colors'> +sienna</div> +<div id='d421' class='colors'> +sienna1</div> +<div id='d422' class='colors'> +sienna2</div> +<div id='d423' class='colors'> +sienna3</div> +<div id='d424' class='colors'> +LightSalmon3</div> +<div id='d425' class='colors'> +LightSalmon</div> +<div id='d426' class='colors'> +LightSalmon1</div> +<div id='d427' class='colors'> +LightSalmon4</div> +<div id='d428' class='colors'> +LightSalmon2</div> +<div id='d429' class='colors'> +coral</div> +<div id='d430' class='colors'> +OrangeRed</div> +<div id='d431' class='colors'> +OrangeRed1</div> +<div id='d432' class='colors'> +OrangeRed2</div> +<div id='d433' class='colors'> +OrangeRed3</div> +<div id='d434' class='colors'> +OrangeRed4</div> +<div id='d435' class='colors'> +DarkSalmon</div> +<div id='d436' class='colors'> +salmon1</div> +<div id='d437' class='colors'> +salmon2</div> +<div id='d438' class='colors'> +salmon3</div> +<div id='d439' class='colors'> +salmon4</div> +<div id='d440' class='colors'> +coral1</div> +<div id='d441' class='colors'> +coral2</div> +<div id='d442' class='colors'> +coral3</div> +<div id='d443' class='colors'> +coral4</div> +<div id='d444' class='colors'> +tomato4</div> +<div id='d445' class='colors'> +tomato</div> +<div id='d446' class='colors'> +tomato1</div> +<div id='d447' class='colors'> +tomato2</div> +<div id='d448' class='colors'> +tomato3</div> +<div id='d449' class='colors'> +MistyRose4</div> +<div id='d450' class='colors'> +MistyRose2</div> +<div id='d451' class='colors'> +MistyRose</div> +<div id='d452' class='colors'> +MistyRose1</div> +<div id='d453' class='colors'> +salmon</div> +<div id='d454' class='colors'> +MistyRose3</div> +<div id='d455' class='colors'> +white</div> +<div id='d456' class='colors'> +gray100</div> +<div id='d457' class='colors'> +grey100</div> +<div id='d458' class='colors'> +grey100</div> +<div id='d459' class='colors'> +gray99</div> +<div id='d460' class='colors'> +grey99</div> +<div id='d461' class='colors'> +gray98</div> +<div id='d462' class='colors'> +grey98</div> +<div id='d463' class='colors'> +gray97</div> +<div id='d464' class='colors'> +grey97</div> +<div id='d465' class='colors'> +gray96</div> +<div id='d466' class='colors'> +grey96</div> +<div id='d467' class='colors'> +WhiteSmoke</div> +<div id='d468' class='colors'> +gray95</div> +<div id='d469' class='colors'> +grey95</div> +<div id='d470' class='colors'> +gray94</div> +<div id='d471' class='colors'> +grey94</div> +<div id='d472' class='colors'> +gray93</div> +<div id='d473' class='colors'> +grey93</div> +<div id='d474' class='colors'> +gray92</div> +<div id='d475' class='colors'> +grey92</div> +<div id='d476' class='colors'> +gray91</div> +<div id='d477' class='colors'> +grey91</div> +<div id='d478' class='colors'> +gray90</div> +<div id='d479' class='colors'> +grey90</div> +<div id='d480' class='colors'> +gray89</div> +<div id='d481' class='colors'> +grey89</div> +<div id='d482' class='colors'> +gray88</div> +<div id='d483' class='colors'> +grey88</div> +<div id='d484' class='colors'> +gray87</div> +<div id='d485' class='colors'> +grey87</div> +<div id='d486' class='colors'> +gainsboro</div> +<div id='d487' class='colors'> +gray86</div> +<div id='d488' class='colors'> +grey86</div> +<div id='d489' class='colors'> +gray85</div> +<div id='d490' class='colors'> +grey85</div> +<div id='d491' class='colors'> +gray84</div> +<div id='d492' class='colors'> +grey84</div> +<div id='d493' class='colors'> +gray83</div> +<div id='d494' class='colors'> +grey83</div> +<div id='d495' class='colors'> +LightGray</div> +<div id='d496' class='colors'> +LightGrey</div> +<div id='d497' class='colors'> +gray82</div> +<div id='d498' class='colors'> +grey82</div> +<div id='d499' class='colors'> +gray81</div> +<div id='d500' class='colors'> +grey81</div> +<div id='d501' class='colors'> +gray80</div> +<div id='d502' class='colors'> +grey80</div> +<div id='d503' class='colors'> +gray79</div> +<div id='d504' class='colors'> +grey79</div> +<div id='d505' class='colors'> +gray78</div> +<div id='d506' class='colors'> +grey78</div> +<div id='d507' class='colors'> +gray77</div> +<div id='d508' class='colors'> +grey77</div> +<div id='d509' class='colors'> +gray76</div> +<div id='d510' class='colors'> +grey76</div> +<div id='d511' class='colors'> +silver</div> +<div id='d512' class='colors'> +gray75</div> +<div id='d513' class='colors'> +grey75</div> +<div id='d514' class='colors'> +gray74</div> +<div id='d515' class='colors'> +grey74</div> +<div id='d516' class='colors'> +gray73</div> +<div id='d517' class='colors'> +grey73</div> +<div id='d518' class='colors'> +gray72</div> +<div id='d519' class='colors'> +grey72</div> +<div id='d520' class='colors'> +gray71</div> +<div id='d521' class='colors'> +grey71</div> +<div id='d522' class='colors'> +gray70</div> +<div id='d523' class='colors'> +grey70</div> +<div id='d524' class='colors'> +gray69</div> +<div id='d525' class='colors'> +grey69</div> +<div id='d526' class='colors'> +gray68</div> +<div id='d527' class='colors'> +grey68</div> +<div id='d528' class='colors'> +gray67</div> +<div id='d529' class='colors'> +grey67</div> +<div id='d530' class='colors'> +DarkGray</div> +<div id='d531' class='colors'> +DarkGrey</div> +<div id='d532' class='colors'> +gray66</div> +<div id='d533' class='colors'> +grey66</div> +<div id='d534' class='colors'> +gray65</div> +<div id='d535' class='colors'> +grey65</div> +<div id='d536' class='colors'> +gray64</div> +<div id='d537' class='colors'> +grey64</div> +<div id='d538' class='colors'> +gray63</div> +<div id='d539' class='colors'> +grey63</div> +<div id='d540' class='colors'> +gray62</div> +<div id='d541' class='colors'> +grey62</div> +<div id='d542' class='colors'> +gray61</div> +<div id='d543' class='colors'> +grey61</div> +<div id='d544' class='colors'> +gray60</div> +<div id='d545' class='colors'> +grey60</div> +<div id='d546' class='colors'> +gray59</div> +<div id='d547' class='colors'> +grey59</div> +<div id='d548' class='colors'> +gray58</div> +<div id='d549' class='colors'> +grey58</div> +<div id='d550' class='colors'> +gray57</div> +<div id='d551' class='colors'> +grey57</div> +<div id='d552' class='colors'> +gray56</div> +<div id='d553' class='colors'> +grey56</div> +<div id='d554' class='colors'> +gray55</div> +<div id='d555' class='colors'> +grey55</div> +<div id='d556' class='colors'> +gray54</div> +<div id='d557' class='colors'> +grey54</div> +<div id='d558' class='colors'> +gray53</div> +<div id='d559' class='colors'> +grey53</div> +<div id='d560' class='colors'> +gray52</div> +<div id='d561' class='colors'> +grey52</div> +<div id='d562' class='colors'> +gray51</div> +<div id='d563' class='colors'> +grey51</div> +<div id='d564' class='colors'> +fractal</div> +<div id='d565' class='colors'> +gray50</div> +<div id='d566' class='colors'> +grey50</div> +<div id='d567' class='colors'> +gray</div> +<div id='d568' class='colors'> +gray49</div> +<div id='d569' class='colors'> +grey49</div> +<div id='d570' class='colors'> +gray48</div> +<div id='d571' class='colors'> +grey48</div> +<div id='d572' class='colors'> +gray47</div> +<div id='d573' class='colors'> +grey47</div> +<div id='d574' class='colors'> +gray46</div> +<div id='d575' class='colors'> +grey46</div> +<div id='d576' class='colors'> +gray45</div> +<div id='d577' class='colors'> +grey45</div> +<div id='d578' class='colors'> +gray44</div> +<div id='d579' class='colors'> +grey44</div> +<div id='d580' class='colors'> +gray43</div> +<div id='d581' class='colors'> +grey43</div> +<div id='d582' class='colors'> +gray42</div> +<div id='d583' class='colors'> +grey42</div> +<div id='d584' class='colors'> +DimGray</div> +<div id='d585' class='colors'> +DimGrey</div> +<div id='d586' class='colors'> +gray41</div> +<div id='d587' class='colors'> +grey41</div> +<div id='d588' class='colors'> +gray40</div> +<div id='d589' class='colors'> +grey40</div> +<div id='d590' class='colors'> +gray39</div> +<div id='d591' class='colors'> +grey39</div> +<div id='d592' class='colors'> +gray38</div> +<div id='d593' class='colors'> +grey38</div> +<div id='d594' class='colors'> +gray37</div> +<div id='d595' class='colors'> +grey37</div> +<div id='d596' class='colors'> +gray36</div> +<div id='d597' class='colors'> +grey36</div> +<div id='d598' class='colors'> +gray35</div> +<div id='d599' class='colors'> +grey35</div> +<div id='d600' class='colors'> +gray34</div> +<div id='d601' class='colors'> +grey34</div> +<div id='d602' class='colors'> +gray33</div> +<div id='d603' class='colors'> +grey33</div> +<div id='d604' class='colors'> +gray32</div> +<div id='d605' class='colors'> +grey32</div> +<div id='d606' class='colors'> +gray31</div> +<div id='d607' class='colors'> +grey31</div> +<div id='d608' class='colors'> +gray30</div> +<div id='d609' class='colors'> +grey30</div> +<div id='d610' class='colors'> +gray29</div> +<div id='d611' class='colors'> +grey29</div> +<div id='d612' class='colors'> +gray28</div> +<div id='d613' class='colors'> +grey28</div> +<div id='d614' class='colors'> +gray27</div> +<div id='d615' class='colors'> +grey27</div> +<div id='d616' class='colors'> +gray26</div> +<div id='d617' class='colors'> +grey26</div> +<div id='d618' class='colors'> +gray25</div> +<div id='d619' class='colors'> +grey25</div> +<div id='d620' class='colors'> +gray24</div> +<div id='d621' class='colors'> +grey24</div> +<div id='d622' class='colors'> +gray23</div> +<div id='d623' class='colors'> +grey23</div> +<div id='d624' class='colors'> +gray22</div> +<div id='d625' class='colors'> +grey22</div> +<div id='d626' class='colors'> +gray21</div> +<div id='d627' class='colors'> +grey21</div> +<div id='d628' class='colors'> +gray20</div> +<div id='d629' class='colors'> +grey20</div> +<div id='d630' class='colors'> +gray19</div> +<div id='d631' class='colors'> +grey19</div> +<div id='d632' class='colors'> +gray18</div> +<div id='d633' class='colors'> +grey18</div> +<div id='d634' class='colors'> +gray17</div> +<div id='d635' class='colors'> +grey17</div> +<div id='d636' class='colors'> +gray16</div> +<div id='d637' class='colors'> +grey16</div> +<div id='d638' class='colors'> +gray15</div> +<div id='d639' class='colors'> +grey15</div> +<div id='d640' class='colors'> +gray14</div> +<div id='d641' class='colors'> +grey14</div> +<div id='d642' class='colors'> +gray13</div> +<div id='d643' class='colors'> +grey13</div> +<div id='d644' class='colors'> +gray12</div> +<div id='d645' class='colors'> +grey12</div> +<div id='d646' class='colors'> +gray11</div> +<div id='d647' class='colors'> +grey11</div> +<div id='d648' class='colors'> +gray10</div> +<div id='d649' class='colors'> +grey10</div> +<div id='d650' class='colors'> +gray9</div> +<div id='d651' class='colors'> +grey9</div> +<div id='d652' class='colors'> +gray8</div> +<div id='d653' class='colors'> +grey8</div> +<div id='d654' class='colors'> +gray7</div> +<div id='d655' class='colors'> +grey7</div> +<div id='d656' class='colors'> +gray6</div> +<div id='d657' class='colors'> +grey6</div> +<div id='d658' class='colors'> +gray5</div> +<div id='d659' class='colors'> +grey5</div> +<div id='d660' class='colors'> +gray4</div> +<div id='d661' class='colors'> +grey4</div> +<div id='d662' class='colors'> +gray3</div> +<div id='d663' class='colors'> +grey3</div> +<div id='d664' class='colors'> +gray2</div> +<div id='d665' class='colors'> +grey2</div> +<div id='d666' class='colors'> +gray1</div> +<div id='d667' class='colors'> +grey1</div> +<div id='d668' class='colors'> +black</div> +<div id='d669' class='colors'> +gray0</div> +<div id='d670' class='colors'> +grey0</div> +<div id='d671' class='colors'> +opaque</div> +<div id='d672' class='colors'> +none</div> +<div id='d673' class='colors'> +transparent</div> +</div> + +<div id='colornames'> +CLICK TO CHOOSE THE COLOR +</div> + +<div id='switches'> + +<span id='title'>OPTIONS</span> +<div id='hexswitch' class='theswitches'>CLICK TO USE HEX KEYS</div> +<br> +<div id='infoswitch' class='theswitches'>CLICK TO TOGGLE PALATE INFO<span id='infospace'></span></div> +<br> +<div id='backgroundswitch' class='theswitches'>CLICK TO TOGGLE BACKGROUNDS</div> +<br> +<div id='preview'></div> +<div id='nameholder'>YOU WILL CHOOSE:<br><input id='namespace' style='width:inherit' type='text'></input></div> +<br> +<span id='transparent'>to choose transparent as a color, click <span id='transbutton'>HERE</span></span> +</div> +</div> +<script type='text/javascript' src='js/jquery-1.6.4.min.js'></script> +<script type='text/javascript' src='js/colordict.js'></script> + +<script type='text/javascript'> + + +//setup dimensions +////////////////// + + +function regolden(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num/ratio) + return newnum + } +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newval = goldenize(result) + propval = newval.toString()+'px' + if(propertystr == 'height'){ + $(idandselectr).css('width', propval) + } + else if(propertystr == 'width'){ + $(idandselectr).css('height', propval) + } + } +function shrinkwidth(arg){ + for(var i=0; i < 5; i++){ + arg = regolden(arg) + } + division = Math.round(arg) + return division +} + +function makecolorswidth(){ + colorswidth = shrinkwidth(window.innerWidth) + $('.colors').css('width', colorswidth.toString()+'px') +} +function makecolorsheight(){ + result = getproperty('.colors', 'width') + newval = regolden(result) + propval = newval.toString()+'px' + $('.colors').css('height', propval) +} +//the following function sets up the font sizes +//inrelation to the size of the hexswitch font +function setupfonts(){ + var firstfont = getproperty('#hexswitch', 'font-size') + var finalfont = goldenize(firstfont) + $('#namespace').css('font-size', finalfont+'px') + $('#namespace').css('width', $('#switches').css('width')) + var secondfont = getproperty('#namespace', 'font-size') + var finalfont = goldenize(secondfont) + $('#colornames').css('font-size', finalfont+'px') + $('#colornames').css('text-shadow', 'black 1px 2px') + var transfont = regolden(firstfont) + $('#transparent').css('font-size', transfont+'px') +} +function getcontainerwidth(){ + basis = $('.colors').css('width') + basis = parseInt(basis.slice(0,-2)) + secondbasis = '2px' + secondbasis = parseInt(secondbasis.slice(0,-2)) + widthval = (secondbasis*8)+(basis*4)+(goldenize(basis)-basis) + widthval = widthval.toString()+'px' + return widthval +} + +function makecontainerwidth(){ + var containerwidth = getcontainerwidth() + $('#container').css('width',containerwidth) +} + + +function setupsides() + { + var basis = $('#container').css('width') + basis = parseInt(basis.slice(0,-2)) + remainder = (100-basis)/2 + widths = regolden(basis) + widths = widths.toString()+'px' + lateralbasis = regolden(remainder) + leftside = toString(lateralbasis)+'%' + rightside = toString(100-lateralbasis)+'%' + $('#colornames').css('left', leftside) + $('#switches').css({'width': widths, 'left': rightside, 'overflow':'auto'}) + } +function previewdimensions(){ + first = $('#switches').css('width') + first = parseInt(first.slice(0,-2)) + width = regolden(first) + height = regolden(width) + width = width.toString()+'px' + height = height.toString()+'px' + $('#preview').css({'width':width, 'height':height}) +} +function setupdimensions(){ +makecolorswidth() +setupfonts() +makecolorsheight() +makecontainerwidth() +setupsides() +makegolden('#switches','width') +previewdimensions() +$('#namespace').css('width', 'inherit') +$('#nameholder').css('width', 'inherit') +$('#transparent').css({'float':'bottom','width':'inherit'}) +} +setupdimensions() +$(window).resize(function(){setupdimensions()}) + +//BEGIN STYLINGS// +////////////////// + + +var old = {}; +function hovercss(sel, uno){ + + var chng = {}; + chng['color'] = 'white'; + chng['text-shadow'] = 'black 1px 2px'; + chng['background-image'] = 'url(http://asdf.us/im/19/gradient_whitegray80_1321305183_1321305241_pepper_1321333403_pepper.jpg)'; + if(uno == 'over'){ + for(var key in chng){ + old[key] = $('#'+sel).css(key) + } + for(var key in chng){ + $('#'+sel).css(key, chng[key]) + } + } + if(uno == 'out'){ + for(var key in old){ + $('#'+sel).css(key, old[key]) + } + } +} +$('.theswitches').hover(function(){hovercss(this.id, 'over')}, function(){hovercss(this.id, 'out')}) + +var transcss = { + 'color':'#141414','box-shadow':'10px 10px 5px #141414', + 'background-color':'#D1D1D1','color':'#141414', + 'border-width':'2px','border-style':'outset','cursor':'pointer'} +$('#transbutton').css(transcss) +var hovertrans = { + 'background-color':'DarkGrey','color':'#383838','box-shadow':'5px 5px 2px #141414' +} +$('#transbutton').hover(function(){$('#transbutton').css(hovertrans)},function(){$('#transbutton').css(transcss)}) +//threewayselector for what goes in the divs +var infostate = 1 +function switchinfo() + { + if(infostate == 0) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(divtoname[divlist[i]]) + }; + infostate = 1 + $('#infospace').html('(NAMES)'); + } + else if(infostate == 1) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html("") + }; + infostate = 2 + $('#infospace').html('(NONE)'); + } + else if(infostate == 2) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(nametohex[divtoname[divlist[i]]]) + }; + infostate = 0 + $('#infospace').html('(HEXES)'); + } + } +$('#infoswitch').hover(function(){$('#infospace').show()}, function(){$('#infospace').hide('slow')} ) +$('#infoswitch').click(function(){switchinfo()}) + + +backgroundstate = 2; +function switchbackground() + { + if(backgroundstate == 1) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image','url(http://dump.fm/static/img/bg.dither.gif)') + backgroundstate = 2; + $('#colornames').css('color', 'white') + $('#colornames').css('text-shadow', 'black 1px 2px') + } + else if(backgroundstate == 2) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image', 'none') + backgroundstate = 0 + } + else if(backgroundstate == 0) + { + $('#colorpicker').css('background-color', 'white') + $('#colorpicker').css('background-image', 'none') + $('#colornames').css('color', 'grey') + backgroundstate = 1 + } + } + +$('#backgroundswitch').click(function(){switchbackground()}) + +//takes a div name and returns a colorname + +function showcolorname(divstr) + + { + colorname = divtoname['#'+divstr] + hex = nametohex[colorname] + imname = hextoname[hex] + if (hexes == true) + { + imname = hex + } + + return imname + } +function bigname(divstr) + { + colorname = showcolorname(divstr) + $('#colornames').html(colorname) + + } +function writeit(text) + { + $('#colornames').append(text) + } +function makebig(divstr) + { + firstheight = $('#'+divstr).height() + newheight = goldenize(firstheight) + $('#'+divstr).height(newheight) + } +function makesmall(divstr) + { + oldheight = $('.colors').height() + $('#'+divstr).height(oldheight) + } +var choice; +$('.colors').hover(function() { + bigname(this.id); +// makebig(this.id); +// makegolden('#'+this.id, 'height')}, +//function(){ +// makesmall(this.id); +// makegolden('#'+this.id, 'height') +}); +$('.colors').mouseover(function(){ + if(this.id != 'd0'){ + makebig(this.id); + makegolden('#'+this.id, 'height') + }}) +$('.colors').mouseout(function(){ + makesmall(this.id); + makegolden('#'+this.id,'height'); + }) +$(".colors").hover(function(){ +$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); + }); +$('.colors').css('margin-top', '2px') +var hexes = false +function hexswitch() + { + if(hexes == false) + { + $('#hexswitch').html('CLICK TO USE COLOR NAMES') + hexes = true; + var nameval = $('#namespace').val() + $('#namespace').val(nametohex[nameval]) + } + + else + { + $('#hexswitch').html('CLICK TO USE HEX KEYS') + hexes = false; + var nameval = $('#namespace').val() + $('#namespace').val(hextoname[nameval]) + } + } +$('#hexswitch').click(function(){hexswitch()}) + +$('.colors').click(function(){ + putitin() + }) + +function putitin() + { + thecolor = $('#colornames').html() + $('#namespace').val(thecolor) + if(hexes == false){ + $('#preview').css({'background-color': nametohex[thecolor], 'border-style':'none'}) + } + else{ + $('#preview').css('background-color', thecolor) + } + + } +function transparent() + { + $('#namespace').val('transparent'); + $('#preview').css({'background-color':'transparent','border-style':'dashed','border-width':'2px'}) + } +$('#transbutton').click(function(){transparent()}) + + +function bakecookie() + { + var colormemory = $('#preview').css('background-color') + var preferences = {} + preferences['infostate'] = infostate; + preferences['hexes'] = hexes; + preferences['backgroundstate'] = backgroundstate; + preferences['colormemory'] = colormemory; + document.cookie = "preferences=infostate_"+infostate+"_hexes_"+hexes+"_backgroundstate_"+backgroundstate+";path=/;domain=.asdf.us;max-age=1086400"; + } + +bakecookie() +function eatcookie() + { + if (document.cookie) + { + var cookies = document.cookie.split(";") + for(i in cookies){ + $('#preview').append(cookies[i]) + } + /* for (i in cookies) + { + var cookie = cookies[i].split("=") + $('#preview').append(cookie) + } + + //infostate = parseInt(preferences['infostate']) + //hexes = preferences['hexes'] + //backgroundstate = preferences['backgroundstate']} + if (cookie[0].indexOf("imname") !== -1|cookie[0].indexOf("imname") !== -2) + { + $('#preview').append(cookie[0].indexOf('imname')) + if (cookie[1] !== 'false' && cookie[1] !== 'undefined' && cookie[1].length) + { + return cookie[1] + $('#preview').append('what the hell????') + } + } + else if(cookie[0].indexOf('username') !== -1) + { + $('#preview').append('what the fuck') + } + else{$('#preview').append('this was the index'+cookie[0].indexOf('imname').toString())} + } + //return "" + } + }*/ + + } + } +$(document).ready(function(){eatcookie();switchinfo()}) + + + + + + + + + + + + +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/colors/minoan.gif b/frontend/imgrid/colors/colors/minoan.gif Binary files differnew file mode 100755 index 0000000..4ceb804 --- /dev/null +++ b/frontend/imgrid/colors/colors/minoan.gif diff --git a/frontend/imgrid/colors/colors/savior.html b/frontend/imgrid/colors/colors/savior.html new file mode 100755 index 0000000..72395fd --- /dev/null +++ b/frontend/imgrid/colors/colors/savior.html @@ -0,0 +1,3582 @@ +<html> +<head> + +<style type='text/css'> + +body +{ +max-width:100%; +max-height:100%; +font-family:helvetica; +font-size:2px; +} + + +#container div +{ +display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +height: 15px; +zoom: 1; +*display: inline; +} + +#container +{ +margin:0 auto; +width:500px; +padding-top:100px; +text-align:center; +} + +#colornames +{ +color:white; +position:fixed; +font-size:50px; +top:50px; +right:60%; +width:400px; +} + +#hexswitch + { + position:fixed; + top:20px; + right:10%; + height:100px; + width:300px; + font-size:20px + border-style: groove; + border-width: 4px; + background-color:goldenrod; + text-align:center; + } +#infoswitch + { + position:fixed; + top: 60px; + right:5%; + font-size:20px + background-color:gray; + text-align:center; + } +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{ +height:30px; +width:10px; +} +</style></head><body> +<div id='container'> +<div id='d0' class='colors'> +snow</div> +<div id='d1' class='colors'> +snow1</div> +<div id='d2' class='colors'> +snow2</div> +<div id='d3' class='colors'> +RosyBrown1</div> +<div id='d4' class='colors'> +RosyBrown2</div> +<div id='d5' class='colors'> +snow3</div> +<div id='d6' class='colors'> +LightCoral</div> +<div id='d7' class='colors'> +IndianRed1</div> +<div id='d8' class='colors'> +RosyBrown3</div> +<div id='d9' class='colors'> +IndianRed2</div> +<div id='d10' class='colors'> +RosyBrown</div> +<div id='d11' class='colors'> +brown1</div> +<div id='d12' class='colors'> +firebrick1</div> +<div id='d13' class='colors'> +brown2</div> +<div id='d14' class='colors'> +IndianRed</div> +<div id='d15' class='colors'> +IndianRed3</div> +<div id='d16' class='colors'> +firebrick2</div> +<div id='d17' class='colors'> +snow4</div> +<div id='d18' class='colors'> +brown3</div> +<div id='d19' class='colors'> +red</div> +<div id='d20' class='colors'> +red1</div> +<div id='d21' class='colors'> +RosyBrown4</div> +<div id='d22' class='colors'> +firebrick3</div> +<div id='d23' class='colors'> +red2</div> +<div id='d24' class='colors'> +firebrick</div> +<div id='d25' class='colors'> +brown</div> +<div id='d26' class='colors'> +red3</div> +<div id='d27' class='colors'> +IndianRed4</div> +<div id='d28' class='colors'> +brown4</div> +<div id='d29' class='colors'> +firebrick4</div> +<div id='d30' class='colors'> +DarkRed</div> +<div id='d31' class='colors'> +red4</div> +<div id='d32' class='colors'> +maroon</div> +<div id='d33' class='colors'> +LightPink1</div> +<div id='d34' class='colors'> +LightPink3</div> +<div id='d35' class='colors'> +LightPink4</div> +<div id='d36' class='colors'> +LightPink2</div> +<div id='d37' class='colors'> +LightPink</div> +<div id='d38' class='colors'> +pink</div> +<div id='d39' class='colors'> +crimson</div> +<div id='d40' class='colors'> +pink1</div> +<div id='d41' class='colors'> +pink2</div> +<div id='d42' class='colors'> +pink3</div> +<div id='d43' class='colors'> +pink4</div> +<div id='d44' class='colors'> +PaleVioletRed4</div> +<div id='d45' class='colors'> +PaleVioletRed</div> +<div id='d46' class='colors'> +PaleVioletRed2</div> +<div id='d47' class='colors'> +PaleVioletRed1</div> +<div id='d48' class='colors'> +PaleVioletRed3</div> +<div id='d49' class='colors'> +LavenderBlush</div> +<div id='d50' class='colors'> +LavenderBlush1</div> +<div id='d51' class='colors'> +LavenderBlush3</div> +<div id='d52' class='colors'> +LavenderBlush2</div> +<div id='d53' class='colors'> +LavenderBlush4</div> +<div id='d54' class='colors'> +maroon</div> +<div id='d55' class='colors'> +HotPink3</div> +<div id='d56' class='colors'> +VioletRed3</div> +<div id='d57' class='colors'> +VioletRed1</div> +<div id='d58' class='colors'> +VioletRed2</div> +<div id='d59' class='colors'> +VioletRed4</div> +<div id='d60' class='colors'> +HotPink2</div> +<div id='d61' class='colors'> +HotPink1</div> +<div id='d62' class='colors'> +HotPink4</div> +<div id='d63' class='colors'> +HotPink</div> +<div id='d64' class='colors'> +DeepPink</div> +<div id='d65' class='colors'> +DeepPink1</div> +<div id='d66' class='colors'> +DeepPink2</div> +<div id='d67' class='colors'> +DeepPink3</div> +<div id='d68' class='colors'> +DeepPink4</div> +<div id='d69' class='colors'> +maroon1</div> +<div id='d70' class='colors'> +maroon2</div> +<div id='d71' class='colors'> +maroon3</div> +<div id='d72' class='colors'> +maroon4</div> +<div id='d73' class='colors'> +MediumVioletRed</div> +<div id='d74' class='colors'> +VioletRed</div> +<div id='d75' class='colors'> +orchid2</div> +<div id='d76' class='colors'> +orchid</div> +<div id='d77' class='colors'> +orchid1</div> +<div id='d78' class='colors'> +orchid3</div> +<div id='d79' class='colors'> +orchid4</div> +<div id='d80' class='colors'> +thistle1</div> +<div id='d81' class='colors'> +thistle2</div> +<div id='d82' class='colors'> +plum1</div> +<div id='d83' class='colors'> +plum2</div> +<div id='d84' class='colors'> +thistle</div> +<div id='d85' class='colors'> +thistle3</div> +<div id='d86' class='colors'> +plum</div> +<div id='d87' class='colors'> +violet</div> +<div id='d88' class='colors'> +plum3</div> +<div id='d89' class='colors'> +thistle4</div> +<div id='d90' class='colors'> +fuchsia</div> +<div id='d91' class='colors'> +magenta</div> +<div id='d92' class='colors'> +magenta1</div> +<div id='d93' class='colors'> +plum4</div> +<div id='d94' class='colors'> +magenta2</div> +<div id='d95' class='colors'> +magenta3</div> +<div id='d96' class='colors'> +DarkMagenta</div> +<div id='d97' class='colors'> +magenta4</div> +<div id='d98' class='colors'> +purple</div> +<div id='d99' class='colors'> +MediumOrchid</div> +<div id='d100' class='colors'> +MediumOrchid1</div> +<div id='d101' class='colors'> +MediumOrchid2</div> +<div id='d102' class='colors'> +MediumOrchid3</div> +<div id='d103' class='colors'> +MediumOrchid4</div> +<div id='d104' class='colors'> +DarkViolet</div> +<div id='d105' class='colors'> +DarkOrchid</div> +<div id='d106' class='colors'> +DarkOrchid1</div> +<div id='d107' class='colors'> +DarkOrchid3</div> +<div id='d108' class='colors'> +DarkOrchid2</div> +<div id='d109' class='colors'> +DarkOrchid4</div> +<div id='d110' class='colors'> +purple</div> +<div id='d111' class='colors'> +indigo</div> +<div id='d112' class='colors'> +BlueViolet</div> +<div id='d113' class='colors'> +purple2</div> +<div id='d114' class='colors'> +purple3</div> +<div id='d115' class='colors'> +purple4</div> +<div id='d116' class='colors'> +purple1</div> +<div id='d117' class='colors'> +MediumPurple</div> +<div id='d118' class='colors'> +MediumPurple1</div> +<div id='d119' class='colors'> +MediumPurple2</div> +<div id='d120' class='colors'> +MediumPurple3</div> +<div id='d121' class='colors'> +MediumPurple4</div> +<div id='d122' class='colors'> +DarkSlateBlue</div> +<div id='d123' class='colors'> +LightSlateBlue</div> +<div id='d124' class='colors'> +MediumSlateBlue</div> +<div id='d125' class='colors'> +SlateBlue</div> +<div id='d126' class='colors'> +SlateBlue1</div> +<div id='d127' class='colors'> +SlateBlue2</div> +<div id='d128' class='colors'> +SlateBlue3</div> +<div id='d129' class='colors'> +SlateBlue4</div> +<div id='d130' class='colors'> +GhostWhite</div> +<div id='d131' class='colors'> +lavender</div> +<div id='d132' class='colors'> +blue</div> +<div id='d133' class='colors'> +blue1</div> +<div id='d134' class='colors'> +blue2</div> +<div id='d135' class='colors'> +blue3</div> +<div id='d136' class='colors'> +MediumBlue</div> +<div id='d137' class='colors'> +blue4</div> +<div id='d138' class='colors'> +DarkBlue</div> +<div id='d139' class='colors'> +MidnightBlue</div> +<div id='d140' class='colors'> +navy</div> +<div id='d141' class='colors'> +NavyBlue</div> +<div id='d142' class='colors'> +RoyalBlue</div> +<div id='d143' class='colors'> +RoyalBlue1</div> +<div id='d144' class='colors'> +RoyalBlue2</div> +<div id='d145' class='colors'> +RoyalBlue3</div> +<div id='d146' class='colors'> +RoyalBlue4</div> +<div id='d147' class='colors'> +CornflowerBlue</div> +<div id='d148' class='colors'> +LightSteelBlue</div> +<div id='d149' class='colors'> +LightSteelBlue1</div> +<div id='d150' class='colors'> +LightSteelBlue2</div> +<div id='d151' class='colors'> +LightSteelBlue3</div> +<div id='d152' class='colors'> +LightSteelBlue4</div> +<div id='d153' class='colors'> +SlateGray4</div> +<div id='d154' class='colors'> +SlateGray1</div> +<div id='d155' class='colors'> +SlateGray2</div> +<div id='d156' class='colors'> +SlateGray3</div> +<div id='d157' class='colors'> +LightSlateGray</div> +<div id='d158' class='colors'> +LightSlateGrey</div> +<div id='d159' class='colors'> +SlateGray</div> +<div id='d160' class='colors'> +SlateGrey</div> +<div id='d161' class='colors'> +DodgerBlue</div> +<div id='d162' class='colors'> +DodgerBlue1</div> +<div id='d163' class='colors'> +DodgerBlue2</div> +<div id='d164' class='colors'> +DodgerBlue4</div> +<div id='d165' class='colors'> +DodgerBlue3</div> +<div id='d166' class='colors'> +AliceBlue</div> +<div id='d167' class='colors'> +SteelBlue4</div> +<div id='d168' class='colors'> +SteelBlue</div> +<div id='d169' class='colors'> +SteelBlue1</div> +<div id='d170' class='colors'> +SteelBlue2</div> +<div id='d171' class='colors'> +SteelBlue3</div> +<div id='d172' class='colors'> +SkyBlue4</div> +<div id='d173' class='colors'> +SkyBlue1</div> +<div id='d174' class='colors'> +SkyBlue2</div> +<div id='d175' class='colors'> +SkyBlue3</div> +<div id='d176' class='colors'> +LightSkyBlue</div> +<div id='d177' class='colors'> +LightSkyBlue4</div> +<div id='d178' class='colors'> +LightSkyBlue1</div> +<div id='d179' class='colors'> +LightSkyBlue2</div> +<div id='d180' class='colors'> +LightSkyBlue3</div> +<div id='d181' class='colors'> +SkyBlue</div> +<div id='d182' class='colors'> +LightBlue3</div> +<div id='d183' class='colors'> +DeepSkyBlue</div> +<div id='d184' class='colors'> +DeepSkyBlue1</div> +<div id='d185' class='colors'> +DeepSkyBlue2</div> +<div id='d186' class='colors'> +DeepSkyBlue4</div> +<div id='d187' class='colors'> +DeepSkyBlue3</div> +<div id='d188' class='colors'> +LightBlue1</div> +<div id='d189' class='colors'> +LightBlue2</div> +<div id='d190' class='colors'> +LightBlue</div> +<div id='d191' class='colors'> +LightBlue4</div> +<div id='d192' class='colors'> +PowderBlue</div> +<div id='d193' class='colors'> +CadetBlue1</div> +<div id='d194' class='colors'> +CadetBlue2</div> +<div id='d195' class='colors'> +CadetBlue3</div> +<div id='d196' class='colors'> +CadetBlue4</div> +<div id='d197' class='colors'> +turquoise1</div> +<div id='d198' class='colors'> +turquoise2</div> +<div id='d199' class='colors'> +turquoise3</div> +<div id='d200' class='colors'> +turquoise4</div> +<div id='d201' class='colors'> +cadet blue</div> +<div id='d202' class='colors'> +CadetBlue</div> +<div id='d203' class='colors'> +DarkTurquoise</div> +<div id='d204' class='colors'> +azure</div> +<div id='d205' class='colors'> +azure1</div> +<div id='d206' class='colors'> +LightCyan</div> +<div id='d207' class='colors'> +LightCyan1</div> +<div id='d208' class='colors'> +azure2</div> +<div id='d209' class='colors'> +LightCyan2</div> +<div id='d210' class='colors'> +PaleTurquoise1</div> +<div id='d211' class='colors'> +PaleTurquoise</div> +<div id='d212' class='colors'> +PaleTurquoise2</div> +<div id='d213' class='colors'> +DarkSlateGray1</div> +<div id='d214' class='colors'> +azure3</div> +<div id='d215' class='colors'> +LightCyan3</div> +<div id='d216' class='colors'> +DarkSlateGray2</div> +<div id='d217' class='colors'> +PaleTurquoise3</div> +<div id='d218' class='colors'> +DarkSlateGray3</div> +<div id='d219' class='colors'> +azure4</div> +<div id='d220' class='colors'> +LightCyan4</div> +<div id='d221' class='colors'> +aqua</div> +<div id='d222' class='colors'> +cyan</div> +<div id='d223' class='colors'> +cyan1</div> +<div id='d224' class='colors'> +PaleTurquoise4</div> +<div id='d225' class='colors'> +cyan2</div> +<div id='d226' class='colors'> +DarkSlateGray4</div> +<div id='d227' class='colors'> +cyan3</div> +<div id='d228' class='colors'> +cyan4</div> +<div id='d229' class='colors'> +DarkCyan</div> +<div id='d230' class='colors'> +teal</div> +<div id='d231' class='colors'> +DarkSlateGray</div> +<div id='d232' class='colors'> +DarkSlateGrey</div> +<div id='d233' class='colors'> +MediumTurquoise</div> +<div id='d234' class='colors'> +LightSeaGreen</div> +<div id='d235' class='colors'> +turquoise</div> +<div id='d236' class='colors'> +aquamarine4</div> +<div id='d237' class='colors'> +aquamarine</div> +<div id='d238' class='colors'> +aquamarine1</div> +<div id='d239' class='colors'> +aquamarine2</div> +<div id='d240' class='colors'> +aquamarine3</div> +<div id='d241' class='colors'> +MediumAquamarine</div> +<div id='d242' class='colors'> +MediumSpringGreen</div> +<div id='d243' class='colors'> +MintCream</div> +<div id='d244' class='colors'> +SpringGreen</div> +<div id='d245' class='colors'> +SpringGreen1</div> +<div id='d246' class='colors'> +SpringGreen2</div> +<div id='d247' class='colors'> +SpringGreen3</div> +<div id='d248' class='colors'> +SpringGreen4</div> +<div id='d249' class='colors'> +MediumSeaGreen</div> +<div id='d250' class='colors'> +SeaGreen</div> +<div id='d251' class='colors'> +SeaGreen3</div> +<div id='d252' class='colors'> +SeaGreen1</div> +<div id='d253' class='colors'> +SeaGreen4</div> +<div id='d254' class='colors'> +SeaGreen2</div> +<div id='d255' class='colors'> +MediumForestGreen</div> +<div id='d256' class='colors'> +honeydew</div> +<div id='d257' class='colors'> +honeydew1</div> +<div id='d258' class='colors'> +honeydew2</div> +<div id='d259' class='colors'> +DarkSeaGreen1</div> +<div id='d260' class='colors'> +DarkSeaGreen2</div> +<div id='d261' class='colors'> +PaleGreen1</div> +<div id='d262' class='colors'> +PaleGreen</div> +<div id='d263' class='colors'> +honeydew3</div> +<div id='d264' class='colors'> +LightGreen</div> +<div id='d265' class='colors'> +PaleGreen2</div> +<div id='d266' class='colors'> +DarkSeaGreen3</div> +<div id='d267' class='colors'> +DarkSeaGreen</div> +<div id='d268' class='colors'> +PaleGreen3</div> +<div id='d269' class='colors'> +honeydew4</div> +<div id='d270' class='colors'> +green1</div> +<div id='d271' class='colors'> +lime</div> +<div id='d272' class='colors'> +LimeGreen</div> +<div id='d273' class='colors'> +DarkSeaGreen4</div> +<div id='d274' class='colors'> +green2</div> +<div id='d275' class='colors'> +PaleGreen4</div> +<div id='d276' class='colors'> +green3</div> +<div id='d277' class='colors'> +ForestGreen</div> +<div id='d278' class='colors'> +green4</div> +<div id='d279' class='colors'> +green</div> +<div id='d280' class='colors'> +DarkGreen</div> +<div id='d281' class='colors'> +LawnGreen</div> +<div id='d282' class='colors'> +chartreuse</div> +<div id='d283' class='colors'> +chartreuse1</div> +<div id='d284' class='colors'> +chartreuse2</div> +<div id='d285' class='colors'> +chartreuse3</div> +<div id='d286' class='colors'> +chartreuse4</div> +<div id='d287' class='colors'> +GreenYellow</div> +<div id='d288' class='colors'> +DarkOliveGreen3</div> +<div id='d289' class='colors'> +DarkOliveGreen1</div> +<div id='d290' class='colors'> +DarkOliveGreen2</div> +<div id='d291' class='colors'> +DarkOliveGreen4</div> +<div id='d292' class='colors'> +DarkOliveGreen</div> +<div id='d293' class='colors'> +OliveDrab</div> +<div id='d294' class='colors'> +OliveDrab1</div> +<div id='d295' class='colors'> +OliveDrab2</div> +<div id='d296' class='colors'> +OliveDrab3</div> +<div id='d297' class='colors'> +YellowGreen</div> +<div id='d298' class='colors'> +OliveDrab4</div> +<div id='d299' class='colors'> +ivory</div> +<div id='d300' class='colors'> +ivory1</div> +<div id='d301' class='colors'> +LightYellow</div> +<div id='d302' class='colors'> +LightYellow1</div> +<div id='d303' class='colors'> +beige</div> +<div id='d304' class='colors'> +ivory2</div> +<div id='d305' class='colors'> +LightGoldenrodYellow</div> +<div id='d306' class='colors'> +LightYellow2</div> +<div id='d307' class='colors'> +ivory3</div> +<div id='d308' class='colors'> +LightYellow3</div> +<div id='d309' class='colors'> +ivory4</div> +<div id='d310' class='colors'> +LightYellow4</div> +<div id='d311' class='colors'> +yellow</div> +<div id='d312' class='colors'> +yellow1</div> +<div id='d313' class='colors'> +yellow2</div> +<div id='d314' class='colors'> +yellow3</div> +<div id='d315' class='colors'> +yellow4</div> +<div id='d316' class='colors'> +olive</div> +<div id='d317' class='colors'> +DarkKhaki</div> +<div id='d318' class='colors'> +khaki2</div> +<div id='d319' class='colors'> +LemonChiffon4</div> +<div id='d320' class='colors'> +khaki1</div> +<div id='d321' class='colors'> +khaki3</div> +<div id='d322' class='colors'> +khaki4</div> +<div id='d323' class='colors'> +PaleGoldenrod</div> +<div id='d324' class='colors'> +LemonChiffon</div> +<div id='d325' class='colors'> +LemonChiffon1</div> +<div id='d326' class='colors'> +khaki</div> +<div id='d327' class='colors'> +LemonChiffon3</div> +<div id='d328' class='colors'> +LemonChiffon2</div> +<div id='d329' class='colors'> +MediumGoldenRod</div> +<div id='d330' class='colors'> +cornsilk4</div> +<div id='d331' class='colors'> +gold</div> +<div id='d332' class='colors'> +gold1</div> +<div id='d333' class='colors'> +gold2</div> +<div id='d334' class='colors'> +gold3</div> +<div id='d335' class='colors'> +gold4</div> +<div id='d336' class='colors'> +LightGoldenrod</div> +<div id='d337' class='colors'> +LightGoldenrod4</div> +<div id='d338' class='colors'> +LightGoldenrod1</div> +<div id='d339' class='colors'> +LightGoldenrod3</div> +<div id='d340' class='colors'> +LightGoldenrod2</div> +<div id='d341' class='colors'> +cornsilk3</div> +<div id='d342' class='colors'> +cornsilk2</div> +<div id='d343' class='colors'> +cornsilk</div> +<div id='d344' class='colors'> +cornsilk1</div> +<div id='d345' class='colors'> +goldenrod</div> +<div id='d346' class='colors'> +goldenrod1</div> +<div id='d347' class='colors'> +goldenrod2</div> +<div id='d348' class='colors'> +goldenrod3</div> +<div id='d349' class='colors'> +goldenrod4</div> +<div id='d350' class='colors'> +DarkGoldenrod</div> +<div id='d351' class='colors'> +DarkGoldenrod1</div> +<div id='d352' class='colors'> +DarkGoldenrod2</div> +<div id='d353' class='colors'> +DarkGoldenrod3</div> +<div id='d354' class='colors'> +DarkGoldenrod4</div> +<div id='d355' class='colors'> +FloralWhite</div> +<div id='d356' class='colors'> +wheat2</div> +<div id='d357' class='colors'> +OldLace</div> +<div id='d358' class='colors'> +wheat</div> +<div id='d359' class='colors'> +wheat1</div> +<div id='d360' class='colors'> +wheat3</div> +<div id='d361' class='colors'> +orange</div> +<div id='d362' class='colors'> +orange1</div> +<div id='d363' class='colors'> +orange2</div> +<div id='d364' class='colors'> +orange3</div> +<div id='d365' class='colors'> +orange4</div> +<div id='d366' class='colors'> +wheat4</div> +<div id='d367' class='colors'> +moccasin</div> +<div id='d368' class='colors'> +PapayaWhip</div> +<div id='d369' class='colors'> +NavajoWhite3</div> +<div id='d370' class='colors'> +BlanchedAlmond</div> +<div id='d371' class='colors'> +NavajoWhite</div> +<div id='d372' class='colors'> +NavajoWhite1</div> +<div id='d373' class='colors'> +NavajoWhite2</div> +<div id='d374' class='colors'> +NavajoWhite4</div> +<div id='d375' class='colors'> +AntiqueWhite4</div> +<div id='d376' class='colors'> +AntiqueWhite</div> +<div id='d377' class='colors'> +tan</div> +<div id='d378' class='colors'> +bisque4</div> +<div id='d379' class='colors'> +burlywood</div> +<div id='d380' class='colors'> +AntiqueWhite2</div> +<div id='d381' class='colors'> +burlywood1</div> +<div id='d382' class='colors'> +burlywood3</div> +<div id='d383' class='colors'> +burlywood2</div> +<div id='d384' class='colors'> +AntiqueWhite1</div> +<div id='d385' class='colors'> +burlywood4</div> +<div id='d386' class='colors'> +AntiqueWhite3</div> +<div id='d387' class='colors'> +DarkOrange</div> +<div id='d388' class='colors'> +bisque2</div> +<div id='d389' class='colors'> +bisque</div> +<div id='d390' class='colors'> +bisque1</div> +<div id='d391' class='colors'> +bisque3</div> +<div id='d392' class='colors'> +DarkOrange1</div> +<div id='d393' class='colors'> +linen</div> +<div id='d394' class='colors'> +DarkOrange2</div> +<div id='d395' class='colors'> +DarkOrange3</div> +<div id='d396' class='colors'> +DarkOrange4</div> +<div id='d397' class='colors'> +peru</div> +<div id='d398' class='colors'> +tan1</div> +<div id='d399' class='colors'> +tan2</div> +<div id='d400' class='colors'> +tan3</div> +<div id='d401' class='colors'> +tan4</div> +<div id='d402' class='colors'> +PeachPuff</div> +<div id='d403' class='colors'> +PeachPuff1</div> +<div id='d404' class='colors'> +PeachPuff4</div> +<div id='d405' class='colors'> +PeachPuff2</div> +<div id='d406' class='colors'> +PeachPuff3</div> +<div id='d407' class='colors'> +SandyBrown</div> +<div id='d408' class='colors'> +seashell4</div> +<div id='d409' class='colors'> +seashell2</div> +<div id='d410' class='colors'> +seashell3</div> +<div id='d411' class='colors'> +chocolate</div> +<div id='d412' class='colors'> +chocolate1</div> +<div id='d413' class='colors'> +chocolate2</div> +<div id='d414' class='colors'> +chocolate3</div> +<div id='d415' class='colors'> +chocolate4</div> +<div id='d416' class='colors'> +SaddleBrown</div> +<div id='d417' class='colors'> +seashell</div> +<div id='d418' class='colors'> +seashell1</div> +<div id='d419' class='colors'> +sienna4</div> +<div id='d420' class='colors'> +sienna</div> +<div id='d421' class='colors'> +sienna1</div> +<div id='d422' class='colors'> +sienna2</div> +<div id='d423' class='colors'> +sienna3</div> +<div id='d424' class='colors'> +LightSalmon3</div> +<div id='d425' class='colors'> +LightSalmon</div> +<div id='d426' class='colors'> +LightSalmon1</div> +<div id='d427' class='colors'> +LightSalmon4</div> +<div id='d428' class='colors'> +LightSalmon2</div> +<div id='d429' class='colors'> +coral</div> +<div id='d430' class='colors'> +OrangeRed</div> +<div id='d431' class='colors'> +OrangeRed1</div> +<div id='d432' class='colors'> +OrangeRed2</div> +<div id='d433' class='colors'> +OrangeRed3</div> +<div id='d434' class='colors'> +OrangeRed4</div> +<div id='d435' class='colors'> +DarkSalmon</div> +<div id='d436' class='colors'> +salmon1</div> +<div id='d437' class='colors'> +salmon2</div> +<div id='d438' class='colors'> +salmon3</div> +<div id='d439' class='colors'> +salmon4</div> +<div id='d440' class='colors'> +coral1</div> +<div id='d441' class='colors'> +coral2</div> +<div id='d442' class='colors'> +coral3</div> +<div id='d443' class='colors'> +coral4</div> +<div id='d444' class='colors'> +tomato4</div> +<div id='d445' class='colors'> +tomato</div> +<div id='d446' class='colors'> +tomato1</div> +<div id='d447' class='colors'> +tomato2</div> +<div id='d448' class='colors'> +tomato3</div> +<div id='d449' class='colors'> +MistyRose4</div> +<div id='d450' class='colors'> +MistyRose2</div> +<div id='d451' class='colors'> +MistyRose</div> +<div id='d452' class='colors'> +MistyRose1</div> +<div id='d453' class='colors'> +salmon</div> +<div id='d454' class='colors'> +MistyRose3</div> +<div id='d455' class='colors'> +white</div> +<div id='d456' class='colors'> +gray100</div> +<div id='d457' class='colors'> +grey100</div> +<div id='d458' class='colors'> +grey100</div> +<div id='d459' class='colors'> +gray99</div> +<div id='d460' class='colors'> +grey99</div> +<div id='d461' class='colors'> +gray98</div> +<div id='d462' class='colors'> +grey98</div> +<div id='d463' class='colors'> +gray97</div> +<div id='d464' class='colors'> +grey97</div> +<div id='d465' class='colors'> +gray96</div> +<div id='d466' class='colors'> +grey96</div> +<div id='d467' class='colors'> +WhiteSmoke</div> +<div id='d468' class='colors'> +gray95</div> +<div id='d469' class='colors'> +grey95</div> +<div id='d470' class='colors'> +gray94</div> +<div id='d471' class='colors'> +grey94</div> +<div id='d472' class='colors'> +gray93</div> +<div id='d473' class='colors'> +grey93</div> +<div id='d474' class='colors'> +gray92</div> +<div id='d475' class='colors'> +grey92</div> +<div id='d476' class='colors'> +gray91</div> +<div id='d477' class='colors'> +grey91</div> +<div id='d478' class='colors'> +gray90</div> +<div id='d479' class='colors'> +grey90</div> +<div id='d480' class='colors'> +gray89</div> +<div id='d481' class='colors'> +grey89</div> +<div id='d482' class='colors'> +gray88</div> +<div id='d483' class='colors'> +grey88</div> +<div id='d484' class='colors'> +gray87</div> +<div id='d485' class='colors'> +grey87</div> +<div id='d486' class='colors'> +gainsboro</div> +<div id='d487' class='colors'> +gray86</div> +<div id='d488' class='colors'> +grey86</div> +<div id='d489' class='colors'> +gray85</div> +<div id='d490' class='colors'> +grey85</div> +<div id='d491' class='colors'> +gray84</div> +<div id='d492' class='colors'> +grey84</div> +<div id='d493' class='colors'> +gray83</div> +<div id='d494' class='colors'> +grey83</div> +<div id='d495' class='colors'> +LightGray</div> +<div id='d496' class='colors'> +LightGrey</div> +<div id='d497' class='colors'> +gray82</div> +<div id='d498' class='colors'> +grey82</div> +<div id='d499' class='colors'> +gray81</div> +<div id='d500' class='colors'> +grey81</div> +<div id='d501' class='colors'> +gray80</div> +<div id='d502' class='colors'> +grey80</div> +<div id='d503' class='colors'> +gray79</div> +<div id='d504' class='colors'> +grey79</div> +<div id='d505' class='colors'> +gray78</div> +<div id='d506' class='colors'> +grey78</div> +<div id='d507' class='colors'> +gray77</div> +<div id='d508' class='colors'> +grey77</div> +<div id='d509' class='colors'> +gray76</div> +<div id='d510' class='colors'> +grey76</div> +<div id='d511' class='colors'> +silver</div> +<div id='d512' class='colors'> +gray75</div> +<div id='d513' class='colors'> +grey75</div> +<div id='d514' class='colors'> +gray74</div> +<div id='d515' class='colors'> +grey74</div> +<div id='d516' class='colors'> +gray73</div> +<div id='d517' class='colors'> +grey73</div> +<div id='d518' class='colors'> +gray72</div> +<div id='d519' class='colors'> +grey72</div> +<div id='d520' class='colors'> +gray71</div> +<div id='d521' class='colors'> +grey71</div> +<div id='d522' class='colors'> +gray70</div> +<div id='d523' class='colors'> +grey70</div> +<div id='d524' class='colors'> +gray69</div> +<div id='d525' class='colors'> +grey69</div> +<div id='d526' class='colors'> +gray68</div> +<div id='d527' class='colors'> +grey68</div> +<div id='d528' class='colors'> +gray67</div> +<div id='d529' class='colors'> +grey67</div> +<div id='d530' class='colors'> +DarkGray</div> +<div id='d531' class='colors'> +DarkGrey</div> +<div id='d532' class='colors'> +gray66</div> +<div id='d533' class='colors'> +grey66</div> +<div id='d534' class='colors'> +gray65</div> +<div id='d535' class='colors'> +grey65</div> +<div id='d536' class='colors'> +gray64</div> +<div id='d537' class='colors'> +grey64</div> +<div id='d538' class='colors'> +gray63</div> +<div id='d539' class='colors'> +grey63</div> +<div id='d540' class='colors'> +gray62</div> +<div id='d541' class='colors'> +grey62</div> +<div id='d542' class='colors'> +gray61</div> +<div id='d543' class='colors'> +grey61</div> +<div id='d544' class='colors'> +gray60</div> +<div id='d545' class='colors'> +grey60</div> +<div id='d546' class='colors'> +gray59</div> +<div id='d547' class='colors'> +grey59</div> +<div id='d548' class='colors'> +gray58</div> +<div id='d549' class='colors'> +grey58</div> +<div id='d550' class='colors'> +gray57</div> +<div id='d551' class='colors'> +grey57</div> +<div id='d552' class='colors'> +gray56</div> +<div id='d553' class='colors'> +grey56</div> +<div id='d554' class='colors'> +gray55</div> +<div id='d555' class='colors'> +grey55</div> +<div id='d556' class='colors'> +gray54</div> +<div id='d557' class='colors'> +grey54</div> +<div id='d558' class='colors'> +gray53</div> +<div id='d559' class='colors'> +grey53</div> +<div id='d560' class='colors'> +gray52</div> +<div id='d561' class='colors'> +grey52</div> +<div id='d562' class='colors'> +gray51</div> +<div id='d563' class='colors'> +grey51</div> +<div id='d564' class='colors'> +fractal</div> +<div id='d565' class='colors'> +gray50</div> +<div id='d566' class='colors'> +grey50</div> +<div id='d567' class='colors'> +gray</div> +<div id='d568' class='colors'> +gray49</div> +<div id='d569' class='colors'> +grey49</div> +<div id='d570' class='colors'> +gray48</div> +<div id='d571' class='colors'> +grey48</div> +<div id='d572' class='colors'> +gray47</div> +<div id='d573' class='colors'> +grey47</div> +<div id='d574' class='colors'> +gray46</div> +<div id='d575' class='colors'> +grey46</div> +<div id='d576' class='colors'> +gray45</div> +<div id='d577' class='colors'> +grey45</div> +<div id='d578' class='colors'> +gray44</div> +<div id='d579' class='colors'> +grey44</div> +<div id='d580' class='colors'> +gray43</div> +<div id='d581' class='colors'> +grey43</div> +<div id='d582' class='colors'> +gray42</div> +<div id='d583' class='colors'> +grey42</div> +<div id='d584' class='colors'> +DimGray</div> +<div id='d585' class='colors'> +DimGrey</div> +<div id='d586' class='colors'> +gray41</div> +<div id='d587' class='colors'> +grey41</div> +<div id='d588' class='colors'> +gray40</div> +<div id='d589' class='colors'> +grey40</div> +<div id='d590' class='colors'> +gray39</div> +<div id='d591' class='colors'> +grey39</div> +<div id='d592' class='colors'> +gray38</div> +<div id='d593' class='colors'> +grey38</div> +<div id='d594' class='colors'> +gray37</div> +<div id='d595' class='colors'> +grey37</div> +<div id='d596' class='colors'> +gray36</div> +<div id='d597' class='colors'> +grey36</div> +<div id='d598' class='colors'> +gray35</div> +<div id='d599' class='colors'> +grey35</div> +<div id='d600' class='colors'> +gray34</div> +<div id='d601' class='colors'> +grey34</div> +<div id='d602' class='colors'> +gray33</div> +<div id='d603' class='colors'> +grey33</div> +<div id='d604' class='colors'> +gray32</div> +<div id='d605' class='colors'> +grey32</div> +<div id='d606' class='colors'> +gray31</div> +<div id='d607' class='colors'> +grey31</div> +<div id='d608' class='colors'> +gray30</div> +<div id='d609' class='colors'> +grey30</div> +<div id='d610' class='colors'> +gray29</div> +<div id='d611' class='colors'> +grey29</div> +<div id='d612' class='colors'> +gray28</div> +<div id='d613' class='colors'> +grey28</div> +<div id='d614' class='colors'> +gray27</div> +<div id='d615' class='colors'> +grey27</div> +<div id='d616' class='colors'> +gray26</div> +<div id='d617' class='colors'> +grey26</div> +<div id='d618' class='colors'> +gray25</div> +<div id='d619' class='colors'> +grey25</div> +<div id='d620' class='colors'> +gray24</div> +<div id='d621' class='colors'> +grey24</div> +<div id='d622' class='colors'> +gray23</div> +<div id='d623' class='colors'> +grey23</div> +<div id='d624' class='colors'> +gray22</div> +<div id='d625' class='colors'> +grey22</div> +<div id='d626' class='colors'> +gray21</div> +<div id='d627' class='colors'> +grey21</div> +<div id='d628' class='colors'> +gray20</div> +<div id='d629' class='colors'> +grey20</div> +<div id='d630' class='colors'> +gray19</div> +<div id='d631' class='colors'> +grey19</div> +<div id='d632' class='colors'> +gray18</div> +<div id='d633' class='colors'> +grey18</div> +<div id='d634' class='colors'> +gray17</div> +<div id='d635' class='colors'> +grey17</div> +<div id='d636' class='colors'> +gray16</div> +<div id='d637' class='colors'> +grey16</div> +<div id='d638' class='colors'> +gray15</div> +<div id='d639' class='colors'> +grey15</div> +<div id='d640' class='colors'> +gray14</div> +<div id='d641' class='colors'> +grey14</div> +<div id='d642' class='colors'> +gray13</div> +<div id='d643' class='colors'> +grey13</div> +<div id='d644' class='colors'> +gray12</div> +<div id='d645' class='colors'> +grey12</div> +<div id='d646' class='colors'> +gray11</div> +<div id='d647' class='colors'> +grey11</div> +<div id='d648' class='colors'> +gray10</div> +<div id='d649' class='colors'> +grey10</div> +<div id='d650' class='colors'> +gray9</div> +<div id='d651' class='colors'> +grey9</div> +<div id='d652' class='colors'> +gray8</div> +<div id='d653' class='colors'> +grey8</div> +<div id='d654' class='colors'> +gray7</div> +<div id='d655' class='colors'> +grey7</div> +<div id='d656' class='colors'> +gray6</div> +<div id='d657' class='colors'> +grey6</div> +<div id='d658' class='colors'> +gray5</div> +<div id='d659' class='colors'> +grey5</div> +<div id='d660' class='colors'> +gray4</div> +<div id='d661' class='colors'> +grey4</div> +<div id='d662' class='colors'> +gray3</div> +<div id='d663' class='colors'> +grey3</div> +<div id='d664' class='colors'> +gray2</div> +<div id='d665' class='colors'> +grey2</div> +<div id='d666' class='colors'> +gray1</div> +<div id='d667' class='colors'> +grey1</div> +<div id='d668' class='colors'> +black</div> +<div id='d669' class='colors'> +gray0</div> +<div id='d670' class='colors'> +grey0</div> +<div id='d671' class='colors'> +opaque</div> +<div id='d672' class='colors'> +none</div> +<div id='d673' class='colors'> +transparent</div> +</div> + +<div id='colornames'> +WHERE THE COLORNAMES WILL GO +</div> + +<div id='hexswitch'>CLICK TO SHOW HEXES</div> +<div id='infoswitch'>CLICK TO SHOW INFO</div> +<script type='text/javascript' src='js/jquery-1.6.4.min.js'></script> +<script type='text/javascript' src='js/colordict.js'></script> + +<script type='text/javascript'> +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newwidth = goldenize(result) + widthval = newwidth.toString()+'px' + $(idandselectr).css('width', widthval) + } +makegolden('.colors', 'height') + + +//remove content this function takes the name out of the divs +infoswitch = false; +function removecontent() + { + if(infoswitch == false) + { + $('#infoswitch').click(function() + { + infoswitch = true + if(infoswitch == true){ + $('.colors').html("") + } + }) + } + if(infoswitch == true) + { + $('#infoswitch').click(function() + { + infoswitch = false + }) + } + } +removecontent() + +function colorToHex(color) +{ + if (color.substr(0, 1) === '#') { + return color; + } + var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); + + var red = parseInt(digits[2]); + var green = parseInt(digits[3]); + var blue = parseInt(digits[4]); + + var rgb = blue | (green << 8) | (red << 16); + return digits[1] + '#' + rgb.toString(16); +}; + +//takes a div name and returns a colorname + +function showcolorname(divstr) + + { + bgcolor = $('#'+divstr).css('background-color') + lowercasehex = colorToHex(bgcolor) + hex = lowercasehex.toUpperCase() + imname = hextoname[hex] + if (hexes == true) + { + imname = hex + } + return imname + } +function bigname(divstr) + { + colorname = showcolorname(divstr) + $('#colornames').html(colorname) + } +function writeit(text) + { + $('#colornames').append(text) + } +function makebig(divstr) + { + firstheight = $('#'+divstr).height() + newheight = goldenize(firstheight) + $('#'+divstr).height(newheight) + } +function makesmall(divstr) + { + oldheight = $('.colors').height() + $('#'+divstr).height(oldheight) + } +$('.colors').hover(function() { + bigname(this.id); + makebig(this.id); + makegolden('#'+this.id, 'height')}, +function(){ + makesmall(this.id); + makegolden('#'+this.id, 'height') +}); +$(".colors").hover(function(){ +$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); +}); +$('body').css('background-color', 'black') +$('.colors').css('margin-top', '2px') +var hexes = false +function hexswitch() + { + if(hexes == false) + { + $('#hexswitch').html('CLICK TO SHOW COLOR NAMES') + hexes = true; + } + + else + { + $('#hexswitch').html('CLICK TO SHOW HEX NAMES') + hexes = false; + } + } +$('#hexswitch').click(function(){hexswitch()}) +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/colors/test.html b/frontend/imgrid/colors/colors/test.html new file mode 100755 index 0000000..1912ebf --- /dev/null +++ b/frontend/imgrid/colors/colors/test.html @@ -0,0 +1,56 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> +<!--<link rel="stylesheet" href="css/normalize.css">--> +<head> + <style type='text/css'> + #master + { + width:400px; + font-size:0; + } + .slaves + { + width:100px; + background-color:gray; + height:40px; + display:inline-block; + } + </style> + + +</head> +<body> + +<div id='master'> + +<div class='slaves' style='background-color:pink'></div> +<div class='slaves' style='background-color:blue'></div> +<div class='slaves' style='background-color:dodgerblue'></div> +<div class='slaves' style='background-color:red'></div> + +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +</div> +<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> +<!--<script type='text/javascript' src='jquery.js'></script>--> +<script type='text/javascript'> +$('.slaves').mouseover(function() + { + $(this).css('width','120px') + $('#master').css('width','420') + }).mouseout(function() + { + $(this).css({'width':'100px'}) + $('#master').css('width','420') + + }); +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/colors/vase.gif b/frontend/imgrid/colors/colors/vase.gif Binary files differnew file mode 100755 index 0000000..dc1c104 --- /dev/null +++ b/frontend/imgrid/colors/colors/vase.gif diff --git a/frontend/imgrid/colors/colors/vase.png b/frontend/imgrid/colors/colors/vase.png Binary files differnew file mode 100755 index 0000000..153e72b --- /dev/null +++ b/frontend/imgrid/colors/colors/vase.png diff --git a/frontend/imgrid/colors/colors/vaseshim.png b/frontend/imgrid/colors/colors/vaseshim.png Binary files differnew file mode 100755 index 0000000..7dbd352 --- /dev/null +++ b/frontend/imgrid/colors/colors/vaseshim.png diff --git a/frontend/imgrid/colors/colors/whiteshim.png b/frontend/imgrid/colors/colors/whiteshim.png Binary files differnew file mode 100755 index 0000000..6b58334 --- /dev/null +++ b/frontend/imgrid/colors/colors/whiteshim.png diff --git a/frontend/imgrid/colors/grayshim.png b/frontend/imgrid/colors/grayshim.png Binary files differnew file mode 100755 index 0000000..6f71223 --- /dev/null +++ b/frontend/imgrid/colors/grayshim.png diff --git a/frontend/imgrid/colors/hoverbutton.png b/frontend/imgrid/colors/hoverbutton.png Binary files differnew file mode 100755 index 0000000..b14281e --- /dev/null +++ b/frontend/imgrid/colors/hoverbutton.png diff --git a/frontend/imgrid/colors/index.html b/frontend/imgrid/colors/index.html new file mode 100755 index 0000000..93b1a9b --- /dev/null +++ b/frontend/imgrid/colors/index.html @@ -0,0 +1,3507 @@ +<html> +<head> + +<style type='text/css'> + +body +{ +margin:0; +} + +#colorpicker +{ + +width:100%; +font-family:helvetica; +font-size:10px; +//background-color: gray; +//background-image: url("http://asdf.us/im/6f/gradient_bgdither_1321255670_pepper.gif"); +background-color: black; +background-image: url("http://dump.fm/static/img/bg.dither.gif") + +} + +#container div +{ +text-align:left; +display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +min-height: 30px; +zoom: 1; +word-wrap: break-word; +*display: inline; +cursor:pointer; +} + +#container +{ +margin:0 auto; +width:31%; +padding-top:100px; +padding-right:10px; +padding-left:10px; +text-align:center; +} + +#colornames +{ +color:white; +position:fixed; +font-size:50px; +top:50px; +left:2%; +width:400px; +} + +#switches + { + position:fixed; + top:20px; + right:1%; + height:400px; + width:300px; + font-size:20px; + border-style: groove; + border-width: 4px; + background-color:gray; + padding:2px; + box-shadow: 10px 10px 5px #141414; + } + +#infoswitch, #hexswitch, #backgroundswitch + { + background-image:url(http://asdf.us/im/58/gradient_whitegray80_1321305183_1321305241_pepper.jpg); + cursor:pointer; + } +#preview + { + height:150px; + } + + +#holder + { + float:bottom; + } + +#transparent + { + font-size:12px; + } +#namespace + { + width:inherit; + } +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{ +height:30; +width:10px; +} +</style></head><body> +<div id='colorpicker'> +<div id='container'> +<div id='d0' class='colors'> +snow</div> +<div id='d1' class='colors'> +snow1</div> +<div id='d2' class='colors'> +snow2</div> +<div id='d3' class='colors'> +RosyBrown1</div> +<div id='d4' class='colors'> +RosyBrown2</div> +<div id='d5' class='colors'> +snow3</div> +<div id='d6' class='colors'> +LightCoral</div> +<div id='d7' class='colors'> +IndianRed1</div> +<div id='d8' class='colors'> +RosyBrown3</div> +<div id='d9' class='colors'> +IndianRed2</div> +<div id='d10' class='colors'> +RosyBrown</div> +<div id='d11' class='colors'> +brown1</div> +<div id='d12' class='colors'> +firebrick1</div> +<div id='d13' class='colors'> +brown2</div> +<div id='d14' class='colors'> +IndianRed</div> +<div id='d15' class='colors'> +IndianRed3</div> +<div id='d16' class='colors'> +firebrick2</div> +<div id='d17' class='colors'> +snow4</div> +<div id='d18' class='colors'> +brown3</div> +<div id='d19' class='colors'> +red</div> +<div id='d20' class='colors'> +red1</div> +<div id='d21' class='colors'> +RosyBrown4</div> +<div id='d22' class='colors'> +firebrick3</div> +<div id='d23' class='colors'> +red2</div> +<div id='d24' class='colors'> +firebrick</div> +<div id='d25' class='colors'> +brown</div> +<div id='d26' class='colors'> +red3</div> +<div id='d27' class='colors'> +IndianRed4</div> +<div id='d28' class='colors'> +brown4</div> +<div id='d29' class='colors'> +firebrick4</div> +<div id='d30' class='colors'> +DarkRed</div> +<div id='d31' class='colors'> +red4</div> +<div id='d32' class='colors'> +maroon</div> +<div id='d33' class='colors'> +LightPink1</div> +<div id='d34' class='colors'> +LightPink3</div> +<div id='d35' class='colors'> +LightPink4</div> +<div id='d36' class='colors'> +LightPink2</div> +<div id='d37' class='colors'> +LightPink</div> +<div id='d38' class='colors'> +pink</div> +<div id='d39' class='colors'> +crimson</div> +<div id='d40' class='colors'> +pink1</div> +<div id='d41' class='colors'> +pink2</div> +<div id='d42' class='colors'> +pink3</div> +<div id='d43' class='colors'> +pink4</div> +<div id='d44' class='colors'> +PaleVioletRed4</div> +<div id='d45' class='colors'> +PaleVioletRed</div> +<div id='d46' class='colors'> +PaleVioletRed2</div> +<div id='d47' class='colors'> +PaleVioletRed1</div> +<div id='d48' class='colors'> +PaleVioletRed3</div> +<div id='d49' class='colors'> +LavenderBlush</div> +<div id='d50' class='colors'> +LavenderBlush1</div> +<div id='d51' class='colors'> +LavenderBlush3</div> +<div id='d52' class='colors'> +LavenderBlush2</div> +<div id='d53' class='colors'> +LavenderBlush4</div> +<div id='d54' class='colors'> +maroon</div> +<div id='d55' class='colors'> +HotPink3</div> +<div id='d56' class='colors'> +VioletRed3</div> +<div id='d57' class='colors'> +VioletRed1</div> +<div id='d58' class='colors'> +VioletRed2</div> +<div id='d59' class='colors'> +VioletRed4</div> +<div id='d60' class='colors'> +HotPink2</div> +<div id='d61' class='colors'> +HotPink1</div> +<div id='d62' class='colors'> +HotPink4</div> +<div id='d63' class='colors'> +HotPink</div> +<div id='d64' class='colors'> +DeepPink</div> +<div id='d65' class='colors'> +DeepPink1</div> +<div id='d66' class='colors'> +DeepPink2</div> +<div id='d67' class='colors'> +DeepPink3</div> +<div id='d68' class='colors'> +DeepPink4</div> +<div id='d69' class='colors'> +maroon1</div> +<div id='d70' class='colors'> +maroon2</div> +<div id='d71' class='colors'> +maroon3</div> +<div id='d72' class='colors'> +maroon4</div> +<div id='d73' class='colors'> +MediumVioletRed</div> +<div id='d74' class='colors'> +VioletRed</div> +<div id='d75' class='colors'> +orchid2</div> +<div id='d76' class='colors'> +orchid</div> +<div id='d77' class='colors'> +orchid1</div> +<div id='d78' class='colors'> +orchid3</div> +<div id='d79' class='colors'> +orchid4</div> +<div id='d80' class='colors'> +thistle1</div> +<div id='d81' class='colors'> +thistle2</div> +<div id='d82' class='colors'> +plum1</div> +<div id='d83' class='colors'> +plum2</div> +<div id='d84' class='colors'> +thistle</div> +<div id='d85' class='colors'> +thistle3</div> +<div id='d86' class='colors'> +plum</div> +<div id='d87' class='colors'> +violet</div> +<div id='d88' class='colors'> +plum3</div> +<div id='d89' class='colors'> +thistle4</div> +<div id='d90' class='colors'> +fuchsia</div> +<div id='d91' class='colors'> +magenta</div> +<div id='d92' class='colors'> +magenta1</div> +<div id='d93' class='colors'> +plum4</div> +<div id='d94' class='colors'> +magenta2</div> +<div id='d95' class='colors'> +magenta3</div> +<div id='d96' class='colors'> +DarkMagenta</div> +<div id='d97' class='colors'> +magenta4</div> +<div id='d98' class='colors'> +purple</div> +<div id='d99' class='colors'> +MediumOrchid</div> +<div id='d100' class='colors'> +MediumOrchid1</div> +<div id='d101' class='colors'> +MediumOrchid2</div> +<div id='d102' class='colors'> +MediumOrchid3</div> +<div id='d103' class='colors'> +MediumOrchid4</div> +<div id='d104' class='colors'> +DarkViolet</div> +<div id='d105' class='colors'> +DarkOrchid</div> +<div id='d106' class='colors'> +DarkOrchid1</div> +<div id='d107' class='colors'> +DarkOrchid3</div> +<div id='d108' class='colors'> +DarkOrchid2</div> +<div id='d109' class='colors'> +DarkOrchid4</div> +<div id='d110' class='colors'> +purple</div> +<div id='d111' class='colors'> +indigo</div> +<div id='d112' class='colors'> +BlueViolet</div> +<div id='d113' class='colors'> +purple2</div> +<div id='d114' class='colors'> +purple3</div> +<div id='d115' class='colors'> +purple4</div> +<div id='d116' class='colors'> +purple1</div> +<div id='d117' class='colors'> +MediumPurple</div> +<div id='d118' class='colors'> +MediumPurple1</div> +<div id='d119' class='colors'> +MediumPurple2</div> +<div id='d120' class='colors'> +MediumPurple3</div> +<div id='d121' class='colors'> +MediumPurple4</div> +<div id='d122' class='colors'> +DarkSlateBlue</div> +<div id='d123' class='colors'> +LightSlateBlue</div> +<div id='d124' class='colors'> +MediumSlateBlue</div> +<div id='d125' class='colors'> +SlateBlue</div> +<div id='d126' class='colors'> +SlateBlue1</div> +<div id='d127' class='colors'> +SlateBlue2</div> +<div id='d128' class='colors'> +SlateBlue3</div> +<div id='d129' class='colors'> +SlateBlue4</div> +<div id='d130' class='colors'> +GhostWhite</div> +<div id='d131' class='colors'> +lavender</div> +<div id='d132' class='colors'> +blue</div> +<div id='d133' class='colors'> +blue1</div> +<div id='d134' class='colors'> +blue2</div> +<div id='d135' class='colors'> +blue3</div> +<div id='d136' class='colors'> +MediumBlue</div> +<div id='d137' class='colors'> +blue4</div> +<div id='d138' class='colors'> +DarkBlue</div> +<div id='d139' class='colors'> +MidnightBlue</div> +<div id='d140' class='colors'> +navy</div> +<div id='d141' class='colors'> +NavyBlue</div> +<div id='d142' class='colors'> +RoyalBlue</div> +<div id='d143' class='colors'> +RoyalBlue1</div> +<div id='d144' class='colors'> +RoyalBlue2</div> +<div id='d145' class='colors'> +RoyalBlue3</div> +<div id='d146' class='colors'> +RoyalBlue4</div> +<div id='d147' class='colors'> +CornflowerBlue</div> +<div id='d148' class='colors'> +LightSteelBlue</div> +<div id='d149' class='colors'> +LightSteelBlue1</div> +<div id='d150' class='colors'> +LightSteelBlue2</div> +<div id='d151' class='colors'> +LightSteelBlue3</div> +<div id='d152' class='colors'> +LightSteelBlue4</div> +<div id='d153' class='colors'> +SlateGray4</div> +<div id='d154' class='colors'> +SlateGray1</div> +<div id='d155' class='colors'> +SlateGray2</div> +<div id='d156' class='colors'> +SlateGray3</div> +<div id='d157' class='colors'> +LightSlateGray</div> +<div id='d158' class='colors'> +LightSlateGrey</div> +<div id='d159' class='colors'> +SlateGray</div> +<div id='d160' class='colors'> +SlateGrey</div> +<div id='d161' class='colors'> +DodgerBlue</div> +<div id='d162' class='colors'> +DodgerBlue1</div> +<div id='d163' class='colors'> +DodgerBlue2</div> +<div id='d164' class='colors'> +DodgerBlue4</div> +<div id='d165' class='colors'> +DodgerBlue3</div> +<div id='d166' class='colors'> +AliceBlue</div> +<div id='d167' class='colors'> +SteelBlue4</div> +<div id='d168' class='colors'> +SteelBlue</div> +<div id='d169' class='colors'> +SteelBlue1</div> +<div id='d170' class='colors'> +SteelBlue2</div> +<div id='d171' class='colors'> +SteelBlue3</div> +<div id='d172' class='colors'> +SkyBlue4</div> +<div id='d173' class='colors'> +SkyBlue1</div> +<div id='d174' class='colors'> +SkyBlue2</div> +<div id='d175' class='colors'> +SkyBlue3</div> +<div id='d176' class='colors'> +LightSkyBlue</div> +<div id='d177' class='colors'> +LightSkyBlue4</div> +<div id='d178' class='colors'> +LightSkyBlue1</div> +<div id='d179' class='colors'> +LightSkyBlue2</div> +<div id='d180' class='colors'> +LightSkyBlue3</div> +<div id='d181' class='colors'> +SkyBlue</div> +<div id='d182' class='colors'> +LightBlue3</div> +<div id='d183' class='colors'> +DeepSkyBlue</div> +<div id='d184' class='colors'> +DeepSkyBlue1</div> +<div id='d185' class='colors'> +DeepSkyBlue2</div> +<div id='d186' class='colors'> +DeepSkyBlue4</div> +<div id='d187' class='colors'> +DeepSkyBlue3</div> +<div id='d188' class='colors'> +LightBlue1</div> +<div id='d189' class='colors'> +LightBlue2</div> +<div id='d190' class='colors'> +LightBlue</div> +<div id='d191' class='colors'> +LightBlue4</div> +<div id='d192' class='colors'> +PowderBlue</div> +<div id='d193' class='colors'> +CadetBlue1</div> +<div id='d194' class='colors'> +CadetBlue2</div> +<div id='d195' class='colors'> +CadetBlue3</div> +<div id='d196' class='colors'> +CadetBlue4</div> +<div id='d197' class='colors'> +turquoise1</div> +<div id='d198' class='colors'> +turquoise2</div> +<div id='d199' class='colors'> +turquoise3</div> +<div id='d200' class='colors'> +turquoise4</div> +<div id='d201' class='colors'> +cadet blue</div> +<div id='d202' class='colors'> +CadetBlue</div> +<div id='d203' class='colors'> +DarkTurquoise</div> +<div id='d204' class='colors'> +azure</div> +<div id='d205' class='colors'> +azure1</div> +<div id='d206' class='colors'> +LightCyan</div> +<div id='d207' class='colors'> +LightCyan1</div> +<div id='d208' class='colors'> +azure2</div> +<div id='d209' class='colors'> +LightCyan2</div> +<div id='d210' class='colors'> +PaleTurquoise1</div> +<div id='d211' class='colors'> +PaleTurquoise</div> +<div id='d212' class='colors'> +PaleTurquoise2</div> +<div id='d213' class='colors'> +DarkSlateGray1</div> +<div id='d214' class='colors'> +azure3</div> +<div id='d215' class='colors'> +LightCyan3</div> +<div id='d216' class='colors'> +DarkSlateGray2</div> +<div id='d217' class='colors'> +PaleTurquoise3</div> +<div id='d218' class='colors'> +DarkSlateGray3</div> +<div id='d219' class='colors'> +azure4</div> +<div id='d220' class='colors'> +LightCyan4</div> +<div id='d221' class='colors'> +aqua</div> +<div id='d222' class='colors'> +cyan</div> +<div id='d223' class='colors'> +cyan1</div> +<div id='d224' class='colors'> +PaleTurquoise4</div> +<div id='d225' class='colors'> +cyan2</div> +<div id='d226' class='colors'> +DarkSlateGray4</div> +<div id='d227' class='colors'> +cyan3</div> +<div id='d228' class='colors'> +cyan4</div> +<div id='d229' class='colors'> +DarkCyan</div> +<div id='d230' class='colors'> +teal</div> +<div id='d231' class='colors'> +DarkSlateGray</div> +<div id='d232' class='colors'> +DarkSlateGrey</div> +<div id='d233' class='colors'> +MediumTurquoise</div> +<div id='d234' class='colors'> +LightSeaGreen</div> +<div id='d235' class='colors'> +turquoise</div> +<div id='d236' class='colors'> +aquamarine4</div> +<div id='d237' class='colors'> +aquamarine</div> +<div id='d238' class='colors'> +aquamarine1</div> +<div id='d239' class='colors'> +aquamarine2</div> +<div id='d240' class='colors'> +aquamarine3</div> +<div id='d241' class='colors'> +MediumAquamarine</div> +<div id='d242' class='colors'> +MediumSpringGreen</div> +<div id='d243' class='colors'> +MintCream</div> +<div id='d244' class='colors'> +SpringGreen</div> +<div id='d245' class='colors'> +SpringGreen1</div> +<div id='d246' class='colors'> +SpringGreen2</div> +<div id='d247' class='colors'> +SpringGreen3</div> +<div id='d248' class='colors'> +SpringGreen4</div> +<div id='d249' class='colors'> +MediumSeaGreen</div> +<div id='d250' class='colors'> +SeaGreen</div> +<div id='d251' class='colors'> +SeaGreen3</div> +<div id='d252' class='colors'> +SeaGreen1</div> +<div id='d253' class='colors'> +SeaGreen4</div> +<div id='d254' class='colors'> +SeaGreen2</div> +<div id='d255' class='colors'> +MediumForestGreen</div> +<div id='d256' class='colors'> +honeydew</div> +<div id='d257' class='colors'> +honeydew1</div> +<div id='d258' class='colors'> +honeydew2</div> +<div id='d259' class='colors'> +DarkSeaGreen1</div> +<div id='d260' class='colors'> +DarkSeaGreen2</div> +<div id='d261' class='colors'> +PaleGreen1</div> +<div id='d262' class='colors'> +PaleGreen</div> +<div id='d263' class='colors'> +honeydew3</div> +<div id='d264' class='colors'> +LightGreen</div> +<div id='d265' class='colors'> +PaleGreen2</div> +<div id='d266' class='colors'> +DarkSeaGreen3</div> +<div id='d267' class='colors'> +DarkSeaGreen</div> +<div id='d268' class='colors'> +PaleGreen3</div> +<div id='d269' class='colors'> +honeydew4</div> +<div id='d270' class='colors'> +green1</div> +<div id='d271' class='colors'> +lime</div> +<div id='d272' class='colors'> +LimeGreen</div> +<div id='d273' class='colors'> +DarkSeaGreen4</div> +<div id='d274' class='colors'> +green2</div> +<div id='d275' class='colors'> +PaleGreen4</div> +<div id='d276' class='colors'> +green3</div> +<div id='d277' class='colors'> +ForestGreen</div> +<div id='d278' class='colors'> +green4</div> +<div id='d279' class='colors'> +green</div> +<div id='d280' class='colors'> +DarkGreen</div> +<div id='d281' class='colors'> +LawnGreen</div> +<div id='d282' class='colors'> +chartreuse</div> +<div id='d283' class='colors'> +chartreuse1</div> +<div id='d284' class='colors'> +chartreuse2</div> +<div id='d285' class='colors'> +chartreuse3</div> +<div id='d286' class='colors'> +chartreuse4</div> +<div id='d287' class='colors'> +GreenYellow</div> +<div id='d288' class='colors'> +DarkOliveGreen3</div> +<div id='d289' class='colors'> +DarkOliveGreen1</div> +<div id='d290' class='colors'> +DarkOliveGreen2</div> +<div id='d291' class='colors'> +DarkOliveGreen4</div> +<div id='d292' class='colors'> +DarkOliveGreen</div> +<div id='d293' class='colors'> +OliveDrab</div> +<div id='d294' class='colors'> +OliveDrab1</div> +<div id='d295' class='colors'> +OliveDrab2</div> +<div id='d296' class='colors'> +OliveDrab3</div> +<div id='d297' class='colors'> +YellowGreen</div> +<div id='d298' class='colors'> +OliveDrab4</div> +<div id='d299' class='colors'> +ivory</div> +<div id='d300' class='colors'> +ivory1</div> +<div id='d301' class='colors'> +LightYellow</div> +<div id='d302' class='colors'> +LightYellow1</div> +<div id='d303' class='colors'> +beige</div> +<div id='d304' class='colors'> +ivory2</div> +<div id='d305' class='colors'> +LightGoldenrodYellow</div> +<div id='d306' class='colors'> +LightYellow2</div> +<div id='d307' class='colors'> +ivory3</div> +<div id='d308' class='colors'> +LightYellow3</div> +<div id='d309' class='colors'> +ivory4</div> +<div id='d310' class='colors'> +LightYellow4</div> +<div id='d311' class='colors'> +yellow</div> +<div id='d312' class='colors'> +yellow1</div> +<div id='d313' class='colors'> +yellow2</div> +<div id='d314' class='colors'> +yellow3</div> +<div id='d315' class='colors'> +yellow4</div> +<div id='d316' class='colors'> +olive</div> +<div id='d317' class='colors'> +DarkKhaki</div> +<div id='d318' class='colors'> +khaki2</div> +<div id='d319' class='colors'> +LemonChiffon4</div> +<div id='d320' class='colors'> +khaki1</div> +<div id='d321' class='colors'> +khaki3</div> +<div id='d322' class='colors'> +khaki4</div> +<div id='d323' class='colors'> +PaleGoldenrod</div> +<div id='d324' class='colors'> +LemonChiffon</div> +<div id='d325' class='colors'> +LemonChiffon1</div> +<div id='d326' class='colors'> +khaki</div> +<div id='d327' class='colors'> +LemonChiffon3</div> +<div id='d328' class='colors'> +LemonChiffon2</div> +<div id='d329' class='colors'> +MediumGoldenRod</div> +<div id='d330' class='colors'> +cornsilk4</div> +<div id='d331' class='colors'> +gold</div> +<div id='d332' class='colors'> +gold1</div> +<div id='d333' class='colors'> +gold2</div> +<div id='d334' class='colors'> +gold3</div> +<div id='d335' class='colors'> +gold4</div> +<div id='d336' class='colors'> +LightGoldenrod</div> +<div id='d337' class='colors'> +LightGoldenrod4</div> +<div id='d338' class='colors'> +LightGoldenrod1</div> +<div id='d339' class='colors'> +LightGoldenrod3</div> +<div id='d340' class='colors'> +LightGoldenrod2</div> +<div id='d341' class='colors'> +cornsilk3</div> +<div id='d342' class='colors'> +cornsilk2</div> +<div id='d343' class='colors'> +cornsilk</div> +<div id='d344' class='colors'> +cornsilk1</div> +<div id='d345' class='colors'> +goldenrod</div> +<div id='d346' class='colors'> +goldenrod1</div> +<div id='d347' class='colors'> +goldenrod2</div> +<div id='d348' class='colors'> +goldenrod3</div> +<div id='d349' class='colors'> +goldenrod4</div> +<div id='d350' class='colors'> +DarkGoldenrod</div> +<div id='d351' class='colors'> +DarkGoldenrod1</div> +<div id='d352' class='colors'> +DarkGoldenrod2</div> +<div id='d353' class='colors'> +DarkGoldenrod3</div> +<div id='d354' class='colors'> +DarkGoldenrod4</div> +<div id='d355' class='colors'> +FloralWhite</div> +<div id='d356' class='colors'> +wheat2</div> +<div id='d357' class='colors'> +OldLace</div> +<div id='d358' class='colors'> +wheat</div> +<div id='d359' class='colors'> +wheat1</div> +<div id='d360' class='colors'> +wheat3</div> +<div id='d361' class='colors'> +orange</div> +<div id='d362' class='colors'> +orange1</div> +<div id='d363' class='colors'> +orange2</div> +<div id='d364' class='colors'> +orange3</div> +<div id='d365' class='colors'> +orange4</div> +<div id='d366' class='colors'> +wheat4</div> +<div id='d367' class='colors'> +moccasin</div> +<div id='d368' class='colors'> +PapayaWhip</div> +<div id='d369' class='colors'> +NavajoWhite3</div> +<div id='d370' class='colors'> +BlanchedAlmond</div> +<div id='d371' class='colors'> +NavajoWhite</div> +<div id='d372' class='colors'> +NavajoWhite1</div> +<div id='d373' class='colors'> +NavajoWhite2</div> +<div id='d374' class='colors'> +NavajoWhite4</div> +<div id='d375' class='colors'> +AntiqueWhite4</div> +<div id='d376' class='colors'> +AntiqueWhite</div> +<div id='d377' class='colors'> +tan</div> +<div id='d378' class='colors'> +bisque4</div> +<div id='d379' class='colors'> +burlywood</div> +<div id='d380' class='colors'> +AntiqueWhite2</div> +<div id='d381' class='colors'> +burlywood1</div> +<div id='d382' class='colors'> +burlywood3</div> +<div id='d383' class='colors'> +burlywood2</div> +<div id='d384' class='colors'> +AntiqueWhite1</div> +<div id='d385' class='colors'> +burlywood4</div> +<div id='d386' class='colors'> +AntiqueWhite3</div> +<div id='d387' class='colors'> +DarkOrange</div> +<div id='d388' class='colors'> +bisque2</div> +<div id='d389' class='colors'> +bisque</div> +<div id='d390' class='colors'> +bisque1</div> +<div id='d391' class='colors'> +bisque3</div> +<div id='d392' class='colors'> +DarkOrange1</div> +<div id='d393' class='colors'> +linen</div> +<div id='d394' class='colors'> +DarkOrange2</div> +<div id='d395' class='colors'> +DarkOrange3</div> +<div id='d396' class='colors'> +DarkOrange4</div> +<div id='d397' class='colors'> +peru</div> +<div id='d398' class='colors'> +tan1</div> +<div id='d399' class='colors'> +tan2</div> +<div id='d400' class='colors'> +tan3</div> +<div id='d401' class='colors'> +tan4</div> +<div id='d402' class='colors'> +PeachPuff</div> +<div id='d403' class='colors'> +PeachPuff1</div> +<div id='d404' class='colors'> +PeachPuff4</div> +<div id='d405' class='colors'> +PeachPuff2</div> +<div id='d406' class='colors'> +PeachPuff3</div> +<div id='d407' class='colors'> +SandyBrown</div> +<div id='d408' class='colors'> +seashell4</div> +<div id='d409' class='colors'> +seashell2</div> +<div id='d410' class='colors'> +seashell3</div> +<div id='d411' class='colors'> +chocolate</div> +<div id='d412' class='colors'> +chocolate1</div> +<div id='d413' class='colors'> +chocolate2</div> +<div id='d414' class='colors'> +chocolate3</div> +<div id='d415' class='colors'> +chocolate4</div> +<div id='d416' class='colors'> +SaddleBrown</div> +<div id='d417' class='colors'> +seashell</div> +<div id='d418' class='colors'> +seashell1</div> +<div id='d419' class='colors'> +sienna4</div> +<div id='d420' class='colors'> +sienna</div> +<div id='d421' class='colors'> +sienna1</div> +<div id='d422' class='colors'> +sienna2</div> +<div id='d423' class='colors'> +sienna3</div> +<div id='d424' class='colors'> +LightSalmon3</div> +<div id='d425' class='colors'> +LightSalmon</div> +<div id='d426' class='colors'> +LightSalmon1</div> +<div id='d427' class='colors'> +LightSalmon4</div> +<div id='d428' class='colors'> +LightSalmon2</div> +<div id='d429' class='colors'> +coral</div> +<div id='d430' class='colors'> +OrangeRed</div> +<div id='d431' class='colors'> +OrangeRed1</div> +<div id='d432' class='colors'> +OrangeRed2</div> +<div id='d433' class='colors'> +OrangeRed3</div> +<div id='d434' class='colors'> +OrangeRed4</div> +<div id='d435' class='colors'> +DarkSalmon</div> +<div id='d436' class='colors'> +salmon1</div> +<div id='d437' class='colors'> +salmon2</div> +<div id='d438' class='colors'> +salmon3</div> +<div id='d439' class='colors'> +salmon4</div> +<div id='d440' class='colors'> +coral1</div> +<div id='d441' class='colors'> +coral2</div> +<div id='d442' class='colors'> +coral3</div> +<div id='d443' class='colors'> +coral4</div> +<div id='d444' class='colors'> +tomato4</div> +<div id='d445' class='colors'> +tomato</div> +<div id='d446' class='colors'> +tomato1</div> +<div id='d447' class='colors'> +tomato2</div> +<div id='d448' class='colors'> +tomato3</div> +<div id='d449' class='colors'> +MistyRose4</div> +<div id='d450' class='colors'> +MistyRose2</div> +<div id='d451' class='colors'> +MistyRose</div> +<div id='d452' class='colors'> +MistyRose1</div> +<div id='d453' class='colors'> +salmon</div> +<div id='d454' class='colors'> +MistyRose3</div> +<div id='d455' class='colors'> +white</div> +<div id='d456' class='colors'> +gray100</div> +<div id='d457' class='colors'> +grey100</div> +<div id='d458' class='colors'> +grey100</div> +<div id='d459' class='colors'> +gray99</div> +<div id='d460' class='colors'> +grey99</div> +<div id='d461' class='colors'> +gray98</div> +<div id='d462' class='colors'> +grey98</div> +<div id='d463' class='colors'> +gray97</div> +<div id='d464' class='colors'> +grey97</div> +<div id='d465' class='colors'> +gray96</div> +<div id='d466' class='colors'> +grey96</div> +<div id='d467' class='colors'> +WhiteSmoke</div> +<div id='d468' class='colors'> +gray95</div> +<div id='d469' class='colors'> +grey95</div> +<div id='d470' class='colors'> +gray94</div> +<div id='d471' class='colors'> +grey94</div> +<div id='d472' class='colors'> +gray93</div> +<div id='d473' class='colors'> +grey93</div> +<div id='d474' class='colors'> +gray92</div> +<div id='d475' class='colors'> +grey92</div> +<div id='d476' class='colors'> +gray91</div> +<div id='d477' class='colors'> +grey91</div> +<div id='d478' class='colors'> +gray90</div> +<div id='d479' class='colors'> +grey90</div> +<div id='d480' class='colors'> +gray89</div> +<div id='d481' class='colors'> +grey89</div> +<div id='d482' class='colors'> +gray88</div> +<div id='d483' class='colors'> +grey88</div> +<div id='d484' class='colors'> +gray87</div> +<div id='d485' class='colors'> +grey87</div> +<div id='d486' class='colors'> +gainsboro</div> +<div id='d487' class='colors'> +gray86</div> +<div id='d488' class='colors'> +grey86</div> +<div id='d489' class='colors'> +gray85</div> +<div id='d490' class='colors'> +grey85</div> +<div id='d491' class='colors'> +gray84</div> +<div id='d492' class='colors'> +grey84</div> +<div id='d493' class='colors'> +gray83</div> +<div id='d494' class='colors'> +grey83</div> +<div id='d495' class='colors'> +LightGray</div> +<div id='d496' class='colors'> +LightGrey</div> +<div id='d497' class='colors'> +gray82</div> +<div id='d498' class='colors'> +grey82</div> +<div id='d499' class='colors'> +gray81</div> +<div id='d500' class='colors'> +grey81</div> +<div id='d501' class='colors'> +gray80</div> +<div id='d502' class='colors'> +grey80</div> +<div id='d503' class='colors'> +gray79</div> +<div id='d504' class='colors'> +grey79</div> +<div id='d505' class='colors'> +gray78</div> +<div id='d506' class='colors'> +grey78</div> +<div id='d507' class='colors'> +gray77</div> +<div id='d508' class='colors'> +grey77</div> +<div id='d509' class='colors'> +gray76</div> +<div id='d510' class='colors'> +grey76</div> +<div id='d511' class='colors'> +silver</div> +<div id='d512' class='colors'> +gray75</div> +<div id='d513' class='colors'> +grey75</div> +<div id='d514' class='colors'> +gray74</div> +<div id='d515' class='colors'> +grey74</div> +<div id='d516' class='colors'> +gray73</div> +<div id='d517' class='colors'> +grey73</div> +<div id='d518' class='colors'> +gray72</div> +<div id='d519' class='colors'> +grey72</div> +<div id='d520' class='colors'> +gray71</div> +<div id='d521' class='colors'> +grey71</div> +<div id='d522' class='colors'> +gray70</div> +<div id='d523' class='colors'> +grey70</div> +<div id='d524' class='colors'> +gray69</div> +<div id='d525' class='colors'> +grey69</div> +<div id='d526' class='colors'> +gray68</div> +<div id='d527' class='colors'> +grey68</div> +<div id='d528' class='colors'> +gray67</div> +<div id='d529' class='colors'> +grey67</div> +<div id='d530' class='colors'> +DarkGray</div> +<div id='d531' class='colors'> +DarkGrey</div> +<div id='d532' class='colors'> +gray66</div> +<div id='d533' class='colors'> +grey66</div> +<div id='d534' class='colors'> +gray65</div> +<div id='d535' class='colors'> +grey65</div> +<div id='d536' class='colors'> +gray64</div> +<div id='d537' class='colors'> +grey64</div> +<div id='d538' class='colors'> +gray63</div> +<div id='d539' class='colors'> +grey63</div> +<div id='d540' class='colors'> +gray62</div> +<div id='d541' class='colors'> +grey62</div> +<div id='d542' class='colors'> +gray61</div> +<div id='d543' class='colors'> +grey61</div> +<div id='d544' class='colors'> +gray60</div> +<div id='d545' class='colors'> +grey60</div> +<div id='d546' class='colors'> +gray59</div> +<div id='d547' class='colors'> +grey59</div> +<div id='d548' class='colors'> +gray58</div> +<div id='d549' class='colors'> +grey58</div> +<div id='d550' class='colors'> +gray57</div> +<div id='d551' class='colors'> +grey57</div> +<div id='d552' class='colors'> +gray56</div> +<div id='d553' class='colors'> +grey56</div> +<div id='d554' class='colors'> +gray55</div> +<div id='d555' class='colors'> +grey55</div> +<div id='d556' class='colors'> +gray54</div> +<div id='d557' class='colors'> +grey54</div> +<div id='d558' class='colors'> +gray53</div> +<div id='d559' class='colors'> +grey53</div> +<div id='d560' class='colors'> +gray52</div> +<div id='d561' class='colors'> +grey52</div> +<div id='d562' class='colors'> +gray51</div> +<div id='d563' class='colors'> +grey51</div> +<div id='d564' class='colors'> +fractal</div> +<div id='d565' class='colors'> +gray50</div> +<div id='d566' class='colors'> +grey50</div> +<div id='d567' class='colors'> +gray</div> +<div id='d568' class='colors'> +gray49</div> +<div id='d569' class='colors'> +grey49</div> +<div id='d570' class='colors'> +gray48</div> +<div id='d571' class='colors'> +grey48</div> +<div id='d572' class='colors'> +gray47</div> +<div id='d573' class='colors'> +grey47</div> +<div id='d574' class='colors'> +gray46</div> +<div id='d575' class='colors'> +grey46</div> +<div id='d576' class='colors'> +gray45</div> +<div id='d577' class='colors'> +grey45</div> +<div id='d578' class='colors'> +gray44</div> +<div id='d579' class='colors'> +grey44</div> +<div id='d580' class='colors'> +gray43</div> +<div id='d581' class='colors'> +grey43</div> +<div id='d582' class='colors'> +gray42</div> +<div id='d583' class='colors'> +grey42</div> +<div id='d584' class='colors'> +DimGray</div> +<div id='d585' class='colors'> +DimGrey</div> +<div id='d586' class='colors'> +gray41</div> +<div id='d587' class='colors'> +grey41</div> +<div id='d588' class='colors'> +gray40</div> +<div id='d589' class='colors'> +grey40</div> +<div id='d590' class='colors'> +gray39</div> +<div id='d591' class='colors'> +grey39</div> +<div id='d592' class='colors'> +gray38</div> +<div id='d593' class='colors'> +grey38</div> +<div id='d594' class='colors'> +gray37</div> +<div id='d595' class='colors'> +grey37</div> +<div id='d596' class='colors'> +gray36</div> +<div id='d597' class='colors'> +grey36</div> +<div id='d598' class='colors'> +gray35</div> +<div id='d599' class='colors'> +grey35</div> +<div id='d600' class='colors'> +gray34</div> +<div id='d601' class='colors'> +grey34</div> +<div id='d602' class='colors'> +gray33</div> +<div id='d603' class='colors'> +grey33</div> +<div id='d604' class='colors'> +gray32</div> +<div id='d605' class='colors'> +grey32</div> +<div id='d606' class='colors'> +gray31</div> +<div id='d607' class='colors'> +grey31</div> +<div id='d608' class='colors'> +gray30</div> +<div id='d609' class='colors'> +grey30</div> +<div id='d610' class='colors'> +gray29</div> +<div id='d611' class='colors'> +grey29</div> +<div id='d612' class='colors'> +gray28</div> +<div id='d613' class='colors'> +grey28</div> +<div id='d614' class='colors'> +gray27</div> +<div id='d615' class='colors'> +grey27</div> +<div id='d616' class='colors'> +gray26</div> +<div id='d617' class='colors'> +grey26</div> +<div id='d618' class='colors'> +gray25</div> +<div id='d619' class='colors'> +grey25</div> +<div id='d620' class='colors'> +gray24</div> +<div id='d621' class='colors'> +grey24</div> +<div id='d622' class='colors'> +gray23</div> +<div id='d623' class='colors'> +grey23</div> +<div id='d624' class='colors'> +gray22</div> +<div id='d625' class='colors'> +grey22</div> +<div id='d626' class='colors'> +gray21</div> +<div id='d627' class='colors'> +grey21</div> +<div id='d628' class='colors'> +gray20</div> +<div id='d629' class='colors'> +grey20</div> +<div id='d630' class='colors'> +gray19</div> +<div id='d631' class='colors'> +grey19</div> +<div id='d632' class='colors'> +gray18</div> +<div id='d633' class='colors'> +grey18</div> +<div id='d634' class='colors'> +gray17</div> +<div id='d635' class='colors'> +grey17</div> +<div id='d636' class='colors'> +gray16</div> +<div id='d637' class='colors'> +grey16</div> +<div id='d638' class='colors'> +gray15</div> +<div id='d639' class='colors'> +grey15</div> +<div id='d640' class='colors'> +gray14</div> +<div id='d641' class='colors'> +grey14</div> +<div id='d642' class='colors'> +gray13</div> +<div id='d643' class='colors'> +grey13</div> +<div id='d644' class='colors'> +gray12</div> +<div id='d645' class='colors'> +grey12</div> +<div id='d646' class='colors'> +gray11</div> +<div id='d647' class='colors'> +grey11</div> +<div id='d648' class='colors'> +gray10</div> +<div id='d649' class='colors'> +grey10</div> +<div id='d650' class='colors'> +gray9</div> +<div id='d651' class='colors'> +grey9</div> +<div id='d652' class='colors'> +gray8</div> +<div id='d653' class='colors'> +grey8</div> +<div id='d654' class='colors'> +gray7</div> +<div id='d655' class='colors'> +grey7</div> +<div id='d656' class='colors'> +gray6</div> +<div id='d657' class='colors'> +grey6</div> +<div id='d658' class='colors'> +gray5</div> +<div id='d659' class='colors'> +grey5</div> +<div id='d660' class='colors'> +gray4</div> +<div id='d661' class='colors'> +grey4</div> +<div id='d662' class='colors'> +gray3</div> +<div id='d663' class='colors'> +grey3</div> +<div id='d664' class='colors'> +gray2</div> +<div id='d665' class='colors'> +grey2</div> +<div id='d666' class='colors'> +gray1</div> +<div id='d667' class='colors'> +grey1</div> +<div id='d668' class='colors'> +black</div> +<div id='d669' class='colors'> +gray0</div> +<div id='d670' class='colors'> +grey0</div> +<div id='d671' class='colors'> +opaque</div> +<div id='d672' class='colors'> +none</div> +<div id='d673' class='colors'> +transparent</div> +</div> + +<div id='colornames'> +CLICK TO CHOOSE THE COLOR +</div> + +<div id='switches'> + <span id='title'>OPTIONS</span> + <div id='hexswitch' class='theswitches'> </div> + <br> + <div id='infoswitch' class='theswitches'>CLICK TO TOGGLE PALATE INFO<span id='infospace'></span></div> + <br> + <div id='backgroundswitch' class='theswitches'>CLICK TO TOGGLE BACKGROUNDS</div> + <br> + <div id='preview'></div> + <div id='nameholder'>YOU WILL CHOOSE:<br><input id='namespace' style='width:inherit' type='text'></input></div> + <br> + <span id='transparent'>to choose transparent as a color, click <span id='transbutton'>HERE</span><span id='extra'></span></span> +</div> +<div id='vasebackground' style='position:fixed; z-index:2; height:120px; width:69px; top:2px; right:30px;'></div> + +<div id='vase' style='position:fixed; z-index:3; height:120px; width:69px; top:2px; right:30px; background-image:url(vase.png)'></div> +<div id='vaseshim' style='position:fixed; z-index:4; height:120px; width:69px; top:2px; right:30px; background-image:url(vaseshim.png)'></div> +<script type='text/javascript' src='js/jquery-1.6.4.min.js'></script> +<script type='text/javascript' src='js/colordict.js'></script> +<script type='text/javascript' src='js/colordictionaries2.js'></script> + +<script type='text/javascript' src='js/goldenfunctions.js'></script> +<script type='text/javascript' src='js/hovercss.js'></script> +<script type='text/javascript' src='js/iftransparentcss.js'></script> +<script type='text/javascript' src='js/backgroundswitcher.js'></script> +<script type='text/javascript' src='js/hexrgbnametoggle.js'></script> +<script type='text/javascript' src='js/setupdimensions.js'></script> +</body> +</html> diff --git a/frontend/imgrid/colors/js/backgroundswitcher.js b/frontend/imgrid/colors/js/backgroundswitcher.js new file mode 100755 index 0000000..74e8367 --- /dev/null +++ b/frontend/imgrid/colors/js/backgroundswitcher.js @@ -0,0 +1,38 @@ +backgroundstate = 2; +function switchbackground() + { + if(backgroundstate == 1) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image','url(js/ditherbackground.gif)') + backgroundstate = 2; + $('#colornames').css('color', 'white') + $('#colornames').css('text-shadow', 'black 1px 2px') + $('#vaseshim').css('background-image','url(vaseshim.png)') + } + else if(backgroundstate == 2) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image', 'none') + $('#vaseshim').css('background-image','url(blackshim.png)') + backgroundstate = 3; + } + else if(backgroundstate == 3) + { + $('#colorpicker').css('background-color','gray') + $('#colorpicker').css('background-image','none') + $('#vaseshim').css('background-image','url(grayshim.png)') + backgroundstate = 0; + } + else if(backgroundstate == 0) + { + $('#colorpicker').css('background-color', 'white') + $('#colorpicker').css('background-image', 'none') + $('#colornames').css('color', '#7F7F7F') + $('#vaseshim').css('background-image','url(whiteshim.png)') + backgroundstate = 1 + } + } + +$('#backgroundswitch').click(function(){switchbackground()}) + diff --git a/frontend/imgrid/colors/js/colordict.js b/frontend/imgrid/colors/js/colordict.js new file mode 100755 index 0000000..5c69bc8 --- /dev/null +++ b/frontend/imgrid/colors/js/colordict.js @@ -0,0 +1,3 @@ +var nametohex = {'grey21': '#363636', 'yellow': '#FFFF00', 'grey61': '#9C9C9C', 'HotPink3': '#CD6090', 'grey63': '#A1A1A1', 'grey62': '#9E9E9E', 'grey65': '#A6A6A6', 'AliceBlue': '#F0F8FF', 'grey67': '#ABABAB', 'grey66': '#A8A8A8', 'LightCyan1': '#E0FFFF', 'grey68': '#ADADAD', 'LightCyan3': '#B4CDCD', 'LightCyan2': '#D1EEEE', 'LightCyan4': '#7A8B8B', 'gray32': '#525252', 'gray33': '#545454', 'DarkTurquoise': '#00CED1', 'gray31': '#4F4F4F', 'gray36': '#5C5C5C', 'gray37': '#5E5E5E', 'gray34': '#575757', 'gray35': '#595959', 'aquamarine4': '#458B74', 'gray38': '#616161', 'gray39': '#636363', 'aquamarine1': '#7FFFD4', 'aquamarine3': '#66CDAA', 'aquamarine2': '#76EEC6', 'CadetBlue4': '#53868B', 'CadetBlue3': '#7AC5CD', 'CadetBlue2': '#8EE5EE', 'CadetBlue1': '#98F5FF', 'crimson': '#DC143C', 'VioletRed1': '#FF3E96', 'VioletRed2': '#EE3A8C', 'VioletRed3': '#CD3278', 'VioletRed4': '#8B2252', 'brown': '#A52A2A', 'DarkGoldenrod': '#B8860B', 'gray8': '#141414', 'SlateGrey': '#708090', 'NavajoWhite2': '#EECFA1', 'gray2': '#050505', 'cyan': '#00FFFF', 'gray0': '#000000', 'gray1': '#030303', 'fractal': '#808080', 'gray7': '#121212', 'gray4': '#0A0A0A', 'gray5': '#0D0D0D', 'grey60': '#999999', 'DarkBlue': '#00008B', 'gray98': '#FAFAFA', 'DarkKhaki': '#BDB76B', 'gray99': '#FCFCFC', 'teal': '#008080', 'grey11': '#1C1C1C', 'coral4': '#8B3E2F', 'grey12': '#1F1F1F', 'grey64': '#A3A3A3', 'PaleGreen1': '#9AFF9A', 'PaleGreen3': '#7CCD7C', 'PaleGreen2': '#90EE90', 'PaleGreen4': '#548B54', 'grey14': '#242424', 'lavender': '#E6E6FA', 'grey15': '#262626', 'chartreuse3': '#66CD00', 'chartreuse2': '#76EE00', 'chartreuse1': '#7FFF00', 'chartreuse4': '#458B00', 'RosyBrown': '#BC8F8F', 'blue': '#0000FF', 'NavajoWhite': '#FFDEAD', 'opaque': '#000000', 'maroon4': '#8B1C62', 'maroon3': '#CD2990', 'maroon2': '#EE30A7', 'maroon1': '#FF34B3', 'gold3': '#CDAD00', 'gold2': '#EEC900', 'gold1': '#FFD700', 'gold4': '#8B7500', 'LightSlateGrey': '#778899', 'gray30': '#4D4D4D', 'DarkGreen': '#006400', 'SkyBlue': '#87CEEB', 'GhostWhite': '#F8F8FF', 'LavenderBlush': '#FFF0F5', 'SeaGreen': '#2E8B57', 'BlanchedAlmond': '#FFEBCD', 'gray60': '#999999', 'DarkOliveGreen': '#556B2F', 'firebrick2': '#EE2C2C', 'firebrick1': '#FF3030', 'firebrick4': '#8B1A1A', 'sienna': '#A0522D', 'blue1': '#0000FF', 'lime': '#00FF00', 'gray55': '#8C8C8C', 'blue2': '#0000EE', 'DarkViolet': '#9400D3', 'blue4': '#00008B', 'peru': '#CD853F', 'DarkMagenta': '#8B008B', 'LightBlue2': '#B2DFEE', 'red2': '#EE0000', 'red1': '#FF0000', 'LightBlue1': '#BFEFFF', 'LightBlue4': '#68838B', 'red4': '#8B0000', 'MediumSpringGreen': '#00FA9A', 'chocolate': '#D2691E', 'ForestGreen': '#228B22', 'DarkRed': '#8B0000', 'olive': '#808000', 'HotPink2': '#EE6AA7', 'HotPink1': '#FF6EB4', 'HotPink4': '#8B3A62', 'grey18': '#2E2E2E', 'grey19': '#303030', 'none': '#000000', 'PeachPuff': '#FFDAB9', 'MediumGoldenRod': '#D1C166', 'moccasin': '#FFE4B5', 'grey10': '#1A1A1A', 'chocolate1': '#FF7F24', 'chocolate2': '#EE7621', 'chocolate3': '#CD661D', 'chocolate4': '#8B4513', 'wheat2': '#EED8AE', 'grey16': '#292929', 'grey17': '#2B2B2B', 'gray69': '#B0B0B0', 'gray68': '#ADADAD', 'gray65': '#A6A6A6', 'gray64': '#A3A3A3', 'gray67': '#ABABAB', 'gray66': '#A8A8A8', 'gray61': '#9C9C9C', 'coral': '#FF7F50', 'gray63': '#A1A1A1', 'gray62': '#9E9E9E', 'LightGoldenrod': '#EEDD82', 'turquoise4': '#00868B', 'seashell2': '#EEE5DE', 'seashell3': '#CDC5BF', 'magenta': '#FF00FF', 'seashell1': '#FFF5EE', 'tan': '#D2B48C', 'seashell4': '#8B8682', 'pink': '#FFC0CB', 'LightSlateBlue': '#8470FF', 'SteelBlue1': '#63B8FF', 'SteelBlue3': '#4F94CD', 'SteelBlue2': '#5CACEE', 'SteelBlue4': '#36648B', 'grey89': '#E3E3E3', 'grey88': '#E0E0E0', 'grey87': '#DEDEDE', 'grey86': '#DBDBDB', 'grey85': '#D9D9D9', 'grey84': '#D6D6D6', 'grey83': '#D4D4D4', 'grey82': '#D1D1D1', 'grey81': '#CFCFCF', 'grey80': '#CCCCCC', 'ivory2': '#EEEEE0', 'khaki4': '#8B864E', 'khaki1': '#FFF68F', 'khaki2': '#EEE685', 'khaki3': '#CDC673', 'salmon1': '#FF8C69', 'salmon3': '#CD7054', 'salmon2': '#EE8262', 'salmon4': '#8B4C39', 'LightPink': '#FFB6C1', 'gray9': '#171717', 'green': '#008000', 'brown2': '#EE3B3B', 'brown3': '#CD3333', 'brown1': '#FF4040', 'brown4': '#8B2323', 'cadet blue': '#5F9EA0', 'orange4': '#8B5A00', 'orange1': '#FFA500', 'orange3': '#CD8500', 'orange2': '#EE9A00', 'gray3': '#080808', 'gray6': '#0F0F0F', 'yellow4': '#8B8B00', 'yellow3': '#CDCD00', 'yellow2': '#EEEE00', 'yellow1': '#FFFF00', 'PapayaWhip': '#FFEFD5', 'bisque2': '#EED5B7', 'OliveDrab4': '#698B22', 'bisque3': '#CDB79E', 'OliveDrab1': '#C0FF3E', 'OliveDrab2': '#B3EE3A', 'OliveDrab3': '#9ACD32', 'SkyBlue4': '#4A708B', 'SkyBlue1': '#87CEFF', 'SkyBlue3': '#6CA6CD', 'SkyBlue2': '#7EC0EE', 'grey58': '#949494', 'grey59': '#969696', 'grey54': '#8A8A8A', 'grey55': '#8C8C8C', 'grey56': '#8F8F8F', 'grey57': '#919191', 'grey50': '#7F7F7F', 'silver': '#C0C0C0', 'grey52': '#858585', 'grey53': '#878787', 'cyan2': '#00EEEE', 'cyan3': '#00CDCD', 'gray23': '#3B3B3B', 'RosyBrown4': '#8B6969', 'gray25': '#404040', 'CornflowerBlue': '#6495ED', 'cyan4': '#008B8B', 'gray26': '#424242', 'gray29': '#4A4A4A', 'LimeGreen': '#32CD32', 'MistyRose': '#FFE4E1', 'navy': '#000080', 'gray94': '#F0F0F0', 'gray95': '#F2F2F2', 'gray96': '#F5F5F5', 'gray97': '#F7F7F7', 'gray90': '#E5E5E5', 'gray91': '#E8E8E8', 'gray92': '#EBEBEB', 'gray93': '#EDEDED', 'MediumPurple': '#9370DB', 'MidnightBlue': '#191970', 'cornsilk': '#FFF8DC', 'red': '#FF0000', 'grey69': '#B0B0B0', 'DarkOrchid4': '#68228B', 'blue3': '#0000CD', 'LightSteelBlue': '#B0C4DE', 'DarkOrchid1': '#BF3EFF', 'DarkOrchid2': '#B23AEE', 'DarkOrchid3': '#9A32CD', 'grey72': '#B8B8B8', 'FloralWhite': '#FFFAF0', 'grey70': '#B3B3B3', 'DarkSeaGreen': '#8FBC8F', 'grey71': '#B5B5B5', 'gray17': '#2B2B2B', 'grey77': '#C4C4C4', 'tomato4': '#8B3626', 'tomato1': '#FF6347', 'tomato3': '#CD4F39', 'tomato2': '#EE5C42', 'DarkSlateGray1': '#97FFFF', 'DarkSlateGray2': '#8DEEEE', 'DarkSlateGray3': '#79CDCD', 'DarkSlateGray4': '#528B8B', 'SteelBlue': '#4682B4', 'MediumSlateBlue': '#7B68EE', 'OrangeRed': '#FF4500', 'grey79': '#C9C9C9', 'MediumVioletRed': '#C71585', 'burlywood': '#DEB887', 'white': '#FFFFFF', 'tomato': '#FF6347', 'DodgerBlue': '#1E90FF', 'RoyalBlue4': '#27408B', 'RoyalBlue1': '#4876FF', 'RoyalBlue3': '#3A5FCD', 'RoyalBlue2': '#436EEE', 'MistyRose1': '#FFE4E1', 'MistyRose3': '#CDB7B5', 'MistyRose2': '#EED5D2', 'MistyRose4': '#8B7D7B', 'LightGray': '#D3D3D3', 'LightYellow': '#FFFFE0', 'DarkOrange': '#FF8C00', 'DarkGray': '#A9A9A9', 'SlateGray': '#708090', 'turquoise3': '#00C5CD', 'turquoise2': '#00E5EE', 'turquoise1': '#00F5FF', 'burlywood2': '#EEC591', 'burlywood4': '#8B7355', 'DarkSlateGray': '#2F4F4F', 'linen': '#FAF0E6', 'grey47': '#787878', 'snow': '#FFFAFA', 'grey46': '#757575', 'gray58': '#949494', 'gray59': '#969696', 'IndianRed4': '#8B3A3A', 'purple4': '#551A8B', 'gray52': '#858585', 'gray53': '#878787', 'purple1': '#9B30FF', 'IndianRed1': '#FF6A6A', 'purple3': '#7D26CD', 'purple2': '#912CEE', 'thistle3': '#CDB5CD', 'thistle2': '#EED2EE', 'SpringGreen2': '#00EE76', 'SpringGreen3': '#00CD66', 'SpringGreen4': '#008B45', 'thistle4': '#8B7B8B', 'LightPink2': '#EEA2AD', 'LightPink3': '#CD8C95', 'LightPink1': '#FFAEB9', 'LightPink4': '#8B5F65', 'MediumPurple1': '#AB82FF', 'MediumPurple2': '#9F79EE', 'MediumPurple3': '#8968CD', 'MediumPurple4': '#5D478B', 'MediumTurquoise': '#48D1CC', 'DimGray': '#696969', 'gray14': '#242424', 'grey100': '#FFFFFF', 'OrangeRed3': '#CD3700', 'OrangeRed2': '#EE4000', 'OrangeRed1': '#FF4500', 'LightSeaGreen': '#20B2AA', 'gold': '#FFD700', 'OrangeRed4': '#8B2500', 'NavajoWhite4': '#8B795E', 'NavajoWhite1': '#FFDEAD', 'LawnGreen': '#7CFC00', 'NavajoWhite3': '#CDB38B', 'LightGoldenrod4': '#8B814C', 'LightGoldenrod1': '#FFEC8B', 'LightGoldenrod3': '#CDBE70', 'LightGoldenrod2': '#EEDC82', 'gray21': '#363636', 'PaleGreen': '#98FB98', 'green4': '#008B00', 'green1': '#00FF00', 'green3': '#00CD00', 'green2': '#00EE00', 'MediumOrchid': '#BA55D3', 'black': '#000000', 'gray20': '#333333', 'orchid4': '#8B4789', 'DodgerBlue1': '#1E90FF', 'DodgerBlue2': '#1C86EE', 'DodgerBlue3': '#1874CD', 'DodgerBlue4': '#104E8B', 'orchid1': '#FF83FA', 'orchid2': '#EE7AE9', 'orchid3': '#CD69C9', 'DarkSeaGreen4': '#698B69', 'DarkSeaGreen3': '#9BCD9B', 'DarkSeaGreen2': '#B4EEB4', 'DarkSeaGreen1': '#C1FFC1', 'gray100': '#FFFFFF', 'BlueViolet': '#8A2BE2', 'bisque4': '#8B7D6B', 'MediumOrchid4': '#7A378B', 'MintCream': '#F5FFFA', 'MediumOrchid1': '#E066FF', 'bisque1': '#FFE4C4', 'MediumOrchid3': '#B452CD', 'MediumOrchid2': '#D15FEE', 'gray': '#7E7E7E', 'DeepSkyBlue': '#00BFFF', 'LightGrey': '#D3D3D3', 'grey78': '#C7C7C7', 'gray22': '#383838', 'plum4': '#8B668B', 'plum3': '#CD96CD', 'plum2': '#EEAEEE', 'plum1': '#FFBBFF', 'DarkSlateGrey': '#2F4F4F', 'DarkOrchid': '#9932CC', 'OliveDrab': '#6B8E23', 'gray83': '#D4D4D4', 'grey49': '#7D7D7D', 'grey48': '#7A7A7A', 'thistle': '#D8BFD8', 'violet': '#EE82EE', 'grey43': '#6E6E6E', 'grey42': '#6B6B6B', 'LightSalmon4': '#8B5742', 'grey40': '#666666', 'LightSalmon2': '#EE9572', 'LightSalmon3': '#CD8162', 'grey45': '#737373', 'LightSalmon1': '#FFA07A', 'honeydew': '#F0FFF0', 'gray18': '#2E2E2E', 'gray19': '#303030', 'LightCyan': '#E0FFFF', 'gray15': '#262626', 'gray16': '#292929', 'gray82': '#D1D1D1', 'gray10': '#1A1A1A', 'gray11': '#1C1C1C', 'gray12': '#1F1F1F', 'gray13': '#212121', 'grey93': '#EDEDED', 'PaleGoldenrod': '#EEE8AA', 'gainsboro': '#DCDCDC', 'AntiqueWhite3': '#CDC0B0', 'AntiqueWhite2': '#EEDFCC', 'AntiqueWhite1': '#FFEFDB', 'gray27': '#454545', 'SlateBlue': '#6A5ACD', 'AntiqueWhite4': '#8B8378', 'DimGrey': '#696969', 'VioletRed': '#D02090', 'WhiteSmoke': '#F5F5F5', 'grey38': '#616161', 'grey39': '#636363', 'grey36': '#5C5C5C', 'grey37': '#5E5E5E', 'grey34': '#575757', 'grey35': '#595959', 'aqua': '#00FFFF', 'grey33': '#545454', 'grey30': '#4D4D4D', 'grey31': '#4F4F4F', 'NavyBlue': '#000080', 'sienna4': '#8B4726', 'gray81': '#CFCFCF', 'gray80': '#CCCCCC', 'sienna1': '#FF8247', 'gray86': '#DBDBDB', 'sienna3': '#CD6839', 'sienna2': '#EE7942', 'gray89': '#E3E3E3', 'gray88': '#E0E0E0', 'SlateBlue4': '#473C8B', 'gray87': '#DEDEDE', 'LightSteelBlue1': '#CAE1FF', 'magenta3': '#CD00CD', 'IndianRed': '#CD5C5C', 'SlateBlue2': '#7A67EE', 'SlateBlue1': '#836FFF', 'LightBlue': '#ADD8E6', 'PeachPuff4': '#8B7765', 'seashell': '#FFF5EE', 'SaddleBrown': '#8B4513', 'PeachPuff1': '#FFDAB9', 'PeachPuff2': '#EECBAD', 'PeachPuff3': '#CDAF95', 'aquamarine': '#7FFFD4', 'LemonChiffon2': '#EEE9BF', 'LemonChiffon1': '#FFFACD', 'tan4': '#8B5A2B', 'tan3': '#CD853F', 'tan2': '#EE9A49', 'tan1': '#FFA54F', 'LemonChiffon4': '#8B8970', 'orange': '#FFA500', 'OldLace': '#FDF5E6', 'PowderBlue': '#B0E0E6', 'RosyBrown3': '#CD9B9B', 'RoyalBlue': '#4169E1', 'LightSkyBlue4': '#607B8B', 'LightSkyBlue1': '#B0E2FF', 'LightSkyBlue2': '#A4D3EE', 'LightSkyBlue3': '#8DB6CD', 'LightYellow1': '#FFFFE0', 'LightYellow2': '#EEEED1', 'LightYellow3': '#CDCDB4', 'LightYellow4': '#8B8B7A', 'goldenrod4': '#8B6914', 'goldenrod1': '#FFC125', 'goldenrod2': '#EEB422', 'goldenrod3': '#CD9B1D', 'grey32': '#525252', 'LemonChiffon': '#FFFACD', 'burlywood1': '#FFD39B', 'YellowGreen': '#9ACD32', 'LightCoral': '#F08080', 'burlywood3': '#CDAA7D', 'ivory3': '#CDCDC1', 'firebrick3': '#CD2626', 'ivory1': '#FFFFF0', 'grey8': '#141414', 'ivory4': '#8B8B83', 'grey9': '#171717', 'DarkSalmon': '#E9967A', 'SlateGray1': '#C6E2FF', 'SlateGray2': '#B9D3EE', 'SlateGray3': '#9FB6CD', 'SlateGray4': '#6C7B8B', 'RosyBrown2': '#EEB4B4', 'RosyBrown1': '#FFC1C1', 'gray85': '#D9D9D9', 'gray84': '#D6D6D6', 'LightGreen': '#90EE90', 'LavenderBlush1': '#FFF0F5', 'grey73': '#BABABA', 'LavenderBlush3': '#CDC1C5', 'LavenderBlush2': '#EEE0E5', 'grey76': '#C2C2C2', 'LavenderBlush4': '#8B8386', 'grey74': '#BDBDBD', 'grey75': '#BFBFBF', 'pink1': '#FFB5C5', 'pink3': '#CD919E', 'pink2': '#EEA9B8', 'pink4': '#8B636C', 'gray47': '#787878', 'gray46': '#757575', 'gray45': '#737373', 'gray44': '#707070', 'gray43': '#6E6E6E', 'gray42': '#6B6B6B', 'gray41': '#696969', 'gray40': '#666666', 'gray49': '#7D7D7D', 'gray48': '#7A7A7A', 'MediumAquamarine': '#66CDAA', 'MediumForestGreen': '#32814B', 'azure1': '#F0FFFF', 'azure3': '#C1CDCD', 'azure2': '#E0EEEE', 'indigo': '#4B0082', 'azure4': '#838B8B', 'firebrick': '#B22222', 'DarkGrey': '#A9A9A9', 'magenta4': '#8B008B', 'SlateBlue3': '#6959CD', 'magenta2': '#EE00EE', 'magenta1': '#FF00FF', 'grey51': '#828282', 'chartreuse': '#7FFF00', 'grey41': '#696969', 'DarkOliveGreen4': '#6E8B3D', 'turquoise': '#40E0D0', 'DarkOliveGreen1': '#CAFF70', 'DarkOliveGreen3': '#A2CD5A', 'DarkOliveGreen2': '#BCEE68', 'grey6': '#0F0F0F', 'grey7': '#121212', 'grey4': '#0A0A0A', 'grey5': '#0D0D0D', 'grey2': '#050505', 'grey3': '#080808', 'grey0': '#000000', 'grey1': '#030303', 'gray50': '#7F7F7F', 'cyan1': '#00FFFF', 'gray51': '#828282', 'gray24': '#3D3D3D', 'HotPink': '#FF69B4', 'DarkGoldenrod4': '#8B6508', 'gray54': '#8A8A8A', 'DarkGoldenrod1': '#FFB90F', 'DarkGoldenrod2': '#EEAD0E', 'DarkGoldenrod3': '#CD950C', 'IndianRed2': '#EE6363', 'DeepPink': '#FF1493', 'gray28': '#474747', 'IndianRed3': '#CD5555', 'DarkCyan': '#008B8B', 'GreenYellow': '#ADFF2F', 'LightSalmon': '#FFA07A', 'DarkOrange4': '#8B4500', 'DarkOrange1': '#FF7F00', 'transparent': '#000000', 'DarkOrange3': '#CD6600', 'orchid': '#DA70D6', 'purple': '#800080', 'wheat4': '#8B7E66', 'wheat1': '#FFE7BA', 'wheat3': '#CDBA96', 'SpringGreen1': '#00FF7F', 'coral3': '#CD5B45', 'coral2': '#EE6A50', 'coral1': '#FF7256', 'thistle1': '#FFE1FF', 'PaleTurquoise': '#AFEEEE', 'bisque': '#FFE4C4', 'DeepPink3': '#CD1076', 'DeepPink2': '#EE1289', 'DeepPink1': '#FF1493', 'khaki': '#F0E68C', 'wheat': '#F5DEB3', 'MediumSeaGreen': '#3CB371', 'DeepPink4': '#8B0A50', 'salmon': '#FA8072', 'grey44': '#707070', 'DarkSlateBlue': '#483D8B', 'PaleVioletRed4': '#8B475D', 'PaleVioletRed1': '#FF82AB', 'PaleVioletRed2': '#EE799F', 'PaleVioletRed3': '#CD6889', 'AntiqueWhite': '#FAEBD7', 'PaleTurquoise4': '#668B8B', 'PaleTurquoise3': '#96CDCD', 'PaleTurquoise2': '#AEEEEE', 'PaleTurquoise1': '#BBFFFF', 'gray56': '#8F8F8F', 'plum': '#DDA0DD', 'beige': '#F5F5DC', 'SpringGreen': '#00FF7F', 'azure': '#F0FFFF', 'honeydew1': '#F0FFF0', 'honeydew2': '#E0EEE0', 'honeydew3': '#C1CDC1', 'honeydew4': '#838B83', 'gray57': '#919191', 'snow4': '#8B8989', 'snow2': '#EEE9E9', 'snow3': '#CDC9C9', 'snow1': '#FFFAFA', 'SandyBrown': '#F4A460', 'grey13': '#212121', 'SeaGreen4': '#2E8B57', 'SeaGreen3': '#43CD80', 'SeaGreen2': '#4EEE94', 'SeaGreen1': '#54FF9F', 'grey29': '#4A4A4A', 'grey28': '#474747', 'grey25': '#404040', 'grey24': '#3D3D3D', 'grey27': '#454545', 'grey26': '#424242', 'fuchsia': '#FF00FF', 'grey20': '#333333', 'grey23': '#3B3B3B', 'grey22': '#383838', 'gray78': '#C7C7C7', 'gray79': '#C9C9C9', 'gray76': '#C2C2C2', 'gray77': '#C4C4C4', 'gray74': '#BDBDBD', 'gray75': '#BFBFBF', 'gray72': '#B8B8B8', 'gray73': '#BABABA', 'gray70': '#B3B3B3', 'gray71': '#B5B5B5', 'ivory': '#FFFFF0', 'LemonChiffon3': '#CDC9A5', 'DeepSkyBlue4': '#00688B', 'DeepSkyBlue3': '#009ACD', 'DeepSkyBlue2': '#00B2EE', 'DeepSkyBlue1': '#00BFFF', 'cornsilk4': '#8B8878', 'cornsilk2': '#EEE8CD', 'cornsilk3': '#CDC8B1', 'CadetBlue': '#5F9EA0', 'cornsilk1': '#FFF8DC', 'grey90': '#E5E5E5', 'grey91': '#E8E8E8', 'grey92': '#EBEBEB', 'goldenrod': '#DAA520', 'grey94': '#F0F0F0', 'grey95': '#F2F2F2', 'grey96': '#F5F5F5', 'grey97': '#F7F7F7', 'grey98': '#FAFAFA', 'grey99': '#FCFCFC', 'red3': '#CD0000', 'LightSteelBlue2': '#BCD2EE', 'LightSteelBlue3': '#A2B5CD', 'LightSteelBlue4': '#6E7B8B', 'LightBlue3': '#9AC0CD', 'maroon': '#800000', 'LightSkyBlue': '#87CEFA', 'LightGoldenrodYellow': '#FAFAD2', 'MediumBlue': '#0000CD', 'LightSlateGray': '#778899', 'DarkOrange2': '#EE7600', 'PaleVioletRed': '#DB7093'} +var divlist = ['#d0', '#d1', '#d2', '#d3', '#d4', '#d5', '#d6', '#d7', '#d8', '#d9', '#d10', '#d11', '#d12', '#d13', '#d14', '#d15', '#d16', '#d17', '#d18', '#d19', '#d20', '#d21', '#d22', '#d23', '#d24', '#d25', '#d26', '#d27', '#d28', '#d29', '#d30', '#d31', '#d32', '#d33', '#d34', '#d35', '#d36', '#d37', '#d38', '#d39', '#d40', '#d41', '#d42', '#d43', '#d44', '#d45', '#d46', '#d47', '#d48', '#d49', '#d50', '#d51', '#d52', '#d53', '#d54', '#d55', '#d56', '#d57', '#d58', '#d59', '#d60', '#d61', '#d62', '#d63', '#d64', '#d65', '#d66', '#d67', '#d68', '#d69', '#d70', '#d71', '#d72', '#d73', '#d74', '#d75', '#d76', '#d77', '#d78', '#d79', '#d80', '#d81', '#d82', '#d83', '#d84', '#d85', '#d86', '#d87', '#d88', '#d89', '#d90', '#d91', '#d92', '#d93', '#d94', '#d95', '#d96', '#d97', '#d98', '#d99', '#d100', '#d101', '#d102', '#d103', '#d104', '#d105', '#d106', '#d107', '#d108', '#d109', '#d110', '#d111', '#d112', '#d113', '#d114', '#d115', '#d116', '#d117', '#d118', '#d119', '#d120', '#d121', '#d122', '#d123', '#d124', '#d125', '#d126', '#d127', '#d128', '#d129', '#d130', '#d131', '#d132', '#d133', '#d134', '#d135', '#d136', '#d137', '#d138', '#d139', '#d140', '#d141', '#d142', '#d143', '#d144', '#d145', '#d146', '#d147', '#d148', '#d149', '#d150', '#d151', '#d152', '#d153', '#d154', '#d155', '#d156', '#d157', '#d158', '#d159', '#d160', '#d161', '#d162', '#d163', '#d164', '#d165', '#d166', '#d167', '#d168', '#d169', '#d170', '#d171', '#d172', '#d173', '#d174', '#d175', '#d176', '#d177', '#d178', '#d179', '#d180', '#d181', '#d182', '#d183', '#d184', '#d185', '#d186', '#d187', '#d188', '#d189', '#d190', '#d191', '#d192', '#d193', '#d194', '#d195', '#d196', '#d197', '#d198', '#d199', '#d200', '#d201', '#d202', '#d203', '#d204', '#d205', '#d206', '#d207', '#d208', '#d209', '#d210', '#d211', '#d212', '#d213', '#d214', '#d215', '#d216', '#d217', '#d218', '#d219', '#d220', '#d221', '#d222', '#d223', '#d224', '#d225', '#d226', '#d227', '#d228', '#d229', '#d230', '#d231', '#d232', '#d233', '#d234', '#d235', '#d236', '#d237', '#d238', '#d239', '#d240', '#d241', '#d242', '#d243', '#d244', '#d245', '#d246', '#d247', '#d248', '#d249', '#d250', '#d251', '#d252', '#d253', '#d254', '#d255', '#d256', '#d257', '#d258', '#d259', '#d260', '#d261', '#d262', '#d263', '#d264', '#d265', '#d266', '#d267', '#d268', '#d269', '#d270', '#d271', '#d272', '#d273', '#d274', '#d275', '#d276', '#d277', '#d278', '#d279', '#d280', '#d281', '#d282', '#d283', '#d284', '#d285', '#d286', '#d287', '#d288', '#d289', '#d290', '#d291', '#d292', '#d293', '#d294', '#d295', '#d296', '#d297', '#d298', '#d299', '#d300', '#d301', '#d302', '#d303', '#d304', '#d305', '#d306', '#d307', '#d308', '#d309', '#d310', '#d311', '#d312', '#d313', '#d314', '#d315', '#d316', '#d317', '#d318', '#d319', '#d320', '#d321', '#d322', '#d323', '#d324', '#d325', '#d326', '#d327', '#d328', '#d329', '#d330', '#d331', '#d332', '#d333', '#d334', '#d335', '#d336', '#d337', '#d338', '#d339', '#d340', '#d341', '#d342', '#d343', '#d344', '#d345', '#d346', '#d347', '#d348', '#d349', '#d350', '#d351', '#d352', '#d353', '#d354', '#d355', '#d356', '#d357', '#d358', '#d359', '#d360', '#d361', '#d362', '#d363', '#d364', '#d365', '#d366', '#d367', '#d368', '#d369', '#d370', '#d371', '#d372', '#d373', '#d374', '#d375', '#d376', '#d377', '#d378', '#d379', '#d380', '#d381', '#d382', '#d383', '#d384', '#d385', '#d386', '#d387', '#d388', '#d389', '#d390', '#d391', '#d392', '#d393', '#d394', '#d395', '#d396', '#d397', '#d398', '#d399', '#d400', '#d401', '#d402', '#d403', '#d404', '#d405', '#d406', '#d407', '#d408', '#d409', '#d410', '#d411', '#d412', '#d413', '#d414', '#d415', '#d416', '#d417', '#d418', '#d419', '#d420', '#d421', '#d422', '#d423', '#d424', '#d425', '#d426', '#d427', '#d428', '#d429', '#d430', '#d431', '#d432', '#d433', '#d434', '#d435', '#d436', '#d437', '#d438', '#d439', '#d440', '#d441', '#d442', '#d443', '#d444', '#d445', '#d446', '#d447', '#d448', '#d449', '#d450', '#d451', '#d452', '#d453', '#d454', '#d455', '#d456', '#d457', '#d458', '#d459', '#d460', '#d461', '#d462', '#d463', '#d464', '#d465', '#d466', '#d467', '#d468', '#d469', '#d470', '#d471', '#d472', '#d473', '#d474', '#d475', '#d476', '#d477', '#d478', '#d479', '#d480', '#d481', '#d482', '#d483', '#d484', '#d485', '#d486', '#d487', '#d488', '#d489', '#d490', '#d491', '#d492', '#d493', '#d494', '#d495', '#d496', '#d497', '#d498', '#d499', '#d500', '#d501', '#d502', '#d503', '#d504', '#d505', '#d506', '#d507', '#d508', '#d509', '#d510', '#d511', '#d512', '#d513', '#d514', '#d515', '#d516', '#d517', '#d518', '#d519', '#d520', '#d521', '#d522', '#d523', '#d524', '#d525', '#d526', '#d527', '#d528', '#d529', '#d530', '#d531', '#d532', '#d533', '#d534', '#d535', '#d536', '#d537', '#d538', '#d539', '#d540', '#d541', '#d542', '#d543', '#d544', '#d545', '#d546', '#d547', '#d548', '#d549', '#d550', '#d551', '#d552', '#d553', '#d554', '#d555', '#d556', '#d557', '#d558', '#d559', '#d560', '#d561', '#d562', '#d563', '#d564', '#d565', '#d566', '#d567', '#d568', '#d569', '#d570', '#d571', '#d572', '#d573', '#d574', '#d575', '#d576', '#d577', '#d578', '#d579', '#d580', '#d581', '#d582', '#d583', '#d584', '#d585', '#d586', '#d587', '#d588', '#d589', '#d590', '#d591', '#d592', '#d593', '#d594', '#d595', '#d596', '#d597', '#d598', '#d599', '#d600', '#d601', '#d602', '#d603', '#d604', '#d605', '#d606', '#d607', '#d608', '#d609', '#d610', '#d611', '#d612', '#d613', '#d614', '#d615', '#d616', '#d617', '#d618', '#d619', '#d620', '#d621', '#d622', '#d623', '#d624', '#d625', '#d626', '#d627', '#d628', '#d629', '#d630', '#d631', '#d632', '#d633', '#d634', '#d635', '#d636', '#d637', '#d638', '#d639', '#d640', '#d641', '#d642', '#d643', '#d644', '#d645', '#d646', '#d647', '#d648', '#d649', '#d650', '#d651', '#d652', '#d653', '#d654', '#d655', '#d656', '#d657', '#d658', '#d659', '#d660', '#d661', '#d662', '#d663', '#d664', '#d665', '#d666', '#d667', '#d668', '#d669', '#d670', '#d671', '#d672', '#d673'] +var divtoname = {'#d322': 'khaki4', '#d600': 'gray34', '#d118': 'MediumPurple1', '#d119': 'MediumPurple2', '#d114': 'purple3', '#d115': 'purple4', '#d116': 'purple1', '#d117': 'MediumPurple', '#d110': 'purple', '#d111': 'indigo', '#d112': 'BlueViolet', '#d113': 'purple2', '#d529': 'grey67', '#d231': 'DarkSlateGray', '#d339': 'LightGoldenrod3', '#d233': 'MediumTurquoise', '#d232': 'DarkSlateGrey', '#d235': 'turquoise', '#d234': 'LightSeaGreen', '#d237': 'aquamarine', '#d236': 'aquamarine4', '#d239': 'aquamarine2', '#d238': 'aquamarine1', '#d332': 'gold1', '#d333': 'gold2', '#d334': 'gold3', '#d335': 'gold4', '#d336': 'LightGoldenrod', '#d337': 'LightGoldenrod4', '#d424': 'LightSalmon3', '#d425': 'LightSalmon', '#d426': 'LightSalmon1', '#d427': 'LightSalmon4', '#d420': 'sienna', '#d421': 'sienna1', '#d422': 'sienna2', '#d423': 'sienna3', '#d587': 'grey41', '#d586': 'gray41', '#d585': 'DimGrey', '#d584': 'DimGray', '#d428': 'LightSalmon2', '#d429': 'coral', '#d581': 'grey43', '#d580': 'gray43', '#d89': 'thistle4', '#d88': 'plum3', '#d349': 'goldenrod4', '#d348': 'goldenrod3', '#d81': 'thistle2', '#d80': 'thistle1', '#d83': 'plum2', '#d82': 'plum1', '#d85': 'thistle3', '#d84': 'thistle', '#d87': 'violet', '#d86': 'plum', '#d601': 'grey34', '#d67': 'DeepPink3', '#d66': 'DeepPink2', '#d65': 'DeepPink1', '#d64': 'DeepPink', '#d63': 'HotPink', '#d62': 'HotPink4', '#d61': 'HotPink1', '#d60': 'HotPink2', '#d69': 'maroon1', '#d68': 'DeepPink4', '#d510': 'grey76', '#d511': 'silver', '#d512': 'gray75', '#d513': 'grey75', '#d514': 'gray74', '#d515': 'grey74', '#d516': 'gray73', '#d517': 'grey73', '#d518': 'gray72', '#d519': 'grey72', '#d150': 'LightSteelBlue2', '#d151': 'LightSteelBlue3', '#d152': 'LightSteelBlue4', '#d153': 'SlateGray4', '#d154': 'SlateGray1', '#d155': 'SlateGray2', '#d156': 'SlateGray3', '#d157': 'LightSlateGray', '#d158': 'LightSlateGrey', '#d159': 'SlateGray', '#d565': 'gray50', '#d564': 'fractal', '#d567': 'gray', '#d566': 'grey50', '#d561': 'grey52', '#d560': 'gray52', '#d563': 'grey51', '#d562': 'gray51', '#d604': 'gray32', '#d605': 'grey32', '#d606': 'gray31', '#d607': 'grey31', '#d569': 'grey49', '#d568': 'gray49', '#d602': 'gray33', '#d603': 'grey33', '#d125': 'SlateBlue', '#d124': 'MediumSlateBlue', '#d127': 'SlateBlue2', '#d126': 'SlateBlue1', '#d121': 'MediumPurple4', '#d120': 'MediumPurple3', '#d123': 'LightSlateBlue', '#d122': 'DarkSlateBlue', '#d359': 'wheat1', '#d129': 'SlateBlue4', '#d128': 'SlateBlue3', '#d301': 'LightYellow', '#d300': 'ivory1', '#d303': 'beige', '#d302': 'LightYellow1', '#d305': 'LightGoldenrodYellow', '#d304': 'ivory2', '#d307': 'ivory3', '#d306': 'LightYellow2', '#d309': 'ivory4', '#d308': 'LightYellow3', '#d462': 'grey98', '#d351': 'DarkGoldenrod1', '#d464': 'grey97', '#d465': 'gray96', '#d466': 'grey96', '#d467': 'WhiteSmoke', '#d463': 'gray97', '#d268': 'PaleGreen3', '#d269': 'honeydew4', '#d266': 'DarkSeaGreen3', '#d267': 'DarkSeaGreen', '#d264': 'LightGreen', '#d265': 'PaleGreen2', '#d262': 'PaleGreen', '#d263': 'honeydew3', '#d260': 'DarkSeaGreen2', '#d261': 'PaleGreen1', '#d598': 'gray35', '#d29': 'firebrick4', '#d28': 'brown4', '#d23': 'red2', '#d22': 'firebrick3', '#d21': 'RosyBrown4', '#d20': 'red1', '#d27': 'IndianRed4', '#d26': 'red3', '#d25': 'brown', '#d24': 'firebrick', '#d599': 'grey35', '#d338': 'LightGoldenrod1', '#d419': 'sienna4', '#d418': 'seashell1', '#d230': 'teal', '#d415': 'chocolate4', '#d414': 'chocolate3', '#d417': 'seashell', '#d416': 'SaddleBrown', '#d411': 'chocolate', '#d410': 'seashell3', '#d413': 'chocolate2', '#d412': 'chocolate1', '#d398': 'tan1', '#d399': 'tan2', '#d392': 'DarkOrange1', '#d393': 'linen', '#d390': 'bisque1', '#d391': 'bisque3', '#d396': 'DarkOrange4', '#d397': 'peru', '#d394': 'DarkOrange2', '#d395': 'DarkOrange3', '#d194': 'CadetBlue2', '#d195': 'CadetBlue3', '#d196': 'CadetBlue4', '#d197': 'turquoise1', '#d190': 'LightBlue', '#d191': 'LightBlue4', '#d192': 'PowderBlue', '#d193': 'CadetBlue1', '#d198': 'turquoise2', '#d199': 'turquoise3', '#d330': 'cornsilk4', '#d331': 'gold', '#d640': 'gray14', '#d641': 'grey14', '#d642': 'gray13', '#d643': 'grey13', '#d644': 'gray12', '#d645': 'grey12', '#d646': 'gray11', '#d647': 'grey11', '#d648': 'gray10', '#d649': 'grey10', '#d668': 'black', '#d486': 'gainsboro', '#d487': 'gray86', '#d484': 'gray87', '#d485': 'grey87', '#d482': 'gray88', '#d483': 'grey88', '#d480': 'gray89', '#d481': 'grey89', '#d521': 'grey71', '#d520': 'gray71', '#d523': 'grey70', '#d522': 'gray70', '#d525': 'grey69', '#d524': 'gray69', '#d488': 'grey86', '#d489': 'gray85', '#d430': 'OrangeRed', '#d660': 'gray4', '#d169': 'SteelBlue1', '#d168': 'SteelBlue', '#d661': 'grey4', '#d161': 'DodgerBlue', '#d160': 'SlateGrey', '#d163': 'DodgerBlue2', '#d162': 'DodgerBlue1', '#d165': 'DodgerBlue3', '#d164': 'DodgerBlue4', '#d167': 'SteelBlue4', '#d166': 'AliceBlue', '#d635': 'grey17', '#d634': 'gray17', '#d637': 'grey16', '#d636': 'gray16', '#d631': 'grey19', '#d630': 'gray19', '#d633': 'grey18', '#d632': 'gray18', '#d639': 'grey15', '#d638': 'gray15', '#d368': 'PapayaWhip', '#d222': 'cyan', '#d223': 'cyan1', '#d220': 'LightCyan4', '#d221': 'aqua', '#d226': 'DarkSlateGray4', '#d227': 'cyan3', '#d224': 'PaleTurquoise4', '#d225': 'cyan2', '#d228': 'cyan4', '#d229': 'DarkCyan', '#d590': 'gray39', '#d538': 'gray63', '#d539': 'grey63', '#d591': 'grey39', '#d451': 'MistyRose', '#d450': 'MistyRose2', '#d453': 'salmon', '#d452': 'MistyRose1', '#d455': 'white', '#d454': 'MistyRose3', '#d457': 'grey100', '#d456': 'gray100', '#d459': 'gray99', '#d458': 'grey100', '#d592': 'gray38', '#d593': 'grey38', '#d594': 'gray37', '#d595': 'grey37', '#d596': 'gray36', '#d597': 'grey36', '#d297': 'YellowGreen', '#d296': 'OliveDrab3', '#d295': 'OliveDrab2', '#d294': 'OliveDrab1', '#d293': 'OliveDrab', '#d292': 'DarkOliveGreen', '#d291': 'DarkOliveGreen4', '#d290': 'DarkOliveGreen2', '#d356': 'wheat2', '#d357': 'OldLace', '#d354': 'DarkGoldenrod4', '#d355': 'FloralWhite', '#d352': 'DarkGoldenrod2', '#d353': 'DarkGoldenrod3', '#d299': 'ivory', '#d298': 'OliveDrab4', '#d468': 'gray95', '#d534': 'gray65', '#d535': 'grey65', '#d52': 'LavenderBlush2', '#d53': 'LavenderBlush4', '#d50': 'LavenderBlush1', '#d51': 'LavenderBlush3', '#d56': 'VioletRed3', '#d57': 'VioletRed1', '#d54': 'maroon', '#d55': 'HotPink3', '#d58': 'VioletRed2', '#d59': 'VioletRed4', '#d469': 'grey95', '#d558': 'gray53', '#d559': 'grey53', '#d576': 'gray45', '#d577': 'grey45', '#d574': 'gray46', '#d575': 'grey46', '#d572': 'gray47', '#d573': 'grey47', '#d570': 'gray48', '#d571': 'grey48', '#d671': 'opaque', '#d670': 'grey0', '#d673': 'transparent', '#d672': 'none', '#d578': 'gray44', '#d579': 'grey44', '#d589': 'grey40', '#d588': 'gray40', '#d4': 'RosyBrown2', '#d5': 'snow3', '#d6': 'LightCoral', '#d7': 'IndianRed1', '#d0': 'snow', '#d1': 'snow1', '#d2': 'snow2', '#d3': 'RosyBrown1', '#d8': 'RosyBrown3', '#d9': 'IndianRed2', '#d136': 'MediumBlue', '#d137': 'blue4', '#d134': 'blue2', '#d135': 'blue3', '#d132': 'blue', '#d133': 'blue1', '#d130': 'GhostWhite', '#d131': 'lavender', '#d583': 'grey42', '#d138': 'DarkBlue', '#d139': 'MidnightBlue', '#d312': 'yellow1', '#d313': 'yellow2', '#d310': 'LightYellow4', '#d311': 'yellow', '#d316': 'olive', '#d317': 'DarkKhaki', '#d314': 'yellow3', '#d315': 'yellow4', '#d318': 'khaki2', '#d319': 'LemonChiffon4', '#d259': 'DarkSeaGreen1', '#d258': 'honeydew2', '#d253': 'SeaGreen4', '#d252': 'SeaGreen1', '#d251': 'SeaGreen3', '#d250': 'SeaGreen', '#d257': 'honeydew1', '#d256': 'honeydew', '#d255': 'MediumForestGreen', '#d254': 'SeaGreen2', '#d345': 'goldenrod', '#d344': 'cornsilk1', '#d612': 'gray28', '#d347': 'goldenrod2', '#d461': 'gray98', '#d346': 'goldenrod1', '#d479': 'grey90', '#d341': 'cornsilk3', '#d478': 'gray90', '#d340': 'LightGoldenrod2', '#d343': 'cornsilk', '#d342': 'cornsilk2', '#d528': 'gray67', '#d408': 'seashell4', '#d409': 'seashell2', '#d406': 'PeachPuff3', '#d407': 'SandyBrown', '#d404': 'PeachPuff4', '#d405': 'PeachPuff2', '#d402': 'PeachPuff', '#d403': 'PeachPuff1', '#d400': 'tan3', '#d401': 'tan4', '#d552': 'gray56', '#d460': 'grey99', '#d16': 'firebrick2', '#d17': 'snow4', '#d14': 'IndianRed', '#d15': 'IndianRed3', '#d12': 'firebrick1', '#d13': 'brown2', '#d10': 'RosyBrown', '#d11': 'brown1', '#d532': 'gray66', '#d533': 'grey66', '#d530': 'DarkGray', '#d531': 'DarkGrey', '#d536': 'gray64', '#d537': 'grey64', '#d18': 'brown3', '#d19': 'red', '#d329': 'MediumGoldenRod', '#d328': 'LemonChiffon2', '#d178': 'LightSkyBlue1', '#d179': 'LightSkyBlue2', '#d172': 'SkyBlue4', '#d173': 'SkyBlue1', '#d170': 'SteelBlue2', '#d171': 'SteelBlue3', '#d176': 'LightSkyBlue', '#d177': 'LightSkyBlue4', '#d174': 'SkyBlue2', '#d175': 'SkyBlue3', '#d626': 'gray21', '#d627': 'grey21', '#d624': 'gray22', '#d625': 'grey22', '#d622': 'gray23', '#d623': 'grey23', '#d620': 'gray24', '#d621': 'grey24', '#d628': 'gray20', '#d629': 'grey20', '#d219': 'azure4', '#d218': 'DarkSlateGray3', '#d217': 'PaleTurquoise3', '#d216': 'DarkSlateGray2', '#d215': 'LightCyan3', '#d214': 'azure3', '#d213': 'DarkSlateGray1', '#d212': 'PaleTurquoise2', '#d211': 'PaleTurquoise', '#d210': 'PaleTurquoise1', '#d669': 'gray0', '#d582': 'gray42', '#d442': 'coral3', '#d443': 'coral4', '#d440': 'coral1', '#d441': 'coral2', '#d446': 'tomato1', '#d447': 'tomato2', '#d444': 'tomato4', '#d445': 'tomato', '#d448': 'tomato3', '#d449': 'MistyRose4', '#d280': 'DarkGreen', '#d281': 'LawnGreen', '#d282': 'chartreuse', '#d283': 'chartreuse1', '#d284': 'chartreuse2', '#d285': 'chartreuse3', '#d286': 'chartreuse4', '#d287': 'GreenYellow', '#d288': 'DarkOliveGreen3', '#d289': 'DarkOliveGreen1', '#d361': 'orange', '#d360': 'wheat3', '#d367': 'moccasin', '#d366': 'wheat4', '#d365': 'orange4', '#d364': 'orange3', '#d49': 'LavenderBlush', '#d48': 'PaleVioletRed3', '#d45': 'PaleVioletRed', '#d44': 'PaleVioletRed4', '#d47': 'PaleVioletRed1', '#d46': 'PaleVioletRed2', '#d41': 'pink2', '#d40': 'pink1', '#d43': 'pink4', '#d42': 'pink3', '#d358': 'wheat', '#d527': 'grey68', '#d526': 'gray68', '#d614': 'gray27', '#d543': 'grey61', '#d542': 'gray61', '#d541': 'grey62', '#d540': 'gray62', '#d547': 'grey59', '#d546': 'gray59', '#d545': 'grey60', '#d544': 'gray60', '#d662': 'gray3', '#d663': 'grey3', '#d549': 'grey58', '#d548': 'gray58', '#d666': 'gray1', '#d667': 'grey1', '#d664': 'gray2', '#d665': 'grey2', '#d103': 'MediumOrchid4', '#d102': 'MediumOrchid3', '#d101': 'MediumOrchid2', '#d100': 'MediumOrchid1', '#d107': 'DarkOrchid3', '#d106': 'DarkOrchid1', '#d105': 'DarkOrchid', '#d104': 'DarkViolet', '#d109': 'DarkOrchid4', '#d108': 'DarkOrchid2', '#d244': 'SpringGreen', '#d245': 'SpringGreen1', '#d246': 'SpringGreen2', '#d247': 'SpringGreen3', '#d240': 'aquamarine3', '#d241': 'MediumAquamarine', '#d242': 'MediumSpringGreen', '#d243': 'MintCream', '#d327': 'LemonChiffon3', '#d326': 'khaki', '#d325': 'LemonChiffon1', '#d324': 'LemonChiffon', '#d248': 'SpringGreen4', '#d249': 'MediumSeaGreen', '#d321': 'khaki3', '#d320': 'khaki1', '#d350': 'DarkGoldenrod', '#d439': 'salmon4', '#d438': 'salmon3', '#d98': 'purple', '#d99': 'MediumOrchid', '#d96': 'DarkMagenta', '#d97': 'magenta4', '#d94': 'magenta2', '#d95': 'magenta3', '#d92': 'magenta1', '#d93': 'plum4', '#d90': 'fuchsia', '#d91': 'magenta', '#d433': 'OrangeRed3', '#d432': 'OrangeRed2', '#d431': 'OrangeRed1', '#d74': 'VioletRed', '#d75': 'orchid2', '#d76': 'orchid', '#d77': 'orchid1', '#d70': 'maroon2', '#d71': 'maroon3', '#d72': 'maroon4', '#d73': 'MediumVioletRed', '#d437': 'salmon2', '#d78': 'orchid3', '#d79': 'orchid4', '#d436': 'salmon1', '#d435': 'DarkSalmon', '#d434': 'OrangeRed4', '#d507': 'gray77', '#d506': 'grey78', '#d505': 'gray78', '#d504': 'grey79', '#d503': 'gray79', '#d502': 'grey80', '#d501': 'gray80', '#d500': 'grey81', '#d509': 'gray76', '#d508': 'grey77', '#d473': 'grey93', '#d369': 'NavajoWhite3', '#d147': 'CornflowerBlue', '#d146': 'RoyalBlue4', '#d145': 'RoyalBlue3', '#d144': 'RoyalBlue2', '#d143': 'RoyalBlue1', '#d142': 'RoyalBlue', '#d141': 'NavyBlue', '#d140': 'navy', '#d149': 'LightSteelBlue1', '#d148': 'LightSteelBlue', '#d472': 'gray93', '#d613': 'grey28', '#d363': 'orange2', '#d611': 'grey29', '#d610': 'gray29', '#d617': 'grey26', '#d616': 'gray26', '#d615': 'grey27', '#d362': 'orange1', '#d619': 'grey25', '#d618': 'gray25', '#d208': 'azure2', '#d209': 'LightCyan2', '#d200': 'turquoise4', '#d201': 'cadet blue', '#d202': 'CadetBlue', '#d203': 'DarkTurquoise', '#d204': 'azure', '#d205': 'azure1', '#d206': 'LightCyan', '#d207': 'LightCyan1', '#d608': 'gray30', '#d609': 'grey30', '#d374': 'NavajoWhite4', '#d375': 'AntiqueWhite4', '#d376': 'AntiqueWhite', '#d377': 'tan', '#d370': 'BlanchedAlmond', '#d371': 'NavajoWhite', '#d372': 'NavajoWhite1', '#d373': 'NavajoWhite2', '#d477': 'grey91', '#d476': 'gray91', '#d475': 'grey92', '#d474': 'gray92', '#d378': 'bisque4', '#d379': 'burlywood', '#d471': 'grey94', '#d470': 'gray94', '#d279': 'green', '#d278': 'green4', '#d275': 'PaleGreen4', '#d274': 'green2', '#d277': 'ForestGreen', '#d276': 'green3', '#d271': 'lime', '#d270': 'green1', '#d273': 'DarkSeaGreen4', '#d272': 'LimeGreen', '#d38': 'pink', '#d39': 'crimson', '#d30': 'DarkRed', '#d31': 'red4', '#d32': 'maroon', '#d33': 'LightPink1', '#d34': 'LightPink3', '#d35': 'LightPink4', '#d36': 'LightPink2', '#d37': 'LightPink', '#d658': 'gray5', '#d389': 'bisque', '#d388': 'bisque2', '#d381': 'burlywood1', '#d380': 'AntiqueWhite2', '#d383': 'burlywood2', '#d382': 'burlywood3', '#d385': 'burlywood4', '#d384': 'AntiqueWhite1', '#d387': 'DarkOrange', '#d386': 'AntiqueWhite3', '#d189': 'LightBlue2', '#d188': 'LightBlue1', '#d183': 'DeepSkyBlue', '#d182': 'LightBlue3', '#d181': 'SkyBlue', '#d180': 'LightSkyBlue3', '#d187': 'DeepSkyBlue3', '#d186': 'DeepSkyBlue4', '#d185': 'DeepSkyBlue2', '#d184': 'DeepSkyBlue1', '#d657': 'grey6', '#d656': 'gray6', '#d655': 'grey7', '#d654': 'gray7', '#d653': 'grey8', '#d652': 'gray8', '#d651': 'grey9', '#d650': 'gray9', '#d550': 'gray57', '#d659': 'grey5', '#d551': 'grey57', '#d495': 'LightGray', '#d494': 'grey83', '#d497': 'gray82', '#d496': 'LightGrey', '#d491': 'gray84', '#d490': 'grey85', '#d493': 'gray83', '#d492': 'grey84', '#d554': 'gray55', '#d555': 'grey55', '#d556': 'gray54', '#d557': 'grey54', '#d499': 'gray81', '#d498': 'grey82', '#d323': 'PaleGoldenrod', '#d553': 'grey56'} diff --git a/frontend/imgrid/colors/js/colordictionaries2.js b/frontend/imgrid/colors/js/colordictionaries2.js new file mode 100755 index 0000000..a4acbf2 --- /dev/null +++ b/frontend/imgrid/colors/js/colordictionaries2.js @@ -0,0 +1,3 @@ +rgbtohex = {'rgb(255, 235, 205)': '#FFEBCD', 'rgb(205, 155, 155)': '#CD9B9B', 'rgb(0, 0, 128)': '#000080', 'rgb(179, 238, 58)': '#B3EE3A', 'rgb(205, 51, 51)': '#CD3333', 'rgb(118, 238, 198)': '#76EEC6', 'rgb(214, 214, 214)': '#D6D6D6', 'rgb(189, 189, 189)': '#BDBDBD', 'rgb(139, 131, 120)': '#8B8378', 'rgb(0, 238, 238)': '#00EEEE', 'rgb(137, 104, 205)': '#8968CD', 'rgb(85, 107, 47)': '#556B2F', 'rgb(107, 107, 107)': '#6B6B6B', 'rgb(205, 205, 180)': '#CDCDB4', 'rgb(218, 112, 214)': '#DA70D6', 'rgb(34, 139, 34)': '#228B22', 'rgb(245, 222, 179)': '#F5DEB3', 'rgb(139, 90, 43)': '#8B5A2B', 'rgb(255, 246, 143)': '#FFF68F', 'rgb(205, 91, 69)': '#CD5B45', 'rgb(255, 187, 255)': '#FFBBFF', 'rgb(162, 181, 205)': '#A2B5CD', 'rgb(238, 118, 0)': '#EE7600', 'rgb(238, 154, 73)': '#EE9A49', 'rgb(194, 194, 194)': '#C2C2C2', 'rgb(184, 134, 11)': '#B8860B', 'rgb(93, 71, 139)': '#5D478B', 'rgb(255, 182, 193)': '#FFB6C1', 'rgb(139, 69, 0)': '#8B4500', 'rgb(105, 89, 205)': '#6959CD', 'rgb(238, 173, 14)': '#EEAD0E', 'rgb(151, 255, 255)': '#97FFFF', 'rgb(205, 150, 205)': '#CD96CD', 'rgb(255, 69, 0)': '#FF4500', 'rgb(0, 134, 139)': '#00868B', 'rgb(0, 238, 0)': '#00EE00', 'rgb(255, 106, 106)': '#FF6A6A', 'rgb(186, 186, 186)': '#BABABA', 'rgb(143, 188, 143)': '#8FBC8F', 'rgb(139, 99, 108)': '#8B636C', 'rgb(224, 102, 255)': '#E066FF', 'rgb(100, 149, 237)': '#6495ED', 'rgb(0, 139, 69)': '#008B45', 'rgb(178, 223, 238)': '#B2DFEE', 'rgb(205, 192, 176)': '#CDC0B0', 'rgb(0, 206, 209)': '#00CED1', 'rgb(104, 131, 139)': '#68838B', 'rgb(155, 205, 155)': '#9BCD9B', 'rgb(139, 76, 57)': '#8B4C39', 'rgb(205, 149, 12)': '#CD950C', 'rgb(67, 205, 128)': '#43CD80', 'rgb(54, 54, 54)': '#363636', 'rgb(0, 205, 205)': '#00CDCD', 'rgb(99, 184, 255)': '#63B8FF', 'rgb(238, 233, 233)': '#EEE9E9', 'rgb(205, 201, 201)': '#CDC9C9', 'rgb(156, 156, 156)': '#9C9C9C', 'rgb(139, 125, 123)': '#8B7D7B', 'rgb(148, 148, 148)': '#949494', 'rgb(102, 205, 170)': '#66CDAA', 'rgb(139, 54, 38)': '#8B3626', 'rgb(255, 181, 197)': '#FFB5C5', 'rgb(173, 216, 230)': '#ADD8E6', 'rgb(46, 46, 46)': '#2E2E2E', 'rgb(164, 211, 238)': '#A4D3EE', 'rgb(232, 232, 232)': '#E8E8E8', 'rgb(105, 105, 105)': '#696969', 'rgb(205, 193, 197)': '#CDC1C5', 'rgb(20, 20, 20)': '#141414', 'rgb(139, 139, 131)': '#8B8B83', 'rgb(255, 114, 86)': '#FF7256', 'rgb(0, 104, 139)': '#00688B', 'rgb(205, 41, 144)': '#CD2990', 'rgb(127, 127, 127)': '#7F7F7F', 'rgb(255, 239, 213)': '#FFEFD5', 'rgb(238, 238, 209)': '#EEEED1', 'rgb(242, 242, 242)': '#F2F2F2', 'rgb(240, 230, 140)': '#F0E68C', 'rgb(238, 207, 161)': '#EECFA1', 'rgb(25, 25, 112)': '#191970', 'rgb(205, 79, 57)': '#CD4F39', 'rgb(84, 84, 84)': '#545454', 'rgb(110, 139, 61)': '#6E8B3D', 'rgb(255, 215, 0)': '#FFD700', 'rgb(143, 143, 143)': '#8F8F8F', 'rgb(238, 59, 59)': '#EE3B3B', 'rgb(166, 166, 166)': '#A6A6A6', 'rgb(255, 160, 122)': '#FFA07A', 'rgb(51, 51, 51)': '#333333', 'rgb(224, 238, 224)': '#E0EEE0', 'rgb(139, 121, 94)': '#8B795E', 'rgb(110, 123, 139)': '#6E7B8B', 'rgb(26, 26, 26)': '#1A1A1A', 'rgb(238, 99, 99)': '#EE6363', 'rgb(178, 58, 238)': '#B23AEE', 'rgb(238, 197, 145)': '#EEC591', 'rgb(171, 171, 171)': '#ABABAB', 'rgb(237, 237, 237)': '#EDEDED', 'rgb(238, 0, 0)': '#EE0000', 'rgb(139, 71, 38)': '#8B4726', 'rgb(82, 139, 139)': '#528B8B', 'rgb(139, 105, 105)': '#8B6969', 'rgb(160, 32, 240)': '#A020F0', 'rgb(78, 238, 148)': '#4EEE94', 'rgb(205, 85, 85)': '#CD5555', 'rgb(205, 181, 205)': '#CDB5CD', 'rgb(184, 184, 184)': '#B8B8B8', 'rgb(255, 222, 173)': '#FFDEAD', 'rgb(8, 8, 8)': '#080808', 'rgb(255, 248, 220)': '#FFF8DC', 'rgb(175, 238, 238)': '#AFEEEE', 'rgb(255, 130, 71)': '#FF8247', 'rgb(13, 13, 13)': '#0D0D0D', 'rgb(0, 139, 139)': '#008B8B', 'rgb(187, 255, 255)': '#BBFFFF', 'rgb(147, 112, 219)': '#9370DB', 'rgb(0, 128, 0)': '#008000', 'rgb(238, 64, 0)': '#EE4000', 'rgb(238, 18, 137)': '#EE1289', 'rgb(54, 100, 139)': '#36648B', 'rgb(176, 176, 176)': '#B0B0B0', 'rgb(0, 0, 238)': '#0000EE', 'rgb(238, 154, 0)': '#EE9A00', 'rgb(188, 143, 143)': '#BC8F8F', 'rgb(240, 255, 255)': '#F0FFFF', 'rgb(191, 62, 255)': '#BF3EFF', 'rgb(171, 130, 255)': '#AB82FF', 'rgb(205, 173, 0)': '#CDAD00', 'rgb(255, 48, 48)': '#FF3030', 'rgb(122, 197, 205)': '#7AC5CD', 'rgb(139, 87, 66)': '#8B5742', 'rgb(204, 204, 204)': '#CCCCCC', 'rgb(205, 129, 98)': '#CD8162', 'rgb(224, 224, 224)': '#E0E0E0', 'rgb(218, 165, 32)': '#DAA520', 'rgb(205, 145, 158)': '#CD919E', 'rgb(139, 62, 47)': '#8B3E2F', 'rgb(238, 122, 233)': '#EE7AE9', 'rgb(152, 251, 152)': '#98FB98', 'rgb(240, 128, 128)': '#F08080', 'rgb(162, 205, 90)': '#A2CD5A', 'rgb(79, 79, 79)': '#4F4F4F', 'rgb(169, 169, 169)': '#A9A9A9', 'rgb(255, 127, 0)': '#FF7F00', 'rgb(139, 28, 98)': '#8B1C62', 'rgb(253, 245, 230)': '#FDF5E6', 'rgb(141, 238, 238)': '#8DEEEE', 'rgb(238, 213, 210)': '#EED5D2', 'rgb(208, 32, 144)': '#D02090', 'rgb(0, 205, 0)': '#00CD00', 'rgb(139, 71, 137)': '#8B4789', 'rgb(205, 201, 165)': '#CDC9A5', 'rgb(0, 229, 238)': '#00E5EE', 'rgb(205, 140, 149)': '#CD8C95', 'rgb(124, 205, 124)': '#7CCD7C', 'rgb(220, 220, 220)': '#DCDCDC', 'rgb(238, 229, 222)': '#EEE5DE', 'rgb(87, 87, 87)': '#575757', 'rgb(70, 130, 180)': '#4682B4', 'rgb(205, 104, 137)': '#CD6889', 'rgb(15, 15, 15)': '#0F0F0F', 'rgb(38, 38, 38)': '#262626', 'rgb(238, 180, 34)': '#EEB422', 'rgb(205, 200, 177)': '#CDC8B1', 'rgb(238, 210, 238)': '#EED2EE', 'rgb(150, 150, 150)': '#969696', 'rgb(0, 255, 127)': '#00FF7F', 'rgb(139, 126, 102)': '#8B7E66', 'rgb(205, 175, 149)': '#CDAF95', 'rgb(152, 245, 255)': '#98F5FF', 'rgb(0, 250, 154)': '#00FA9A', 'rgb(120, 120, 120)': '#787878', 'rgb(238, 118, 33)': '#EE7621', 'rgb(128, 128, 0)': '#808000', 'rgb(139, 137, 112)': '#8B8970', 'rgb(107, 142, 35)': '#6B8E23', 'rgb(219, 219, 219)': '#DBDBDB', 'rgb(205, 205, 0)': '#CDCD00', 'rgb(180, 205, 205)': '#B4CDCD', 'rgb(115, 115, 115)': '#737373', 'rgb(131, 139, 139)': '#838B8B', 'rgb(0, 178, 238)': '#00B2EE', 'rgb(94, 94, 94)': '#5E5E5E', 'rgb(135, 135, 135)': '#878787', 'rgb(145, 145, 145)': '#919191', 'rgb(205, 0, 0)': '#CD0000', 'rgb(16, 78, 139)': '#104E8B', 'rgb(133, 133, 133)': '#858585', 'rgb(205, 38, 38)': '#CD2626', 'rgb(255, 193, 193)': '#FFC1C1', 'rgb(205, 183, 181)': '#CDB7B5', 'rgb(122, 55, 139)': '#7A378B', 'rgb(154, 192, 205)': '#9AC0CD', 'rgb(191, 239, 255)': '#BFEFFF', 'rgb(219, 112, 147)': '#DB7093', 'rgb(121, 205, 205)': '#79CDCD', 'rgb(238, 232, 170)': '#EEE8AA', 'rgb(102, 205, 0)': '#66CD00', 'rgb(255, 185, 15)': '#FFB90F', 'rgb(176, 196, 222)': '#B0C4DE', 'rgb(255, 236, 139)': '#FFEC8B', 'rgb(205, 105, 201)': '#CD69C9', 'rgb(250, 250, 250)': '#FAFAFA', 'rgb(245, 245, 220)': '#F5F5DC', 'rgb(238, 106, 80)': '#EE6A50', 'rgb(64, 64, 64)': '#404040', 'rgb(238, 220, 130)': '#EEDC82', 'white': '#000000', 'rgb(125, 38, 205)': '#7D26CD', 'rgb(205, 133, 63)': '#CD853F', 'rgb(139, 102, 139)': '#8B668B', 'rgb(71, 71, 71)': '#474747', 'rgb(118, 238, 0)': '#76EE00', 'rgb(192, 255, 62)': '#C0FF3E', 'rgb(0, 0, 139)': '#00008B', 'rgb(248, 248, 255)': '#F8F8FF', 'rgb(3, 3, 3)': '#030303', 'rgb(176, 226, 255)': '#B0E2FF', 'rgb(139, 105, 20)': '#8B6914', 'rgb(255, 105, 180)': '#FF69B4', 'rgb(124, 252, 0)': '#7CFC00', 'rgb(238, 238, 224)': '#EEEEE0', 'rgb(139, 69, 19)': '#8B4513', 'rgb(139, 0, 139)': '#8B008B', 'rgb(31, 31, 31)': '#1F1F1F', 'rgb(159, 182, 205)': '#9FB6CD', 'rgb(181, 181, 181)': '#B5B5B5', 'rgb(0, 245, 255)': '#00F5FF', 'rgb(105, 139, 105)': '#698B69', 'rgb(159, 121, 238)': '#9F79EE', 'rgb(205, 198, 115)': '#CDC673', 'rgb(77, 77, 77)': '#4D4D4D', 'rgb(139, 90, 0)': '#8B5A00', 'rgb(122, 122, 122)': '#7A7A7A', 'rgb(224, 238, 238)': '#E0EEEE', 'rgb(50, 129, 75)': '#32814B', 'rgb(202, 225, 255)': '#CAE1FF', 'rgb(255, 110, 180)': '#FF6EB4', 'rgb(238, 48, 167)': '#EE30A7', 'rgb(220, 20, 60)': '#DC143C', 'rgb(127, 255, 212)': '#7FFFD4', 'rgb(205, 179, 139)': '#CDB38B', 'rgb(28, 28, 28)': '#1C1C1C', 'rgb(229, 229, 229)': '#E5E5E5', 'rgb(47, 79, 79)': '#2F4F4F', 'rgb(59, 59, 59)': '#3B3B3B', 'rgb(69, 139, 116)': '#458B74', 'rgb(255, 211, 155)': '#FFD39B', 'rgb(139, 119, 101)': '#8B7765', 'rgb(238, 230, 133)': '#EEE685', 'rgb(10, 10, 10)': '#0A0A0A', 'rgb(144, 238, 144)': '#90EE90', 'rgb(99, 99, 99)': '#636363', 'rgb(188, 238, 104)': '#BCEE68', 'rgb(255, 231, 186)': '#FFE7BA', 'rgb(154, 50, 205)': '#9A32CD', 'rgb(46, 139, 87)': '#2E8B57', 'rgb(145, 44, 238)': '#912CEE', 'rgb(255, 240, 245)': '#FFF0F5', 'rgb(67, 110, 238)': '#436EEE', 'rgb(238, 180, 180)': '#EEB4B4', 'rgb(108, 166, 205)': '#6CA6CD', 'rgb(173, 173, 173)': '#ADADAD', 'rgb(176, 48, 96)': '#B03060', 'rgb(23, 23, 23)': '#171717', 'rgb(138, 138, 138)': '#8A8A8A', 'rgb(139, 137, 137)': '#8B8989', 'rgb(209, 193, 102)': '#D1C166', 'rgb(139, 123, 139)': '#8B7B8B', 'rgb(154, 255, 154)': '#9AFF9A', 'rgb(130, 130, 130)': '#828282', 'rgb(255, 99, 71)': '#FF6347', 'rgb(205, 183, 158)': '#CDB79E', 'rgb(205, 102, 29)': '#CD661D', 'rgb(128, 0, 0)': '#800000', 'rgb(0, 0, 255)': '#0000FF', 'rgb(255, 52, 179)': '#FF34B3', 'rgb(250, 235, 215)': '#FAEBD7', 'rgb(163, 163, 163)': '#A3A3A3', 'rgb(56, 56, 56)': '#383838', 'rgb(85, 26, 139)': '#551A8B', 'rgb(139, 58, 58)': '#8B3A3A', 'rgb(168, 168, 168)': '#A8A8A8', 'rgb(255, 225, 255)': '#FFE1FF', 'rgb(125, 125, 125)': '#7D7D7D', 'rgb(131, 111, 255)': '#836FFF', 'rgb(95, 158, 160)': '#5F9EA0', 'rgb(165, 42, 42)': '#A52A2A', 'rgb(245, 255, 250)': '#F5FFFA', 'rgb(255, 218, 185)': '#FFDAB9', 'rgb(255, 228, 225)': '#FFE4E1', 'rgb(216, 191, 216)': '#D8BFD8', 'rgb(139, 101, 8)': '#8B6508', 'rgb(205, 104, 57)': '#CD6839', 'rgb(255, 131, 250)': '#FF83FA', 'rgb(82, 82, 82)': '#525252', 'rgb(117, 117, 117)': '#757575', 'rgb(255, 165, 0)': '#FFA500', 'rgb(255, 64, 64)': '#FF4040', 'rgb(255, 165, 79)': '#FFA54F', 'rgb(205, 55, 0)': '#CD3700', 'rgb(188, 210, 238)': '#BCD2EE', 'rgb(238, 121, 159)': '#EE799F', 'rgb(5, 5, 5)': '#050505', 'rgb(217, 217, 217)': '#D9D9D9', 'rgb(205, 186, 150)': '#CDBA96', 'rgb(139, 131, 134)': '#8B8386', 'rgb(185, 211, 238)': '#B9D3EE', 'rgb(235, 235, 235)': '#EBEBEB', 'rgb(230, 230, 250)': '#E6E6FA', 'rgb(41, 41, 41)': '#292929', 'rgb(205, 92, 92)': '#CD5C5C', 'rgb(131, 139, 131)': '#838B83', 'rgb(123, 104, 238)': '#7B68EE', 'rgb(128, 0, 128)': '#800080', 'rgb(139, 26, 26)': '#8B1A1A', 'rgb(141, 182, 205)': '#8DB6CD', 'rgb(212, 212, 212)': '#D4D4D4', 'rgb(238, 162, 173)': '#EEA2AD', 'rgb(255, 255, 0)': '#FFFF00', 'rgb(192, 192, 192)': '#C0C0C0', 'rgb(139, 71, 93)': '#8B475D', 'rgb(0, 100, 0)': '#006400', 'rgb(139, 37, 0)': '#8B2500', 'rgb(198, 226, 255)': '#C6E2FF', 'rgb(24, 116, 205)': '#1874CD', 'rgb(178, 34, 34)': '#B22222', 'rgb(28, 134, 238)': '#1C86EE', 'rgb(255, 0, 255)': '#FF00FF', 'rgb(33, 33, 33)': '#212121', 'rgb(209, 238, 238)': '#D1EEEE', 'rgb(255, 127, 80)': '#FF7F50', 'rgb(0, 154, 205)': '#009ACD', 'rgb(255, 255, 224)': '#FFFFE0', 'rgb(75, 0, 130)': '#4B0082', 'rgb(160, 82, 45)': '#A0522D', 'rgb(138, 43, 226)': '#8A2BE2', 'rgb(238, 224, 229)': '#EEE0E5', 'rgb(106, 90, 205)': '#6A5ACD', 'rgb(227, 227, 227)': '#E3E3E3', 'rgb(255, 250, 250)': '#FFFAFA', 'rgb(255, 174, 185)': '#FFAEB9', 'rgb(205, 0, 205)': '#CD00CD', 'rgb(126, 126, 126)': '#7E7E7E', 'rgb(139, 10, 80)': '#8B0A50', 'rgb(186, 85, 211)': '#BA55D3', 'rgb(205, 133, 0)': '#CD8500', 'rgb(211, 211, 211)': '#D3D3D3', 'rgb(69, 69, 69)': '#454545', 'rgb(222, 222, 222)': '#DEDEDE', 'rgb(221, 160, 221)': '#DDA0DD', 'rgb(255, 255, 240)': '#FFFFF0', 'rgb(112, 112, 112)': '#707070', 'rgb(209, 95, 238)': '#D15FEE', 'rgb(0, 255, 0)': '#00FF00', 'rgb(238, 233, 191)': '#EEE9BF', 'rgb(92, 92, 92)': '#5C5C5C', 'rgb(205, 112, 84)': '#CD7054', 'rgb(255, 228, 196)': '#FFE4C4', 'rgb(255, 192, 203)': '#FFC0CB', 'rgb(238, 130, 238)': '#EE82EE', 'rgb(122, 103, 238)': '#7A67EE', 'rgb(238, 121, 66)': '#EE7942', 'rgb(102, 139, 139)': '#668B8B', 'rgb(250, 240, 230)': '#FAF0E6', 'rgb(247, 247, 247)': '#F7F7F7', 'rgb(32, 178, 170)': '#20B2AA', 'rgb(97, 97, 97)': '#616161', 'rgb(150, 205, 205)': '#96CDCD', 'rgb(158, 158, 158)': '#9E9E9E', 'rgb(238, 58, 140)': '#EE3A8C', 'rgb(255, 228, 181)': '#FFE4B5', 'rgb(0, 197, 205)': '#00C5CD', 'rgb(205, 96, 144)': '#CD6090', 'rgb(205, 16, 118)': '#CD1076', 'rgb(240, 240, 240)': '#F0F0F0', 'rgb(176, 224, 230)': '#B0E0E6', 'rgb(199, 21, 133)': '#C71585', 'rgb(238, 203, 173)': '#EECBAD', 'rgb(173, 255, 47)': '#ADFF2F', 'rgb(238, 174, 238)': '#EEAEEE', 'rgb(191, 191, 191)': '#BFBFBF', 'rgb(222, 184, 135)': '#DEB887', 'rgb(18, 18, 18)': '#121212', 'rgb(83, 134, 139)': '#53868B', 'rgb(139, 134, 130)': '#8B8682', 'rgb(142, 229, 238)': '#8EE5EE', 'rgb(0, 139, 0)': '#008B00', 'rgb(240, 255, 240)': '#F0FFF0', 'rgb(104, 34, 139)': '#68228B', 'rgb(193, 255, 193)': '#C1FFC1', 'rgb(0, 0, 0)': '#000000', 'rgb(139, 58, 98)': '#8B3A62', 'rgb(89, 89, 89)': '#595959', 'rgb(72, 118, 255)': '#4876FF', 'rgb(108, 123, 139)': '#6C7B8B', 'rgb(255, 20, 147)': '#FF1493', 'rgb(255, 250, 240)': '#FFFAF0', 'rgb(132, 112, 255)': '#8470FF', 'rgb(255, 62, 150)': '#FF3E96', 'rgb(139, 125, 107)': '#8B7D6B', 'rgb(64, 224, 208)': '#40E0D0', 'rgb(148, 0, 211)': '#9400D3', 'rgb(238, 106, 167)': '#EE6AA7', 'rgb(238, 44, 44)': '#EE2C2C', 'rgb(72, 209, 204)': '#48D1CC', 'rgb(205, 155, 29)': '#CD9B1D', 'rgb(139, 0, 0)': '#8B0000', 'rgb(238, 92, 66)': '#EE5C42', 'rgb(238, 216, 174)': '#EED8AE', 'rgb(65, 105, 225)': '#4169E1', 'rgb(0, 205, 102)': '#00CD66', 'rgb(96, 123, 139)': '#607B8B', 'rgb(210, 180, 140)': '#D2B48C', 'rgb(135, 206, 255)': '#87CEFF', 'rgb(252, 252, 252)': '#FCFCFC', 'rgb(61, 61, 61)': '#3D3D3D', 'rgb(205, 102, 0)': '#CD6600', 'rgb(58, 95, 205)': '#3A5FCD', 'rgb(30, 144, 255)': '#1E90FF', 'rgb(245, 245, 245)': '#F5F5F5', 'rgb(255, 130, 171)': '#FF82AB', 'rgb(60, 179, 113)': '#3CB371', 'rgb(139, 139, 122)': '#8B8B7A', 'rgb(139, 136, 120)': '#8B8878', 'rgb(139, 34, 82)': '#8B2252', 'rgb(238, 223, 204)': '#EEDFCC', 'rgb(238, 213, 183)': '#EED5B7', 'rgb(250, 250, 210)': '#FAFAD2', 'rgb(255, 250, 205)': '#FFFACD', 'rgb(39, 64, 139)': '#27408B', 'rgb(84, 139, 84)': '#548B54', 'rgb(238, 221, 130)': '#EEDD82', 'rgb(139, 95, 101)': '#8B5F65', 'rgb(210, 105, 30)': '#D2691E', 'rgb(139, 139, 0)': '#8B8B00', 'rgb(238, 149, 114)': '#EE9572', 'rgb(0, 255, 255)': '#00FFFF', 'rgb(71, 60, 139)': '#473C8B', 'rgb(207, 207, 207)': '#CFCFCF', 'rgb(153, 50, 204)': '#9932CC', 'rgb(36, 36, 36)': '#242424', 'rgb(153, 153, 153)': '#999999', 'rgb(250, 128, 114)': '#FA8072', 'rgb(174, 238, 238)': '#AEEEEE', 'rgb(139, 117, 0)': '#8B7500', 'rgb(139, 35, 35)': '#8B2323', 'rgb(92, 172, 238)': '#5CACEE', 'rgb(48, 48, 48)': '#303030', 'rgb(139, 129, 76)': '#8B814C', 'rgb(72, 61, 139)': '#483D8B', 'rgb(238, 169, 184)': '#EEA9B8', 'rgb(69, 139, 0)': '#458B00', 'rgb(0, 128, 128)': '#008080', 'rgb(255, 255, 255)': '#FFFFFF', 'rgb(244, 164, 96)': '#F4A460', 'rgb(154, 205, 50)': '#9ACD32', 'rgb(126, 192, 238)': '#7EC0EE', 'rgb(209, 209, 209)': '#D1D1D1', 'rgb(74, 112, 139)': '#4A708B', 'rgb(112, 128, 144)': '#708090', 'rgb(105, 139, 34)': '#698B22', 'rgb(110, 110, 110)': '#6E6E6E', 'rgb(179, 179, 179)': '#B3B3B3', 'rgb(205, 50, 120)': '#CD3278', 'rgb(119, 136, 153)': '#778899', 'rgb(139, 115, 85)': '#8B7355', 'rgb(255, 193, 37)': '#FFC125', 'rgb(224, 255, 255)': '#E0FFFF', 'rgb(66, 66, 66)': '#424242', 'rgb(193, 205, 193)': '#C1CDC1', 'rgb(0, 191, 255)': '#00BFFF', 'rgb(205, 205, 193)': '#CDCDC1', 'rgb(238, 238, 0)': '#EEEE00', 'rgb(255, 140, 105)': '#FF8C69', 'rgb(135, 206, 235)': '#87CEEB', 'rgb(238, 201, 0)': '#EEC900', 'rgb(238, 232, 205)': '#EEE8CD', 'rgb(0, 0, 205)': '#0000CD', 'rgb(238, 130, 98)': '#EE8262', 'rgb(155, 48, 255)': '#9B30FF', 'rgb(43, 43, 43)': '#2B2B2B', 'rgb(240, 248, 255)': '#F0F8FF', 'rgb(238, 0, 238)': '#EE00EE', 'rgb(128, 128, 128)': '#808080', 'rgb(193, 205, 205)': '#C1CDCD', 'rgb(50, 205, 50)': '#32CD32', 'rgb(201, 201, 201)': '#C9C9C9', 'rgb(255, 239, 219)': '#FFEFDB', 'rgb(196, 196, 196)': '#C4C4C4', 'rgb(135, 206, 250)': '#87CEFA', 'rgb(139, 134, 78)': '#8B864E', 'rgb(79, 148, 205)': '#4F94CD', 'rgb(74, 74, 74)': '#4A4A4A', 'rgb(255, 0, 0)': '#FF0000', 'rgb(233, 150, 122)': '#E9967A', 'rgb(205, 190, 112)': '#CDBE70', 'rgb(84, 255, 159)': '#54FF9F', 'rgb(205, 170, 125)': '#CDAA7D', 'rgb(127, 255, 0)': '#7FFF00', 'rgb(102, 102, 102)': '#666666', 'rgb(180, 238, 180)': '#B4EEB4', 'rgb(122, 139, 139)': '#7A8B8B', 'rgb(255, 140, 0)': '#FF8C00', 'rgb(205, 197, 191)': '#CDC5BF', 'rgb(140, 140, 140)': '#8C8C8C', 'rgb(199, 199, 199)': '#C7C7C7', 'rgb(202, 255, 112)': '#CAFF70', 'rgb(255, 245, 238)': '#FFF5EE', 'rgb(189, 183, 107)': '#BDB76B', 'rgb(0, 238, 118)': '#00EE76', 'rgb(180, 82, 205)': '#B452CD', 'rgb(255, 127, 36)': '#FF7F24', 'rgb(161, 161, 161)': '#A1A1A1'} +rgbtoname = {'rgb(255, 235, 205)': 'BlanchedAlmond', 'rgb(205, 155, 155)': 'RosyBrown3', 'rgb(0, 0, 128)': 'NavyBlue', 'rgb(179, 238, 58)': 'OliveDrab2', 'rgb(205, 51, 51)': 'brown3', 'rgb(118, 238, 198)': 'aquamarine2', 'rgb(214, 214, 214)': 'grey84', 'rgb(189, 189, 189)': 'grey74', 'rgb(139, 131, 120)': 'AntiqueWhite4', 'rgb(0, 238, 238)': 'cyan2', 'rgb(137, 104, 205)': 'MediumPurple3', 'rgb(85, 107, 47)': 'DarkOliveGreen', 'rgb(107, 107, 107)': 'grey42', 'rgb(205, 205, 180)': 'LightYellow3', 'rgb(218, 112, 214)': 'orchid', 'rgb(34, 139, 34)': 'ForestGreen', 'rgb(245, 222, 179)': 'wheat', 'rgb(139, 90, 43)': 'tan4', 'rgb(255, 246, 143)': 'khaki1', 'rgb(205, 91, 69)': 'coral3', 'rgb(255, 187, 255)': 'plum1', 'rgb(162, 181, 205)': 'LightSteelBlue3', 'rgb(238, 118, 0)': 'DarkOrange2', 'rgb(238, 154, 73)': 'tan2', 'rgb(194, 194, 194)': 'grey76', 'rgb(184, 134, 11)': 'DarkGoldenrod', 'rgb(93, 71, 139)': 'MediumPurple4', 'rgb(255, 182, 193)': 'LightPink', 'rgb(139, 69, 0)': 'DarkOrange4', 'rgb(105, 89, 205)': 'SlateBlue3', 'rgb(238, 173, 14)': 'DarkGoldenrod2', 'rgb(151, 255, 255)': 'DarkSlateGray1', 'rgb(205, 150, 205)': 'plum3', 'rgb(255, 69, 0)': 'OrangeRed1', 'rgb(0, 134, 139)': 'turquoise4', 'rgb(0, 238, 0)': 'green2', 'rgb(255, 106, 106)': 'IndianRed1', 'rgb(186, 186, 186)': 'grey73', 'rgb(143, 188, 143)': 'DarkSeaGreen', 'rgb(139, 99, 108)': 'pink4', 'rgb(224, 102, 255)': 'MediumOrchid1', 'rgb(100, 149, 237)': 'CornflowerBlue', 'rgb(0, 139, 69)': 'SpringGreen4', 'rgb(178, 223, 238)': 'LightBlue2', 'rgb(205, 192, 176)': 'AntiqueWhite3', 'rgb(0, 206, 209)': 'DarkTurquoise', 'rgb(104, 131, 139)': 'LightBlue4', 'rgb(155, 205, 155)': 'DarkSeaGreen3', 'rgb(139, 76, 57)': 'salmon4', 'rgb(205, 149, 12)': 'DarkGoldenrod3', 'rgb(67, 205, 128)': 'SeaGreen3', 'rgb(54, 54, 54)': 'grey21', 'rgb(0, 205, 205)': 'cyan3', 'rgb(99, 184, 255)': 'SteelBlue1', 'rgb(238, 233, 233)': 'snow2', 'rgb(205, 201, 201)': 'snow3', 'rgb(156, 156, 156)': 'grey61', 'rgb(139, 125, 123)': 'MistyRose4', 'rgb(148, 148, 148)': 'grey58', 'rgb(102, 205, 170)': 'MediumAquamarine', 'rgb(139, 54, 38)': 'tomato4', 'rgb(255, 181, 197)': 'pink1', 'rgb(173, 216, 230)': 'LightBlue', 'rgb(46, 46, 46)': 'grey18', 'rgb(164, 211, 238)': 'LightSkyBlue2', 'rgb(232, 232, 232)': 'grey91', 'rgb(105, 105, 105)': 'grey41', 'rgb(205, 193, 197)': 'LavenderBlush3', 'rgb(20, 20, 20)': 'grey8', 'rgb(139, 139, 131)': 'ivory4', 'rgb(255, 114, 86)': 'coral1', 'rgb(0, 104, 139)': 'DeepSkyBlue4', 'rgb(205, 41, 144)': 'maroon3', 'rgb(127, 127, 127)': 'grey50', 'rgb(255, 239, 213)': 'PapayaWhip', 'rgb(238, 238, 209)': 'LightYellow2', 'rgb(242, 242, 242)': 'grey95', 'rgb(240, 230, 140)': 'khaki', 'rgb(238, 207, 161)': 'NavajoWhite2', 'rgb(25, 25, 112)': 'MidnightBlue', 'rgb(205, 79, 57)': 'tomato3', 'rgb(84, 84, 84)': 'grey33', 'rgb(110, 139, 61)': 'DarkOliveGreen4', 'rgb(255, 215, 0)': 'gold1', 'rgb(143, 143, 143)': 'grey56', 'rgb(238, 59, 59)': 'brown2', 'rgb(166, 166, 166)': 'grey65', 'rgb(255, 160, 122)': 'LightSalmon1', 'rgb(51, 51, 51)': 'grey20', 'rgb(224, 238, 224)': 'honeydew2', 'rgb(139, 121, 94)': 'NavajoWhite4', 'rgb(110, 123, 139)': 'LightSteelBlue4', 'rgb(26, 26, 26)': 'grey10', 'rgb(238, 99, 99)': 'IndianRed2', 'rgb(178, 58, 238)': 'DarkOrchid2', 'rgb(238, 197, 145)': 'burlywood2', 'rgb(171, 171, 171)': 'grey67', 'rgb(237, 237, 237)': 'grey93', 'rgb(238, 0, 0)': 'red2', 'rgb(139, 71, 38)': 'sienna4', 'rgb(82, 139, 139)': 'DarkSlateGray4', 'rgb(139, 105, 105)': 'RosyBrown4', 'rgb(160, 32, 240)': 'purple', 'rgb(78, 238, 148)': 'SeaGreen2', 'rgb(205, 85, 85)': 'IndianRed3', 'rgb(205, 181, 205)': 'thistle3', 'rgb(184, 184, 184)': 'grey72', 'rgb(255, 222, 173)': 'NavajoWhite1', 'rgb(8, 8, 8)': 'grey3', 'rgb(255, 248, 220)': 'cornsilk1', 'rgb(175, 238, 238)': 'PaleTurquoise', 'rgb(255, 130, 71)': 'sienna1', 'rgb(13, 13, 13)': 'grey5', 'rgb(0, 139, 139)': 'DarkCyan', 'rgb(187, 255, 255)': 'PaleTurquoise1', 'rgb(147, 112, 219)': 'MediumPurple', 'rgb(0, 128, 0)': 'green', 'rgb(238, 64, 0)': 'OrangeRed2', 'rgb(238, 18, 137)': 'DeepPink2', 'rgb(54, 100, 139)': 'SteelBlue4', 'rgb(176, 176, 176)': 'grey69', 'rgb(0, 0, 238)': 'blue2', 'rgb(238, 154, 0)': 'orange2', 'rgb(188, 143, 143)': 'RosyBrown', 'rgb(240, 255, 255)': 'azure1', 'rgb(191, 62, 255)': 'DarkOrchid1', 'rgb(171, 130, 255)': 'MediumPurple1', 'rgb(205, 173, 0)': 'gold3', 'rgb(255, 48, 48)': 'firebrick1', 'rgb(122, 197, 205)': 'CadetBlue3', 'rgb(139, 87, 66)': 'LightSalmon4', 'rgb(204, 204, 204)': 'grey80', 'rgb(205, 129, 98)': 'LightSalmon3', 'rgb(224, 224, 224)': 'grey88', 'rgb(218, 165, 32)': 'goldenrod', 'rgb(205, 145, 158)': 'pink3', 'rgb(139, 62, 47)': 'coral4', 'rgb(238, 122, 233)': 'orchid2', 'rgb(152, 251, 152)': 'PaleGreen', 'rgb(240, 128, 128)': 'LightCoral', 'rgb(162, 205, 90)': 'DarkOliveGreen3', 'rgb(79, 79, 79)': 'grey31', 'rgb(169, 169, 169)': 'DarkGrey', 'rgb(255, 127, 0)': 'DarkOrange1', 'rgb(139, 28, 98)': 'maroon4', 'rgb(253, 245, 230)': 'OldLace', 'rgb(141, 238, 238)': 'DarkSlateGray2', 'rgb(238, 213, 210)': 'MistyRose2', 'rgb(208, 32, 144)': 'VioletRed', 'rgb(0, 205, 0)': 'green3', 'rgb(139, 71, 137)': 'orchid4', 'rgb(205, 201, 165)': 'LemonChiffon3', 'rgb(0, 229, 238)': 'turquoise2', 'rgb(205, 140, 149)': 'LightPink3', 'rgb(124, 205, 124)': 'PaleGreen3', 'rgb(220, 220, 220)': 'gainsboro', 'rgb(238, 229, 222)': 'seashell2', 'rgb(87, 87, 87)': 'grey34', 'rgb(70, 130, 180)': 'SteelBlue', 'rgb(205, 104, 137)': 'PaleVioletRed3', 'rgb(15, 15, 15)': 'grey6', 'rgb(38, 38, 38)': 'grey15', 'rgb(238, 180, 34)': 'goldenrod2', 'rgb(205, 200, 177)': 'cornsilk3', 'rgb(238, 210, 238)': 'thistle2', 'rgb(150, 150, 150)': 'grey59', 'rgb(0, 255, 127)': 'SpringGreen1', 'rgb(139, 126, 102)': 'wheat4', 'rgb(205, 175, 149)': 'PeachPuff3', 'rgb(152, 245, 255)': 'CadetBlue1', 'rgb(0, 250, 154)': 'MediumSpringGreen', 'rgb(120, 120, 120)': 'grey47', 'rgb(238, 118, 33)': 'chocolate2', 'rgb(128, 128, 0)': 'olive', 'rgb(139, 137, 112)': 'LemonChiffon4', 'rgb(107, 142, 35)': 'OliveDrab', 'rgb(219, 219, 219)': 'grey86', 'rgb(205, 205, 0)': 'yellow3', 'rgb(180, 205, 205)': 'LightCyan3', 'rgb(115, 115, 115)': 'grey45', 'rgb(131, 139, 139)': 'azure4', 'rgb(0, 178, 238)': 'DeepSkyBlue2', 'rgb(94, 94, 94)': 'grey37', 'rgb(135, 135, 135)': 'grey53', 'rgb(145, 145, 145)': 'grey57', 'rgb(205, 0, 0)': 'red3', 'rgb(16, 78, 139)': 'DodgerBlue4', 'rgb(133, 133, 133)': 'grey52', 'rgb(205, 38, 38)': 'firebrick3', 'rgb(255, 193, 193)': 'RosyBrown1', 'rgb(205, 183, 181)': 'MistyRose3', 'rgb(122, 55, 139)': 'MediumOrchid4', 'rgb(154, 192, 205)': 'LightBlue3', 'rgb(191, 239, 255)': 'LightBlue1', 'rgb(219, 112, 147)': 'PaleVioletRed', 'rgb(121, 205, 205)': 'DarkSlateGray3', 'rgb(238, 232, 170)': 'PaleGoldenrod', 'rgb(102, 205, 0)': 'chartreuse3', 'rgb(255, 185, 15)': 'DarkGoldenrod1', 'rgb(176, 196, 222)': 'LightSteelBlue', 'rgb(255, 236, 139)': 'LightGoldenrod1', 'rgb(205, 105, 201)': 'orchid3', 'rgb(250, 250, 250)': 'grey98', 'rgb(245, 245, 220)': 'beige', 'rgb(238, 106, 80)': 'coral2', 'rgb(64, 64, 64)': 'grey25', 'rgb(238, 220, 130)': 'LightGoldenrod2', 'white': 'none', 'rgb(125, 38, 205)': 'purple3', 'rgb(205, 133, 63)': 'tan3', 'rgb(139, 102, 139)': 'plum4', 'rgb(71, 71, 71)': 'grey28', 'rgb(118, 238, 0)': 'chartreuse2', 'rgb(192, 255, 62)': 'OliveDrab1', 'rgb(0, 0, 139)': 'DarkBlue', 'rgb(248, 248, 255)': 'GhostWhite', 'rgb(3, 3, 3)': 'grey1', 'rgb(176, 226, 255)': 'LightSkyBlue1', 'rgb(139, 105, 20)': 'goldenrod4', 'rgb(255, 105, 180)': 'HotPink', 'rgb(124, 252, 0)': 'LawnGreen', 'rgb(238, 238, 224)': 'ivory2', 'rgb(139, 69, 19)': 'SaddleBrown', 'rgb(139, 0, 139)': 'magenta4', 'rgb(31, 31, 31)': 'grey12', 'rgb(159, 182, 205)': 'SlateGray3', 'rgb(181, 181, 181)': 'grey71', 'rgb(0, 245, 255)': 'turquoise1', 'rgb(105, 139, 105)': 'DarkSeaGreen4', 'rgb(159, 121, 238)': 'MediumPurple2', 'rgb(205, 198, 115)': 'khaki3', 'rgb(77, 77, 77)': 'grey30', 'rgb(139, 90, 0)': 'orange4', 'rgb(122, 122, 122)': 'grey48', 'rgb(224, 238, 238)': 'azure2', 'rgb(50, 129, 75)': 'MediumForestGreen', 'rgb(202, 225, 255)': 'LightSteelBlue1', 'rgb(255, 110, 180)': 'HotPink1', 'rgb(238, 48, 167)': 'maroon2', 'rgb(220, 20, 60)': 'crimson', 'rgb(127, 255, 212)': 'aquamarine1', 'rgb(205, 179, 139)': 'NavajoWhite3', 'rgb(28, 28, 28)': 'grey11', 'rgb(229, 229, 229)': 'grey90', 'rgb(47, 79, 79)': 'DarkSlateGrey', 'rgb(59, 59, 59)': 'grey23', 'rgb(69, 139, 116)': 'aquamarine4', 'rgb(255, 211, 155)': 'burlywood1', 'rgb(139, 119, 101)': 'PeachPuff4', 'rgb(238, 230, 133)': 'khaki2', 'rgb(10, 10, 10)': 'grey4', 'rgb(144, 238, 144)': 'PaleGreen2', 'rgb(99, 99, 99)': 'grey39', 'rgb(188, 238, 104)': 'DarkOliveGreen2', 'rgb(255, 231, 186)': 'wheat1', 'rgb(154, 50, 205)': 'DarkOrchid3', 'rgb(46, 139, 87)': 'SeaGreen4', 'rgb(145, 44, 238)': 'purple2', 'rgb(255, 240, 245)': 'LavenderBlush1', 'rgb(67, 110, 238)': 'RoyalBlue2', 'rgb(238, 180, 180)': 'RosyBrown2', 'rgb(108, 166, 205)': 'SkyBlue3', 'rgb(173, 173, 173)': 'grey68', 'rgb(176, 48, 96)': 'maroon', 'rgb(23, 23, 23)': 'grey9', 'rgb(138, 138, 138)': 'grey54', 'rgb(139, 137, 137)': 'snow4', 'rgb(209, 193, 102)': 'MediumGoldenRod', 'rgb(139, 123, 139)': 'thistle4', 'rgb(154, 255, 154)': 'PaleGreen1', 'rgb(130, 130, 130)': 'grey51', 'rgb(255, 99, 71)': 'tomato1', 'rgb(205, 183, 158)': 'bisque3', 'rgb(205, 102, 29)': 'chocolate3', 'rgb(128, 0, 0)': 'maroon', 'rgb(0, 0, 255)': 'blue1', 'rgb(255, 52, 179)': 'maroon1', 'rgb(250, 235, 215)': 'AntiqueWhite', 'rgb(163, 163, 163)': 'grey64', 'rgb(56, 56, 56)': 'grey22', 'rgb(85, 26, 139)': 'purple4', 'rgb(139, 58, 58)': 'IndianRed4', 'rgb(168, 168, 168)': 'grey66', 'rgb(255, 225, 255)': 'thistle1', 'rgb(125, 125, 125)': 'grey49', 'rgb(131, 111, 255)': 'SlateBlue1', 'rgb(95, 158, 160)': 'CadetBlue', 'rgb(165, 42, 42)': 'brown', 'rgb(245, 255, 250)': 'MintCream', 'rgb(255, 218, 185)': 'PeachPuff1', 'rgb(255, 228, 225)': 'MistyRose1', 'rgb(216, 191, 216)': 'thistle', 'rgb(139, 101, 8)': 'DarkGoldenrod4', 'rgb(205, 104, 57)': 'sienna3', 'rgb(255, 131, 250)': 'orchid1', 'rgb(82, 82, 82)': 'grey32', 'rgb(117, 117, 117)': 'grey46', 'rgb(255, 165, 0)': 'orange1', 'rgb(255, 64, 64)': 'brown1', 'rgb(255, 165, 79)': 'tan1', 'rgb(205, 55, 0)': 'OrangeRed3', 'rgb(188, 210, 238)': 'LightSteelBlue2', 'rgb(238, 121, 159)': 'PaleVioletRed2', 'rgb(5, 5, 5)': 'grey2', 'rgb(217, 217, 217)': 'grey85', 'rgb(205, 186, 150)': 'wheat3', 'rgb(139, 131, 134)': 'LavenderBlush4', 'rgb(185, 211, 238)': 'SlateGray2', 'rgb(235, 235, 235)': 'grey92', 'rgb(230, 230, 250)': 'lavender', 'rgb(41, 41, 41)': 'grey16', 'rgb(205, 92, 92)': 'IndianRed', 'rgb(131, 139, 131)': 'honeydew4', 'rgb(123, 104, 238)': 'MediumSlateBlue', 'rgb(128, 0, 128)': 'purple', 'rgb(139, 26, 26)': 'firebrick4', 'rgb(141, 182, 205)': 'LightSkyBlue3', 'rgb(212, 212, 212)': 'grey83', 'rgb(238, 162, 173)': 'LightPink2', 'rgb(255, 255, 0)': 'yellow1', 'rgb(192, 192, 192)': 'silver', 'rgb(139, 71, 93)': 'PaleVioletRed4', 'rgb(0, 100, 0)': 'DarkGreen', 'rgb(139, 37, 0)': 'OrangeRed4', 'rgb(198, 226, 255)': 'SlateGray1', 'rgb(24, 116, 205)': 'DodgerBlue3', 'rgb(178, 34, 34)': 'firebrick', 'rgb(28, 134, 238)': 'DodgerBlue2', 'rgb(255, 0, 255)': 'magenta1', 'rgb(33, 33, 33)': 'grey13', 'rgb(209, 238, 238)': 'LightCyan2', 'rgb(255, 127, 80)': 'coral', 'rgb(0, 154, 205)': 'DeepSkyBlue3', 'rgb(255, 255, 224)': 'LightYellow1', 'rgb(75, 0, 130)': 'indigo', 'rgb(160, 82, 45)': 'sienna', 'rgb(138, 43, 226)': 'BlueViolet', 'rgb(238, 224, 229)': 'LavenderBlush2', 'rgb(106, 90, 205)': 'SlateBlue', 'rgb(227, 227, 227)': 'grey89', 'rgb(255, 250, 250)': 'snow1', 'rgb(255, 174, 185)': 'LightPink1', 'rgb(205, 0, 205)': 'magenta3', 'rgb(126, 126, 126)': 'gray', 'rgb(139, 10, 80)': 'DeepPink4', 'rgb(186, 85, 211)': 'MediumOrchid', 'rgb(205, 133, 0)': 'orange3', 'rgb(211, 211, 211)': 'LightGrey', 'rgb(69, 69, 69)': 'grey27', 'rgb(222, 222, 222)': 'grey87', 'rgb(221, 160, 221)': 'plum', 'rgb(255, 255, 240)': 'ivory1', 'rgb(112, 112, 112)': 'grey44', 'rgb(209, 95, 238)': 'MediumOrchid2', 'rgb(0, 255, 0)': 'lime', 'rgb(238, 233, 191)': 'LemonChiffon2', 'rgb(92, 92, 92)': 'grey36', 'rgb(205, 112, 84)': 'salmon3', 'rgb(255, 228, 196)': 'bisque1', 'rgb(255, 192, 203)': 'pink', 'rgb(238, 130, 238)': 'violet', 'rgb(122, 103, 238)': 'SlateBlue2', 'rgb(238, 121, 66)': 'sienna2', 'rgb(102, 139, 139)': 'PaleTurquoise4', 'rgb(250, 240, 230)': 'linen', 'rgb(247, 247, 247)': 'grey97', 'rgb(32, 178, 170)': 'LightSeaGreen', 'rgb(97, 97, 97)': 'grey38', 'rgb(150, 205, 205)': 'PaleTurquoise3', 'rgb(158, 158, 158)': 'grey62', 'rgb(238, 58, 140)': 'VioletRed2', 'rgb(255, 228, 181)': 'moccasin', 'rgb(0, 197, 205)': 'turquoise3', 'rgb(205, 96, 144)': 'HotPink3', 'rgb(205, 16, 118)': 'DeepPink3', 'rgb(240, 240, 240)': 'grey94', 'rgb(176, 224, 230)': 'PowderBlue', 'rgb(199, 21, 133)': 'MediumVioletRed', 'rgb(238, 203, 173)': 'PeachPuff2', 'rgb(173, 255, 47)': 'GreenYellow', 'rgb(238, 174, 238)': 'plum2', 'rgb(191, 191, 191)': 'grey75', 'rgb(222, 184, 135)': 'burlywood', 'rgb(18, 18, 18)': 'grey7', 'rgb(83, 134, 139)': 'CadetBlue4', 'rgb(139, 134, 130)': 'seashell4', 'rgb(142, 229, 238)': 'CadetBlue2', 'rgb(0, 139, 0)': 'green4', 'rgb(240, 255, 240)': 'honeydew1', 'rgb(104, 34, 139)': 'DarkOrchid4', 'rgb(193, 255, 193)': 'DarkSeaGreen1', 'rgb(0, 0, 0)': 'opaque', 'rgb(139, 58, 98)': 'HotPink4', 'rgb(89, 89, 89)': 'grey35', 'rgb(72, 118, 255)': 'RoyalBlue1', 'rgb(108, 123, 139)': 'SlateGray4', 'rgb(255, 20, 147)': 'DeepPink1', 'rgb(255, 250, 240)': 'FloralWhite', 'rgb(132, 112, 255)': 'LightSlateBlue', 'rgb(255, 62, 150)': 'VioletRed1', 'rgb(139, 125, 107)': 'bisque4', 'rgb(64, 224, 208)': 'turquoise', 'rgb(148, 0, 211)': 'DarkViolet', 'rgb(238, 106, 167)': 'HotPink2', 'rgb(238, 44, 44)': 'firebrick2', 'rgb(72, 209, 204)': 'MediumTurquoise', 'rgb(205, 155, 29)': 'goldenrod3', 'rgb(139, 0, 0)': 'red4', 'rgb(238, 92, 66)': 'tomato2', 'rgb(238, 216, 174)': 'wheat2', 'rgb(65, 105, 225)': 'RoyalBlue', 'rgb(0, 205, 102)': 'SpringGreen3', 'rgb(96, 123, 139)': 'LightSkyBlue4', 'rgb(210, 180, 140)': 'tan', 'rgb(135, 206, 255)': 'SkyBlue1', 'rgb(252, 252, 252)': 'grey99', 'rgb(61, 61, 61)': 'grey24', 'rgb(205, 102, 0)': 'DarkOrange3', 'rgb(58, 95, 205)': 'RoyalBlue3', 'rgb(30, 144, 255)': 'DodgerBlue1', 'rgb(245, 245, 245)': 'WhiteSmoke', 'rgb(255, 130, 171)': 'PaleVioletRed1', 'rgb(60, 179, 113)': 'MediumSeaGreen', 'rgb(139, 139, 122)': 'LightYellow4', 'rgb(139, 136, 120)': 'cornsilk4', 'rgb(139, 34, 82)': 'VioletRed4', 'rgb(238, 223, 204)': 'AntiqueWhite2', 'rgb(238, 213, 183)': 'bisque2', 'rgb(250, 250, 210)': 'LightGoldenrodYellow', 'rgb(255, 250, 205)': 'LemonChiffon1', 'rgb(39, 64, 139)': 'RoyalBlue4', 'rgb(84, 139, 84)': 'PaleGreen4', 'rgb(238, 221, 130)': 'LightGoldenrod', 'rgb(139, 95, 101)': 'LightPink4', 'rgb(210, 105, 30)': 'chocolate', 'rgb(139, 139, 0)': 'yellow4', 'rgb(238, 149, 114)': 'LightSalmon2', 'rgb(0, 255, 255)': 'cyan1', 'rgb(71, 60, 139)': 'SlateBlue4', 'rgb(207, 207, 207)': 'grey81', 'rgb(153, 50, 204)': 'DarkOrchid', 'rgb(36, 36, 36)': 'grey14', 'rgb(153, 153, 153)': 'grey60', 'rgb(250, 128, 114)': 'salmon', 'rgb(174, 238, 238)': 'PaleTurquoise2', 'rgb(139, 117, 0)': 'gold4', 'rgb(139, 35, 35)': 'brown4', 'rgb(92, 172, 238)': 'SteelBlue2', 'rgb(48, 48, 48)': 'grey19', 'rgb(139, 129, 76)': 'LightGoldenrod4', 'rgb(72, 61, 139)': 'DarkSlateBlue', 'rgb(238, 169, 184)': 'pink2', 'rgb(69, 139, 0)': 'chartreuse4', 'rgb(0, 128, 128)': 'teal', 'rgb(255, 255, 255)': 'grey100', 'rgb(244, 164, 96)': 'SandyBrown', 'rgb(154, 205, 50)': 'YellowGreen', 'rgb(126, 192, 238)': 'SkyBlue2', 'rgb(209, 209, 209)': 'grey82', 'rgb(74, 112, 139)': 'SkyBlue4', 'rgb(112, 128, 144)': 'SlateGrey', 'rgb(105, 139, 34)': 'OliveDrab4', 'rgb(110, 110, 110)': 'grey43', 'rgb(179, 179, 179)': 'grey70', 'rgb(205, 50, 120)': 'VioletRed3', 'rgb(119, 136, 153)': 'LightSlateGrey', 'rgb(139, 115, 85)': 'burlywood4', 'rgb(255, 193, 37)': 'goldenrod1', 'rgb(224, 255, 255)': 'LightCyan1', 'rgb(66, 66, 66)': 'grey26', 'rgb(193, 205, 193)': 'honeydew3', 'rgb(0, 191, 255)': 'DeepSkyBlue1', 'rgb(205, 205, 193)': 'ivory3', 'rgb(238, 238, 0)': 'yellow2', 'rgb(255, 140, 105)': 'salmon1', 'rgb(135, 206, 235)': 'SkyBlue', 'rgb(238, 201, 0)': 'gold2', 'rgb(238, 232, 205)': 'cornsilk2', 'rgb(0, 0, 205)': 'MediumBlue', 'rgb(238, 130, 98)': 'salmon2', 'rgb(155, 48, 255)': 'purple1', 'rgb(43, 43, 43)': 'grey17', 'rgb(240, 248, 255)': 'AliceBlue', 'rgb(238, 0, 238)': 'magenta2', 'rgb(128, 128, 128)': 'fractal', 'rgb(193, 205, 205)': 'azure3', 'rgb(50, 205, 50)': 'LimeGreen', 'rgb(201, 201, 201)': 'grey79', 'rgb(255, 239, 219)': 'AntiqueWhite1', 'rgb(196, 196, 196)': 'grey77', 'rgb(135, 206, 250)': 'LightSkyBlue', 'rgb(139, 134, 78)': 'khaki4', 'rgb(79, 148, 205)': 'SteelBlue3', 'rgb(74, 74, 74)': 'grey29', 'rgb(255, 0, 0)': 'red1', 'rgb(233, 150, 122)': 'DarkSalmon', 'rgb(205, 190, 112)': 'LightGoldenrod3', 'rgb(84, 255, 159)': 'SeaGreen1', 'rgb(205, 170, 125)': 'burlywood3', 'rgb(127, 255, 0)': 'chartreuse1', 'rgb(102, 102, 102)': 'grey40', 'rgb(180, 238, 180)': 'DarkSeaGreen2', 'rgb(122, 139, 139)': 'LightCyan4', 'rgb(255, 140, 0)': 'DarkOrange', 'rgb(205, 197, 191)': 'seashell3', 'rgb(140, 140, 140)': 'grey55', 'rgb(199, 199, 199)': 'grey78', 'rgb(202, 255, 112)': 'DarkOliveGreen1', 'rgb(255, 245, 238)': 'seashell1', 'rgb(189, 183, 107)': 'DarkKhaki', 'rgb(0, 238, 118)': 'SpringGreen2', 'rgb(180, 82, 205)': 'MediumOrchid3', 'rgb(255, 127, 36)': 'chocolate1', 'rgb(161, 161, 161)': 'grey63'} +hextorgb = {'#EE1289': 'rgb(238, 18, 137)', '#EE8262': 'rgb(238, 130, 98)', '#C4C4C4': 'rgb(196, 196, 196)', '#556B2F': 'rgb(85, 107, 47)', '#FF8C00': 'rgb(255, 140, 0)', '#8B7B8B': 'rgb(139, 123, 139)', '#0000EE': 'rgb(0, 0, 238)', '#EED5D2': 'rgb(238, 213, 210)', '#BA55D3': 'rgb(186, 85, 211)', '#FFF5EE': 'rgb(255, 245, 238)', '#912CEE': 'rgb(145, 44, 238)', '#2F4F4F': 'rgb(47, 79, 79)', '#32814B': 'rgb(50, 129, 75)', '#D15FEE': 'rgb(209, 95, 238)', '#F0FFF0': 'rgb(240, 255, 240)', '#B23AEE': 'rgb(178, 58, 238)', '#8B7765': 'rgb(139, 119, 101)', '#3D3D3D': 'rgb(61, 61, 61)', '#54FF9F': 'rgb(84, 255, 159)', '#636363': 'rgb(99, 99, 99)', '#8B8386': 'rgb(139, 131, 134)', '#FF4040': 'rgb(255, 64, 64)', '#EEA9B8': 'rgb(238, 169, 184)', '#C2C2C2': 'rgb(194, 194, 194)', '#800080': 'rgb(128, 0, 128)', '#545454': 'rgb(84, 84, 84)', '#EE3A8C': 'rgb(238, 58, 140)', '#8A8A8A': 'rgb(138, 138, 138)', '#FF00FF': 'rgb(255, 0, 255)', '#436EEE': 'rgb(67, 110, 238)', '#8B864E': 'rgb(139, 134, 78)', '#0A0A0A': 'rgb(10, 10, 10)', '#808000': 'rgb(128, 128, 0)', '#E3E3E3': 'rgb(227, 227, 227)', '#1874CD': 'rgb(24, 116, 205)', '#BCD2EE': 'rgb(188, 210, 238)', '#A9A9A9': 'rgb(169, 169, 169)', '#F4A460': 'rgb(244, 164, 96)', '#FF3030': 'rgb(255, 48, 48)', '#FFEBCD': 'rgb(255, 235, 205)', '#B0C4DE': 'rgb(176, 196, 222)', '#00CDCD': 'rgb(0, 205, 205)', '#C0FF3E': 'rgb(192, 255, 62)', '#FFD700': 'rgb(255, 215, 0)', '#242424': 'rgb(36, 36, 36)', '#8B2252': 'rgb(139, 34, 82)', '#4EEE94': 'rgb(78, 238, 148)', '#CD3278': 'rgb(205, 50, 120)', '#00E5EE': 'rgb(0, 229, 238)', '#CD853F': 'rgb(205, 133, 63)', '#ADD8E6': 'rgb(173, 216, 230)', '#C7C7C7': 'rgb(199, 199, 199)', '#CD2990': 'rgb(205, 41, 144)', '#EEE5DE': 'rgb(238, 229, 222)', '#66CD00': 'rgb(102, 205, 0)', '#878787': 'rgb(135, 135, 135)', '#FFA54F': 'rgb(255, 165, 79)', '#A2B5CD': 'rgb(162, 181, 205)', '#BC8F8F': 'rgb(188, 143, 143)', '#C9C9C9': 'rgb(201, 201, 201)', '#D1C166': 'rgb(209, 193, 102)', '#8B2323': 'rgb(139, 35, 35)', '#B3EE3A': 'rgb(179, 238, 58)', '#EEEED1': 'rgb(238, 238, 209)', '#AEEEEE': 'rgb(174, 238, 238)', '#BDBDBD': 'rgb(189, 189, 189)', '#FF7F00': 'rgb(255, 127, 0)', '#FFC0CB': 'rgb(255, 192, 203)', '#EE3B3B': 'rgb(238, 59, 59)', '#CDC8B1': 'rgb(205, 200, 177)', '#CDB38B': 'rgb(205, 179, 139)', '#CDBA96': 'rgb(205, 186, 150)', '#B4EEB4': 'rgb(180, 238, 180)', '#40E0D0': 'rgb(64, 224, 208)', '#8B795E': 'rgb(139, 121, 94)', '#27408B': 'rgb(39, 64, 139)', '#424242': 'rgb(66, 66, 66)', '#CDB7B5': 'rgb(205, 183, 181)', '#CAE1FF': 'rgb(202, 225, 255)', '#F0FFFF': 'rgb(240, 255, 255)', '#2E8B57': 'rgb(46, 139, 87)', '#87CEEB': 'rgb(135, 206, 235)', '#CD00CD': 'rgb(205, 0, 205)', '#CDAA7D': 'rgb(205, 170, 125)', '#836FFF': 'rgb(131, 111, 255)', '#ABABAB': 'rgb(171, 171, 171)', '#EEB4B4': 'rgb(238, 180, 180)', '#8B7355': 'rgb(139, 115, 85)', '#F0E68C': 'rgb(240, 230, 140)', '#CDCDB4': 'rgb(205, 205, 180)', '#4D4D4D': 'rgb(77, 77, 77)', '#B8B8B8': 'rgb(184, 184, 184)', '#B4CDCD': 'rgb(180, 205, 205)', '#008B8B': 'rgb(0, 139, 139)', '#828282': 'rgb(130, 130, 130)', '#00EEEE': 'rgb(0, 238, 238)', '#708090': 'rgb(112, 128, 144)', '#9AFF9A': 'rgb(154, 255, 154)', '#FFA07A': 'rgb(255, 160, 122)', '#EBEBEB': 'rgb(235, 235, 235)', '#FFB5C5': 'rgb(255, 181, 197)', '#00688B': 'rgb(0, 104, 139)', '#DBDBDB': 'rgb(219, 219, 219)', '#191970': 'rgb(25, 25, 112)', '#FF83FA': 'rgb(255, 131, 250)', '#A1A1A1': 'rgb(161, 161, 161)', '#838B8B': 'rgb(131, 139, 139)', '#FFA500': 'rgb(255, 165, 0)', '#00FF7F': 'rgb(0, 255, 127)', '#EEAD0E': 'rgb(238, 173, 14)', '#B03060': 'rgb(176, 48, 96)', '#96CDCD': 'rgb(150, 205, 205)', '#CD3333': 'rgb(205, 51, 51)', '#CDBE70': 'rgb(205, 190, 112)', '#7CCD7C': 'rgb(124, 205, 124)', '#97FFFF': 'rgb(151, 255, 255)', '#DAA520': 'rgb(218, 165, 32)', '#8B3A3A': 'rgb(139, 58, 58)', '#6B6B6B': 'rgb(107, 107, 107)', '#FFFAF0': 'rgb(255, 250, 240)', '#757575': 'rgb(117, 117, 117)', '#BFBFBF': 'rgb(191, 191, 191)', '#00EE76': 'rgb(0, 238, 118)', '#FFFAFA': 'rgb(255, 250, 250)', '#6E8B3D': 'rgb(110, 139, 61)', '#EEE685': 'rgb(238, 230, 133)', '#FF3E96': 'rgb(255, 62, 150)', '#EE0000': 'rgb(238, 0, 0)', '#FDF5E6': 'rgb(253, 245, 230)', '#E066FF': 'rgb(224, 102, 255)', '#8DB6CD': 'rgb(141, 182, 205)', '#FF7256': 'rgb(255, 114, 86)', '#7CFC00': 'rgb(124, 252, 0)', '#838B83': 'rgb(131, 139, 131)', '#BF3EFF': 'rgb(191, 62, 255)', '#8B6914': 'rgb(139, 105, 20)', '#00CD66': 'rgb(0, 205, 102)', '#525252': 'rgb(82, 82, 82)', '#A4D3EE': 'rgb(164, 211, 238)', '#00868B': 'rgb(0, 134, 139)', '#8DEEEE': 'rgb(141, 238, 238)', '#787878': 'rgb(120, 120, 120)', '#8B1C62': 'rgb(139, 28, 98)', '#616161': 'rgb(97, 97, 97)', '#4876FF': 'rgb(72, 118, 255)', '#9F79EE': 'rgb(159, 121, 238)', '#212121': 'rgb(33, 33, 33)', '#C1CDC1': 'rgb(193, 205, 193)', '#CD69C9': 'rgb(205, 105, 201)', '#E0EEEE': 'rgb(224, 238, 238)', '#8B7E66': 'rgb(139, 126, 102)', '#8A2BE2': 'rgb(138, 43, 226)', '#CDCD00': 'rgb(205, 205, 0)', '#EE5C42': 'rgb(238, 92, 66)', '#6E6E6E': 'rgb(110, 110, 110)', '#EEAEEE': 'rgb(238, 174, 238)', '#DC143C': 'rgb(220, 20, 60)', '#CD919E': 'rgb(205, 145, 158)', '#528B8B': 'rgb(82, 139, 139)', '#AFEEEE': 'rgb(175, 238, 238)', '#CD6889': 'rgb(205, 104, 137)', '#E6E6FA': 'rgb(230, 230, 250)', '#EE00EE': 'rgb(238, 0, 238)', '#999999': 'rgb(153, 153, 153)', '#F0F8FF': 'rgb(240, 248, 255)', '#595959': 'rgb(89, 89, 89)', '#FF7F50': 'rgb(255, 127, 80)', '#A6A6A6': 'rgb(166, 166, 166)', '#DEDEDE': 'rgb(222, 222, 222)', '#262626': 'rgb(38, 38, 38)', '#6CA6CD': 'rgb(108, 166, 205)', '#8B8B83': 'rgb(139, 139, 131)', '#474747': 'rgb(71, 71, 71)', '#F7F7F7': 'rgb(247, 247, 247)', '#548B54': 'rgb(84, 139, 84)', '#48D1CC': 'rgb(72, 209, 204)', '#C1CDCD': 'rgb(193, 205, 205)', '#E0EEE0': 'rgb(224, 238, 224)', '#FFB90F': 'rgb(255, 185, 15)', '#FFD39B': 'rgb(255, 211, 155)', '#8B5A2B': 'rgb(139, 90, 43)', '#EEE9BF': 'rgb(238, 233, 191)', '#BCEE68': 'rgb(188, 238, 104)', '#8470FF': 'rgb(132, 112, 255)', '#8B0A50': 'rgb(139, 10, 80)', '#FFF68F': 'rgb(255, 246, 143)', '#EEA2AD': 'rgb(238, 162, 173)', '#CD5B45': 'rgb(205, 91, 69)', '#7FFF00': 'rgb(127, 255, 0)', '#8B8378': 'rgb(139, 131, 120)', '#9BCD9B': 'rgb(155, 205, 155)', '#454545': 'rgb(69, 69, 69)', '#D1D1D1': 'rgb(209, 209, 209)', '#EEE8AA': 'rgb(238, 232, 170)', '#668B8B': 'rgb(102, 139, 139)', '#EE30A7': 'rgb(238, 48, 167)', '#FFC125': 'rgb(255, 193, 37)', '#8B475D': 'rgb(139, 71, 93)', '#D8BFD8': 'rgb(216, 191, 216)', '#404040': 'rgb(64, 64, 64)', '#EEEE00': 'rgb(238, 238, 0)', '#CDB5CD': 'rgb(205, 181, 205)', '#00C5CD': 'rgb(0, 197, 205)', '#00CED1': 'rgb(0, 206, 209)', '#CFCFCF': 'rgb(207, 207, 207)', '#008B00': 'rgb(0, 139, 0)', '#7A7A7A': 'rgb(122, 122, 122)', '#B8860B': 'rgb(184, 134, 11)', '#1C86EE': 'rgb(28, 134, 238)', '#8B5742': 'rgb(139, 87, 66)', '#1A1A1A': 'rgb(26, 26, 26)', '#8B008B': 'rgb(139, 0, 139)', '#0F0F0F': 'rgb(15, 15, 15)', '#CD3700': 'rgb(205, 55, 0)', '#7F7F7F': 'rgb(127, 127, 127)', '#FF6EB4': 'rgb(255, 110, 180)', '#6959CD': 'rgb(105, 89, 205)', '#90EE90': 'rgb(144, 238, 144)', '#8B4789': 'rgb(139, 71, 137)', '#EE7AE9': 'rgb(238, 122, 233)', '#8968CD': 'rgb(137, 104, 205)', '#080808': 'rgb(8, 8, 8)', '#CDC9C9': 'rgb(205, 201, 201)', '#BDB76B': 'rgb(189, 183, 107)', '#9370DB': 'rgb(147, 112, 219)', '#EEDC82': 'rgb(238, 220, 130)', '#3CB371': 'rgb(60, 179, 113)', '#F5FFFA': 'rgb(245, 255, 250)', '#303030': 'rgb(48, 48, 48)', '#B9D3EE': 'rgb(185, 211, 238)', '#575757': 'rgb(87, 87, 87)', '#F5F5DC': 'rgb(245, 245, 220)', '#BABABA': 'rgb(186, 186, 186)', '#0000CD': 'rgb(0, 0, 205)', '#FF8247': 'rgb(255, 130, 71)', '#F2F2F2': 'rgb(242, 242, 242)', '#EED5B7': 'rgb(238, 213, 183)', '#FFEC8B': 'rgb(255, 236, 139)', '#EE7600': 'rgb(238, 118, 0)', '#8B636C': 'rgb(139, 99, 108)', '#8B814C': 'rgb(139, 129, 76)', '#FFE4B5': 'rgb(255, 228, 181)', '#4F94CD': 'rgb(79, 148, 205)', '#CDAD00': 'rgb(205, 173, 0)', '#CD5555': 'rgb(205, 85, 85)', '#8B7500': 'rgb(139, 117, 0)', '#473C8B': 'rgb(71, 60, 139)', '#B0E0E6': 'rgb(176, 224, 230)', '#FFFF00': 'rgb(255, 255, 0)', '#CD96CD': 'rgb(205, 150, 205)', '#006400': 'rgb(0, 100, 0)', '#FAFAFA': 'rgb(250, 250, 250)', '#53868B': 'rgb(83, 134, 139)', '#8B4513': 'rgb(139, 69, 19)', '#98FB98': 'rgb(152, 251, 152)', '#63B8FF': 'rgb(99, 184, 255)', '#FFAEB9': 'rgb(255, 174, 185)', '#EE6A50': 'rgb(238, 106, 80)', '#87CEFF': 'rgb(135, 206, 255)', '#87CEFA': 'rgb(135, 206, 250)', '#ADFF2F': 'rgb(173, 255, 47)', '#008B45': 'rgb(0, 139, 69)', '#EE4000': 'rgb(238, 64, 0)', '#8B6969': 'rgb(139, 105, 105)', '#00008B': 'rgb(0, 0, 139)', '#DB7093': 'rgb(219, 112, 147)', '#7EC0EE': 'rgb(126, 192, 238)', '#3B3B3B': 'rgb(59, 59, 59)', '#8C8C8C': 'rgb(140, 140, 140)', '#5F9EA0': 'rgb(95, 158, 160)', '#EE799F': 'rgb(238, 121, 159)', '#CD6090': 'rgb(205, 96, 144)', '#8B8682': 'rgb(139, 134, 130)', '#458B74': 'rgb(69, 139, 116)', '#EECFA1': 'rgb(238, 207, 161)', '#76EE00': 'rgb(118, 238, 0)', '#000080': 'rgb(0, 0, 128)', '#228B22': 'rgb(34, 139, 34)', '#8B8B00': 'rgb(139, 139, 0)', '#B5B5B5': 'rgb(181, 181, 181)', '#CD950C': 'rgb(205, 149, 12)', '#EE82EE': 'rgb(238, 130, 238)', '#EDEDED': 'rgb(237, 237, 237)', '#F5DEB3': 'rgb(245, 222, 179)', '#3A5FCD': 'rgb(58, 95, 205)', '#00FA9A': 'rgb(0, 250, 154)', '#F0F0F0': 'rgb(240, 240, 240)', '#D1EEEE': 'rgb(209, 238, 238)', '#2E2E2E': 'rgb(46, 46, 46)', '#EEC591': 'rgb(238, 197, 145)', '#8B3E2F': 'rgb(139, 62, 47)', '#CD8162': 'rgb(205, 129, 98)', '#9AC0CD': 'rgb(154, 192, 205)', '#8B8989': 'rgb(139, 137, 137)', '#EED8AE': 'rgb(238, 216, 174)', '#551A8B': 'rgb(85, 26, 139)', '#919191': 'rgb(145, 145, 145)', '#949494': 'rgb(148, 148, 148)', '#778899': 'rgb(119, 136, 153)', '#FFFACD': 'rgb(255, 250, 205)', '#458B00': 'rgb(69, 139, 0)', '#008000': 'rgb(0, 128, 0)', '#FFFFF0': 'rgb(255, 255, 240)', '#E0E0E0': 'rgb(224, 224, 224)', '#EEB422': 'rgb(238, 180, 34)', '#A020F0': 'rgb(160, 32, 240)', '#5CACEE': 'rgb(92, 172, 238)', '#CD4F39': 'rgb(205, 79, 57)', '#CDC0B0': 'rgb(205, 192, 176)', '#6E7B8B': 'rgb(110, 123, 139)', '#9E9E9E': 'rgb(158, 158, 158)', '#CDC673': 'rgb(205, 198, 115)', '#104E8B': 'rgb(16, 78, 139)', '#E0FFFF': 'rgb(224, 255, 255)', '#FFFFFF': 'rgb(255, 255, 255)', '#6C7B8B': 'rgb(108, 123, 139)', '#FFC1C1': 'rgb(255, 193, 193)', '#D6D6D6': 'rgb(214, 214, 214)', '#8B4726': 'rgb(139, 71, 38)', '#CD9B1D': 'rgb(205, 155, 29)', '#FF6347': 'rgb(255, 99, 71)', '#FF34B3': 'rgb(255, 52, 179)', '#7D7D7D': 'rgb(125, 125, 125)', '#121212': 'rgb(18, 18, 18)', '#B0E2FF': 'rgb(176, 226, 255)', '#8B3A62': 'rgb(139, 58, 98)', '#CD5C5C': 'rgb(205, 92, 92)', '#4A4A4A': 'rgb(74, 74, 74)', '#B0B0B0': 'rgb(176, 176, 176)', '#D9D9D9': 'rgb(217, 217, 217)', '#A2CD5A': 'rgb(162, 205, 90)', '#8B0000': 'rgb(139, 0, 0)', '#FF6A6A': 'rgb(255, 106, 106)', '#CD6600': 'rgb(205, 102, 0)', '#FFEFDB': 'rgb(255, 239, 219)', '#E9967A': 'rgb(233, 150, 122)', '#EEE9E9': 'rgb(238, 233, 233)', '#D4D4D4': 'rgb(212, 212, 212)', '#383838': 'rgb(56, 56, 56)', '#7A67EE': 'rgb(122, 103, 238)', '#4169E1': 'rgb(65, 105, 225)', '#5E5E5E': 'rgb(94, 94, 94)', '#00F5FF': 'rgb(0, 245, 255)', '#FFEFD5': 'rgb(255, 239, 213)', '#CDAF95': 'rgb(205, 175, 149)', '#CCCCCC': 'rgb(204, 204, 204)', '#00BFFF': 'rgb(0, 191, 255)', '#CDB79E': 'rgb(205, 183, 158)', '#969696': 'rgb(150, 150, 150)', '#4F4F4F': 'rgb(79, 79, 79)', '#1E90FF': 'rgb(30, 144, 255)', '#FCFCFC': 'rgb(252, 252, 252)', '#EE2C2C': 'rgb(238, 44, 44)', '#8B6508': 'rgb(139, 101, 8)', '#696969': 'rgb(105, 105, 105)', '#FF7F24': 'rgb(255, 127, 36)', '#8FBC8F': 'rgb(143, 188, 143)', '#66CDAA': 'rgb(102, 205, 170)', '#6495ED': 'rgb(100, 149, 237)', '#0D0D0D': 'rgb(13, 13, 13)', '#EEE0E5': 'rgb(238, 224, 229)', '#666666': 'rgb(102, 102, 102)', '#B2DFEE': 'rgb(178, 223, 238)', '#B22222': 'rgb(178, 34, 34)', '#4B0082': 'rgb(75, 0, 130)', '#FF82AB': 'rgb(255, 130, 171)', '#AB82FF': 'rgb(171, 130, 255)', '#79CDCD': 'rgb(121, 205, 205)', '#FFE4C4': 'rgb(255, 228, 196)', '#DEB887': 'rgb(222, 184, 135)', '#5D478B': 'rgb(93, 71, 139)', '#8B3626': 'rgb(139, 54, 38)', '#FFFFE0': 'rgb(255, 255, 224)', '#FFE4E1': 'rgb(255, 228, 225)', '#171717': 'rgb(23, 23, 23)', '#EEDFCC': 'rgb(238, 223, 204)', '#9400D3': 'rgb(148, 0, 211)', '#BFEFFF': 'rgb(191, 239, 255)', '#8B7D6B': 'rgb(139, 125, 107)', '#FF8C69': 'rgb(255, 140, 105)', '#C6E2FF': 'rgb(198, 226, 255)', '#1C1C1C': 'rgb(28, 28, 28)', '#FF4500': 'rgb(255, 69, 0)', '#FFE7BA': 'rgb(255, 231, 186)', '#808080': 'rgb(128, 128, 128)', '#EE9572': 'rgb(238, 149, 114)', '#CD8500': 'rgb(205, 133, 0)', '#8B5A00': 'rgb(139, 90, 0)', '#9932CC': 'rgb(153, 50, 204)', '#EECBAD': 'rgb(238, 203, 173)', '#CD8C95': 'rgb(205, 140, 149)', '#292929': 'rgb(41, 41, 41)', '#CD1076': 'rgb(205, 16, 118)', '#7A378B': 'rgb(122, 55, 139)', '#FF0000': 'rgb(255, 0, 0)', '#698B22': 'rgb(105, 139, 34)', '#ADADAD': 'rgb(173, 173, 173)', '#EEE8CD': 'rgb(238, 232, 205)', '#DDA0DD': 'rgb(221, 160, 221)', '#7D26CD': 'rgb(125, 38, 205)', '#DA70D6': 'rgb(218, 112, 214)', '#DCDCDC': 'rgb(220, 220, 220)', '#68228B': 'rgb(104, 34, 139)', '#7B68EE': 'rgb(123, 104, 238)', '#000000': 'white', '#6B8E23': 'rgb(107, 142, 35)', '#FF69B4': 'rgb(255, 105, 180)', '#800000': 'rgb(128, 0, 0)', '#8B668B': 'rgb(139, 102, 139)', '#363636': 'rgb(54, 54, 54)', '#8B4500': 'rgb(139, 69, 0)', '#D3D3D3': 'rgb(211, 211, 211)', '#607B8B': 'rgb(96, 123, 139)', '#F08080': 'rgb(240, 128, 128)', '#CD9B9B': 'rgb(205, 155, 155)', '#76EEC6': 'rgb(118, 238, 198)', '#FAEBD7': 'rgb(250, 235, 215)', '#68838B': 'rgb(104, 131, 139)', '#7FFFD4': 'rgb(127, 255, 212)', '#C0C0C0': 'rgb(192, 192, 192)', '#EEDD82': 'rgb(238, 221, 130)', '#EE9A49': 'rgb(238, 154, 73)', '#4A708B': 'rgb(74, 112, 139)', '#008080': 'rgb(0, 128, 128)', '#7AC5CD': 'rgb(122, 197, 205)', '#98F5FF': 'rgb(152, 245, 255)', '#8B2500': 'rgb(139, 37, 0)', '#8F8F8F': 'rgb(143, 143, 143)', '#FFF0F5': 'rgb(255, 240, 245)', '#8B8970': 'rgb(139, 137, 112)', '#8B8878': 'rgb(139, 136, 120)', '#6A5ACD': 'rgb(106, 90, 205)', '#4682B4': 'rgb(70, 130, 180)', '#EEEEE0': 'rgb(238, 238, 224)', '#B3B3B3': 'rgb(179, 179, 179)', '#00FF00': 'rgb(0, 255, 0)', '#FFDEAD': 'rgb(255, 222, 173)', '#CD2626': 'rgb(205, 38, 38)', '#8B4C39': 'rgb(139, 76, 57)', '#9B30FF': 'rgb(155, 48, 255)', '#E5E5E5': 'rgb(229, 229, 229)', '#36648B': 'rgb(54, 100, 139)', '#9C9C9C': 'rgb(156, 156, 156)', '#F8F8FF': 'rgb(248, 248, 255)', '#333333': 'rgb(51, 51, 51)', '#5C5C5C': 'rgb(92, 92, 92)', '#737373': 'rgb(115, 115, 115)', '#EEC900': 'rgb(238, 201, 0)', '#FFE1FF': 'rgb(255, 225, 255)', '#C1FFC1': 'rgb(193, 255, 193)', '#CDC5BF': 'rgb(205, 197, 191)', '#A0522D': 'rgb(160, 82, 45)', '#8B5F65': 'rgb(139, 95, 101)', '#CDC1C5': 'rgb(205, 193, 197)', '#EE7621': 'rgb(238, 118, 33)', '#FFBBFF': 'rgb(255, 187, 255)', '#CD6839': 'rgb(205, 104, 57)', '#698B69': 'rgb(105, 139, 105)', '#050505': 'rgb(5, 5, 5)', '#CD661D': 'rgb(205, 102, 29)', '#FAFAD2': 'rgb(250, 250, 210)', '#CDCDC1': 'rgb(205, 205, 193)', '#FFF8DC': 'rgb(255, 248, 220)', '#A8A8A8': 'rgb(168, 168, 168)', '#B452CD': 'rgb(180, 82, 205)', '#D2B48C': 'rgb(210, 180, 140)', '#8EE5EE': 'rgb(142, 229, 238)', '#483D8B': 'rgb(72, 61, 139)', '#BBFFFF': 'rgb(187, 255, 255)', '#0000FF': 'rgb(0, 0, 255)', '#EE6AA7': 'rgb(238, 106, 167)', '#EE7942': 'rgb(238, 121, 66)', '#00CD00': 'rgb(0, 205, 0)', '#141414': 'rgb(20, 20, 20)', '#9ACD32': 'rgb(154, 205, 50)', '#C71585': 'rgb(199, 21, 133)', '#EE9A00': 'rgb(238, 154, 0)', '#CAFF70': 'rgb(202, 255, 112)', '#F5F5F5': 'rgb(245, 245, 245)', '#32CD32': 'rgb(50, 205, 50)', '#00EE00': 'rgb(0, 238, 0)', '#FFB6C1': 'rgb(255, 182, 193)', '#8B1A1A': 'rgb(139, 26, 26)', '#00B2EE': 'rgb(0, 178, 238)', '#20B2AA': 'rgb(32, 178, 170)', '#707070': 'rgb(112, 112, 112)', '#009ACD': 'rgb(0, 154, 205)', '#A52A2A': 'rgb(165, 42, 42)', '#EE6363': 'rgb(238, 99, 99)', '#FAF0E6': 'rgb(250, 240, 230)', '#8B7D7B': 'rgb(139, 125, 123)', '#9A32CD': 'rgb(154, 50, 205)', '#1F1F1F': 'rgb(31, 31, 31)', '#E8E8E8': 'rgb(232, 232, 232)', '#7E7E7E': 'rgb(126, 126, 126)', '#7A8B8B': 'rgb(122, 139, 139)', '#CD7054': 'rgb(205, 112, 84)', '#9FB6CD': 'rgb(159, 182, 205)', '#CDC9A5': 'rgb(205, 201, 165)', '#D02090': 'rgb(208, 32, 144)', '#00FFFF': 'rgb(0, 255, 255)', '#2B2B2B': 'rgb(43, 43, 43)', '#858585': 'rgb(133, 133, 133)', '#A3A3A3': 'rgb(163, 163, 163)', '#CD0000': 'rgb(205, 0, 0)', '#43CD80': 'rgb(67, 205, 128)', '#FA8072': 'rgb(250, 128, 114)', '#FFDAB9': 'rgb(255, 218, 185)', '#D2691E': 'rgb(210, 105, 30)', '#FF1493': 'rgb(255, 20, 147)', '#EED2EE': 'rgb(238, 210, 238)', '#030303': 'rgb(3, 3, 3)', '#8B8B7A': 'rgb(139, 139, 122)'} diff --git a/frontend/imgrid/colors/js/ditherbackground.gif b/frontend/imgrid/colors/js/ditherbackground.gif Binary files differnew file mode 100755 index 0000000..670df08 --- /dev/null +++ b/frontend/imgrid/colors/js/ditherbackground.gif diff --git a/frontend/imgrid/colors/js/goldenfunctions.js b/frontend/imgrid/colors/js/goldenfunctions.js new file mode 100755 index 0000000..ab39533 --- /dev/null +++ b/frontend/imgrid/colors/js/goldenfunctions.js @@ -0,0 +1,33 @@ +function regolden(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num/ratio) + return newnum + } +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newval = goldenize(result) + propval = newval.toString()+'px' + if(propertystr == 'height'){ + $(idandselectr).css('width', propval) + } + else if(propertystr == 'width'){ + $(idandselectr).css('height', propval) + } + } + diff --git a/frontend/imgrid/colors/js/hexrgbnametoggle.js b/frontend/imgrid/colors/js/hexrgbnametoggle.js new file mode 100755 index 0000000..60567a5 --- /dev/null +++ b/frontend/imgrid/colors/js/hexrgbnametoggle.js @@ -0,0 +1,148 @@ +///threewayselector for what goes in the divs///////////////////// +///MUST SWITCH TO FOUR WAY WITH RGB/////////////////////////////// +var infostate = 0 +var stringvalue = "CLICK TO CHOOSE THE COLOR" +function switchinfo() + { + if(infostate == 1) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(divtoname[divlist[i]]) + }; + infostate = 2 + $('#infospace').html('(NAMES)'); + } + else if(infostate == 0) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html("") + }; + infostate = 1 + $('#infospace').html('(NONE)'); + } + else if(infostate == 2) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(nametohex[divtoname[divlist[i]]]) + }; + infostate = 3 + $('#infospace').html('(HEXES)'); + } + else if(infostate == 3) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(hextorgb[nametohex[divtoname[divlist[i]]]]); + // $(divlist[i]).html($(divlist[i]).css('background-color')); + } + infostate = 0 + $('#infospace').html('(RGBS)'); + } + + } +switchinfo() +$('#infoswitch').hover(function(){$('#infospace').show()}, function(){$('#infospace').hide('slow')} ) +$('#infoswitch').click(function(){switchinfo()}) +///////////////////////////////////////////////////////////////////////// +////////////////////////////////////////////////////////////////////////// +//takes a div name and returns the colorname associated with that div +var rgb +var selectedrgb +var colorname +function showcolorname(divstr) + { + rgb = $('#'+divstr).css('background-color'); + colorname = divtoname['#'+divstr] + // hex = nametohex[colorname] + imname = colorname + // imname = hextoname[hex] + if (hexes === true) + { + imname = rgb + } + else if (rgbs === true) + { + imname = colorname + } + else if (names === true) + { + imname = rgbtohex[rgb] + } + return imname + } +function bigname(divstr) + { + stringvalue = showcolorname(divstr) + $('#colornames').html(stringvalue) + } +$('.colors').hover(function() + { + thabg = $(this).css('background-color') + bigname(this.id); + }); + +////////////////////////////////////////////////////////////////////// +//THIS CONTROLS THE VALUE OF THE SELECTION ETC +//MUST ADD RGB VALUES TO THIS AND MAKE IT A THREE-WAY SELECTOR +var names = true; +var hexes = false; +var rgbs = false; +var selectedname = ""; +function hexswitch() + { + if(names == true) + { + hexes = false; + rgbs = false; + $('#hexswitch').html('CLICK TO SWITCH TO RGB VALUES'); + $('#namespace').val(selectedname); + names = false; + rgbs = true; + } + else if(hexes == true) + { + rgbs = false; + names = false; + $('#hexswitch').html('CLICK TO SWITCH TO COLOR NAMES'); + $('#namespace').val(rgbtohex[selectedrgb]); + hexes = false; + names = true; + } + else if(rgbs == true) + { + names = false; + hexes = false; + $('#hexswitch').html('CLICK TO SWITCH TO HEX VALUES') + $('#namespace').val(selectedrgb) + rgbs = false; + hexes = true; + } + } +hexswitch() +$('#hexswitch').click(function(){hexswitch()}); +////////////////////////////////////////////////////// +//////////CLICK TO PUT THE COLORS IN////////////////// +function putitin() + { + if (rgbs === true) + {thecolor = selectedname} + if (hexes === true) + {thecolor = selectedrgb} + if (names === true) + {thecolor = rgbtohex[selectedrgb]} + $('#namespace').val(thecolor) + $('#preview').css({'background-color':selectedrgb,'border-style':'none'}) + $('#vasebackground').css('background-color',selectedrgb) + } +$('.colors').click(function() + { + selectednameid = $(this).attr('id') + selectedname = divtoname['#'+selectednameid] + selectedrgb = $(this).css('background-color'); + putitin() + }); + + diff --git a/frontend/imgrid/colors/js/hoverbackground.jpg b/frontend/imgrid/colors/js/hoverbackground.jpg Binary files differnew file mode 100755 index 0000000..c1ef116 --- /dev/null +++ b/frontend/imgrid/colors/js/hoverbackground.jpg diff --git a/frontend/imgrid/colors/js/hovercss.js b/frontend/imgrid/colors/js/hovercss.js new file mode 100755 index 0000000..0223b8b --- /dev/null +++ b/frontend/imgrid/colors/js/hovercss.js @@ -0,0 +1,31 @@ +//HOVER CSS SCRIPT// +var old = {}; +function hovercss(sel, uno) + { + var chng = {}; + chng['color'] = 'white'; + chng['text-shadow'] = 'black 1px 2px'; + chng['background-image'] = 'url(js/hoverbackground.jpg)'; + if(uno == 'over') + { + for(var key in chng){ + old[key] = $('#'+sel).css(key) + } + for(var key in chng){ + $('#'+sel).css(key, chng[key]) + } + } + if(uno == 'out'){ + for(var key in old){ + $('#'+sel).css(key, old[key]) + } + } + }; +$('.theswitches').hover(function() + { + hovercss(this.id, 'over') + }, function() + { + hovercss(this.id, 'out') + }); + diff --git a/frontend/imgrid/colors/js/iftransparentcss.js b/frontend/imgrid/colors/js/iftransparentcss.js new file mode 100755 index 0000000..fd4fe6c --- /dev/null +++ b/frontend/imgrid/colors/js/iftransparentcss.js @@ -0,0 +1,25 @@ +///if transparent etc styling +var transcss = { + 'color':'#141414','box-shadow':'10px 10px 5px #141414', + 'background-color':'#D1D1D1','color':'#141414', + 'border-width':'2px','border-style':'outset','cursor':'pointer'} +$('#transbutton').css(transcss) +var hovertrans = { + 'background-color':'DarkGrey','color':'#383838','box-shadow':'5px 5px 2px #141414' + } +$('#transbutton').hover(function(){$('#transbutton').css(hovertrans)},function(){$('#transbutton').css(transcss)}) + +function transparent() + { + $('#namespace').val('transparent'); + $('#preview').css({'background-color':'transparent','border-style':'dashed','border-width':'2px'}) + } +$('#transbutton').click(function() + { + transparent() + $('#colornames').html('transparent') + $('#colornames').fadeOut(100);$('#colornames').fadeIn(500); + $('#extra').html('<br><br><span style="color:red;background-color:black;border-color:red; border-width:1px; border-style:solid; font-size:14px;">note: the .jpg image format does not support transparency</span>') + }); + + diff --git a/frontend/imgrid/colors/js/jquery-1.6.4.min.js b/frontend/imgrid/colors/js/jquery-1.6.4.min.js new file mode 100755 index 0000000..628ed9b --- /dev/null +++ b/frontend/imgrid/colors/js/jquery-1.6.4.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */ +(function(a,b){function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bA.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bW(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bP,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bW(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bW(a,c,d,e,"*",g));return l}function bV(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bL),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function by(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bt:bu;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bf(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function V(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(Q.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(w,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:H?function(a){return a==null?"":H.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?F.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(!b)return-1;if(I)return I.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=G.call(arguments,2),g=function(){return a.apply(c,f.concat(G.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){J["[object "+b+"]"]=b.toLowerCase()}),A=e.uaMatch(z),A.browser&&(e.browser[A.browser]=!0,e.browser.version=A.version),e.browser.webkit&&(e.browser.safari=!0),j.test("Â ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?C=function(){c.removeEventListener("DOMContentLoaded",C,!1),e.ready()}:c.attachEvent&&(C=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",C),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g+"With"](this===b?d:this,[h])}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u,v;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete +t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,M(a.origType,a.selector),f.extend({},a,{handler:L,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,M(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?D:C):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=D;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=D;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=D,this.stopPropagation()},isDefaultPrevented:C,isPropagationStopped:C,isImmediatePropagationStopped:C};var E=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},F=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?F:E,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?F:E)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="submit"||c==="image")&&f(b).closest("form").length&&J("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&J("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var G,H=function(a){var b=f.nodeName(a,"input")?a.type:"",c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var K={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||C,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=w.exec(h),k="",j&&(k=j[0],h=h.replace(w,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,K[h]?(a.push(K[h]+k),h=h+k):h=(K[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+M(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+M(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var N=/Until$/,O=/^(?:parents|prevUntil|prevAll)/,P=/,/,Q=/^.[^:#\[\.,]*$/,R=Array.prototype.slice,S=f.expr.match.POS,T={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(V(this,a,!1),"not",a)},filter:function(a){return this.pushStack(V(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=S.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|object|embed|option|style)/i,bb=/checked\s*(?:[^=]|=\s*.checked.)/i,bc=/\/(java|ecma)script/i,bd=/^\s*<!(?:\[CDATA\[|\-\-)/,be={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bb.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bf(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bl)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!ba.test(a[0])&&(f.support.checkClone||!bb.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean +(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bk(k[i]);else bk(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bc.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bm=/alpha\([^)]*\)/i,bn=/opacity=([^)]*)/,bo=/([A-Z]|^ms)/g,bp=/^-?\d+(?:px)?$/i,bq=/^-?\d/,br=/^([\-+])=([\-+.\de]+)/,bs={position:"absolute",visibility:"hidden",display:"block"},bt=["Left","Right"],bu=["Top","Bottom"],bv,bw,bx;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bv(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=br.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bv)return bv(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return by(a,b,d);f.swap(a,bs,function(){e=by(a,b,d)});return e}},set:function(a,b){if(!bp.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bK=/^(?:select|textarea)/i,bL=/\s+/,bM=/([?&])_=[^&]*/,bN=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bO=f.fn.load,bP={},bQ={},bR,bS,bT=["*/"]+["*"];try{bR=e.href}catch(bU){bR=c.createElement("a"),bR.href="",bR=bR.href}bS=bN.exec(bR.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bO)return bO.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bJ,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bK.test(this.nodeName)||bE.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bB,"\r\n")}}):{name:b.name,value:c.replace(bB,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?bX(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),bX(a,b);return a},ajaxSettings:{url:bR,isLocal:bF.test(bS[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bT},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bV(bP),ajaxTransport:bV(bQ),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?bZ(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=b$(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bD.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bC,"").replace(bH,bS[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bL),d.crossDomain==null&&(r=bN.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bS[1]&&r[2]==bS[2]&&(r[3]||(r[1]==="http:"?80:443))==(bS[3]||(bS[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bW(bP,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bG.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bI.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bM,"$1_="+x);d.url=y+(y===d.url?(bI.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bT+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bW(bQ,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bz,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cq("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cr(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cq("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cq("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cr(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cq("show",1),slideUp:cq("hide",1),slideToggle:cq("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return d.step(a)}var d=this,e=f.fx;this.startTime=cn||co(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&f.timers.push(g)&&!cl&&(cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||co(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cs=/^t(?:able|d|h)$/i,ct=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cu(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cs.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=ct.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!ct.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cu(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cu(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNaN(j)?i:j}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
\ No newline at end of file diff --git a/frontend/imgrid/colors/js/jquery.cookie.js b/frontend/imgrid/colors/js/jquery.cookie.js new file mode 100755 index 0000000..6036754 --- /dev/null +++ b/frontend/imgrid/colors/js/jquery.cookie.js @@ -0,0 +1,96 @@ +/**
+ * Cookie plugin
+ *
+ * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ */
+
+/**
+ * Create a cookie with the given name and value and other optional parameters.
+ *
+ * @example $.cookie('the_cookie', 'the_value');
+ * @desc Set the value of a cookie.
+ * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
+ * @desc Create a cookie with all available options.
+ * @example $.cookie('the_cookie', 'the_value');
+ * @desc Create a session cookie.
+ * @example $.cookie('the_cookie', null);
+ * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
+ * used when the cookie was set.
+ *
+ * @param String name The name of the cookie.
+ * @param String value The value of the cookie.
+ * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
+ * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
+ * If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
+ * If set to null or omitted, the cookie will be a session cookie and will not be retained
+ * when the the browser exits.
+ * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
+ * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
+ * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
+ * require a secure protocol (like HTTPS).
+ * @type undefined
+ *
+ * @name $.cookie
+ * @cat Plugins/Cookie
+ * @author Klaus Hartl/klaus.hartl@stilbuero.de
+ */
+
+/**
+ * Get the value of a cookie with the given name.
+ *
+ * @example $.cookie('the_cookie');
+ * @desc Get the value of a cookie.
+ *
+ * @param String name The name of the cookie.
+ * @return The value of the cookie.
+ * @type String
+ *
+ * @name $.cookie
+ * @cat Plugins/Cookie
+ * @author Klaus Hartl/klaus.hartl@stilbuero.de
+ */
+jQuery.cookie = function(name, value, options) {
+ if (typeof value != 'undefined') { // name and value given, set cookie
+ options = options || {};
+ if (value === null) {
+ value = '';
+ options.expires = -1;
+ }
+ var expires = '';
+ if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
+ var date;
+ if (typeof options.expires == 'number') {
+ date = new Date();
+ date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
+ } else {
+ date = options.expires;
+ }
+ expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
+ }
+ // CAUTION: Needed to parenthesize options.path and options.domain
+ // in the following expressions, otherwise they evaluate to undefined
+ // in the packed version for some reason...
+ var path = options.path ? '; path=' + (options.path) : '';
+ var domain = options.domain ? '; domain=' + (options.domain) : '';
+ var secure = options.secure ? '; secure' : '';
+ document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
+ } else { // only name given, get cookie
+ var cookieValue = null;
+ if (document.cookie && document.cookie != '') {
+ var cookies = document.cookie.split(';');
+ for (var i = 0; i < cookies.length; i++) {
+ var cookie = jQuery.trim(cookies[i]);
+ // Does this cookie string begin with the name we want?
+ if (cookie.substring(0, name.length + 1) == (name + '=')) {
+ cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
+ break;
+ }
+ }
+ }
+ return cookieValue;
+ }
+};
\ No newline at end of file diff --git a/frontend/imgrid/colors/js/setupdimensions.js b/frontend/imgrid/colors/js/setupdimensions.js new file mode 100755 index 0000000..a496e87 --- /dev/null +++ b/frontend/imgrid/colors/js/setupdimensions.js @@ -0,0 +1,173 @@ +//setup dimensions +//everything needs to be positioned according to +//window.innerWidth + +//step 1...forget about the rollover css for now +//step 2...make sure ratios are in place + +//function makebig(divstr) +// { +/// newheight = goldenize(colorsheight) +/// $('#'+divstr).height(newheight) +// } +//function makesmall(divstr) +// { +// $('#'+divstr).height(colorsheight) +// } +////////////////// +/////////////this function runs a for loop +////////////and makes it so that the colors are related +//////////by width to the innerwidth of the window +widthratio = 7 +numberacross = 10 + + +function shrinkwidth(arg, ratio) + { + for(var i=0; i < ratio; i++) + { + arg = regolden(arg) + } + division = Math.round(arg) + return division + } +////////////////right now the ratio is set at 1/6th +var colorsh +function makecolorswidth() + { + colorswidth = shrinkwidth(windowWidth, widthratio) + $('.colors').css('width', colorswidth.toString()+'px') + } + +function makecolorsheight() + { + colorsheight = regolden(colorswidth) + propval = colorsheight.toString()+'px' + $('.colors').css('height', propval) + } +//the following function sets up the font sizes +//inrelation to the size of the hexswitch font +function getcontainerwidth() + { + basis = $('.colors').css('width') + basis = parseInt(basis.slice(0,-2)) + secondbasis = '2px' + secondbasis = parseInt(secondbasis.slice(0,-2)) + widthval = (secondbasis*(numberacross*2))+(basis*numberacross)+(basis*.44)//(goldenize(basis)-basis) + widthval = widthval.toString()+'px' + return widthval + } +function makecontainerwidth() + { + var containerwidth = getcontainerwidth() + $('#container').css('width',containerwidth) + } +function setupsides() + { + $('#container').css({'position':'relative','z-index':'1'}) + $('#switches').css('z-index','10') + var basis = $('#container').css('width') + basis = parseInt(basis.slice(0,-2)) + remainder = (100-basis)/2 + widths = regolden(basis) + widths = widths.toString()+'px' + lateralbasis = regolden(remainder) + leftside = toString(lateralbasis)+'%' + rightside = toString(100-lateralbasis)+'%' + $('#colornames').css('left', leftside) + $('#switches').css({'width': widths, 'left': rightside, 'overflow':'hidden','top':'118px'}) + } +//////preview dimensions is for the +///preview box inside the switches container +function previewdimensions() + { + first = $('#switches').css('width') + first = parseInt(first.slice(0,-2)) + width = regolden(first) + height = regolden(width) + width = width.toString()+'px' + height = height.toString()+'px' + $('#preview').css({'width':width, 'height':height}) + } +///////////////////////////// +////font-size is related to hexswitch font-size +////also the width of the switches container +var fontratioone +function setupfonts() + { + fontratioone = shrinkwidth(windowWidth, 9) + $('.theswitches').css('font-size',fontratioone) + fontratiotwo = shrinkwidth(windowWidth, 8) + $('#nameholder, #title, #namespace').css('font-size',fontratiotwo) + $('#colornames').css('font-size', goldenize(fontratiotwo)+'px') + $('#colornames').css('text-shadow', 'black 1px 2px') + var transfont = regolden(fontratioone) + $('#transparent, #extra').css({'width':'100%','font-size':transfont}) + switcheswidth = $('#switches').css('width') + $('#namespace, #nameholder').css('width', '100%') + } +function setupdimensions() + { + if(window.innerWidth > 933) + {windowWidth = window.innerWidth} + else + {windowWidth = 933} + $('#container').css('font-size','0'); + $('.colors').css('font-size','9px'); + makecolorswidth() + makecolorsheight() + makecontainerwidth() + setupfonts() + setupsides() + makegolden('#switches','width') + previewdimensions() + $('#namespace').css('width', 'inherit') + $('#nameholder').css('width', 'inherit') + $('#transparent').css({'float':'bottom','width':'inherit'}) + $('.colors').css({'margin-top': '2px','margin-right':'2px'}); + } +$(window).resize(function() + { + setupdimensions() + }); +var colorsheight +var colorswidth +setupdimensions() +function makebig(divstr) + { + newheight = goldenize(colorsheight) + $('#'+divstr).height(newheight) + } +function makesmall(divstr) + { + $('#'+divstr).height(colorsheight) + } +var firstwidth +$('.colors').mouseover(function() + { + $('#extra').html(""); + if(this.id != 'd0') + { + $(this).css({'height':goldenize(colorsheight),'width':goldenize(colorswidth)}) + firstwidth = $('#container').css('width') + newwidth = firstwidth+goldenize(colorswidth)-colorswidth + $('#container').css('width',newwidth) +// makebig(this.id); + // makegolden('#'+this.id, 'height') + } + }); + + + + +$('.colors').mouseout(function() + { + $(this).css('height',colorsheight) + $(this).css('width', colorswidth) + $('#container').css('width',firstwidth) + }); + +$(".colors").hover(function(){ +$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); + }); + diff --git a/frontend/imgrid/colors/js/wrkshp/colors.html b/frontend/imgrid/colors/js/wrkshp/colors.html new file mode 100755 index 0000000..0ef22f9 --- /dev/null +++ b/frontend/imgrid/colors/js/wrkshp/colors.html @@ -0,0 +1,5429 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<!-- saved from url=(0124)https://mail.google.com/mail/?ui=2&ik=8c5c6e41c0&view=att&th=131a60939ee4c454&attid=0.1&disp=inline&realattid=f_gr2htzs60&zw --> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head> +<style type="text/css"> +* + { + font-family: sans-serif; + } +</style> +<body> + + + +<div> +<h1><a></a>List of Color Names</h1> +<div> + +<p>a list of named colors for use with PHOTOBLASTER:</p> + +<table> +<tbody> + <tr> + <th align="right">Name</th> + <th align="center">Color</th> + <th align="left">RGB</th> + <th align="left">Hex</th> + + </tr> + + <tr> + <td align="right">snow</td> + <td align="center" style="background-color:rgb(255, 250, 250)">snow</td> + <td align="left">rgb(255, 250, 250)</td> + <td align="left">#FFFAFA</td> + + </tr> + + <tr> + <td align="right">snow1</td> + <td align="center" style="background-color:rgb(255, 250, 250)">snow1</td> + <td align="left">rgb(255, 250, 250)</td> + <td align="left">#FFFAFA</td> + + </tr> + + <tr> + <td align="right">snow2</td> + <td align="center" style="background-color:rgb(238, 233, 233)">snow2</td> + <td align="left">rgb(238, 233, 233)</td> + <td align="left">#EEE9E9</td> + + </tr> + + <tr> + <td align="right">RosyBrown1</td> + <td align="center" style="background-color:rgb(255, 193, 193)">RosyBrown1</td> + <td align="left">rgb(255, 193, 193)</td> + <td align="left">#FFC1C1</td> + + </tr> + + <tr> + <td align="right">RosyBrown2</td> + <td align="center" style="background-color:rgb(238, 180, 180)">RosyBrown2</td> + <td align="left">rgb(238, 180, 180)</td> + <td align="left">#EEB4B4</td> + + </tr> + + <tr> + <td align="right">snow3</td> + <td align="center" style="background-color:rgb(205, 201, 201)">snow3</td> + <td align="left">rgb(205, 201, 201)</td> + <td align="left">#CDC9C9</td> + + </tr> + + <tr> + <td align="right">LightCoral</td> + <td align="center" style="background-color:rgb(240, 128, 128)">LightCoral</td> + <td align="left">rgb(240, 128, 128)</td> + <td align="left">#F08080</td> + + </tr> + + <tr> + <td align="right">IndianRed1</td> + <td align="center" style="background-color:rgb(255, 106, 106)">IndianRed1</td> + <td align="left">rgb(255, 106, 106)</td> + <td align="left">#FF6A6A</td> + + </tr> + + <tr> + <td align="right">RosyBrown3</td> + <td align="center" style="background-color:rgb(205, 155, 155)">RosyBrown3</td> + <td align="left">rgb(205, 155, 155)</td> + <td align="left">#CD9B9B</td> + + </tr> + + <tr> + <td align="right">IndianRed2</td> + <td align="center" style="background-color:rgb(238, 99, 99)">IndianRed2</td> + <td align="left">rgb(238, 99, 99)</td> + <td align="left">#EE6363</td> + + </tr> + + <tr> + <td align="right">RosyBrown</td> + <td align="center" style="background-color:rgb(188, 143, 143)">RosyBrown</td> + <td align="left">rgb(188, 143, 143)</td> + <td align="left">#BC8F8F</td> + + </tr> + + <tr> + <td align="right">brown1</td> + <td align="center" style="background-color:rgb(255, 64, 64)">brown1</td> + <td align="left">rgb(255, 64, 64)</td> + <td align="left">#FF4040</td> + + </tr> + + <tr> + <td align="right">firebrick1</td> + <td align="center" style="background-color:rgb(255, 48, 48)">firebrick1</td> + <td align="left">rgb(255, 48, 48)</td> + <td align="left">#FF3030</td> + + </tr> + + <tr> + <td align="right">brown2</td> + <td align="center" style="background-color:rgb(238, 59, 59)">brown2</td> + <td align="left">rgb(238, 59, 59)</td> + <td align="left">#EE3B3B</td> + + </tr> + + <tr> + <td align="right">IndianRed</td> + <td align="center" style="background-color:rgb(205, 92, 92)">IndianRed</td> + <td align="left">rgb(205, 92, 92)</td> + <td align="left">#CD5C5C</td> + + </tr> + + <tr> + <td align="right">IndianRed3</td> + <td align="center" style="background-color:rgb(205, 85, 85)">IndianRed3</td> + <td align="left">rgb(205, 85, 85)</td> + <td align="left">#CD5555</td> + + </tr> + + <tr> + <td align="right">firebrick2</td> + <td align="center" style="background-color:rgb(238, 44, 44)">firebrick2</td> + <td align="left">rgb(238, 44, 44)</td> + <td align="left">#EE2C2C</td> + + </tr> + + <tr> + <td align="right">snow4</td> + <td align="center" style="background-color:rgb(139, 137, 137)">snow4</td> + <td align="left">rgb(139, 137, 137)</td> + <td align="left">#8B8989</td> + + </tr> + + <tr> + <td align="right">brown3</td> + <td align="center" style="background-color:rgb(205, 51, 51)">brown3</td> + <td align="left">rgb(205, 51, 51)</td> + <td align="left">#CD3333</td> + + </tr> + + <tr> + <td align="right">red</td> + <td align="center" style="background-color:rgb(255, 0, 0)">red</td> + <td align="left">rgb(255, 0, 0)</td> + <td align="left">#FF0000</td> + + </tr> + + <tr> + <td align="right">red1</td> + <td align="center" style="background-color:rgb(255, 0, 0)">red1</td> + <td align="left">rgb(255, 0, 0)</td> + <td align="left">#FF0000</td> + + </tr> + + <tr> + <td align="right">RosyBrown4</td> + <td align="center" style="background-color:rgb(139, 105, 105)">RosyBrown4</td> + <td align="left">rgb(139, 105, 105)</td> + <td align="left">#8B6969</td> + + </tr> + + <tr> + <td align="right">firebrick3</td> + <td align="center" style="background-color:rgb(205, 38, 38)">firebrick3</td> + <td align="left">rgb(205, 38, 38)</td> + <td align="left">#CD2626</td> + + </tr> + + <tr> + <td align="right">red2</td> + <td align="center" style="background-color:rgb(238, 0, 0)">red2</td> + <td align="left">rgb(238, 0, 0)</td> + <td align="left">#EE0000</td> + + </tr> + + <tr> + <td align="right">firebrick</td> + <td align="center" style="background-color:rgb(178, 34, 34)">firebrick</td> + <td align="left">rgb(178, 34, 34)</td> + <td align="left">#B22222</td> + + </tr> + + <tr> + <td align="right">brown</td> + <td align="center" style="background-color:rgb(165, 42, 42)">brown</td> + <td align="left">rgb(165, 42, 42)</td> + <td align="left">#A52A2A</td> + + </tr> + + <tr> + <td align="right">red3</td> + <td align="center" style="background-color:rgb(205, 0, 0)">red3</td> + <td align="left">rgb(205, 0, 0)</td> + <td align="left">#CD0000</td> + + </tr> + + <tr> + <td align="right">IndianRed4</td> + <td align="center" style="background-color:rgb(139, 58, 58)">IndianRed4</td> + <td align="left">rgb(139, 58, 58)</td> + <td align="left">#8B3A3A</td> + + </tr> + + <tr> + <td align="right">brown4</td> + <td align="center" style="background-color:rgb(139, 35, 35)">brown4</td> + <td align="left">rgb(139, 35, 35)</td> + <td align="left">#8B2323</td> + + </tr> + + <tr> + <td align="right">firebrick4</td> + <td align="center" style="background-color:rgb(139, 26, 26)">firebrick4</td> + <td align="left">rgb(139, 26, 26)</td> + <td align="left">#8B1A1A</td> + + </tr> + + <tr> + <td align="right">DarkRed</td> + <td align="center" style="background-color:rgb(139, 0, 0)">DarkRed</td> + <td align="left">rgb(139, 0, 0)</td> + <td align="left">#8B0000</td> + + </tr> + + <tr> + <td align="right">red4</td> + <td align="center" style="background-color:rgb(139, 0, 0)">red4</td> + <td align="left">rgb(139, 0, 0)</td> + <td align="left">#8B0000</td> + + </tr> + + <tr> + <td align="right">maroon</td> + <td align="center" style="background-color:rgb(128, 0, 0)">maroon</td> + <td align="left">rgb(128, 0, 0)</td> + <td align="left">#800000</td> + + </tr> + + <tr> + <td align="right">LightPink1</td> + <td align="center" style="background-color:rgb(255, 174, 185)">LightPink1</td> + <td align="left">rgb(255, 174, 185)</td> + <td align="left">#FFAEB9</td> + + </tr> + + <tr> + <td align="right">LightPink3</td> + <td align="center" style="background-color:rgb(205, 140, 149)">LightPink3</td> + <td align="left">rgb(205, 140, 149)</td> + <td align="left">#CD8C95</td> + + </tr> + + <tr> + <td align="right">LightPink4</td> + <td align="center" style="background-color:rgb(139, 95, 101)">LightPink4</td> + <td align="left">rgb(139, 95, 101)</td> + <td align="left">#8B5F65</td> + + </tr> + + <tr> + <td align="right">LightPink2</td> + <td align="center" style="background-color:rgb(238, 162, 173)">LightPink2</td> + <td align="left">rgb(238, 162, 173)</td> + <td align="left">#EEA2AD</td> + + </tr> + + <tr> + <td align="right">LightPink</td> + <td align="center" style="background-color:rgb(255, 182, 193)">LightPink</td> + <td align="left">rgb(255, 182, 193)</td> + <td align="left">#FFB6C1</td> + + </tr> + + <tr> + <td align="right">pink</td> + <td align="center" style="background-color:rgb(255, 192, 203)">pink</td> + <td align="left">rgb(255, 192, 203)</td> + <td align="left">#FFC0CB</td> + + </tr> + + <tr> + <td align="right">crimson</td> + <td align="center" style="background-color:rgb(220, 20, 60)">crimson</td> + <td align="left">rgb(220, 20, 60)</td> + <td align="left">#DC143C</td> + + </tr> + + <tr> + <td align="right">pink1</td> + <td align="center" style="background-color:rgb(255, 181, 197)">pink1</td> + <td align="left">rgb(255, 181, 197)</td> + <td align="left">#FFB5C5</td> + + </tr> + + <tr> + <td align="right">pink2</td> + <td align="center" style="background-color:rgb(238, 169, 184)">pink2</td> + <td align="left">rgb(238, 169, 184)</td> + <td align="left">#EEA9B8</td> + + </tr> + + <tr> + <td align="right">pink3</td> + <td align="center" style="background-color:rgb(205, 145, 158)">pink3</td> + <td align="left">rgb(205, 145, 158)</td> + <td align="left">#CD919E</td> + + </tr> + + <tr> + <td align="right">pink4</td> + <td align="center" style="background-color:rgb(139, 99, 108)">pink4</td> + <td align="left">rgb(139, 99, 108)</td> + <td align="left">#8B636C</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed4</td> + <td align="center" style="background-color:rgb(139, 71, 93)">PaleVioletRed4</td> + <td align="left">rgb(139, 71, 93)</td> + <td align="left">#8B475D</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed</td> + <td align="center" style="background-color:rgb(219, 112, 147)">PaleVioletRed</td> + <td align="left">rgb(219, 112, 147)</td> + <td align="left">#DB7093</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed2</td> + <td align="center" style="background-color:rgb(238, 121, 159)">PaleVioletRed2</td> + <td align="left">rgb(238, 121, 159)</td> + <td align="left">#EE799F</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed1</td> + <td align="center" style="background-color:rgb(255, 130, 171)">PaleVioletRed1</td> + <td align="left">rgb(255, 130, 171)</td> + <td align="left">#FF82AB</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed3</td> + <td align="center" style="background-color:rgb(205, 104, 137)">PaleVioletRed3</td> + <td align="left">rgb(205, 104, 137)</td> + <td align="left">#CD6889</td> + + </tr> + + <tr> + <td align="right">LavenderBlush</td> + <td align="center" style="background-color:rgb(255, 240, 245)">LavenderBlush</td> + <td align="left">rgb(255, 240, 245)</td> + <td align="left">#FFF0F5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush1</td> + <td align="center" style="background-color:rgb(255, 240, 245)">LavenderBlush1</td> + <td align="left">rgb(255, 240, 245)</td> + <td align="left">#FFF0F5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush3</td> + <td align="center" style="background-color:rgb(205, 193, 197)">LavenderBlush3</td> + <td align="left">rgb(205, 193, 197)</td> + <td align="left">#CDC1C5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush2</td> + <td align="center" style="background-color:rgb(238, 224, 229)">LavenderBlush2</td> + <td align="left">rgb(238, 224, 229)</td> + <td align="left">#EEE0E5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush4</td> + <td align="center" style="background-color:rgb(139, 131, 134)">LavenderBlush4</td> + <td align="left">rgb(139, 131, 134)</td> + <td align="left">#8B8386</td> + + </tr> + + <tr> + <td align="right">maroon</td> + <td align="center" style="background-color:rgb(176, 48, 96)">maroon</td> + <td align="left">rgb(176, 48, 96)</td> + <td align="left">#B03060</td> + + </tr> + + <tr> + <td align="right">HotPink3</td> + <td align="center" style="background-color:rgb(205, 96, 144)">HotPink3</td> + <td align="left">rgb(205, 96, 144)</td> + <td align="left">#CD6090</td> + + </tr> + + <tr> + <td align="right">VioletRed3</td> + <td align="center" style="background-color:rgb(205, 50, 120)">VioletRed3</td> + <td align="left">rgb(205, 50, 120)</td> + <td align="left">#CD3278</td> + + </tr> + + <tr> + <td align="right">VioletRed1</td> + <td align="center" style="background-color:rgb(255, 62, 150)">VioletRed1</td> + <td align="left">rgb(255, 62, 150)</td> + <td align="left">#FF3E96</td> + + </tr> + + <tr> + <td align="right">VioletRed2</td> + <td align="center" style="background-color:rgb(238, 58, 140)">VioletRed2</td> + <td align="left">rgb(238, 58, 140)</td> + <td align="left">#EE3A8C</td> + + </tr> + + <tr> + <td align="right">VioletRed4</td> + <td align="center" style="background-color:rgb(139, 34, 82)">VioletRed4</td> + <td align="left">rgb(139, 34, 82)</td> + <td align="left">#8B2252</td> + + </tr> + + <tr> + <td align="right">HotPink2</td> + <td align="center" style="background-color:rgb(238, 106, 167)">HotPink2</td> + <td align="left">rgb(238, 106, 167)</td> + <td align="left">#EE6AA7</td> + + </tr> + + <tr> + <td align="right">HotPink1</td> + <td align="center" style="background-color:rgb(255, 110, 180)">HotPink1</td> + <td align="left">rgb(255, 110, 180)</td> + <td align="left">#FF6EB4</td> + + </tr> + + <tr> + <td align="right">HotPink4</td> + <td align="center" style="background-color:rgb(139, 58, 98)">HotPink4</td> + <td align="left">rgb(139, 58, 98)</td> + <td align="left">#8B3A62</td> + + </tr> + + <tr> + <td align="right">HotPink</td> + <td align="center" style="background-color:rgb(255, 105, 180)">HotPink</td> + <td align="left">rgb(255, 105, 180)</td> + <td align="left">#FF69B4</td> + + </tr> + + <tr> + <td align="right">DeepPink</td> + <td align="center" style="background-color:rgb(255, 20, 147)">DeepPink</td> + <td align="left">rgb(255, 20, 147)</td> + <td align="left">#FF1493</td> + + </tr> + + <tr> + <td align="right">DeepPink1</td> + <td align="center" style="background-color:rgb(255, 20, 147)">DeepPink1</td> + <td align="left">rgb(255, 20, 147)</td> + <td align="left">#FF1493</td> + + </tr> + + <tr> + <td align="right">DeepPink2</td> + <td align="center" style="background-color:rgb(238, 18, 137)">DeepPink2</td> + <td align="left">rgb(238, 18, 137)</td> + <td align="left">#EE1289</td> + + </tr> + + <tr> + <td align="right">DeepPink3</td> + <td align="center" style="background-color:rgb(205, 16, 118)">DeepPink3</td> + <td align="left">rgb(205, 16, 118)</td> + <td align="left">#CD1076</td> + + </tr> + + <tr> + <td align="right">DeepPink4</td> + <td align="center" style="background-color:rgb(139, 10, 80)">DeepPink4</td> + <td align="left">rgb(139, 10, 80)</td> + <td align="left">#8B0A50</td> + + </tr> + + <tr> + <td align="right">maroon1</td> + <td align="center" style="background-color:rgb(255, 52, 179)">maroon1</td> + <td align="left">rgb(255, 52, 179)</td> + <td align="left">#FF34B3</td> + + </tr> + + <tr> + <td align="right">maroon2</td> + <td align="center" style="background-color:rgb(238, 48, 167)">maroon2</td> + <td align="left">rgb(238, 48, 167)</td> + <td align="left">#EE30A7</td> + + </tr> + + <tr> + <td align="right">maroon3</td> + <td align="center" style="background-color:rgb(205, 41, 144)">maroon3</td> + <td align="left">rgb(205, 41, 144)</td> + <td align="left">#CD2990</td> + + </tr> + + <tr> + <td align="right">maroon4</td> + <td align="center" style="background-color:rgb(139, 28, 98)">maroon4</td> + <td align="left">rgb(139, 28, 98)</td> + <td align="left">#8B1C62</td> + + </tr> + + <tr> + <td align="right">MediumVioletRed</td> + <td align="center" style="background-color:rgb(199, 21, 133)">MediumVioletRed</td> + <td align="left">rgb(199, 21, 133)</td> + <td align="left">#C71585</td> + + </tr> + + <tr> + <td align="right">VioletRed</td> + <td align="center" style="background-color:rgb(208, 32, 144)">VioletRed</td> + <td align="left">rgb(208, 32, 144)</td> + <td align="left">#D02090</td> + + </tr> + + <tr> + <td align="right">orchid2</td> + <td align="center" style="background-color:rgb(238, 122, 233)">orchid2</td> + <td align="left">rgb(238, 122, 233)</td> + <td align="left">#EE7AE9</td> + + </tr> + + <tr> + <td align="right">orchid</td> + <td align="center" style="background-color:rgb(218, 112, 214)">orchid</td> + <td align="left">rgb(218, 112, 214)</td> + <td align="left">#DA70D6</td> + + </tr> + + <tr> + <td align="right">orchid1</td> + <td align="center" style="background-color:rgb(255, 131, 250)">orchid1</td> + <td align="left">rgb(255, 131, 250)</td> + <td align="left">#FF83FA</td> + + </tr> + + <tr> + <td align="right">orchid3</td> + <td align="center" style="background-color:rgb(205, 105, 201)">orchid3</td> + <td align="left">rgb(205, 105, 201)</td> + <td align="left">#CD69C9</td> + + </tr> + + <tr> + <td align="right">orchid4</td> + <td align="center" style="background-color:rgb(139, 71, 137)">orchid4</td> + <td align="left">rgb(139, 71, 137)</td> + <td align="left">#8B4789</td> + + </tr> + + <tr> + <td align="right">thistle1</td> + <td align="center" style="background-color:rgb(255, 225, 255)">thistle1</td> + <td align="left">rgb(255, 225, 255)</td> + <td align="left">#FFE1FF</td> + + </tr> + + <tr> + <td align="right">thistle2</td> + <td align="center" style="background-color:rgb(238, 210, 238)">thistle2</td> + <td align="left">rgb(238, 210, 238)</td> + <td align="left">#EED2EE</td> + + </tr> + + <tr> + <td align="right">plum1</td> + <td align="center" style="background-color:rgb(255, 187, 255)">plum1</td> + <td align="left">rgb(255, 187, 255)</td> + <td align="left">#FFBBFF</td> + + </tr> + + <tr> + <td align="right">plum2</td> + <td align="center" style="background-color:rgb(238, 174, 238)">plum2</td> + <td align="left">rgb(238, 174, 238)</td> + <td align="left">#EEAEEE</td> + + </tr> + + <tr> + <td align="right">thistle</td> + <td align="center" style="background-color:rgb(216, 191, 216)">thistle</td> + <td align="left">rgb(216, 191, 216)</td> + <td align="left">#D8BFD8</td> + + </tr> + + <tr> + <td align="right">thistle3</td> + <td align="center" style="background-color:rgb(205, 181, 205)">thistle3</td> + <td align="left">rgb(205, 181, 205)</td> + <td align="left">#CDB5CD</td> + + </tr> + + <tr> + <td align="right">plum</td> + <td align="center" style="background-color:rgb(221, 160, 221)">plum</td> + <td align="left">rgb(221, 160, 221)</td> + <td align="left">#DDA0DD</td> + + </tr> + + <tr> + <td align="right">violet</td> + <td align="center" style="background-color:rgb(238, 130, 238)">violet</td> + <td align="left">rgb(238, 130, 238)</td> + <td align="left">#EE82EE</td> + + </tr> + + <tr> + <td align="right">plum3</td> + <td align="center" style="background-color:rgb(205, 150, 205)">plum3</td> + <td align="left">rgb(205, 150, 205)</td> + <td align="left">#CD96CD</td> + + </tr> + + <tr> + <td align="right">thistle4</td> + <td align="center" style="background-color:rgb(139, 123, 139)">thistle4</td> + <td align="left">rgb(139, 123, 139)</td> + <td align="left">#8B7B8B</td> + + </tr> + + <tr> + <td align="right">fuchsia</td> + <td align="center" style="background-color:rgb(255, 0, 255)">fuchsia</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">magenta</td> + <td align="center" style="background-color:rgb(255, 0, 255)">magenta</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">magenta1</td> + <td align="center" style="background-color:rgb(255, 0, 255)">magenta1</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">plum4</td> + <td align="center" style="background-color:rgb(139, 102, 139)">plum4</td> + <td align="left">rgb(139, 102, 139)</td> + <td align="left">#8B668B</td> + + </tr> + + <tr> + <td align="right">magenta2</td> + <td align="center" style="background-color:rgb(238, 0, 238)">magenta2</td> + <td align="left">rgb(238, 0, 238)</td> + <td align="left">#EE00EE</td> + + </tr> + + <tr> + <td align="right">magenta3</td> + <td align="center" style="background-color:rgb(205, 0, 205)">magenta3</td> + <td align="left">rgb(205, 0, 205)</td> + <td align="left">#CD00CD</td> + + </tr> + + <tr> + <td align="right">DarkMagenta</td> + <td align="center" style="background-color:rgb(139, 0, 139)">DarkMagenta</td> + <td align="left">rgb(139, 0, 139)</td> + <td align="left">#8B008B</td> + + </tr> + + <tr> + <td align="right">magenta4</td> + <td align="center" style="background-color:rgb(139, 0, 139)">magenta4</td> + <td align="left">rgb(139, 0, 139)</td> + <td align="left">#8B008B</td> + + </tr> + + <tr> + <td align="right">purple</td> + <td align="center" style="background-color:rgb(128, 0, 128)">purple</td> + <td align="left">rgb(128, 0, 128)</td> + <td align="left">#800080</td> + + </tr> + + <tr> + <td align="right">MediumOrchid</td> + <td align="center" style="background-color:rgb(186, 85, 211)">MediumOrchid</td> + <td align="left">rgb(186, 85, 211)</td> + <td align="left">#BA55D3</td> + + </tr> + + <tr> + <td align="right">MediumOrchid1</td> + <td align="center" style="background-color:rgb(224, 102, 255)">MediumOrchid1</td> + <td align="left">rgb(224, 102, 255)</td> + <td align="left">#E066FF</td> + + </tr> + + <tr> + <td align="right">MediumOrchid2</td> + <td align="center" style="background-color:rgb(209, 95, 238)">MediumOrchid2</td> + <td align="left">rgb(209, 95, 238)</td> + <td align="left">#D15FEE</td> + + </tr> + + <tr> + <td align="right">MediumOrchid3</td> + <td align="center" style="background-color:rgb(180, 82, 205)">MediumOrchid3</td> + <td align="left">rgb(180, 82, 205)</td> + <td align="left">#B452CD</td> + + </tr> + + <tr> + <td align="right">MediumOrchid4</td> + <td align="center" style="background-color:rgb(122, 55, 139)">MediumOrchid4</td> + <td align="left">rgb(122, 55, 139)</td> + <td align="left">#7A378B</td> + + </tr> + + <tr> + <td align="right">DarkViolet</td> + <td align="center" style="background-color:rgb(148, 0, 211)">DarkViolet</td> + <td align="left">rgb(148, 0, 211)</td> + <td align="left">#9400D3</td> + + </tr> + + <tr> + <td align="right">DarkOrchid</td> + <td align="center" style="background-color:rgb(153, 50, 204)">DarkOrchid</td> + <td align="left">rgb(153, 50, 204)</td> + <td align="left">#9932CC</td> + + </tr> + + <tr> + <td align="right">DarkOrchid1</td> + <td align="center" style="background-color:rgb(191, 62, 255)">DarkOrchid1</td> + <td align="left">rgb(191, 62, 255)</td> + <td align="left">#BF3EFF</td> + + </tr> + + <tr> + <td align="right">DarkOrchid3</td> + <td align="center" style="background-color:rgb(154, 50, 205)">DarkOrchid3</td> + <td align="left">rgb(154, 50, 205)</td> + <td align="left">#9A32CD</td> + + </tr> + + <tr> + <td align="right">DarkOrchid2</td> + <td align="center" style="background-color:rgb(178, 58, 238)">DarkOrchid2</td> + <td align="left">rgb(178, 58, 238)</td> + <td align="left">#B23AEE</td> + + </tr> + + <tr> + <td align="right">DarkOrchid4</td> + <td align="center" style="background-color:rgb(104, 34, 139)">DarkOrchid4</td> + <td align="left">rgb(104, 34, 139)</td> + <td align="left">#68228B</td> + + </tr> + + <tr> + <td align="right">purple</td> + <td align="center" style="background-color:rgb(160, 32, 240)">purple</td> + <td align="left">rgb(160, 32, 240)</td> + <td align="left">#A020F0</td> + + </tr> + + <tr> + <td align="right">indigo</td> + <td align="center" style="background-color:rgb( 75, 0, 130)">indigo</td> + <td align="left">rgb( 75, 0, 130)</td> + <td align="left">#4B0082</td> + + </tr> + + <tr> + <td align="right">BlueViolet</td> + <td align="center" style="background-color:rgb(138, 43, 226)">BlueViolet</td> + <td align="left">rgb(138, 43, 226)</td> + <td align="left">#8A2BE2</td> + + </tr> + + <tr> + <td align="right">purple2</td> + <td align="center" style="background-color:rgb(145, 44, 238)">purple2</td> + <td align="left">rgb(145, 44, 238)</td> + <td align="left">#912CEE</td> + + </tr> + + <tr> + <td align="right">purple3</td> + <td align="center" style="background-color:rgb(125, 38, 205)">purple3</td> + <td align="left">rgb(125, 38, 205)</td> + <td align="left">#7D26CD</td> + + </tr> + + <tr> + <td align="right">purple4</td> + <td align="center" style="background-color:rgb( 85, 26, 139)">purple4</td> + <td align="left">rgb( 85, 26, 139)</td> + <td align="left">#551A8B</td> + + </tr> + + <tr> + <td align="right">purple1</td> + <td align="center" style="background-color:rgb(155, 48, 255)">purple1</td> + <td align="left">rgb(155, 48, 255)</td> + <td align="left">#9B30FF</td> + + </tr> + + <tr> + <td align="right">MediumPurple</td> + <td align="center" style="background-color:rgb(147, 112, 219)">MediumPurple</td> + <td align="left">rgb(147, 112, 219)</td> + <td align="left">#9370DB</td> + + </tr> + + <tr> + <td align="right">MediumPurple1</td> + <td align="center" style="background-color:rgb(171, 130, 255)">MediumPurple1</td> + <td align="left">rgb(171, 130, 255)</td> + <td align="left">#AB82FF</td> + + </tr> + + <tr> + <td align="right">MediumPurple2</td> + <td align="center" style="background-color:rgb(159, 121, 238)">MediumPurple2</td> + <td align="left">rgb(159, 121, 238)</td> + <td align="left">#9F79EE</td> + + </tr> + + <tr> + <td align="right">MediumPurple3</td> + <td align="center" style="background-color:rgb(137, 104, 205)">MediumPurple3</td> + <td align="left">rgb(137, 104, 205)</td> + <td align="left">#8968CD</td> + + </tr> + + <tr> + <td align="right">MediumPurple4</td> + <td align="center" style="background-color:rgb( 93, 71, 139)">MediumPurple4</td> + <td align="left">rgb( 93, 71, 139)</td> + <td align="left">#5D478B</td> + + </tr> + + <tr> + <td align="right">DarkSlateBlue</td> + <td align="center" style="background-color:rgb( 72, 61, 139)">DarkSlateBlue</td> + <td align="left">rgb( 72, 61, 139)</td> + <td align="left">#483D8B</td> + + </tr> + + <tr> + <td align="right">LightSlateBlue</td> + <td align="center" style="background-color:rgb(132, 112, 255)">LightSlateBlue</td> + <td align="left">rgb(132, 112, 255)</td> + <td align="left">#8470FF</td> + + </tr> + + <tr> + <td align="right">MediumSlateBlue</td> + <td align="center" style="background-color:rgb(123, 104, 238)">MediumSlateBlue</td> + <td align="left">rgb(123, 104, 238)</td> + <td align="left">#7B68EE</td> + + </tr> + + <tr> + <td align="right">SlateBlue</td> + <td align="center" style="background-color:rgb(106, 90, 205)">SlateBlue</td> + <td align="left">rgb(106, 90, 205)</td> + <td align="left">#6A5ACD</td> + + </tr> + + <tr> + <td align="right">SlateBlue1</td> + <td align="center" style="background-color:rgb(131, 111, 255)">SlateBlue1</td> + <td align="left">rgb(131, 111, 255)</td> + <td align="left">#836FFF</td> + + </tr> + + <tr> + <td align="right">SlateBlue2</td> + <td align="center" style="background-color:rgb(122, 103, 238)">SlateBlue2</td> + <td align="left">rgb(122, 103, 238)</td> + <td align="left">#7A67EE</td> + + </tr> + + <tr> + <td align="right">SlateBlue3</td> + <td align="center" style="background-color:rgb(105, 89, 205)">SlateBlue3</td> + <td align="left">rgb(105, 89, 205)</td> + <td align="left">#6959CD</td> + + </tr> + + <tr> + <td align="right">SlateBlue4</td> + <td align="center" style="background-color:rgb( 71, 60, 139)">SlateBlue4</td> + <td align="left">rgb( 71, 60, 139)</td> + <td align="left">#473C8B</td> + + </tr> + + <tr> + <td align="right">GhostWhite</td> + <td align="center" style="background-color:rgb(248, 248, 255)">GhostWhite</td> + <td align="left">rgb(248, 248, 255)</td> + <td align="left">#F8F8FF</td> + + </tr> + + <tr> + <td align="right">lavender</td> + <td align="center" style="background-color:rgb(230, 230, 250)">lavender</td> + <td align="left">rgb(230, 230, 250)</td> + <td align="left">#E6E6FA</td> + + </tr> + + <tr> + <td align="right">blue</td> + <td align="center" style="background-color:rgb( 0, 0, 255)">blue</td> + <td align="left">rgb( 0, 0, 255)</td> + <td align="left">#0000FF</td> + + </tr> + + <tr> + <td align="right">blue1</td> + <td align="center" style="background-color:rgb( 0, 0, 255)">blue1</td> + <td align="left">rgb( 0, 0, 255)</td> + <td align="left">#0000FF</td> + + </tr> + + <tr> + <td align="right">blue2</td> + <td align="center" style="background-color:rgb( 0, 0, 238)">blue2</td> + <td align="left">rgb( 0, 0, 238)</td> + <td align="left">#0000EE</td> + + </tr> + + <tr> + <td align="right">blue3</td> + <td align="center" style="background-color:rgb( 0, 0, 205)">blue3</td> + <td align="left">rgb( 0, 0, 205)</td> + <td align="left">#0000CD</td> + + </tr> + + <tr> + <td align="right">MediumBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 205)">MediumBlue</td> + <td align="left">rgb( 0, 0, 205)</td> + <td align="left">#0000CD</td> + + </tr> + + <tr> + <td align="right">blue4</td> + <td align="center" style="background-color:rgb( 0, 0, 139)">blue4</td> + <td align="left">rgb( 0, 0, 139)</td> + <td align="left">#00008B</td> + + </tr> + + <tr> + <td align="right">DarkBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 139)">DarkBlue</td> + <td align="left">rgb( 0, 0, 139)</td> + <td align="left">#00008B</td> + + </tr> + + <tr> + <td align="right">MidnightBlue</td> + <td align="center" style="background-color:rgb( 25, 25, 112)">MidnightBlue</td> + <td align="left">rgb( 25, 25, 112)</td> + <td align="left">#191970</td> + + </tr> + + <tr> + <td align="right">navy</td> + <td align="center" style="background-color:rgb( 0, 0, 128)">navy</td> + <td align="left">rgb( 0, 0, 128)</td> + <td align="left">#000080</td> + + </tr> + + <tr> + <td align="right">NavyBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 128)">NavyBlue</td> + <td align="left">rgb( 0, 0, 128)</td> + <td align="left">#000080</td> + + </tr> + + <tr> + <td align="right">RoyalBlue</td> + <td align="center" style="background-color:rgb( 65, 105, 225)">RoyalBlue</td> + <td align="left">rgb( 65, 105, 225)</td> + <td align="left">#4169E1</td> + + </tr> + + <tr> + <td align="right">RoyalBlue1</td> + <td align="center" style="background-color:rgb( 72, 118, 255)">RoyalBlue1</td> + <td align="left">rgb( 72, 118, 255)</td> + <td align="left">#4876FF</td> + + </tr> + + <tr> + <td align="right">RoyalBlue2</td> + <td align="center" style="background-color:rgb( 67, 110, 238)">RoyalBlue2</td> + <td align="left">rgb( 67, 110, 238)</td> + <td align="left">#436EEE</td> + + </tr> + + <tr> + <td align="right">RoyalBlue3</td> + <td align="center" style="background-color:rgb( 58, 95, 205)">RoyalBlue3</td> + <td align="left">rgb( 58, 95, 205)</td> + <td align="left">#3A5FCD</td> + + </tr> + + <tr> + <td align="right">RoyalBlue4</td> + <td align="center" style="background-color:rgb( 39, 64, 139)">RoyalBlue4</td> + <td align="left">rgb( 39, 64, 139)</td> + <td align="left">#27408B</td> + + </tr> + + <tr> + <td align="right">CornflowerBlue</td> + <td align="center" style="background-color:rgb(100, 149, 237)">CornflowerBlue</td> + <td align="left">rgb(100, 149, 237)</td> + <td align="left">#6495ED</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue</td> + <td align="center" style="background-color:rgb(176, 196, 222)">LightSteelBlue</td> + <td align="left">rgb(176, 196, 222)</td> + <td align="left">#B0C4DE</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue1</td> + <td align="center" style="background-color:rgb(202, 225, 255)">LightSteelBlue1</td> + <td align="left">rgb(202, 225, 255)</td> + <td align="left">#CAE1FF</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue2</td> + <td align="center" style="background-color:rgb(188, 210, 238)">LightSteelBlue2</td> + <td align="left">rgb(188, 210, 238)</td> + <td align="left">#BCD2EE</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue3</td> + <td align="center" style="background-color:rgb(162, 181, 205)">LightSteelBlue3</td> + <td align="left">rgb(162, 181, 205)</td> + <td align="left">#A2B5CD</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue4</td> + <td align="center" style="background-color:rgb(110, 123, 139)">LightSteelBlue4</td> + <td align="left">rgb(110, 123, 139)</td> + <td align="left">#6E7B8B</td> + + </tr> + + <tr> + <td align="right">SlateGray4</td> + <td align="center" style="background-color:rgb(108, 123, 139)">SlateGray4</td> + <td align="left">rgb(108, 123, 139)</td> + <td align="left">#6C7B8B</td> + + </tr> + + <tr> + <td align="right">SlateGray1</td> + <td align="center" style="background-color:rgb(198, 226, 255)">SlateGray1</td> + <td align="left">rgb(198, 226, 255)</td> + <td align="left">#C6E2FF</td> + + </tr> + + <tr> + <td align="right">SlateGray2</td> + <td align="center" style="background-color:rgb(185, 211, 238)">SlateGray2</td> + <td align="left">rgb(185, 211, 238)</td> + <td align="left">#B9D3EE</td> + + </tr> + + <tr> + <td align="right">SlateGray3</td> + <td align="center" style="background-color:rgb(159, 182, 205)">SlateGray3</td> + <td align="left">rgb(159, 182, 205)</td> + <td align="left">#9FB6CD</td> + + </tr> + + <tr> + <td align="right">LightSlateGray</td> + <td align="center" style="background-color:rgb(119, 136, 153)">LightSlateGray</td> + <td align="left">rgb(119, 136, 153)</td> + <td align="left">#778899</td> + + </tr> + + <tr> + <td align="right">LightSlateGrey</td> + <td align="center" style="background-color:rgb(119, 136, 153)">LightSlateGrey</td> + <td align="left">rgb(119, 136, 153)</td> + <td align="left">#778899</td> + + </tr> + + <tr> + <td align="right">SlateGray</td> + <td align="center" style="background-color:rgb(112, 128, 144)">SlateGray</td> + <td align="left">rgb(112, 128, 144)</td> + <td align="left">#708090</td> + + </tr> + + <tr> + <td align="right">SlateGrey</td> + <td align="center" style="background-color:rgb(112, 128, 144)">SlateGrey</td> + <td align="left">rgb(112, 128, 144)</td> + <td align="left">#708090</td> + + </tr> + + <tr> + <td align="right">DodgerBlue</td> + <td align="center" style="background-color:rgb( 30, 144, 255)">DodgerBlue</td> + <td align="left">rgb( 30, 144, 255)</td> + <td align="left">#1E90FF</td> + + </tr> + + <tr> + <td align="right">DodgerBlue1</td> + <td align="center" style="background-color:rgb( 30, 144, 255)">DodgerBlue1</td> + <td align="left">rgb( 30, 144, 255)</td> + <td align="left">#1E90FF</td> + + </tr> + + <tr> + <td align="right">DodgerBlue2</td> + <td align="center" style="background-color:rgb( 28, 134, 238)">DodgerBlue2</td> + <td align="left">rgb( 28, 134, 238)</td> + <td align="left">#1C86EE</td> + + </tr> + + <tr> + <td align="right">DodgerBlue4</td> + <td align="center" style="background-color:rgb( 16, 78, 139)">DodgerBlue4</td> + <td align="left">rgb( 16, 78, 139)</td> + <td align="left">#104E8B</td> + + </tr> + + <tr> + <td align="right">DodgerBlue3</td> + <td align="center" style="background-color:rgb( 24, 116, 205)">DodgerBlue3</td> + <td align="left">rgb( 24, 116, 205)</td> + <td align="left">#1874CD</td> + + </tr> + + <tr> + <td align="right">AliceBlue</td> + <td align="center" style="background-color:rgb(240, 248, 255)">AliceBlue</td> + <td align="left">rgb(240, 248, 255)</td> + <td align="left">#F0F8FF</td> + + </tr> + + <tr> + <td align="right">SteelBlue4</td> + <td align="center" style="background-color:rgb( 54, 100, 139)">SteelBlue4</td> + <td align="left">rgb( 54, 100, 139)</td> + <td align="left">#36648B</td> + + </tr> + + <tr> + <td align="right">SteelBlue</td> + <td align="center" style="background-color:rgb( 70, 130, 180)">SteelBlue</td> + <td align="left">rgb( 70, 130, 180)</td> + <td align="left">#4682B4</td> + + </tr> + + <tr> + <td align="right">SteelBlue1</td> + <td align="center" style="background-color:rgb( 99, 184, 255)">SteelBlue1</td> + <td align="left">rgb( 99, 184, 255)</td> + <td align="left">#63B8FF</td> + + </tr> + + <tr> + <td align="right">SteelBlue2</td> + <td align="center" style="background-color:rgb( 92, 172, 238)">SteelBlue2</td> + <td align="left">rgb( 92, 172, 238)</td> + <td align="left">#5CACEE</td> + + </tr> + + <tr> + <td align="right">SteelBlue3</td> + <td align="center" style="background-color:rgb( 79, 148, 205)">SteelBlue3</td> + <td align="left">rgb( 79, 148, 205)</td> + <td align="left">#4F94CD</td> + + </tr> + + <tr> + <td align="right">SkyBlue4</td> + <td align="center" style="background-color:rgb( 74, 112, 139)">SkyBlue4</td> + <td align="left">rgb( 74, 112, 139)</td> + <td align="left">#4A708B</td> + + </tr> + + <tr> + <td align="right">SkyBlue1</td> + <td align="center" style="background-color:rgb(135, 206, 255)">SkyBlue1</td> + <td align="left">rgb(135, 206, 255)</td> + <td align="left">#87CEFF</td> + + </tr> + + <tr> + <td align="right">SkyBlue2</td> + <td align="center" style="background-color:rgb(126, 192, 238)">SkyBlue2</td> + <td align="left">rgb(126, 192, 238)</td> + <td align="left">#7EC0EE</td> + + </tr> + + <tr> + <td align="right">SkyBlue3</td> + <td align="center" style="background-color:rgb(108, 166, 205)">SkyBlue3</td> + <td align="left">rgb(108, 166, 205)</td> + <td align="left">#6CA6CD</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue</td> + <td align="center" style="background-color:rgb(135, 206, 250)">LightSkyBlue</td> + <td align="left">rgb(135, 206, 250)</td> + <td align="left">#87CEFA</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue4</td> + <td align="center" style="background-color:rgb( 96, 123, 139)">LightSkyBlue4</td> + <td align="left">rgb( 96, 123, 139)</td> + <td align="left">#607B8B</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue1</td> + <td align="center" style="background-color:rgb(176, 226, 255)">LightSkyBlue1</td> + <td align="left">rgb(176, 226, 255)</td> + <td align="left">#B0E2FF</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue2</td> + <td align="center" style="background-color:rgb(164, 211, 238)">LightSkyBlue2</td> + <td align="left">rgb(164, 211, 238)</td> + <td align="left">#A4D3EE</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue3</td> + <td align="center" style="background-color:rgb(141, 182, 205)">LightSkyBlue3</td> + <td align="left">rgb(141, 182, 205)</td> + <td align="left">#8DB6CD</td> + + </tr> + + <tr> + <td align="right">SkyBlue</td> + <td align="center" style="background-color:rgb(135, 206, 235)">SkyBlue</td> + <td align="left">rgb(135, 206, 235)</td> + <td align="left">#87CEEB</td> + + </tr> + + <tr> + <td align="right">LightBlue3</td> + <td align="center" style="background-color:rgb(154, 192, 205)">LightBlue3</td> + <td align="left">rgb(154, 192, 205)</td> + <td align="left">#9AC0CD</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue</td> + <td align="center" style="background-color:rgb( 0, 191, 255)">DeepSkyBlue</td> + <td align="left">rgb( 0, 191, 255)</td> + <td align="left">#00BFFF</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue1</td> + <td align="center" style="background-color:rgb( 0, 191, 255)">DeepSkyBlue1</td> + <td align="left">rgb( 0, 191, 255)</td> + <td align="left">#00BFFF</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue2</td> + <td align="center" style="background-color:rgb( 0, 178, 238)">DeepSkyBlue2</td> + <td align="left">rgb( 0, 178, 238)</td> + <td align="left">#00B2EE</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue4</td> + <td align="center" style="background-color:rgb( 0, 104, 139)">DeepSkyBlue4</td> + <td align="left">rgb( 0, 104, 139)</td> + <td align="left">#00688B</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue3</td> + <td align="center" style="background-color:rgb( 0, 154, 205)">DeepSkyBlue3</td> + <td align="left">rgb( 0, 154, 205)</td> + <td align="left">#009ACD</td> + + </tr> + + <tr> + <td align="right">LightBlue1</td> + <td align="center" style="background-color:rgb(191, 239, 255)">LightBlue1</td> + <td align="left">rgb(191, 239, 255)</td> + <td align="left">#BFEFFF</td> + + </tr> + + <tr> + <td align="right">LightBlue2</td> + <td align="center" style="background-color:rgb(178, 223, 238)">LightBlue2</td> + <td align="left">rgb(178, 223, 238)</td> + <td align="left">#B2DFEE</td> + + </tr> + + <tr> + <td align="right">LightBlue</td> + <td align="center" style="background-color:rgb(173, 216, 230)">LightBlue</td> + <td align="left">rgb(173, 216, 230)</td> + <td align="left">#ADD8E6</td> + + </tr> + + <tr> + <td align="right">LightBlue4</td> + <td align="center" style="background-color:rgb(104, 131, 139)">LightBlue4</td> + <td align="left">rgb(104, 131, 139)</td> + <td align="left">#68838B</td> + + </tr> + + <tr> + <td align="right">PowderBlue</td> + <td align="center" style="background-color:rgb(176, 224, 230)">PowderBlue</td> + <td align="left">rgb(176, 224, 230)</td> + <td align="left">#B0E0E6</td> + + </tr> + + <tr> + <td align="right">CadetBlue1</td> + <td align="center" style="background-color:rgb(152, 245, 255)">CadetBlue1</td> + <td align="left">rgb(152, 245, 255)</td> + <td align="left">#98F5FF</td> + + </tr> + + <tr> + <td align="right">CadetBlue2</td> + <td align="center" style="background-color:rgb(142, 229, 238)">CadetBlue2</td> + <td align="left">rgb(142, 229, 238)</td> + <td align="left">#8EE5EE</td> + + </tr> + + <tr> + <td align="right">CadetBlue3</td> + <td align="center" style="background-color:rgb(122, 197, 205)">CadetBlue3</td> + <td align="left">rgb(122, 197, 205)</td> + <td align="left">#7AC5CD</td> + + </tr> + + <tr> + <td align="right">CadetBlue4</td> + <td align="center" style="background-color:rgb( 83, 134, 139)">CadetBlue4</td> + <td align="left">rgb( 83, 134, 139)</td> + <td align="left">#53868B</td> + + </tr> + + <tr> + <td align="right">turquoise1</td> + <td align="center" style="background-color:rgb( 0, 245, 255)">turquoise1</td> + <td align="left">rgb( 0, 245, 255)</td> + <td align="left">#00F5FF</td> + + </tr> + + <tr> + <td align="right">turquoise2</td> + <td align="center" style="background-color:rgb( 0, 229, 238)">turquoise2</td> + <td align="left">rgb( 0, 229, 238)</td> + <td align="left">#00E5EE</td> + + </tr> + + <tr> + <td align="right">turquoise3</td> + <td align="center" style="background-color:rgb( 0, 197, 205)">turquoise3</td> + <td align="left">rgb( 0, 197, 205)</td> + <td align="left">#00C5CD</td> + + </tr> + + <tr> + <td align="right">turquoise4</td> + <td align="center" style="background-color:rgb( 0, 134, 139)">turquoise4</td> + <td align="left">rgb( 0, 134, 139)</td> + <td align="left">#00868B</td> + + </tr> + + <tr> + <td align="right">cadet blue</td> + <td align="center" style="background-color:rgb( 95, 158, 160)">cadet blue</td> + <td align="left">rgb( 95, 158, 160)</td> + <td align="left">#5F9EA0</td> + + </tr> + + <tr> + <td align="right">CadetBlue</td> + <td align="center" style="background-color:rgb( 95, 158, 160)">CadetBlue</td> + <td align="left">rgb( 95, 158, 160)</td> + <td align="left">#5F9EA0</td> + + </tr> + + <tr> + <td align="right">DarkTurquoise</td> + <td align="center" style="background-color:rgb( 0, 206, 209)">DarkTurquoise</td> + <td align="left">rgb( 0, 206, 209)</td> + <td align="left">#00CED1</td> + + </tr> + + <tr> + <td align="right">azure</td> + <td align="center" style="background-color:rgb(240, 255, 255)">azure</td> + <td align="left">rgb(240, 255, 255)</td> + <td align="left">#F0FFFF</td> + + </tr> + + <tr> + <td align="right">azure1</td> + <td align="center" style="background-color:rgb(240, 255, 255)">azure1</td> + <td align="left">rgb(240, 255, 255)</td> + <td align="left">#F0FFFF</td> + + </tr> + + <tr> + <td align="right">LightCyan</td> + <td align="center" style="background-color:rgb(224, 255, 255)">LightCyan</td> + <td align="left">rgb(224, 255, 255)</td> + <td align="left">#E0FFFF</td> + + </tr> + + <tr> + <td align="right">LightCyan1</td> + <td align="center" style="background-color:rgb(224, 255, 255)">LightCyan1</td> + <td align="left">rgb(224, 255, 255)</td> + <td align="left">#E0FFFF</td> + + </tr> + + <tr> + <td align="right">azure2</td> + <td align="center" style="background-color:rgb(224, 238, 238)">azure2</td> + <td align="left">rgb(224, 238, 238)</td> + <td align="left">#E0EEEE</td> + + </tr> + + <tr> + <td align="right">LightCyan2</td> + <td align="center" style="background-color:rgb(209, 238, 238)">LightCyan2</td> + <td align="left">rgb(209, 238, 238)</td> + <td align="left">#D1EEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise1</td> + <td align="center" style="background-color:rgb(187, 255, 255)">PaleTurquoise1</td> + <td align="left">rgb(187, 255, 255)</td> + <td align="left">#BBFFFF</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise</td> + <td align="center" style="background-color:rgb(175, 238, 238)">PaleTurquoise</td> + <td align="left">rgb(175, 238, 238)</td> + <td align="left">#AFEEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise2</td> + <td align="center" style="background-color:rgb(174, 238, 238)">PaleTurquoise2</td> + <td align="left">rgb(174, 238, 238)</td> + <td align="left">#AEEEEE</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray1</td> + <td align="center" style="background-color:rgb(151, 255, 255)">DarkSlateGray1</td> + <td align="left">rgb(151, 255, 255)</td> + <td align="left">#97FFFF</td> + + </tr> + + <tr> + <td align="right">azure3</td> + <td align="center" style="background-color:rgb(193, 205, 205)">azure3</td> + <td align="left">rgb(193, 205, 205)</td> + <td align="left">#C1CDCD</td> + + </tr> + + <tr> + <td align="right">LightCyan3</td> + <td align="center" style="background-color:rgb(180, 205, 205)">LightCyan3</td> + <td align="left">rgb(180, 205, 205)</td> + <td align="left">#B4CDCD</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray2</td> + <td align="center" style="background-color:rgb(141, 238, 238)">DarkSlateGray2</td> + <td align="left">rgb(141, 238, 238)</td> + <td align="left">#8DEEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise3</td> + <td align="center" style="background-color:rgb(150, 205, 205)">PaleTurquoise3</td> + <td align="left">rgb(150, 205, 205)</td> + <td align="left">#96CDCD</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray3</td> + <td align="center" style="background-color:rgb(121, 205, 205)">DarkSlateGray3</td> + <td align="left">rgb(121, 205, 205)</td> + <td align="left">#79CDCD</td> + + </tr> + + <tr> + <td align="right">azure4</td> + <td align="center" style="background-color:rgb(131, 139, 139)">azure4</td> + <td align="left">rgb(131, 139, 139)</td> + <td align="left">#838B8B</td> + + </tr> + + <tr> + <td align="right">LightCyan4</td> + <td align="center" style="background-color:rgb(122, 139, 139)">LightCyan4</td> + <td align="left">rgb(122, 139, 139)</td> + <td align="left">#7A8B8B</td> + + </tr> + + <tr> + <td align="right">aqua</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">aqua</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">cyan</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">cyan</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">cyan1</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">cyan1</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise4</td> + <td align="center" style="background-color:rgb(102, 139, 139)">PaleTurquoise4</td> + <td align="left">rgb(102, 139, 139)</td> + <td align="left">#668B8B</td> + + </tr> + + <tr> + <td align="right">cyan2</td> + <td align="center" style="background-color:rgb( 0, 238, 238)">cyan2</td> + <td align="left">rgb( 0, 238, 238)</td> + <td align="left">#00EEEE</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray4</td> + <td align="center" style="background-color:rgb( 82, 139, 139)">DarkSlateGray4</td> + <td align="left">rgb( 82, 139, 139)</td> + <td align="left">#528B8B</td> + + </tr> + + <tr> + <td align="right">cyan3</td> + <td align="center" style="background-color:rgb( 0, 205, 205)">cyan3</td> + <td align="left">rgb( 0, 205, 205)</td> + <td align="left">#00CDCD</td> + + </tr> + + <tr> + <td align="right">cyan4</td> + <td align="center" style="background-color:rgb( 0, 139, 139)">cyan4</td> + <td align="left">rgb( 0, 139, 139)</td> + <td align="left">#008B8B</td> + + </tr> + + <tr> + <td align="right">DarkCyan</td> + <td align="center" style="background-color:rgb( 0, 139, 139)">DarkCyan</td> + <td align="left">rgb( 0, 139, 139)</td> + <td align="left">#008B8B</td> + + </tr> + + <tr> + <td align="right">teal</td> + <td align="center" style="background-color:rgb( 0, 128, 128)">teal</td> + <td align="left">rgb( 0, 128, 128)</td> + <td align="left">#008080</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray</td> + <td align="center" style="background-color:rgb( 47, 79, 79)">DarkSlateGray</td> + <td align="left">rgb( 47, 79, 79)</td> + <td align="left">#2F4F4F</td> + + </tr> + + <tr> + <td align="right">DarkSlateGrey</td> + <td align="center" style="background-color:rgb( 47, 79, 79)">DarkSlateGrey</td> + <td align="left">rgb( 47, 79, 79)</td> + <td align="left">#2F4F4F</td> + + </tr> + + <tr> + <td align="right">MediumTurquoise</td> + <td align="center" style="background-color:rgb( 72, 209, 204)">MediumTurquoise</td> + <td align="left">rgb( 72, 209, 204)</td> + <td align="left">#48D1CC</td> + + </tr> + + <tr> + <td align="right">LightSeaGreen</td> + <td align="center" style="background-color:rgb( 32, 178, 170)">LightSeaGreen</td> + <td align="left">rgb( 32, 178, 170)</td> + <td align="left">#20B2AA</td> + + </tr> + + <tr> + <td align="right">turquoise</td> + <td align="center" style="background-color:rgb( 64, 224, 208)">turquoise</td> + <td align="left">rgb( 64, 224, 208)</td> + <td align="left">#40E0D0</td> + + </tr> + + <tr> + <td align="right">aquamarine4</td> + <td align="center" style="background-color:rgb( 69, 139, 116)">aquamarine4</td> + <td align="left">rgb( 69, 139, 116)</td> + <td align="left">#458B74</td> + + </tr> + + <tr> + <td align="right">aquamarine</td> + <td align="center" style="background-color:rgb(127, 255, 212)">aquamarine</td> + <td align="left">rgb(127, 255, 212)</td> + <td align="left">#7FFFD4</td> + + </tr> + + <tr> + <td align="right">aquamarine1</td> + <td align="center" style="background-color:rgb(127, 255, 212)">aquamarine1</td> + <td align="left">rgb(127, 255, 212)</td> + <td align="left">#7FFFD4</td> + + </tr> + + <tr> + <td align="right">aquamarine2</td> + <td align="center" style="background-color:rgb(118, 238, 198)">aquamarine2</td> + <td align="left">rgb(118, 238, 198)</td> + <td align="left">#76EEC6</td> + + </tr> + + <tr> + <td align="right">aquamarine3</td> + <td align="center" style="background-color:rgb(102, 205, 170)">aquamarine3</td> + <td align="left">rgb(102, 205, 170)</td> + <td align="left">#66CDAA</td> + + </tr> + + <tr> + <td align="right">MediumAquamarine</td> + <td align="center" style="background-color:rgb(102, 205, 170)">MediumAquamarine</td> + <td align="left">rgb(102, 205, 170)</td> + <td align="left">#66CDAA</td> + + </tr> + + <tr> + <td align="right">MediumSpringGreen</td> + <td align="center" style="background-color:rgb( 0, 250, 154)">MediumSpringGreen</td> + <td align="left">rgb( 0, 250, 154)</td> + <td align="left">#00FA9A</td> + + </tr> + + <tr> + <td align="right">MintCream</td> + <td align="center" style="background-color:rgb(245, 255, 250)">MintCream</td> + <td align="left">rgb(245, 255, 250)</td> + <td align="left">#F5FFFA</td> + + </tr> + + <tr> + <td align="right">SpringGreen</td> + <td align="center" style="background-color:rgb( 0, 255, 127)">SpringGreen</td> + <td align="left">rgb( 0, 255, 127)</td> + <td align="left">#00FF7F</td> + + </tr> + + <tr> + <td align="right">SpringGreen1</td> + <td align="center" style="background-color:rgb( 0, 255, 127)">SpringGreen1</td> + <td align="left">rgb( 0, 255, 127)</td> + <td align="left">#00FF7F</td> + + </tr> + + <tr> + <td align="right">SpringGreen2</td> + <td align="center" style="background-color:rgb( 0, 238, 118)">SpringGreen2</td> + <td align="left">rgb( 0, 238, 118)</td> + <td align="left">#00EE76</td> + + </tr> + + <tr> + <td align="right">SpringGreen3</td> + <td align="center" style="background-color:rgb( 0, 205, 102)">SpringGreen3</td> + <td align="left">rgb( 0, 205, 102)</td> + <td align="left">#00CD66</td> + + </tr> + + <tr> + <td align="right">SpringGreen4</td> + <td align="center" style="background-color:rgb( 0, 139, 69)">SpringGreen4</td> + <td align="left">rgb( 0, 139, 69)</td> + <td align="left">#008B45</td> + + </tr> + + <tr> + <td align="right">MediumSeaGreen</td> + <td align="center" style="background-color:rgb( 60, 179, 113)">MediumSeaGreen</td> + <td align="left">rgb( 60, 179, 113)</td> + <td align="left">#3CB371</td> + + </tr> + + <tr> + <td align="right">SeaGreen</td> + <td align="center" style="background-color:rgb( 46, 139, 87)">SeaGreen</td> + <td align="left">rgb( 46, 139, 87)</td> + <td align="left">#2E8B57</td> + + </tr> + + <tr> + <td align="right">SeaGreen3</td> + <td align="center" style="background-color:rgb( 67, 205, 128)">SeaGreen3</td> + <td align="left">rgb( 67, 205, 128)</td> + <td align="left">#43CD80</td> + + </tr> + + <tr> + <td align="right">SeaGreen1</td> + <td align="center" style="background-color:rgb( 84, 255, 159)">SeaGreen1</td> + <td align="left">rgb( 84, 255, 159)</td> + <td align="left">#54FF9F</td> + + </tr> + + <tr> + <td align="right">SeaGreen4</td> + <td align="center" style="background-color:rgb( 46, 139, 87)">SeaGreen4</td> + <td align="left">rgb( 46, 139, 87)</td> + <td align="left">#2E8B57</td> + + </tr> + + <tr> + <td align="right">SeaGreen2</td> + <td align="center" style="background-color:rgb( 78, 238, 148)">SeaGreen2</td> + <td align="left">rgb( 78, 238, 148)</td> + <td align="left">#4EEE94</td> + + </tr> + + <tr> + <td align="right">MediumForestGreen</td> + <td align="center" style="background-color:rgb( 50, 129, 75)">MediumForestGreen</td> + <td align="left">rgb( 50, 129, 75)</td> + <td align="left">#32814B</td> + + </tr> + + <tr> + <td align="right">honeydew</td> + <td align="center" style="background-color:rgb(240, 255, 240)">honeydew</td> + <td align="left">rgb(240, 255, 240)</td> + <td align="left">#F0FFF0</td> + + </tr> + + <tr> + <td align="right">honeydew1</td> + <td align="center" style="background-color:rgb(240, 255, 240)">honeydew1</td> + <td align="left">rgb(240, 255, 240)</td> + <td align="left">#F0FFF0</td> + + </tr> + + <tr> + <td align="right">honeydew2</td> + <td align="center" style="background-color:rgb(224, 238, 224)">honeydew2</td> + <td align="left">rgb(224, 238, 224)</td> + <td align="left">#E0EEE0</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen1</td> + <td align="center" style="background-color:rgb(193, 255, 193)">DarkSeaGreen1</td> + <td align="left">rgb(193, 255, 193)</td> + <td align="left">#C1FFC1</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen2</td> + <td align="center" style="background-color:rgb(180, 238, 180)">DarkSeaGreen2</td> + <td align="left">rgb(180, 238, 180)</td> + <td align="left">#B4EEB4</td> + + </tr> + + <tr> + <td align="right">PaleGreen1</td> + <td align="center" style="background-color:rgb(154, 255, 154)">PaleGreen1</td> + <td align="left">rgb(154, 255, 154)</td> + <td align="left">#9AFF9A</td> + + </tr> + + <tr> + <td align="right">PaleGreen</td> + <td align="center" style="background-color:rgb(152, 251, 152)">PaleGreen</td> + <td align="left">rgb(152, 251, 152)</td> + <td align="left">#98FB98</td> + + </tr> + + <tr> + <td align="right">honeydew3</td> + <td align="center" style="background-color:rgb(193, 205, 193)">honeydew3</td> + <td align="left">rgb(193, 205, 193)</td> + <td align="left">#C1CDC1</td> + + </tr> + + <tr> + <td align="right">LightGreen</td> + <td align="center" style="background-color:rgb(144, 238, 144)">LightGreen</td> + <td align="left">rgb(144, 238, 144)</td> + <td align="left">#90EE90</td> + + </tr> + + <tr> + <td align="right">PaleGreen2</td> + <td align="center" style="background-color:rgb(144, 238, 144)">PaleGreen2</td> + <td align="left">rgb(144, 238, 144)</td> + <td align="left">#90EE90</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen3</td> + <td align="center" style="background-color:rgb(155, 205, 155)">DarkSeaGreen3</td> + <td align="left">rgb(155, 205, 155)</td> + <td align="left">#9BCD9B</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen</td> + <td align="center" style="background-color:rgb(143, 188, 143)">DarkSeaGreen</td> + <td align="left">rgb(143, 188, 143)</td> + <td align="left">#8FBC8F</td> + + </tr> + + <tr> + <td align="right">PaleGreen3</td> + <td align="center" style="background-color:rgb(124, 205, 124)">PaleGreen3</td> + <td align="left">rgb(124, 205, 124)</td> + <td align="left">#7CCD7C</td> + + </tr> + + <tr> + <td align="right">honeydew4</td> + <td align="center" style="background-color:rgb(131, 139, 131)">honeydew4</td> + <td align="left">rgb(131, 139, 131)</td> + <td align="left">#838B83</td> + + </tr> + + <tr> + <td align="right">green1</td> + <td align="center" style="background-color:rgb( 0, 255, 0)">green1</td> + <td align="left">rgb( 0, 255, 0)</td> + <td align="left">#00FF00</td> + + </tr> + + <tr> + <td align="right">lime</td> + <td align="center" style="background-color:rgb( 0, 255, 0)">lime</td> + <td align="left">rgb( 0, 255, 0)</td> + <td align="left">#00FF00</td> + + </tr> + + <tr> + <td align="right">LimeGreen</td> + <td align="center" style="background-color:rgb( 50, 205, 50)">LimeGreen</td> + <td align="left">rgb( 50, 205, 50)</td> + <td align="left">#32CD32</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen4</td> + <td align="center" style="background-color:rgb(105, 139, 105)">DarkSeaGreen4</td> + <td align="left">rgb(105, 139, 105)</td> + <td align="left">#698B69</td> + + </tr> + + <tr> + <td align="right">green2</td> + <td align="center" style="background-color:rgb( 0, 238, 0)">green2</td> + <td align="left">rgb( 0, 238, 0)</td> + <td align="left">#00EE00</td> + + </tr> + + <tr> + <td align="right">PaleGreen4</td> + <td align="center" style="background-color:rgb( 84, 139, 84)">PaleGreen4</td> + <td align="left">rgb( 84, 139, 84)</td> + <td align="left">#548B54</td> + + </tr> + + <tr> + <td align="right">green3</td> + <td align="center" style="background-color:rgb( 0, 205, 0)">green3</td> + <td align="left">rgb( 0, 205, 0)</td> + <td align="left">#00CD00</td> + + </tr> + + <tr> + <td align="right">ForestGreen</td> + <td align="center" style="background-color:rgb( 34, 139, 34)">ForestGreen</td> + <td align="left">rgb( 34, 139, 34)</td> + <td align="left">#228B22</td> + + </tr> + + <tr> + <td align="right">green4</td> + <td align="center" style="background-color:rgb( 0, 139, 0)">green4</td> + <td align="left">rgb( 0, 139, 0)</td> + <td align="left">#008B00</td> + + </tr> + + <tr> + <td align="right">green</td> + <td align="center" style="background-color:rgb( 0, 128, 0)">green</td> + <td align="left">rgb( 0, 128, 0)</td> + <td align="left">#008000</td> + + </tr> + + <tr> + <td align="right">DarkGreen</td> + <td align="center" style="background-color:rgb( 0, 100, 0)">DarkGreen</td> + <td align="left">rgb( 0, 100, 0)</td> + <td align="left">#006400</td> + + </tr> + + <tr> + <td align="right">LawnGreen</td> + <td align="center" style="background-color:rgb(124, 252, 0)">LawnGreen</td> + <td align="left">rgb(124, 252, 0)</td> + <td align="left">#7CFC00</td> + + </tr> + + <tr> + <td align="right">chartreuse</td> + <td align="center" style="background-color:rgb(127, 255, 0)">chartreuse</td> + <td align="left">rgb(127, 255, 0)</td> + <td align="left">#7FFF00</td> + + </tr> + + <tr> + <td align="right">chartreuse1</td> + <td align="center" style="background-color:rgb(127, 255, 0)">chartreuse1</td> + <td align="left">rgb(127, 255, 0)</td> + <td align="left">#7FFF00</td> + + </tr> + + <tr> + <td align="right">chartreuse2</td> + <td align="center" style="background-color:rgb(118, 238, 0)">chartreuse2</td> + <td align="left">rgb(118, 238, 0)</td> + <td align="left">#76EE00</td> + + </tr> + + <tr> + <td align="right">chartreuse3</td> + <td align="center" style="background-color:rgb(102, 205, 0)">chartreuse3</td> + <td align="left">rgb(102, 205, 0)</td> + <td align="left">#66CD00</td> + + </tr> + + <tr> + <td align="right">chartreuse4</td> + <td align="center" style="background-color:rgb( 69, 139, 0)">chartreuse4</td> + <td align="left">rgb( 69, 139, 0)</td> + <td align="left">#458B00</td> + + </tr> + + <tr> + <td align="right">GreenYellow</td> + <td align="center" style="background-color:rgb(173, 255, 47)">GreenYellow</td> + <td align="left">rgb(173, 255, 47)</td> + <td align="left">#ADFF2F</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen3</td> + <td align="center" style="background-color:rgb(162, 205, 90)">DarkOliveGreen3</td> + <td align="left">rgb(162, 205, 90)</td> + <td align="left">#A2CD5A</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen1</td> + <td align="center" style="background-color:rgb(202, 255, 112)">DarkOliveGreen1</td> + <td align="left">rgb(202, 255, 112)</td> + <td align="left">#CAFF70</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen2</td> + <td align="center" style="background-color:rgb(188, 238, 104)">DarkOliveGreen2</td> + <td align="left">rgb(188, 238, 104)</td> + <td align="left">#BCEE68</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen4</td> + <td align="center" style="background-color:rgb(110, 139, 61)">DarkOliveGreen4</td> + <td align="left">rgb(110, 139, 61)</td> + <td align="left">#6E8B3D</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen</td> + <td align="center" style="background-color:rgb( 85, 107, 47)">DarkOliveGreen</td> + <td align="left">rgb( 85, 107, 47)</td> + <td align="left">#556B2F</td> + + </tr> + + <tr> + <td align="right">OliveDrab</td> + <td align="center" style="background-color:rgb(107, 142, 35)">OliveDrab</td> + <td align="left">rgb(107, 142, 35)</td> + <td align="left">#6B8E23</td> + + </tr> + + <tr> + <td align="right">OliveDrab1</td> + <td align="center" style="background-color:rgb(192, 255, 62)">OliveDrab1</td> + <td align="left">rgb(192, 255, 62)</td> + <td align="left">#C0FF3E</td> + + </tr> + + <tr> + <td align="right">OliveDrab2</td> + <td align="center" style="background-color:rgb(179, 238, 58)">OliveDrab2</td> + <td align="left">rgb(179, 238, 58)</td> + <td align="left">#B3EE3A</td> + + </tr> + + <tr> + <td align="right">OliveDrab3</td> + <td align="center" style="background-color:rgb(154, 205, 50)">OliveDrab3</td> + <td align="left">rgb(154, 205, 50)</td> + <td align="left">#9ACD32</td> + + </tr> + + <tr> + <td align="right">YellowGreen</td> + <td align="center" style="background-color:rgb(154, 205, 50)">YellowGreen</td> + <td align="left">rgb(154, 205, 50)</td> + <td align="left">#9ACD32</td> + + </tr> + + <tr> + <td align="right">OliveDrab4</td> + <td align="center" style="background-color:rgb(105, 139, 34)">OliveDrab4</td> + <td align="left">rgb(105, 139, 34)</td> + <td align="left">#698B22</td> + + </tr> + + <tr> + <td align="right">ivory</td> + <td align="center" style="background-color:rgb(255, 255, 240)">ivory</td> + <td align="left">rgb(255, 255, 240)</td> + <td align="left">#FFFFF0</td> + + </tr> + + <tr> + <td align="right">ivory1</td> + <td align="center" style="background-color:rgb(255, 255, 240)">ivory1</td> + <td align="left">rgb(255, 255, 240)</td> + <td align="left">#FFFFF0</td> + + </tr> + + <tr> + <td align="right">LightYellow</td> + <td align="center" style="background-color:rgb(255, 255, 224)">LightYellow</td> + <td align="left">rgb(255, 255, 224)</td> + <td align="left">#FFFFE0</td> + + </tr> + + <tr> + <td align="right">LightYellow1</td> + <td align="center" style="background-color:rgb(255, 255, 224)">LightYellow1</td> + <td align="left">rgb(255, 255, 224)</td> + <td align="left">#FFFFE0</td> + + </tr> + + <tr> + <td align="right">beige</td> + <td align="center" style="background-color:rgb(245, 245, 220)">beige</td> + <td align="left">rgb(245, 245, 220)</td> + <td align="left">#F5F5DC</td> + + </tr> + + <tr> + <td align="right">ivory2</td> + <td align="center" style="background-color:rgb(238, 238, 224)">ivory2</td> + <td align="left">rgb(238, 238, 224)</td> + <td align="left">#EEEEE0</td> + + </tr> + + <tr> + <td align="right">LightGoldenrodYellow</td> + <td align="center" style="background-color:rgb(250, 250, 210)">LightGoldenrodYellow</td> + <td align="left">rgb(250, 250, 210)</td> + <td align="left">#FAFAD2</td> + + </tr> + + <tr> + <td align="right">LightYellow2</td> + <td align="center" style="background-color:rgb(238, 238, 209)">LightYellow2</td> + <td align="left">rgb(238, 238, 209)</td> + <td align="left">#EEEED1</td> + + </tr> + + <tr> + <td align="right">ivory3</td> + <td align="center" style="background-color:rgb(205, 205, 193)">ivory3</td> + <td align="left">rgb(205, 205, 193)</td> + <td align="left">#CDCDC1</td> + + </tr> + + <tr> + <td align="right">LightYellow3</td> + <td align="center" style="background-color:rgb(205, 205, 180)">LightYellow3</td> + <td align="left">rgb(205, 205, 180)</td> + <td align="left">#CDCDB4</td> + + </tr> + + <tr> + <td align="right">ivory4</td> + <td align="center" style="background-color:rgb(139, 139, 131)">ivory4</td> + <td align="left">rgb(139, 139, 131)</td> + <td align="left">#8B8B83</td> + + </tr> + + <tr> + <td align="right">LightYellow4</td> + <td align="center" style="background-color:rgb(139, 139, 122)">LightYellow4</td> + <td align="left">rgb(139, 139, 122)</td> + <td align="left">#8B8B7A</td> + + </tr> + + <tr> + <td align="right">yellow</td> + <td align="center" style="background-color:rgb(255, 255, 0)">yellow</td> + <td align="left">rgb(255, 255, 0)</td> + <td align="left">#FFFF00</td> + + </tr> + + <tr> + <td align="right">yellow1</td> + <td align="center" style="background-color:rgb(255, 255, 0)">yellow1</td> + <td align="left">rgb(255, 255, 0)</td> + <td align="left">#FFFF00</td> + + </tr> + + <tr> + <td align="right">yellow2</td> + <td align="center" style="background-color:rgb(238, 238, 0)">yellow2</td> + <td align="left">rgb(238, 238, 0)</td> + <td align="left">#EEEE00</td> + + </tr> + + <tr> + <td align="right">yellow3</td> + <td align="center" style="background-color:rgb(205, 205, 0)">yellow3</td> + <td align="left">rgb(205, 205, 0)</td> + <td align="left">#CDCD00</td> + + </tr> + + <tr> + <td align="right">yellow4</td> + <td align="center" style="background-color:rgb(139, 139, 0)">yellow4</td> + <td align="left">rgb(139, 139, 0)</td> + <td align="left">#8B8B00</td> + + </tr> + + <tr> + <td align="right">olive</td> + <td align="center" style="background-color:rgb(128, 128, 0)">olive</td> + <td align="left">rgb(128, 128, 0)</td> + <td align="left">#808000</td> + + </tr> + + <tr> + <td align="right">DarkKhaki</td> + <td align="center" style="background-color:rgb(189, 183, 107)">DarkKhaki</td> + <td align="left">rgb(189, 183, 107)</td> + <td align="left">#BDB76B</td> + + </tr> + + <tr> + <td align="right">khaki2</td> + <td align="center" style="background-color:rgb(238, 230, 133)">khaki2</td> + <td align="left">rgb(238, 230, 133)</td> + <td align="left">#EEE685</td> + + </tr> + + <tr> + <td align="right">LemonChiffon4</td> + <td align="center" style="background-color:rgb(139, 137, 112)">LemonChiffon4</td> + <td align="left">rgb(139, 137, 112)</td> + <td align="left">#8B8970</td> + + </tr> + + <tr> + <td align="right">khaki1</td> + <td align="center" style="background-color:rgb(255, 246, 143)">khaki1</td> + <td align="left">rgb(255, 246, 143)</td> + <td align="left">#FFF68F</td> + + </tr> + + <tr> + <td align="right">khaki3</td> + <td align="center" style="background-color:rgb(205, 198, 115)">khaki3</td> + <td align="left">rgb(205, 198, 115)</td> + <td align="left">#CDC673</td> + + </tr> + + <tr> + <td align="right">khaki4</td> + <td align="center" style="background-color:rgb(139, 134, 78)">khaki4</td> + <td align="left">rgb(139, 134, 78)</td> + <td align="left">#8B864E</td> + + </tr> + + <tr> + <td align="right">PaleGoldenrod</td> + <td align="center" style="background-color:rgb(238, 232, 170)">PaleGoldenrod</td> + <td align="left">rgb(238, 232, 170)</td> + <td align="left">#EEE8AA</td> + + </tr> + + <tr> + <td align="right">LemonChiffon</td> + <td align="center" style="background-color:rgb(255, 250, 205)">LemonChiffon</td> + <td align="left">rgb(255, 250, 205)</td> + <td align="left">#FFFACD</td> + + </tr> + + <tr> + <td align="right">LemonChiffon1</td> + <td align="center" style="background-color:rgb(255, 250, 205)">LemonChiffon1</td> + <td align="left">rgb(255, 250, 205)</td> + <td align="left">#FFFACD</td> + + </tr> + + <tr> + <td align="right">khaki</td> + <td align="center" style="background-color:rgb(240, 230, 140)">khaki</td> + <td align="left">rgb(240, 230, 140)</td> + <td align="left">#F0E68C</td> + + </tr> + + <tr> + <td align="right">LemonChiffon3</td> + <td align="center" style="background-color:rgb(205, 201, 165)">LemonChiffon3</td> + <td align="left">rgb(205, 201, 165)</td> + <td align="left">#CDC9A5</td> + + </tr> + + <tr> + <td align="right">LemonChiffon2</td> + <td align="center" style="background-color:rgb(238, 233, 191)">LemonChiffon2</td> + <td align="left">rgb(238, 233, 191)</td> + <td align="left">#EEE9BF</td> + + </tr> + + <tr> + <td align="right">MediumGoldenRod</td> + <td align="center" style="background-color:rgb(209, 193, 102)">MediumGoldenRod</td> + <td align="left">rgb(209, 193, 102)</td> + <td align="left">#D1C166</td> + + </tr> + + <tr> + <td align="right">cornsilk4</td> + <td align="center" style="background-color:rgb(139, 136, 120)">cornsilk4</td> + <td align="left">rgb(139, 136, 120)</td> + <td align="left">#8B8878</td> + + </tr> + + <tr> + <td align="right">gold</td> + <td align="center" style="background-color:rgb(255, 215, 0)">gold</td> + <td align="left">rgb(255, 215, 0)</td> + <td align="left">#FFD700</td> + + </tr> + + <tr> + <td align="right">gold1</td> + <td align="center" style="background-color:rgb(255, 215, 0)">gold1</td> + <td align="left">rgb(255, 215, 0)</td> + <td align="left">#FFD700</td> + + </tr> + + <tr> + <td align="right">gold2</td> + <td align="center" style="background-color:rgb(238, 201, 0)">gold2</td> + <td align="left">rgb(238, 201, 0)</td> + <td align="left">#EEC900</td> + + </tr> + + <tr> + <td align="right">gold3</td> + <td align="center" style="background-color:rgb(205, 173, 0)">gold3</td> + <td align="left">rgb(205, 173, 0)</td> + <td align="left">#CDAD00</td> + + </tr> + + <tr> + <td align="right">gold4</td> + <td align="center" style="background-color:rgb(139, 117, 0)">gold4</td> + <td align="left">rgb(139, 117, 0)</td> + <td align="left">#8B7500</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod</td> + <td align="center" style="background-color:rgb(238, 221, 130)">LightGoldenrod</td> + <td align="left">rgb(238, 221, 130)</td> + <td align="left">#EEDD82</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod4</td> + <td align="center" style="background-color:rgb(139, 129, 76)">LightGoldenrod4</td> + <td align="left">rgb(139, 129, 76)</td> + <td align="left">#8B814C</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod1</td> + <td align="center" style="background-color:rgb(255, 236, 139)">LightGoldenrod1</td> + <td align="left">rgb(255, 236, 139)</td> + <td align="left">#FFEC8B</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod3</td> + <td align="center" style="background-color:rgb(205, 190, 112)">LightGoldenrod3</td> + <td align="left">rgb(205, 190, 112)</td> + <td align="left">#CDBE70</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod2</td> + <td align="center" style="background-color:rgb(238, 220, 130)">LightGoldenrod2</td> + <td align="left">rgb(238, 220, 130)</td> + <td align="left">#EEDC82</td> + + </tr> + + <tr> + <td align="right">cornsilk3</td> + <td align="center" style="background-color:rgb(205, 200, 177)">cornsilk3</td> + <td align="left">rgb(205, 200, 177)</td> + <td align="left">#CDC8B1</td> + + </tr> + + <tr> + <td align="right">cornsilk2</td> + <td align="center" style="background-color:rgb(238, 232, 205)">cornsilk2</td> + <td align="left">rgb(238, 232, 205)</td> + <td align="left">#EEE8CD</td> + + </tr> + + <tr> + <td align="right">cornsilk</td> + <td align="center" style="background-color:rgb(255, 248, 220)">cornsilk</td> + <td align="left">rgb(255, 248, 220)</td> + <td align="left">#FFF8DC</td> + + </tr> + + <tr> + <td align="right">cornsilk1</td> + <td align="center" style="background-color:rgb(255, 248, 220)">cornsilk1</td> + <td align="left">rgb(255, 248, 220)</td> + <td align="left">#FFF8DC</td> + + </tr> + + <tr> + <td align="right">goldenrod</td> + <td align="center" style="background-color:rgb(218, 165, 32)">goldenrod</td> + <td align="left">rgb(218, 165, 32)</td> + <td align="left">#DAA520</td> + + </tr> + + <tr> + <td align="right">goldenrod1</td> + <td align="center" style="background-color:rgb(255, 193, 37)">goldenrod1</td> + <td align="left">rgb(255, 193, 37)</td> + <td align="left">#FFC125</td> + + </tr> + + <tr> + <td align="right">goldenrod2</td> + <td align="center" style="background-color:rgb(238, 180, 34)">goldenrod2</td> + <td align="left">rgb(238, 180, 34)</td> + <td align="left">#EEB422</td> + + </tr> + + <tr> + <td align="right">goldenrod3</td> + <td align="center" style="background-color:rgb(205, 155, 29)">goldenrod3</td> + <td align="left">rgb(205, 155, 29)</td> + <td align="left">#CD9B1D</td> + + </tr> + + <tr> + <td align="right">goldenrod4</td> + <td align="center" style="background-color:rgb(139, 105, 20)">goldenrod4</td> + <td align="left">rgb(139, 105, 20)</td> + <td align="left">#8B6914</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod</td> + <td align="center" style="background-color:rgb(184, 134, 11)">DarkGoldenrod</td> + <td align="left">rgb(184, 134, 11)</td> + <td align="left">#B8860B</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod1</td> + <td align="center" style="background-color:rgb(255, 185, 15)">DarkGoldenrod1</td> + <td align="left">rgb(255, 185, 15)</td> + <td align="left">#FFB90F</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod2</td> + <td align="center" style="background-color:rgb(238, 173, 14)">DarkGoldenrod2</td> + <td align="left">rgb(238, 173, 14)</td> + <td align="left">#EEAD0E</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod3</td> + <td align="center" style="background-color:rgb(205, 149, 12)">DarkGoldenrod3</td> + <td align="left">rgb(205, 149, 12)</td> + <td align="left">#CD950C</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod4</td> + <td align="center" style="background-color:rgb(139, 101, 8)">DarkGoldenrod4</td> + <td align="left">rgb(139, 101, 8)</td> + <td align="left">#8B6508</td> + + </tr> + + <tr> + <td align="right">FloralWhite</td> + <td align="center" style="background-color:rgb(255, 250, 240)">FloralWhite</td> + <td align="left">rgb(255, 250, 240)</td> + <td align="left">#FFFAF0</td> + + </tr> + + <tr> + <td align="right">wheat2</td> + <td align="center" style="background-color:rgb(238, 216, 174)">wheat2</td> + <td align="left">rgb(238, 216, 174)</td> + <td align="left">#EED8AE</td> + + </tr> + + <tr> + <td align="right">OldLace</td> + <td align="center" style="background-color:rgb(253, 245, 230)">OldLace</td> + <td align="left">rgb(253, 245, 230)</td> + <td align="left">#FDF5E6</td> + + </tr> + + <tr> + <td align="right">wheat</td> + <td align="center" style="background-color:rgb(245, 222, 179)">wheat</td> + <td align="left">rgb(245, 222, 179)</td> + <td align="left">#F5DEB3</td> + + </tr> + + <tr> + <td align="right">wheat1</td> + <td align="center" style="background-color:rgb(255, 231, 186)">wheat1</td> + <td align="left">rgb(255, 231, 186)</td> + <td align="left">#FFE7BA</td> + + </tr> + + <tr> + <td align="right">wheat3</td> + <td align="center" style="background-color:rgb(205, 186, 150)">wheat3</td> + <td align="left">rgb(205, 186, 150)</td> + <td align="left">#CDBA96</td> + + </tr> + + <tr> + <td align="right">orange</td> + <td align="center" style="background-color:rgb(255, 165, 0)">orange</td> + <td align="left">rgb(255, 165, 0)</td> + <td align="left">#FFA500</td> + + </tr> + + <tr> + <td align="right">orange1</td> + <td align="center" style="background-color:rgb(255, 165, 0)">orange1</td> + <td align="left">rgb(255, 165, 0)</td> + <td align="left">#FFA500</td> + + </tr> + + <tr> + <td align="right">orange2</td> + <td align="center" style="background-color:rgb(238, 154, 0)">orange2</td> + <td align="left">rgb(238, 154, 0)</td> + <td align="left">#EE9A00</td> + + </tr> + + <tr> + <td align="right">orange3</td> + <td align="center" style="background-color:rgb(205, 133, 0)">orange3</td> + <td align="left">rgb(205, 133, 0)</td> + <td align="left">#CD8500</td> + + </tr> + + <tr> + <td align="right">orange4</td> + <td align="center" style="background-color:rgb(139, 90, 0)">orange4</td> + <td align="left">rgb(139, 90, 0)</td> + <td align="left">#8B5A00</td> + + </tr> + + <tr> + <td align="right">wheat4</td> + <td align="center" style="background-color:rgb(139, 126, 102)">wheat4</td> + <td align="left">rgb(139, 126, 102)</td> + <td align="left">#8B7E66</td> + + </tr> + + <tr> + <td align="right">moccasin</td> + <td align="center" style="background-color:rgb(255, 228, 181)">moccasin</td> + <td align="left">rgb(255, 228, 181)</td> + <td align="left">#FFE4B5</td> + + </tr> + + <tr> + <td align="right">PapayaWhip</td> + <td align="center" style="background-color:rgb(255, 239, 213)">PapayaWhip</td> + <td align="left">rgb(255, 239, 213)</td> + <td align="left">#FFEFD5</td> + + </tr> + + <tr> + <td align="right">NavajoWhite3</td> + <td align="center" style="background-color:rgb(205, 179, 139)">NavajoWhite3</td> + <td align="left">rgb(205, 179, 139)</td> + <td align="left">#CDB38B</td> + + </tr> + + <tr> + <td align="right">BlanchedAlmond</td> + <td align="center" style="background-color:rgb(255, 235, 205)">BlanchedAlmond</td> + <td align="left">rgb(255, 235, 205)</td> + <td align="left">#FFEBCD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite</td> + <td align="center" style="background-color:rgb(255, 222, 173)">NavajoWhite</td> + <td align="left">rgb(255, 222, 173)</td> + <td align="left">#FFDEAD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite1</td> + <td align="center" style="background-color:rgb(255, 222, 173)">NavajoWhite1</td> + <td align="left">rgb(255, 222, 173)</td> + <td align="left">#FFDEAD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite2</td> + <td align="center" style="background-color:rgb(238, 207, 161)">NavajoWhite2</td> + <td align="left">rgb(238, 207, 161)</td> + <td align="left">#EECFA1</td> + + </tr> + + <tr> + <td align="right">NavajoWhite4</td> + <td align="center" style="background-color:rgb(139, 121, 94)">NavajoWhite4</td> + <td align="left">rgb(139, 121, 94)</td> + <td align="left">#8B795E</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite4</td> + <td align="center" style="background-color:rgb(139, 131, 120)">AntiqueWhite4</td> + <td align="left">rgb(139, 131, 120)</td> + <td align="left">#8B8378</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite</td> + <td align="center" style="background-color:rgb(250, 235, 215)">AntiqueWhite</td> + <td align="left">rgb(250, 235, 215)</td> + <td align="left">#FAEBD7</td> + + </tr> + + <tr> + <td align="right">tan</td> + <td align="center" style="background-color:rgb(210, 180, 140)">tan</td> + <td align="left">rgb(210, 180, 140)</td> + <td align="left">#D2B48C</td> + + </tr> + + <tr> + <td align="right">bisque4</td> + <td align="center" style="background-color:rgb(139, 125, 107)">bisque4</td> + <td align="left">rgb(139, 125, 107)</td> + <td align="left">#8B7D6B</td> + + </tr> + + <tr> + <td align="right">burlywood</td> + <td align="center" style="background-color:rgb(222, 184, 135)">burlywood</td> + <td align="left">rgb(222, 184, 135)</td> + <td align="left">#DEB887</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite2</td> + <td align="center" style="background-color:rgb(238, 223, 204)">AntiqueWhite2</td> + <td align="left">rgb(238, 223, 204)</td> + <td align="left">#EEDFCC</td> + + </tr> + + <tr> + <td align="right">burlywood1</td> + <td align="center" style="background-color:rgb(255, 211, 155)">burlywood1</td> + <td align="left">rgb(255, 211, 155)</td> + <td align="left">#FFD39B</td> + + </tr> + + <tr> + <td align="right">burlywood3</td> + <td align="center" style="background-color:rgb(205, 170, 125)">burlywood3</td> + <td align="left">rgb(205, 170, 125)</td> + <td align="left">#CDAA7D</td> + + </tr> + + <tr> + <td align="right">burlywood2</td> + <td align="center" style="background-color:rgb(238, 197, 145)">burlywood2</td> + <td align="left">rgb(238, 197, 145)</td> + <td align="left">#EEC591</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite1</td> + <td align="center" style="background-color:rgb(255, 239, 219)">AntiqueWhite1</td> + <td align="left">rgb(255, 239, 219)</td> + <td align="left">#FFEFDB</td> + + </tr> + + <tr> + <td align="right">burlywood4</td> + <td align="center" style="background-color:rgb(139, 115, 85)">burlywood4</td> + <td align="left">rgb(139, 115, 85)</td> + <td align="left">#8B7355</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite3</td> + <td align="center" style="background-color:rgb(205, 192, 176)">AntiqueWhite3</td> + <td align="left">rgb(205, 192, 176)</td> + <td align="left">#CDC0B0</td> + + </tr> + + <tr> + <td align="right">DarkOrange</td> + <td align="center" style="background-color:rgb(255, 140, 0)">DarkOrange</td> + <td align="left">rgb(255, 140, 0)</td> + <td align="left">#FF8C00</td> + + </tr> + + <tr> + <td align="right">bisque2</td> + <td align="center" style="background-color:rgb(238, 213, 183)">bisque2</td> + <td align="left">rgb(238, 213, 183)</td> + <td align="left">#EED5B7</td> + + </tr> + + <tr> + <td align="right">bisque</td> + <td align="center" style="background-color:rgb(255, 228, 196)">bisque</td> + <td align="left">rgb(255, 228, 196)</td> + <td align="left">#FFE4C4</td> + + </tr> + + <tr> + <td align="right">bisque1</td> + <td align="center" style="background-color:rgb(255, 228, 196)">bisque1</td> + <td align="left">rgb(255, 228, 196)</td> + <td align="left">#FFE4C4</td> + + </tr> + + <tr> + <td align="right">bisque3</td> + <td align="center" style="background-color:rgb(205, 183, 158)">bisque3</td> + <td align="left">rgb(205, 183, 158)</td> + <td align="left">#CDB79E</td> + + </tr> + + <tr> + <td align="right">DarkOrange1</td> + <td align="center" style="background-color:rgb(255, 127, 0)">DarkOrange1</td> + <td align="left">rgb(255, 127, 0)</td> + <td align="left">#FF7F00</td> + + </tr> + + <tr> + <td align="right">linen</td> + <td align="center" style="background-color:rgb(250, 240, 230)">linen</td> + <td align="left">rgb(250, 240, 230)</td> + <td align="left">#FAF0E6</td> + + </tr> + + <tr> + <td align="right">DarkOrange2</td> + <td align="center" style="background-color:rgb(238, 118, 0)">DarkOrange2</td> + <td align="left">rgb(238, 118, 0)</td> + <td align="left">#EE7600</td> + + </tr> + + <tr> + <td align="right">DarkOrange3</td> + <td align="center" style="background-color:rgb(205, 102, 0)">DarkOrange3</td> + <td align="left">rgb(205, 102, 0)</td> + <td align="left">#CD6600</td> + + </tr> + + <tr> + <td align="right">DarkOrange4</td> + <td align="center" style="background-color:rgb(139, 69, 0)">DarkOrange4</td> + <td align="left">rgb(139, 69, 0)</td> + <td align="left">#8B4500</td> + + </tr> + + <tr> + <td align="right">peru</td> + <td align="center" style="background-color:rgb(205, 133, 63)">peru</td> + <td align="left">rgb(205, 133, 63)</td> + <td align="left">#CD853F</td> + + </tr> + + <tr> + <td align="right">tan1</td> + <td align="center" style="background-color:rgb(255, 165, 79)">tan1</td> + <td align="left">rgb(255, 165, 79)</td> + <td align="left">#FFA54F</td> + + </tr> + + <tr> + <td align="right">tan2</td> + <td align="center" style="background-color:rgb(238, 154, 73)">tan2</td> + <td align="left">rgb(238, 154, 73)</td> + <td align="left">#EE9A49</td> + + </tr> + + <tr> + <td align="right">tan3</td> + <td align="center" style="background-color:rgb(205, 133, 63)">tan3</td> + <td align="left">rgb(205, 133, 63)</td> + <td align="left">#CD853F</td> + + </tr> + + <tr> + <td align="right">tan4</td> + <td align="center" style="background-color:rgb(139, 90, 43)">tan4</td> + <td align="left">rgb(139, 90, 43)</td> + <td align="left">#8B5A2B</td> + + </tr> + + <tr> + <td align="right">PeachPuff</td> + <td align="center" style="background-color:rgb(255, 218, 185)">PeachPuff</td> + <td align="left">rgb(255, 218, 185)</td> + <td align="left">#FFDAB9</td> + + </tr> + + <tr> + <td align="right">PeachPuff1</td> + <td align="center" style="background-color:rgb(255, 218, 185)">PeachPuff1</td> + <td align="left">rgb(255, 218, 185)</td> + <td align="left">#FFDAB9</td> + + </tr> + + <tr> + <td align="right">PeachPuff4</td> + <td align="center" style="background-color:rgb(139, 119, 101)">PeachPuff4</td> + <td align="left">rgb(139, 119, 101)</td> + <td align="left">#8B7765</td> + + </tr> + + <tr> + <td align="right">PeachPuff2</td> + <td align="center" style="background-color:rgb(238, 203, 173)">PeachPuff2</td> + <td align="left">rgb(238, 203, 173)</td> + <td align="left">#EECBAD</td> + + </tr> + + <tr> + <td align="right">PeachPuff3</td> + <td align="center" style="background-color:rgb(205, 175, 149)">PeachPuff3</td> + <td align="left">rgb(205, 175, 149)</td> + <td align="left">#CDAF95</td> + + </tr> + + <tr> + <td align="right">SandyBrown</td> + <td align="center" style="background-color:rgb(244, 164, 96)">SandyBrown</td> + <td align="left">rgb(244, 164, 96)</td> + <td align="left">#F4A460</td> + + </tr> + + <tr> + <td align="right">seashell4</td> + <td align="center" style="background-color:rgb(139, 134, 130)">seashell4</td> + <td align="left">rgb(139, 134, 130)</td> + <td align="left">#8B8682</td> + + </tr> + + <tr> + <td align="right">seashell2</td> + <td align="center" style="background-color:rgb(238, 229, 222)">seashell2</td> + <td align="left">rgb(238, 229, 222)</td> + <td align="left">#EEE5DE</td> + + </tr> + + <tr> + <td align="right">seashell3</td> + <td align="center" style="background-color:rgb(205, 197, 191)">seashell3</td> + <td align="left">rgb(205, 197, 191)</td> + <td align="left">#CDC5BF</td> + + </tr> + + <tr> + <td align="right">chocolate</td> + <td align="center" style="background-color:rgb(210, 105, 30)">chocolate</td> + <td align="left">rgb(210, 105, 30)</td> + <td align="left">#D2691E</td> + + </tr> + + <tr> + <td align="right">chocolate1</td> + <td align="center" style="background-color:rgb(255, 127, 36)">chocolate1</td> + <td align="left">rgb(255, 127, 36)</td> + <td align="left">#FF7F24</td> + + </tr> + + <tr> + <td align="right">chocolate2</td> + <td align="center" style="background-color:rgb(238, 118, 33)">chocolate2</td> + <td align="left">rgb(238, 118, 33)</td> + <td align="left">#EE7621</td> + + </tr> + + <tr> + <td align="right">chocolate3</td> + <td align="center" style="background-color:rgb(205, 102, 29)">chocolate3</td> + <td align="left">rgb(205, 102, 29)</td> + <td align="left">#CD661D</td> + + </tr> + + <tr> + <td align="right">chocolate4</td> + <td align="center" style="background-color:rgb(139, 69, 19)">chocolate4</td> + <td align="left">rgb(139, 69, 19)</td> + <td align="left">#8B4513</td> + + </tr> + + <tr> + <td align="right">SaddleBrown</td> + <td align="center" style="background-color:rgb(139, 69, 19)">SaddleBrown</td> + <td align="left">rgb(139, 69, 19)</td> + <td align="left">#8B4513</td> + + </tr> + + <tr> + <td align="right">seashell</td> + <td align="center" style="background-color:rgb(255, 245, 238)">seashell</td> + <td align="left">rgb(255, 245, 238)</td> + <td align="left">#FFF5EE</td> + + </tr> + + <tr> + <td align="right">seashell1</td> + <td align="center" style="background-color:rgb(255, 245, 238)">seashell1</td> + <td align="left">rgb(255, 245, 238)</td> + <td align="left">#FFF5EE</td> + + </tr> + + <tr> + <td align="right">sienna4</td> + <td align="center" style="background-color:rgb(139, 71, 38)">sienna4</td> + <td align="left">rgb(139, 71, 38)</td> + <td align="left">#8B4726</td> + + </tr> + + <tr> + <td align="right">sienna</td> + <td align="center" style="background-color:rgb(160, 82, 45)">sienna</td> + <td align="left">rgb(160, 82, 45)</td> + <td align="left">#A0522D</td> + + </tr> + + <tr> + <td align="right">sienna1</td> + <td align="center" style="background-color:rgb(255, 130, 71)">sienna1</td> + <td align="left">rgb(255, 130, 71)</td> + <td align="left">#FF8247</td> + + </tr> + + <tr> + <td align="right">sienna2</td> + <td align="center" style="background-color:rgb(238, 121, 66)">sienna2</td> + <td align="left">rgb(238, 121, 66)</td> + <td align="left">#EE7942</td> + + </tr> + + <tr> + <td align="right">sienna3</td> + <td align="center" style="background-color:rgb(205, 104, 57)">sienna3</td> + <td align="left">rgb(205, 104, 57)</td> + <td align="left">#CD6839</td> + + </tr> + + <tr> + <td align="right">LightSalmon3</td> + <td align="center" style="background-color:rgb(205, 129, 98)">LightSalmon3</td> + <td align="left">rgb(205, 129, 98)</td> + <td align="left">#CD8162</td> + + </tr> + + <tr> + <td align="right">LightSalmon</td> + <td align="center" style="background-color:rgb(255, 160, 122)">LightSalmon</td> + <td align="left">rgb(255, 160, 122)</td> + <td align="left">#FFA07A</td> + + </tr> + + <tr> + <td align="right">LightSalmon1</td> + <td align="center" style="background-color:rgb(255, 160, 122)">LightSalmon1</td> + <td align="left">rgb(255, 160, 122)</td> + <td align="left">#FFA07A</td> + + </tr> + + <tr> + <td align="right">LightSalmon4</td> + <td align="center" style="background-color:rgb(139, 87, 66)">LightSalmon4</td> + <td align="left">rgb(139, 87, 66)</td> + <td align="left">#8B5742</td> + + </tr> + + <tr> + <td align="right">LightSalmon2</td> + <td align="center" style="background-color:rgb(238, 149, 114)">LightSalmon2</td> + <td align="left">rgb(238, 149, 114)</td> + <td align="left">#EE9572</td> + + </tr> + + <tr> + <td align="right">coral</td> + <td align="center" style="background-color:rgb(255, 127, 80)">coral</td> + <td align="left">rgb(255, 127, 80)</td> + <td align="left">#FF7F50</td> + + </tr> + + <tr> + <td align="right">OrangeRed</td> + <td align="center" style="background-color:rgb(255, 69, 0)">OrangeRed</td> + <td align="left">rgb(255, 69, 0)</td> + <td align="left">#FF4500</td> + + </tr> + + <tr> + <td align="right">OrangeRed1</td> + <td align="center" style="background-color:rgb(255, 69, 0)">OrangeRed1</td> + <td align="left">rgb(255, 69, 0)</td> + <td align="left">#FF4500</td> + + </tr> + + <tr> + <td align="right">OrangeRed2</td> + <td align="center" style="background-color:rgb(238, 64, 0)">OrangeRed2</td> + <td align="left">rgb(238, 64, 0)</td> + <td align="left">#EE4000</td> + + </tr> + + <tr> + <td align="right">OrangeRed3</td> + <td align="center" style="background-color:rgb(205, 55, 0)">OrangeRed3</td> + <td align="left">rgb(205, 55, 0)</td> + <td align="left">#CD3700</td> + + </tr> + + <tr> + <td align="right">OrangeRed4</td> + <td align="center" style="background-color:rgb(139, 37, 0)">OrangeRed4</td> + <td align="left">rgb(139, 37, 0)</td> + <td align="left">#8B2500</td> + + </tr> + + <tr> + <td align="right">DarkSalmon</td> + <td align="center" style="background-color:rgb(233, 150, 122)">DarkSalmon</td> + <td align="left">rgb(233, 150, 122)</td> + <td align="left">#E9967A</td> + + </tr> + + <tr> + <td align="right">salmon1</td> + <td align="center" style="background-color:rgb(255, 140, 105)">salmon1</td> + <td align="left">rgb(255, 140, 105)</td> + <td align="left">#FF8C69</td> + + </tr> + + <tr> + <td align="right">salmon2</td> + <td align="center" style="background-color:rgb(238, 130, 98)">salmon2</td> + <td align="left">rgb(238, 130, 98)</td> + <td align="left">#EE8262</td> + + </tr> + + <tr> + <td align="right">salmon3</td> + <td align="center" style="background-color:rgb(205, 112, 84)">salmon3</td> + <td align="left">rgb(205, 112, 84)</td> + <td align="left">#CD7054</td> + + </tr> + + <tr> + <td align="right">salmon4</td> + <td align="center" style="background-color:rgb(139, 76, 57)">salmon4</td> + <td align="left">rgb(139, 76, 57)</td> + <td align="left">#8B4C39</td> + + </tr> + + <tr> + <td align="right">coral1</td> + <td align="center" style="background-color:rgb(255, 114, 86)">coral1</td> + <td align="left">rgb(255, 114, 86)</td> + <td align="left">#FF7256</td> + + </tr> + + <tr> + <td align="right">coral2</td> + <td align="center" style="background-color:rgb(238, 106, 80)">coral2</td> + <td align="left">rgb(238, 106, 80)</td> + <td align="left">#EE6A50</td> + + </tr> + + <tr> + <td align="right">coral3</td> + <td align="center" style="background-color:rgb(205, 91, 69)">coral3</td> + <td align="left">rgb(205, 91, 69)</td> + <td align="left">#CD5B45</td> + + </tr> + + <tr> + <td align="right">coral4</td> + <td align="center" style="background-color:rgb(139, 62, 47)">coral4</td> + <td align="left">rgb(139, 62, 47)</td> + <td align="left">#8B3E2F</td> + + </tr> + + <tr> + <td align="right">tomato4</td> + <td align="center" style="background-color:rgb(139, 54, 38)">tomato4</td> + <td align="left">rgb(139, 54, 38)</td> + <td align="left">#8B3626</td> + + </tr> + + <tr> + <td align="right">tomato</td> + <td align="center" style="background-color:rgb(255, 99, 71)">tomato</td> + <td align="left">rgb(255, 99, 71)</td> + <td align="left">#FF6347</td> + + </tr> + + <tr> + <td align="right">tomato1</td> + <td align="center" style="background-color:rgb(255, 99, 71)">tomato1</td> + <td align="left">rgb(255, 99, 71)</td> + <td align="left">#FF6347</td> + + </tr> + + <tr> + <td align="right">tomato2</td> + <td align="center" style="background-color:rgb(238, 92, 66)">tomato2</td> + <td align="left">rgb(238, 92, 66)</td> + <td align="left">#EE5C42</td> + + </tr> + + <tr> + <td align="right">tomato3</td> + <td align="center" style="background-color:rgb(205, 79, 57)">tomato3</td> + <td align="left">rgb(205, 79, 57)</td> + <td align="left">#CD4F39</td> + + </tr> + + <tr> + <td align="right">MistyRose4</td> + <td align="center" style="background-color:rgb(139, 125, 123)">MistyRose4</td> + <td align="left">rgb(139, 125, 123)</td> + <td align="left">#8B7D7B</td> + + </tr> + + <tr> + <td align="right">MistyRose2</td> + <td align="center" style="background-color:rgb(238, 213, 210)">MistyRose2</td> + <td align="left">rgb(238, 213, 210)</td> + <td align="left">#EED5D2</td> + + </tr> + + <tr> + <td align="right">MistyRose</td> + <td align="center" style="background-color:rgb(255, 228, 225)">MistyRose</td> + <td align="left">rgb(255, 228, 225)</td> + <td align="left">#FFE4E1</td> + + </tr> + + <tr> + <td align="right">MistyRose1</td> + <td align="center" style="background-color:rgb(255, 228, 225)">MistyRose1</td> + <td align="left">rgb(255, 228, 225)</td> + <td align="left">#FFE4E1</td> + + </tr> + + <tr> + <td align="right">salmon</td> + <td align="center" style="background-color:rgb(250, 128, 114)">salmon</td> + <td align="left">rgb(250, 128, 114)</td> + <td align="left">#FA8072</td> + + </tr> + + <tr> + <td align="right">MistyRose3</td> + <td align="center" style="background-color:rgb(205, 183, 181)">MistyRose3</td> + <td align="left">rgb(205, 183, 181)</td> + <td align="left">#CDB7B5</td> + + </tr> + + <tr> + <td align="right">white</td> + <td align="center" style="background-color:rgb(255, 255, 255)">white</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">gray100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">gray100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">grey100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">grey100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">grey100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">grey100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">gray99</td> + <td align="center" style="background-color:rgb(252, 252, 252)">gray99</td> + <td align="left">rgb(252, 252, 252)</td> + <td align="left">#FCFCFC</td> + + </tr> + + <tr> + <td align="right">grey99</td> + <td align="center" style="background-color:rgb(252, 252, 252)">grey99</td> + <td align="left">rgb(252, 252, 252)</td> + <td align="left">#FCFCFC</td> + + </tr> + + <tr> + <td align="right">gray98</td> + <td align="center" style="background-color:rgb(250, 250, 250)">gray98</td> + <td align="left">rgb(250, 250, 250)</td> + <td align="left">#FAFAFA</td> + + </tr> + + <tr> + <td align="right">grey98</td> + <td align="center" style="background-color:rgb(250, 250, 250)">grey98</td> + <td align="left">rgb(250, 250, 250)</td> + <td align="left">#FAFAFA</td> + + </tr> + + <tr> + <td align="right">gray97</td> + <td align="center" style="background-color:rgb(247, 247, 247)">gray97</td> + <td align="left">rgb(247, 247, 247)</td> + <td align="left">#F7F7F7</td> + + </tr> + + <tr> + <td align="right">grey97</td> + <td align="center" style="background-color:rgb(247, 247, 247)">grey97</td> + <td align="left">rgb(247, 247, 247)</td> + <td align="left">#F7F7F7</td> + + </tr> + + <tr> + <td align="right">gray96</td> + <td align="center" style="background-color:rgb(245, 245, 245)">gray96</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">grey96</td> + <td align="center" style="background-color:rgb(245, 245, 245)">grey96</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">WhiteSmoke</td> + <td align="center" style="background-color:rgb(245, 245, 245)">WhiteSmoke</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">gray95</td> + <td align="center" style="background-color:rgb(242, 242, 242)">gray95</td> + <td align="left">rgb(242, 242, 242)</td> + <td align="left">#F2F2F2</td> + + </tr> + + <tr> + <td align="right">grey95</td> + <td align="center" style="background-color:rgb(242, 242, 242)">grey95</td> + <td align="left">rgb(242, 242, 242)</td> + <td align="left">#F2F2F2</td> + + </tr> + + <tr> + <td align="right">gray94</td> + <td align="center" style="background-color:rgb(240, 240, 240)">gray94</td> + <td align="left">rgb(240, 240, 240)</td> + <td align="left">#F0F0F0</td> + + </tr> + + <tr> + <td align="right">grey94</td> + <td align="center" style="background-color:rgb(240, 240, 240)">grey94</td> + <td align="left">rgb(240, 240, 240)</td> + <td align="left">#F0F0F0</td> + + </tr> + + <tr> + <td align="right">gray93</td> + <td align="center" style="background-color:rgb(237, 237, 237)">gray93</td> + <td align="left">rgb(237, 237, 237)</td> + <td align="left">#EDEDED</td> + + </tr> + + <tr> + <td align="right">grey93</td> + <td align="center" style="background-color:rgb(237, 237, 237)">grey93</td> + <td align="left">rgb(237, 237, 237)</td> + <td align="left">#EDEDED</td> + + </tr> + + <tr> + <td align="right">gray92</td> + <td align="center" style="background-color:rgb(235, 235, 235)">gray92</td> + <td align="left">rgb(235, 235, 235)</td> + <td align="left">#EBEBEB</td> + + </tr> + + <tr> + <td align="right">grey92</td> + <td align="center" style="background-color:rgb(235, 235, 235)">grey92</td> + <td align="left">rgb(235, 235, 235)</td> + <td align="left">#EBEBEB</td> + + </tr> + + <tr> + <td align="right">gray91</td> + <td align="center" style="background-color:rgb(232, 232, 232)">gray91</td> + <td align="left">rgb(232, 232, 232)</td> + <td align="left">#E8E8E8</td> + + </tr> + + <tr> + <td align="right">grey91</td> + <td align="center" style="background-color:rgb(232, 232, 232)">grey91</td> + <td align="left">rgb(232, 232, 232)</td> + <td align="left">#E8E8E8</td> + + </tr> + + <tr> + <td align="right">gray90</td> + <td align="center" style="background-color:rgb(229, 229, 229)">gray90</td> + <td align="left">rgb(229, 229, 229)</td> + <td align="left">#E5E5E5</td> + + </tr> + + <tr> + <td align="right">grey90</td> + <td align="center" style="background-color:rgb(229, 229, 229)">grey90</td> + <td align="left">rgb(229, 229, 229)</td> + <td align="left">#E5E5E5</td> + + </tr> + + <tr> + <td align="right">gray89</td> + <td align="center" style="background-color:rgb(227, 227, 227)">gray89</td> + <td align="left">rgb(227, 227, 227)</td> + <td align="left">#E3E3E3</td> + + </tr> + + <tr> + <td align="right">grey89</td> + <td align="center" style="background-color:rgb(227, 227, 227)">grey89</td> + <td align="left">rgb(227, 227, 227)</td> + <td align="left">#E3E3E3</td> + + </tr> + + <tr> + <td align="right">gray88</td> + <td align="center" style="background-color:rgb(224, 224, 224)">gray88</td> + <td align="left">rgb(224, 224, 224)</td> + <td align="left">#E0E0E0</td> + + </tr> + + <tr> + <td align="right">grey88</td> + <td align="center" style="background-color:rgb(224, 224, 224)">grey88</td> + <td align="left">rgb(224, 224, 224)</td> + <td align="left">#E0E0E0</td> + + </tr> + + <tr> + <td align="right">gray87</td> + <td align="center" style="background-color:rgb(222, 222, 222)">gray87</td> + <td align="left">rgb(222, 222, 222)</td> + <td align="left">#DEDEDE</td> + + </tr> + + <tr> + <td align="right">grey87</td> + <td align="center" style="background-color:rgb(222, 222, 222)">grey87</td> + <td align="left">rgb(222, 222, 222)</td> + <td align="left">#DEDEDE</td> + + </tr> + + <tr> + <td align="right">gainsboro</td> + <td align="center" style="background-color:rgb(220, 220, 220)">gainsboro</td> + <td align="left">rgb(220, 220, 220)</td> + <td align="left">#DCDCDC</td> + + </tr> + + <tr> + <td align="right">gray86</td> + <td align="center" style="background-color:rgb(219, 219, 219)">gray86</td> + <td align="left">rgb(219, 219, 219)</td> + <td align="left">#DBDBDB</td> + + </tr> + + <tr> + <td align="right">grey86</td> + <td align="center" style="background-color:rgb(219, 219, 219)">grey86</td> + <td align="left">rgb(219, 219, 219)</td> + <td align="left">#DBDBDB</td> + + </tr> + + <tr> + <td align="right">gray85</td> + <td align="center" style="background-color:rgb(217, 217, 217)">gray85</td> + <td align="left">rgb(217, 217, 217)</td> + <td align="left">#D9D9D9</td> + + </tr> + + <tr> + <td align="right">grey85</td> + <td align="center" style="background-color:rgb(217, 217, 217)">grey85</td> + <td align="left">rgb(217, 217, 217)</td> + <td align="left">#D9D9D9</td> + + </tr> + + <tr> + <td align="right">gray84</td> + <td align="center" style="background-color:rgb(214, 214, 214)">gray84</td> + <td align="left">rgb(214, 214, 214)</td> + <td align="left">#D6D6D6</td> + + </tr> + + <tr> + <td align="right">grey84</td> + <td align="center" style="background-color:rgb(214, 214, 214)">grey84</td> + <td align="left">rgb(214, 214, 214)</td> + <td align="left">#D6D6D6</td> + + </tr> + + <tr> + <td align="right">gray83</td> + <td align="center" style="background-color:rgb(212, 212, 212)">gray83</td> + <td align="left">rgb(212, 212, 212)</td> + <td align="left">#D4D4D4</td> + + </tr> + + <tr> + <td align="right">grey83</td> + <td align="center" style="background-color:rgb(212, 212, 212)">grey83</td> + <td align="left">rgb(212, 212, 212)</td> + <td align="left">#D4D4D4</td> + + </tr> + + <tr> + <td align="right">LightGray</td> + <td align="center" style="background-color:rgb(211, 211, 211)">LightGray</td> + <td align="left">rgb(211, 211, 211)</td> + <td align="left">#D3D3D3</td> + + </tr> + + <tr> + <td align="right">LightGrey</td> + <td align="center" style="background-color:rgb(211, 211, 211)">LightGrey</td> + <td align="left">rgb(211, 211, 211)</td> + <td align="left">#D3D3D3</td> + + </tr> + + <tr> + <td align="right">gray82</td> + <td align="center" style="background-color:rgb(209, 209, 209)">gray82</td> + <td align="left">rgb(209, 209, 209)</td> + <td align="left">#D1D1D1</td> + + </tr> + + <tr> + <td align="right">grey82</td> + <td align="center" style="background-color:rgb(209, 209, 209)">grey82</td> + <td align="left">rgb(209, 209, 209)</td> + <td align="left">#D1D1D1</td> + + </tr> + + <tr> + <td align="right">gray81</td> + <td align="center" style="background-color:rgb(207, 207, 207)">gray81</td> + <td align="left">rgb(207, 207, 207)</td> + <td align="left">#CFCFCF</td> + + </tr> + + <tr> + <td align="right">grey81</td> + <td align="center" style="background-color:rgb(207, 207, 207)">grey81</td> + <td align="left">rgb(207, 207, 207)</td> + <td align="left">#CFCFCF</td> + + </tr> + + <tr> + <td align="right">gray80</td> + <td align="center" style="background-color:rgb(204, 204, 204)">gray80</td> + <td align="left">rgb(204, 204, 204)</td> + <td align="left">#CCCCCC</td> + + </tr> + + <tr> + <td align="right">grey80</td> + <td align="center" style="background-color:rgb(204, 204, 204)">grey80</td> + <td align="left">rgb(204, 204, 204)</td> + <td align="left">#CCCCCC</td> + + </tr> + + <tr> + <td align="right">gray79</td> + <td align="center" style="background-color:rgb(201, 201, 201)">gray79</td> + <td align="left">rgb(201, 201, 201)</td> + <td align="left">#C9C9C9</td> + + </tr> + + <tr> + <td align="right">grey79</td> + <td align="center" style="background-color:rgb(201, 201, 201)">grey79</td> + <td align="left">rgb(201, 201, 201)</td> + <td align="left">#C9C9C9</td> + + </tr> + + <tr> + <td align="right">gray78</td> + <td align="center" style="background-color:rgb(199, 199, 199)">gray78</td> + <td align="left">rgb(199, 199, 199)</td> + <td align="left">#C7C7C7</td> + + </tr> + + <tr> + <td align="right">grey78</td> + <td align="center" style="background-color:rgb(199, 199, 199)">grey78</td> + <td align="left">rgb(199, 199, 199)</td> + <td align="left">#C7C7C7</td> + + </tr> + + <tr> + <td align="right">gray77</td> + <td align="center" style="background-color:rgb(196, 196, 196)">gray77</td> + <td align="left">rgb(196, 196, 196)</td> + <td align="left">#C4C4C4</td> + + </tr> + + <tr> + <td align="right">grey77</td> + <td align="center" style="background-color:rgb(196, 196, 196)">grey77</td> + <td align="left">rgb(196, 196, 196)</td> + <td align="left">#C4C4C4</td> + + </tr> + + <tr> + <td align="right">gray76</td> + <td align="center" style="background-color:rgb(194, 194, 194)">gray76</td> + <td align="left">rgb(194, 194, 194)</td> + <td align="left">#C2C2C2</td> + + </tr> + + <tr> + <td align="right">grey76</td> + <td align="center" style="background-color:rgb(194, 194, 194)">grey76</td> + <td align="left">rgb(194, 194, 194)</td> + <td align="left">#C2C2C2</td> + + </tr> + + <tr> + <td align="right">silver</td> + <td align="center" style="background-color:rgb(192, 192, 192)">silver</td> + <td align="left">rgb(192, 192, 192)</td> + <td align="left">#C0C0C0</td> + + </tr> + + <tr> + <td align="right">gray75</td> + <td align="center" style="background-color:rgb(191, 191, 191)">gray75</td> + <td align="left">rgb(191, 191, 191)</td> + <td align="left">#BFBFBF</td> + + </tr> + + <tr> + <td align="right">grey75</td> + <td align="center" style="background-color:rgb(191, 191, 191)">grey75</td> + <td align="left">rgb(191, 191, 191)</td> + <td align="left">#BFBFBF</td> + + </tr> + + <tr> + <td align="right">gray74</td> + <td align="center" style="background-color:rgb(189, 189, 189)">gray74</td> + <td align="left">rgb(189, 189, 189)</td> + <td align="left">#BDBDBD</td> + + </tr> + + <tr> + <td align="right">grey74</td> + <td align="center" style="background-color:rgb(189, 189, 189)">grey74</td> + <td align="left">rgb(189, 189, 189)</td> + <td align="left">#BDBDBD</td> + + </tr> + + <tr> + <td align="right">gray73</td> + <td align="center" style="background-color:rgb(186, 186, 186)">gray73</td> + <td align="left">rgb(186, 186, 186)</td> + <td align="left">#BABABA</td> + + </tr> + + <tr> + <td align="right">grey73</td> + <td align="center" style="background-color:rgb(186, 186, 186)">grey73</td> + <td align="left">rgb(186, 186, 186)</td> + <td align="left">#BABABA</td> + + </tr> + + <tr> + <td align="right">gray72</td> + <td align="center" style="background-color:rgb(184, 184, 184)">gray72</td> + <td align="left">rgb(184, 184, 184)</td> + <td align="left">#B8B8B8</td> + + </tr> + + <tr> + <td align="right">grey72</td> + <td align="center" style="background-color:rgb(184, 184, 184)">grey72</td> + <td align="left">rgb(184, 184, 184)</td> + <td align="left">#B8B8B8</td> + + </tr> + + <tr> + <td align="right">gray71</td> + <td align="center" style="background-color:rgb(181, 181, 181)">gray71</td> + <td align="left">rgb(181, 181, 181)</td> + <td align="left">#B5B5B5</td> + + </tr> + + <tr> + <td align="right">grey71</td> + <td align="center" style="background-color:rgb(181, 181, 181)">grey71</td> + <td align="left">rgb(181, 181, 181)</td> + <td align="left">#B5B5B5</td> + + </tr> + + <tr> + <td align="right">gray70</td> + <td align="center" style="background-color:rgb(179, 179, 179)">gray70</td> + <td align="left">rgb(179, 179, 179)</td> + <td align="left">#B3B3B3</td> + + </tr> + + <tr> + <td align="right">grey70</td> + <td align="center" style="background-color:rgb(179, 179, 179)">grey70</td> + <td align="left">rgb(179, 179, 179)</td> + <td align="left">#B3B3B3</td> + + </tr> + + <tr> + <td align="right">gray69</td> + <td align="center" style="background-color:rgb(176, 176, 176)">gray69</td> + <td align="left">rgb(176, 176, 176)</td> + <td align="left">#B0B0B0</td> + + </tr> + + <tr> + <td align="right">grey69</td> + <td align="center" style="background-color:rgb(176, 176, 176)">grey69</td> + <td align="left">rgb(176, 176, 176)</td> + <td align="left">#B0B0B0</td> + + </tr> + + <tr> + <td align="right">gray68</td> + <td align="center" style="background-color:rgb(173, 173, 173)">gray68</td> + <td align="left">rgb(173, 173, 173)</td> + <td align="left">#ADADAD</td> + + </tr> + + <tr> + <td align="right">grey68</td> + <td align="center" style="background-color:rgb(173, 173, 173)">grey68</td> + <td align="left">rgb(173, 173, 173)</td> + <td align="left">#ADADAD</td> + + </tr> + + <tr> + <td align="right">gray67</td> + <td align="center" style="background-color:rgb(171, 171, 171)">gray67</td> + <td align="left">rgb(171, 171, 171)</td> + <td align="left">#ABABAB</td> + + </tr> + + <tr> + <td align="right">grey67</td> + <td align="center" style="background-color:rgb(171, 171, 171)">grey67</td> + <td align="left">rgb(171, 171, 171)</td> + <td align="left">#ABABAB</td> + + </tr> + + <tr> + <td align="right">DarkGray</td> + <td align="center" style="background-color:rgb(169, 169, 169)">DarkGray</td> + <td align="left">rgb(169, 169, 169)</td> + <td align="left">#A9A9A9</td> + + </tr> + + <tr> + <td align="right">DarkGrey</td> + <td align="center" style="background-color:rgb(169, 169, 169)">DarkGrey</td> + <td align="left">rgb(169, 169, 169)</td> + <td align="left">#A9A9A9</td> + + </tr> + + <tr> + <td align="right">gray66</td> + <td align="center" style="background-color:rgb(168, 168, 168)">gray66</td> + <td align="left">rgb(168, 168, 168)</td> + <td align="left">#A8A8A8</td> + + </tr> + + <tr> + <td align="right">grey66</td> + <td align="center" style="background-color:rgb(168, 168, 168)">grey66</td> + <td align="left">rgb(168, 168, 168)</td> + <td align="left">#A8A8A8</td> + + </tr> + + <tr> + <td align="right">gray65</td> + <td align="center" style="background-color:rgb(166, 166, 166)">gray65</td> + <td align="left">rgb(166, 166, 166)</td> + <td align="left">#A6A6A6</td> + + </tr> + + <tr> + <td align="right">grey65</td> + <td align="center" style="background-color:rgb(166, 166, 166)">grey65</td> + <td align="left">rgb(166, 166, 166)</td> + <td align="left">#A6A6A6</td> + + </tr> + + <tr> + <td align="right">gray64</td> + <td align="center" style="background-color:rgb(163, 163, 163)">gray64</td> + <td align="left">rgb(163, 163, 163)</td> + <td align="left">#A3A3A3</td> + + </tr> + + <tr> + <td align="right">grey64</td> + <td align="center" style="background-color:rgb(163, 163, 163)">grey64</td> + <td align="left">rgb(163, 163, 163)</td> + <td align="left">#A3A3A3</td> + + </tr> + + <tr> + <td align="right">gray63</td> + <td align="center" style="background-color:rgb(161, 161, 161)">gray63</td> + <td align="left">rgb(161, 161, 161)</td> + <td align="left">#A1A1A1</td> + + </tr> + + <tr> + <td align="right">grey63</td> + <td align="center" style="background-color:rgb(161, 161, 161)">grey63</td> + <td align="left">rgb(161, 161, 161)</td> + <td align="left">#A1A1A1</td> + + </tr> + + <tr> + <td align="right">gray62</td> + <td align="center" style="background-color:rgb(158, 158, 158)">gray62</td> + <td align="left">rgb(158, 158, 158)</td> + <td align="left">#9E9E9E</td> + + </tr> + + <tr> + <td align="right">grey62</td> + <td align="center" style="background-color:rgb(158, 158, 158)">grey62</td> + <td align="left">rgb(158, 158, 158)</td> + <td align="left">#9E9E9E</td> + + </tr> + + <tr> + <td align="right">gray61</td> + <td align="center" style="background-color:rgb(156, 156, 156)">gray61</td> + <td align="left">rgb(156, 156, 156)</td> + <td align="left">#9C9C9C</td> + + </tr> + + <tr> + <td align="right">grey61</td> + <td align="center" style="background-color:rgb(156, 156, 156)">grey61</td> + <td align="left">rgb(156, 156, 156)</td> + <td align="left">#9C9C9C</td> + + </tr> + + <tr> + <td align="right">gray60</td> + <td align="center" style="background-color:rgb(153, 153, 153)">gray60</td> + <td align="left">rgb(153, 153, 153)</td> + <td align="left">#999999</td> + + </tr> + + <tr> + <td align="right">grey60</td> + <td align="center" style="background-color:rgb(153, 153, 153)">grey60</td> + <td align="left">rgb(153, 153, 153)</td> + <td align="left">#999999</td> + + </tr> + + <tr> + <td align="right">gray59</td> + <td align="center" style="background-color:rgb(150, 150, 150)">gray59</td> + <td align="left">rgb(150, 150, 150)</td> + <td align="left">#969696</td> + + </tr> + + <tr> + <td align="right">grey59</td> + <td align="center" style="background-color:rgb(150, 150, 150)">grey59</td> + <td align="left">rgb(150, 150, 150)</td> + <td align="left">#969696</td> + + </tr> + + <tr> + <td align="right">gray58</td> + <td align="center" style="background-color:rgb(148, 148, 148)">gray58</td> + <td align="left">rgb(148, 148, 148)</td> + <td align="left">#949494</td> + + </tr> + + <tr> + <td align="right">grey58</td> + <td align="center" style="background-color:rgb(148, 148, 148)">grey58</td> + <td align="left">rgb(148, 148, 148)</td> + <td align="left">#949494</td> + + </tr> + + <tr> + <td align="right">gray57</td> + <td align="center" style="background-color:rgb(145, 145, 145)">gray57</td> + <td align="left">rgb(145, 145, 145)</td> + <td align="left">#919191</td> + + </tr> + + <tr> + <td align="right">grey57</td> + <td align="center" style="background-color:rgb(145, 145, 145)">grey57</td> + <td align="left">rgb(145, 145, 145)</td> + <td align="left">#919191</td> + + </tr> + + <tr> + <td align="right">gray56</td> + <td align="center" style="background-color:rgb(143, 143, 143)">gray56</td> + <td align="left">rgb(143, 143, 143)</td> + <td align="left">#8F8F8F</td> + + </tr> + + <tr> + <td align="right">grey56</td> + <td align="center" style="background-color:rgb(143, 143, 143)">grey56</td> + <td align="left">rgb(143, 143, 143)</td> + <td align="left">#8F8F8F</td> + + </tr> + + <tr> + <td align="right">gray55</td> + <td align="center" style="background-color:rgb(140, 140, 140)">gray55</td> + <td align="left">rgb(140, 140, 140)</td> + <td align="left">#8C8C8C</td> + + </tr> + + <tr> + <td align="right">grey55</td> + <td align="center" style="background-color:rgb(140, 140, 140)">grey55</td> + <td align="left">rgb(140, 140, 140)</td> + <td align="left">#8C8C8C</td> + + </tr> + + <tr> + <td align="right">gray54</td> + <td align="center" style="background-color:rgb(138, 138, 138)">gray54</td> + <td align="left">rgb(138, 138, 138)</td> + <td align="left">#8A8A8A</td> + + </tr> + + <tr> + <td align="right">grey54</td> + <td align="center" style="background-color:rgb(138, 138, 138)">grey54</td> + <td align="left">rgb(138, 138, 138)</td> + <td align="left">#8A8A8A</td> + + </tr> + + <tr> + <td align="right">gray53</td> + <td align="center" style="background-color:rgb(135, 135, 135)">gray53</td> + <td align="left">rgb(135, 135, 135)</td> + <td align="left">#878787</td> + + </tr> + + <tr> + <td align="right">grey53</td> + <td align="center" style="background-color:rgb(135, 135, 135)">grey53</td> + <td align="left">rgb(135, 135, 135)</td> + <td align="left">#878787</td> + + </tr> + + <tr> + <td align="right">gray52</td> + <td align="center" style="background-color:rgb(133, 133, 133)">gray52</td> + <td align="left">rgb(133, 133, 133)</td> + <td align="left">#858585</td> + + </tr> + + <tr> + <td align="right">grey52</td> + <td align="center" style="background-color:rgb(133, 133, 133)">grey52</td> + <td align="left">rgb(133, 133, 133)</td> + <td align="left">#858585</td> + + </tr> + + <tr> + <td align="right">gray51</td> + <td align="center" style="background-color:rgb(130, 130, 130)">gray51</td> + <td align="left">rgb(130, 130, 130)</td> + <td align="left">#828282</td> + + </tr> + + <tr> + <td align="right">grey51</td> + <td align="center" style="background-color:rgb(130, 130, 130)">grey51</td> + <td align="left">rgb(130, 130, 130)</td> + <td align="left">#828282</td> + + </tr> + + <tr> + <td align="right">fractal</td> + <td align="center" style="background-color:rgb(128, 128, 128)">fractal</td> + <td align="left">rgb(128, 128, 128)</td> + <td align="left">#808080</td> + + </tr> + + <tr> + <td align="right">gray50</td> + <td align="center" style="background-color:rgb(127, 127, 127)">gray50</td> + <td align="left">rgb(127, 127, 127)</td> + <td align="left">#7F7F7F</td> + + </tr> + + <tr> + <td align="right">grey50</td> + <td align="center" style="background-color:rgb(127, 127, 127)">grey50</td> + <td align="left">rgb(127, 127, 127)</td> + <td align="left">#7F7F7F</td> + + </tr> + + <tr> + <td align="right">gray</td> + <td align="center" style="background-color:rgb(126, 126, 126)">gray</td> + <td align="left">rgb(126, 126, 126)</td> + <td align="left">#7E7E7E</td> + + </tr> + + <tr> + <td align="right">gray49</td> + <td align="center" style="background-color:rgb(125, 125, 125)">gray49</td> + <td align="left">rgb(125, 125, 125)</td> + <td align="left">#7D7D7D</td> + + </tr> + + <tr> + <td align="right">grey49</td> + <td align="center" style="background-color:rgb(125, 125, 125)">grey49</td> + <td align="left">rgb(125, 125, 125)</td> + <td align="left">#7D7D7D</td> + + </tr> + + <tr> + <td align="right">gray48</td> + <td align="center" style="background-color:rgb(122, 122, 122)">gray48</td> + <td align="left">rgb(122, 122, 122)</td> + <td align="left">#7A7A7A</td> + + </tr> + + <tr> + <td align="right">grey48</td> + <td align="center" style="background-color:rgb(122, 122, 122)">grey48</td> + <td align="left">rgb(122, 122, 122)</td> + <td align="left">#7A7A7A</td> + + </tr> + + <tr> + <td align="right">gray47</td> + <td align="center" style="background-color:rgb(120, 120, 120)">gray47</td> + <td align="left">rgb(120, 120, 120)</td> + <td align="left">#787878</td> + + </tr> + + <tr> + <td align="right">grey47</td> + <td align="center" style="background-color:rgb(120, 120, 120)">grey47</td> + <td align="left">rgb(120, 120, 120)</td> + <td align="left">#787878</td> + + </tr> + + <tr> + <td align="right">gray46</td> + <td align="center" style="background-color:rgb(117, 117, 117)">gray46</td> + <td align="left">rgb(117, 117, 117)</td> + <td align="left">#757575</td> + + </tr> + + <tr> + <td align="right">grey46</td> + <td align="center" style="background-color:rgb(117, 117, 117)">grey46</td> + <td align="left">rgb(117, 117, 117)</td> + <td align="left">#757575</td> + + </tr> + + <tr> + <td align="right">gray45</td> + <td align="center" style="background-color:rgb(115, 115, 115)">gray45</td> + <td align="left">rgb(115, 115, 115)</td> + <td align="left">#737373</td> + + </tr> + + <tr> + <td align="right">grey45</td> + <td align="center" style="background-color:rgb(115, 115, 115)">grey45</td> + <td align="left">rgb(115, 115, 115)</td> + <td align="left">#737373</td> + + </tr> + + <tr> + <td align="right">gray44</td> + <td align="center" style="background-color:rgb(112, 112, 112)">gray44</td> + <td align="left">rgb(112, 112, 112)</td> + <td align="left">#707070</td> + + </tr> + + <tr> + <td align="right">grey44</td> + <td align="center" style="background-color:rgb(112, 112, 112)">grey44</td> + <td align="left">rgb(112, 112, 112)</td> + <td align="left">#707070</td> + + </tr> + + <tr> + <td align="right">gray43</td> + <td align="center" style="background-color:rgb(110, 110, 110)">gray43</td> + <td align="left">rgb(110, 110, 110)</td> + <td align="left">#6E6E6E</td> + + </tr> + + <tr> + <td align="right">grey43</td> + <td align="center" style="background-color:rgb(110, 110, 110)">grey43</td> + <td align="left">rgb(110, 110, 110)</td> + <td align="left">#6E6E6E</td> + + </tr> + + <tr> + <td align="right">gray42</td> + <td align="center" style="background-color:rgb(107, 107, 107)">gray42</td> + <td align="left">rgb(107, 107, 107)</td> + <td align="left">#6B6B6B</td> + + </tr> + + <tr> + <td align="right">grey42</td> + <td align="center" style="background-color:rgb(107, 107, 107)">grey42</td> + <td align="left">rgb(107, 107, 107)</td> + <td align="left">#6B6B6B</td> + + </tr> + + <tr> + <td align="right">DimGray</td> + <td align="center" style="background-color:rgb(105, 105, 105)">DimGray</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">DimGrey</td> + <td align="center" style="background-color:rgb(105, 105, 105)">DimGrey</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">gray41</td> + <td align="center" style="background-color:rgb(105, 105, 105)">gray41</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">grey41</td> + <td align="center" style="background-color:rgb(105, 105, 105)">grey41</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">gray40</td> + <td align="center" style="background-color:rgb(102, 102, 102)">gray40</td> + <td align="left">rgb(102, 102, 102)</td> + <td align="left">#666666</td> + + </tr> + + <tr> + <td align="right">grey40</td> + <td align="center" style="background-color:rgb(102, 102, 102)">grey40</td> + <td align="left">rgb(102, 102, 102)</td> + <td align="left">#666666</td> + + </tr> + + <tr> + <td align="right">gray39</td> + <td align="center" style="background-color:rgb( 99, 99, 99)">gray39</td> + <td align="left">rgb( 99, 99, 99)</td> + <td align="left">#636363</td> + + </tr> + + <tr> + <td align="right">grey39</td> + <td align="center" style="background-color:rgb( 99, 99, 99)">grey39</td> + <td align="left">rgb( 99, 99, 99)</td> + <td align="left">#636363</td> + + </tr> + + <tr> + <td align="right">gray38</td> + <td align="center" style="background-color:rgb( 97, 97, 97)">gray38</td> + <td align="left">rgb( 97, 97, 97)</td> + <td align="left">#616161</td> + + </tr> + + <tr> + <td align="right">grey38</td> + <td align="center" style="background-color:rgb( 97, 97, 97)">grey38</td> + <td align="left">rgb( 97, 97, 97)</td> + <td align="left">#616161</td> + + </tr> + + <tr> + <td align="right">gray37</td> + <td align="center" style="background-color:rgb( 94, 94, 94)">gray37</td> + <td align="left">rgb( 94, 94, 94)</td> + <td align="left">#5E5E5E</td> + + </tr> + + <tr> + <td align="right">grey37</td> + <td align="center" style="background-color:rgb( 94, 94, 94)">grey37</td> + <td align="left">rgb( 94, 94, 94)</td> + <td align="left">#5E5E5E</td> + + </tr> + + <tr> + <td align="right">gray36</td> + <td align="center" style="background-color:rgb( 92, 92, 92)">gray36</td> + <td align="left">rgb( 92, 92, 92)</td> + <td align="left">#5C5C5C</td> + + </tr> + + <tr> + <td align="right">grey36</td> + <td align="center" style="background-color:rgb( 92, 92, 92)">grey36</td> + <td align="left">rgb( 92, 92, 92)</td> + <td align="left">#5C5C5C</td> + + </tr> + + <tr> + <td align="right">gray35</td> + <td align="center" style="background-color:rgb( 89, 89, 89)">gray35</td> + <td align="left">rgb( 89, 89, 89)</td> + <td align="left">#595959</td> + + </tr> + + <tr> + <td align="right">grey35</td> + <td align="center" style="background-color:rgb( 89, 89, 89)">grey35</td> + <td align="left">rgb( 89, 89, 89)</td> + <td align="left">#595959</td> + + </tr> + + <tr> + <td align="right">gray34</td> + <td align="center" style="background-color:rgb( 87, 87, 87)">gray34</td> + <td align="left">rgb( 87, 87, 87)</td> + <td align="left">#575757</td> + + </tr> + + <tr> + <td align="right">grey34</td> + <td align="center" style="background-color:rgb( 87, 87, 87)">grey34</td> + <td align="left">rgb( 87, 87, 87)</td> + <td align="left">#575757</td> + + </tr> + + <tr> + <td align="right">gray33</td> + <td align="center" style="background-color:rgb( 84, 84, 84)">gray33</td> + <td align="left">rgb( 84, 84, 84)</td> + <td align="left">#545454</td> + + </tr> + + <tr> + <td align="right">grey33</td> + <td align="center" style="background-color:rgb( 84, 84, 84)">grey33</td> + <td align="left">rgb( 84, 84, 84)</td> + <td align="left">#545454</td> + + </tr> + + <tr> + <td align="right">gray32</td> + <td align="center" style="background-color:rgb( 82, 82, 82)">gray32</td> + <td align="left">rgb( 82, 82, 82)</td> + <td align="left">#525252</td> + + </tr> + + <tr> + <td align="right">grey32</td> + <td align="center" style="background-color:rgb( 82, 82, 82)">grey32</td> + <td align="left">rgb( 82, 82, 82)</td> + <td align="left">#525252</td> + + </tr> + + <tr> + <td align="right">gray31</td> + <td align="center" style="background-color:rgb( 79, 79, 79)">gray31</td> + <td align="left">rgb( 79, 79, 79)</td> + <td align="left">#4F4F4F</td> + + </tr> + + <tr> + <td align="right">grey31</td> + <td align="center" style="background-color:rgb( 79, 79, 79)">grey31</td> + <td align="left">rgb( 79, 79, 79)</td> + <td align="left">#4F4F4F</td> + + </tr> + + <tr> + <td align="right">gray30</td> + <td align="center" style="background-color:rgb( 77, 77, 77)">gray30</td> + <td align="left">rgb( 77, 77, 77)</td> + <td align="left">#4D4D4D</td> + + </tr> + + <tr> + <td align="right">grey30</td> + <td align="center" style="background-color:rgb( 77, 77, 77)">grey30</td> + <td align="left">rgb( 77, 77, 77)</td> + <td align="left">#4D4D4D</td> + + </tr> + + <tr> + <td align="right">gray29</td> + <td align="center" style="background-color:rgb( 74, 74, 74)">gray29</td> + <td align="left">rgb( 74, 74, 74)</td> + <td align="left">#4A4A4A</td> + + </tr> + + <tr> + <td align="right">grey29</td> + <td align="center" style="background-color:rgb( 74, 74, 74)">grey29</td> + <td align="left">rgb( 74, 74, 74)</td> + <td align="left">#4A4A4A</td> + + </tr> + + <tr> + <td align="right">gray28</td> + <td align="center" style="background-color:rgb( 71, 71, 71)">gray28</td> + <td align="left">rgb( 71, 71, 71)</td> + <td align="left">#474747</td> + + </tr> + + <tr> + <td align="right">grey28</td> + <td align="center" style="background-color:rgb( 71, 71, 71)">grey28</td> + <td align="left">rgb( 71, 71, 71)</td> + <td align="left">#474747</td> + + </tr> + + <tr> + <td align="right">gray27</td> + <td align="center" style="background-color:rgb( 69, 69, 69)">gray27</td> + <td align="left">rgb( 69, 69, 69)</td> + <td align="left">#454545</td> + + </tr> + + <tr> + <td align="right">grey27</td> + <td align="center" style="background-color:rgb( 69, 69, 69)">grey27</td> + <td align="left">rgb( 69, 69, 69)</td> + <td align="left">#454545</td> + + </tr> + + <tr> + <td align="right">gray26</td> + <td align="center" style="background-color:rgb( 66, 66, 66)">gray26</td> + <td align="left">rgb( 66, 66, 66)</td> + <td align="left">#424242</td> + + </tr> + + <tr> + <td align="right">grey26</td> + <td align="center" style="background-color:rgb( 66, 66, 66)">grey26</td> + <td align="left">rgb( 66, 66, 66)</td> + <td align="left">#424242</td> + + </tr> + + <tr> + <td align="right">gray25</td> + <td align="center" style="background-color:rgb( 64, 64, 64)">gray25</td> + <td align="left">rgb( 64, 64, 64)</td> + <td align="left">#404040</td> + + </tr> + + <tr> + <td align="right">grey25</td> + <td align="center" style="background-color:rgb( 64, 64, 64)">grey25</td> + <td align="left">rgb( 64, 64, 64)</td> + <td align="left">#404040</td> + + </tr> + + <tr> + <td align="right">gray24</td> + <td align="center" style="background-color:rgb( 61, 61, 61)">gray24</td> + <td align="left">rgb( 61, 61, 61)</td> + <td align="left">#3D3D3D</td> + + </tr> + + <tr> + <td align="right">grey24</td> + <td align="center" style="background-color:rgb( 61, 61, 61)">grey24</td> + <td align="left">rgb( 61, 61, 61)</td> + <td align="left">#3D3D3D</td> + + </tr> + + <tr> + <td align="right">gray23</td> + <td align="center" style="background-color:rgb( 59, 59, 59)">gray23</td> + <td align="left">rgb( 59, 59, 59)</td> + <td align="left">#3B3B3B</td> + + </tr> + + <tr> + <td align="right">grey23</td> + <td align="center" style="background-color:rgb( 59, 59, 59)">grey23</td> + <td align="left">rgb( 59, 59, 59)</td> + <td align="left">#3B3B3B</td> + + </tr> + + <tr> + <td align="right">gray22</td> + <td align="center" style="background-color:rgb( 56, 56, 56)">gray22</td> + <td align="left">rgb( 56, 56, 56)</td> + <td align="left">#383838</td> + + </tr> + + <tr> + <td align="right">grey22</td> + <td align="center" style="background-color:rgb( 56, 56, 56)">grey22</td> + <td align="left">rgb( 56, 56, 56)</td> + <td align="left">#383838</td> + + </tr> + + <tr> + <td align="right">gray21</td> + <td align="center" style="background-color:rgb( 54, 54, 54)">gray21</td> + <td align="left">rgb( 54, 54, 54)</td> + <td align="left">#363636</td> + + </tr> + + <tr> + <td align="right">grey21</td> + <td align="center" style="background-color:rgb( 54, 54, 54)">grey21</td> + <td align="left">rgb( 54, 54, 54)</td> + <td align="left">#363636</td> + + </tr> + + <tr> + <td align="right">gray20</td> + <td align="center" style="background-color:rgb( 51, 51, 51)">gray20</td> + <td align="left">rgb( 51, 51, 51)</td> + <td align="left">#333333</td> + + </tr> + + <tr> + <td align="right">grey20</td> + <td align="center" style="background-color:rgb( 51, 51, 51)">grey20</td> + <td align="left">rgb( 51, 51, 51)</td> + <td align="left">#333333</td> + + </tr> + + <tr> + <td align="right">gray19</td> + <td align="center" style="background-color:rgb( 48, 48, 48)">gray19</td> + <td align="left">rgb( 48, 48, 48)</td> + <td align="left">#303030</td> + + </tr> + + <tr> + <td align="right">grey19</td> + <td align="center" style="background-color:rgb( 48, 48, 48)">grey19</td> + <td align="left">rgb( 48, 48, 48)</td> + <td align="left">#303030</td> + + </tr> + + <tr> + <td align="right">gray18</td> + <td align="center" style="background-color:rgb( 46, 46, 46)">gray18</td> + <td align="left">rgb( 46, 46, 46)</td> + <td align="left">#2E2E2E</td> + + </tr> + + <tr> + <td align="right">grey18</td> + <td align="center" style="background-color:rgb( 46, 46, 46)">grey18</td> + <td align="left">rgb( 46, 46, 46)</td> + <td align="left">#2E2E2E</td> + + </tr> + + <tr> + <td align="right">gray17</td> + <td align="center" style="background-color:rgb( 43, 43, 43)">gray17</td> + <td align="left">rgb( 43, 43, 43)</td> + <td align="left">#2B2B2B</td> + + </tr> + + <tr> + <td align="right">grey17</td> + <td align="center" style="background-color:rgb( 43, 43, 43)">grey17</td> + <td align="left">rgb( 43, 43, 43)</td> + <td align="left">#2B2B2B</td> + + </tr> + + <tr> + <td align="right">gray16</td> + <td align="center" style="background-color:rgb( 41, 41, 41)">gray16</td> + <td align="left">rgb( 41, 41, 41)</td> + <td align="left">#292929</td> + + </tr> + + <tr> + <td align="right">grey16</td> + <td align="center" style="background-color:rgb( 41, 41, 41)">grey16</td> + <td align="left">rgb( 41, 41, 41)</td> + <td align="left">#292929</td> + + </tr> + + <tr> + <td align="right">gray15</td> + <td align="center" style="background-color:rgb( 38, 38, 38)">gray15</td> + <td align="left">rgb( 38, 38, 38)</td> + <td align="left">#262626</td> + + </tr> + + <tr> + <td align="right">grey15</td> + <td align="center" style="background-color:rgb( 38, 38, 38)">grey15</td> + <td align="left">rgb( 38, 38, 38)</td> + <td align="left">#262626</td> + + </tr> + + <tr> + <td align="right">gray14</td> + <td align="center" style="background-color:rgb( 36, 36, 36)">gray14</td> + <td align="left">rgb( 36, 36, 36)</td> + <td align="left">#242424</td> + + </tr> + + <tr> + <td align="right">grey14</td> + <td align="center" style="background-color:rgb( 36, 36, 36)">grey14</td> + <td align="left">rgb( 36, 36, 36)</td> + <td align="left">#242424</td> + + </tr> + + <tr> + <td align="right">gray13</td> + <td align="center" style="background-color:rgb( 33, 33, 33)">gray13</td> + <td align="left">rgb( 33, 33, 33)</td> + <td align="left">#212121</td> + + </tr> + + <tr> + <td align="right">grey13</td> + <td align="center" style="background-color:rgb( 33, 33, 33)">grey13</td> + <td align="left">rgb( 33, 33, 33)</td> + <td align="left">#212121</td> + + </tr> + + <tr> + <td align="right">gray12</td> + <td align="center" style="background-color:rgb( 31, 31, 31)">gray12</td> + <td align="left">rgb( 31, 31, 31)</td> + <td align="left">#1F1F1F</td> + + </tr> + + <tr> + <td align="right">grey12</td> + <td align="center" style="background-color:rgb( 31, 31, 31)">grey12</td> + <td align="left">rgb( 31, 31, 31)</td> + <td align="left">#1F1F1F</td> + + </tr> + + <tr> + <td align="right">gray11</td> + <td align="center" style="background-color:rgb( 28, 28, 28)">gray11</td> + <td align="left">rgb( 28, 28, 28)</td> + <td align="left">#1C1C1C</td> + + </tr> + + <tr> + <td align="right">grey11</td> + <td align="center" style="background-color:rgb( 28, 28, 28)">grey11</td> + <td align="left">rgb( 28, 28, 28)</td> + <td align="left">#1C1C1C</td> + + </tr> + + <tr> + <td align="right">gray10</td> + <td align="center" style="background-color:rgb( 26, 26, 26)">gray10</td> + <td align="left">rgb( 26, 26, 26)</td> + <td align="left">#1A1A1A</td> + + </tr> + + <tr> + <td align="right">grey10</td> + <td align="center" style="background-color:rgb( 26, 26, 26)">grey10</td> + <td align="left">rgb( 26, 26, 26)</td> + <td align="left">#1A1A1A</td> + + </tr> + + <tr> + <td align="right">gray9</td> + <td align="center" style="background-color:rgb( 23, 23, 23)">gray9</td> + <td align="left">rgb( 23, 23, 23)</td> + <td align="left">#171717</td> + + </tr> + + <tr> + <td align="right">grey9</td> + <td align="center" style="background-color:rgb( 23, 23, 23)">grey9</td> + <td align="left">rgb( 23, 23, 23)</td> + <td align="left">#171717</td> + + </tr> + + <tr> + <td align="right">gray8</td> + <td align="center" style="background-color:rgb( 20, 20, 20)">gray8</td> + <td align="left">rgb( 20, 20, 20)</td> + <td align="left">#141414</td> + + </tr> + + <tr> + <td align="right">grey8</td> + <td align="center" style="background-color:rgb( 20, 20, 20)">grey8</td> + <td align="left">rgb( 20, 20, 20)</td> + <td align="left">#141414</td> + + </tr> + + <tr> + <td align="right">gray7</td> + <td align="center" style="background-color:rgb( 18, 18, 18)">gray7</td> + <td align="left">rgb( 18, 18, 18)</td> + <td align="left">#121212</td> + + </tr> + + <tr> + <td align="right">grey7</td> + <td align="center" style="background-color:rgb( 18, 18, 18)">grey7</td> + <td align="left">rgb( 18, 18, 18)</td> + <td align="left">#121212</td> + + </tr> + + <tr> + <td align="right">gray6</td> + <td align="center" style="background-color:rgb( 15, 15, 15)">gray6</td> + <td align="left">rgb( 15, 15, 15)</td> + <td align="left">#0F0F0F</td> + + </tr> + + <tr> + <td align="right">grey6</td> + <td align="center" style="background-color:rgb( 15, 15, 15)">grey6</td> + <td align="left">rgb( 15, 15, 15)</td> + <td align="left">#0F0F0F</td> + + </tr> + + <tr> + <td align="right">gray5</td> + <td align="center" style="background-color:rgb( 13, 13, 13)">gray5</td> + <td align="left">rgb( 13, 13, 13)</td> + <td align="left">#0D0D0D</td> + + </tr> + + <tr> + <td align="right">grey5</td> + <td align="center" style="background-color:rgb( 13, 13, 13)">grey5</td> + <td align="left">rgb( 13, 13, 13)</td> + <td align="left">#0D0D0D</td> + + </tr> + + <tr> + <td align="right">gray4</td> + <td align="center" style="background-color:rgb( 10, 10, 10)">gray4</td> + <td align="left">rgb( 10, 10, 10)</td> + <td align="left">#0A0A0A</td> + + </tr> + + <tr> + <td align="right">grey4</td> + <td align="center" style="background-color:rgb( 10, 10, 10)">grey4</td> + <td align="left">rgb( 10, 10, 10)</td> + <td align="left">#0A0A0A</td> + + </tr> + + <tr> + <td align="right">gray3</td> + <td align="center" style="background-color:rgb( 8, 8, 8)">gray3</td> + <td align="left">rgb( 8, 8, 8)</td> + <td align="left">#080808</td> + + </tr> + + <tr> + <td align="right">grey3</td> + <td align="center" style="background-color:rgb( 8, 8, 8)">grey3</td> + <td align="left">rgb( 8, 8, 8)</td> + <td align="left">#080808</td> + + </tr> + + <tr> + <td align="right">gray2</td> + <td align="center" style="background-color:rgb( 5, 5, 5)">gray2</td> + <td align="left">rgb( 5, 5, 5)</td> + <td align="left">#050505</td> + + </tr> + + <tr> + <td align="right">grey2</td> + <td align="center" style="background-color:rgb( 5, 5, 5)">grey2</td> + <td align="left">rgb( 5, 5, 5)</td> + <td align="left">#050505</td> + + </tr> + + <tr> + <td align="right">gray1</td> + <td align="center" style="background-color:rgb( 3, 3, 3)">gray1</td> + <td align="left">rgb( 3, 3, 3)</td> + <td align="left">#030303</td> + + </tr> + + <tr> + <td align="right">grey1</td> + <td align="center" style="background-color:rgb( 3, 3, 3)">grey1</td> + <td align="left">rgb( 3, 3, 3)</td> + <td align="left">#030303</td> + + </tr> + + <tr> + <td align="right">black</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">black</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">gray0</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">gray0</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">grey0</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">grey0</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">opaque</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">opaque</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">none</td> + <td align="center" style="background-color:white">none</td> + <td align="left">rgba( 0, 0, 0, 0.0)</td> + <td align="left">#00000000</td> + + </tr> + + <tr> + <td align="right">transparent</td> + <td align="center" style="background-color:white">transparent</td> + <td align="left">rgba( 0, 0, 0, 0.0)</td> + <td align="left">#00000000</td> + + </tr> + + </tbody> +</table> + +</div> + +</div> + +</body></html> diff --git a/frontend/imgrid/colors/js/wrkshp/hexes b/frontend/imgrid/colors/js/wrkshp/hexes new file mode 100755 index 0000000..dcc3bda --- /dev/null +++ b/frontend/imgrid/colors/js/wrkshp/hexes @@ -0,0 +1 @@ +hexlist = ['#FFFAFA', '#FFFAFA', '#EEE9E9', '#FFC1C1', '#EEB4B4', '#CDC9C9', '#F08080', '#FF6A6A', '#CD9B9B', '#EE6363', '#BC8F8F', '#FF4040', '#FF3030', '#EE3B3B', '#CD5C5C', '#CD5555', '#EE2C2C', '#8B8989', '#CD3333', '#FF0000', '#FF0000', '#8B6969', '#CD2626', '#EE0000', '#B22222', '#A52A2A', '#CD0000', '#8B3A3A', '#8B2323', '#8B1A1A', '#8B0000', '#8B0000', '#800000', '#FFAEB9', '#CD8C95', '#8B5F65', '#EEA2AD', '#FFB6C1', '#FFC0CB', '#DC143C', '#FFB5C5', '#EEA9B8', '#CD919E', '#8B636C', '#8B475D', '#DB7093', '#EE799F', '#FF82AB', '#CD6889', '#FFF0F5', '#FFF0F5', '#CDC1C5', '#EEE0E5', '#8B8386', '#B03060', '#CD6090', '#CD3278', '#FF3E96', '#EE3A8C', '#8B2252', '#EE6AA7', '#FF6EB4', '#8B3A62', '#FF69B4', '#FF1493', '#FF1493', '#EE1289', '#CD1076', '#8B0A50', '#FF34B3', '#EE30A7', '#CD2990', '#8B1C62', '#C71585', '#D02090', '#EE7AE9', '#DA70D6', '#FF83FA', '#CD69C9', '#8B4789', '#FFE1FF', '#EED2EE', '#FFBBFF', '#EEAEEE', '#D8BFD8', '#CDB5CD', '#DDA0DD', '#EE82EE', '#CD96CD', '#8B7B8B', '#FF00FF', '#FF00FF', '#FF00FF', '#8B668B', '#EE00EE', '#CD00CD', '#8B008B', '#8B008B', '#800080', '#BA55D3', '#E066FF', '#D15FEE', '#B452CD', '#7A378B', '#9400D3', '#9932CC', '#BF3EFF', '#9A32CD', '#B23AEE', '#68228B', '#A020F0', '#4B0082', '#8A2BE2', '#912CEE', '#7D26CD', '#551A8B', '#9B30FF', '#9370DB', '#AB82FF', '#9F79EE', '#8968CD', '#5D478B', '#483D8B', '#8470FF', '#7B68EE', '#6A5ACD', '#836FFF', '#7A67EE', '#6959CD', '#473C8B', '#F8F8FF', '#E6E6FA', '#0000FF', '#0000FF', '#0000EE', '#0000CD', '#0000CD', '#00008B', '#00008B', '#191970', '#000080', '#000080', '#4169E1', '#4876FF', '#436EEE', '#3A5FCD', '#27408B', '#6495ED', '#B0C4DE', '#CAE1FF', '#BCD2EE', '#A2B5CD', '#6E7B8B', '#6C7B8B', '#C6E2FF', '#B9D3EE', '#9FB6CD', '#778899', '#778899', '#708090', '#708090', '#1E90FF', '#1E90FF', '#1C86EE', '#104E8B', '#1874CD', '#F0F8FF', '#36648B', '#4682B4', '#63B8FF', '#5CACEE', '#4F94CD', '#4A708B', '#87CEFF', '#7EC0EE', '#6CA6CD', '#87CEFA', '#607B8B', '#B0E2FF', '#A4D3EE', '#8DB6CD', '#87CEEB', '#9AC0CD', '#00BFFF', '#00BFFF', '#00B2EE', '#00688B', '#009ACD', '#BFEFFF', '#B2DFEE', '#ADD8E6', '#68838B', '#B0E0E6', '#98F5FF', '#8EE5EE', '#7AC5CD', '#53868B', '#00F5FF', '#00E5EE', '#00C5CD', '#00868B', '#5F9EA0', '#5F9EA0', '#00CED1', '#F0FFFF', '#F0FFFF', '#E0FFFF', '#E0FFFF', '#E0EEEE', '#D1EEEE', '#BBFFFF', '#AFEEEE', '#AEEEEE', '#97FFFF', '#C1CDCD', '#B4CDCD', '#8DEEEE', '#96CDCD', '#79CDCD', '#838B8B', '#7A8B8B', '#00FFFF', '#00FFFF', '#00FFFF', '#668B8B', '#00EEEE', '#528B8B', '#00CDCD', '#008B8B', '#008B8B', '#008080', '#2F4F4F', '#2F4F4F', '#48D1CC', '#20B2AA', '#40E0D0', '#458B74', '#7FFFD4', '#7FFFD4', '#76EEC6', '#66CDAA', '#66CDAA', '#00FA9A', '#F5FFFA', '#00FF7F', '#00FF7F', '#00EE76', '#00CD66', '#008B45', '#3CB371', '#2E8B57', '#43CD80', '#54FF9F', '#2E8B57', '#4EEE94', '#32814B', '#F0FFF0', '#F0FFF0', '#E0EEE0', '#C1FFC1', '#B4EEB4', '#9AFF9A', '#98FB98', '#C1CDC1', '#90EE90', '#90EE90', '#9BCD9B', '#8FBC8F', '#7CCD7C', '#838B83', '#00FF00', '#00FF00', '#32CD32', '#698B69', '#00EE00', '#548B54', '#00CD00', '#228B22', '#008B00', '#008000', '#006400', '#7CFC00', '#7FFF00', '#7FFF00', '#76EE00', '#66CD00', '#458B00', '#ADFF2F', '#A2CD5A', '#CAFF70', '#BCEE68', '#6E8B3D', '#556B2F', '#6B8E23', '#C0FF3E', '#B3EE3A', '#9ACD32', '#9ACD32', '#698B22', '#FFFFF0', '#FFFFF0', '#FFFFE0', '#FFFFE0', '#F5F5DC', '#EEEEE0', '#FAFAD2', '#EEEED1', '#CDCDC1', '#CDCDB4', '#8B8B83', '#8B8B7A', '#FFFF00', '#FFFF00', '#EEEE00', '#CDCD00', '#8B8B00', '#808000', '#BDB76B', '#EEE685', '#8B8970', '#FFF68F', '#CDC673', '#8B864E', '#EEE8AA', '#FFFACD', '#FFFACD', '#F0E68C', '#CDC9A5', '#EEE9BF', '#D1C166', '#8B8878', '#FFD700', '#FFD700', '#EEC900', '#CDAD00', '#8B7500', '#EEDD82', '#8B814C', '#FFEC8B', '#CDBE70', '#EEDC82', '#CDC8B1', '#EEE8CD', '#FFF8DC', '#FFF8DC', '#DAA520', '#FFC125', '#EEB422', '#CD9B1D', '#8B6914', '#B8860B', '#FFB90F', '#EEAD0E', '#CD950C', '#8B6508', '#FFFAF0', '#EED8AE', '#FDF5E6', '#F5DEB3', '#FFE7BA', '#CDBA96', '#FFA500', '#FFA500', '#EE9A00', '#CD8500', '#8B5A00', '#8B7E66', '#FFE4B5', '#FFEFD5', '#CDB38B', '#FFEBCD', '#FFDEAD', '#FFDEAD', '#EECFA1', '#8B795E', '#8B8378', '#FAEBD7', '#D2B48C', '#8B7D6B', '#DEB887', '#EEDFCC', '#FFD39B', '#CDAA7D', '#EEC591', '#FFEFDB', '#8B7355', '#CDC0B0', '#FF8C00', '#EED5B7', '#FFE4C4', '#FFE4C4', '#CDB79E', '#FF7F00', '#FAF0E6', '#EE7600', '#CD6600', '#8B4500', '#CD853F', '#FFA54F', '#EE9A49', '#CD853F', '#8B5A2B', '#FFDAB9', '#FFDAB9', '#8B7765', '#EECBAD', '#CDAF95', '#F4A460', '#8B8682', '#EEE5DE', '#CDC5BF', '#D2691E', '#FF7F24', '#EE7621', '#CD661D', '#8B4513', '#8B4513', '#FFF5EE', '#FFF5EE', '#8B4726', '#A0522D', '#FF8247', '#EE7942', '#CD6839', '#CD8162', '#FFA07A', '#FFA07A', '#8B5742', '#EE9572', '#FF7F50', '#FF4500', '#FF4500', '#EE4000', '#CD3700', '#8B2500', '#E9967A', '#FF8C69', '#EE8262', '#CD7054', '#8B4C39', '#FF7256', '#EE6A50', '#CD5B45', '#8B3E2F', '#8B3626', '#FF6347', '#FF6347', '#EE5C42', '#CD4F39', '#8B7D7B', '#EED5D2', '#FFE4E1', '#FFE4E1', '#FA8072', '#CDB7B5', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FCFCFC', '#FCFCFC', '#FAFAFA', '#FAFAFA', '#F7F7F7', '#F7F7F7', '#F5F5F5', '#F5F5F5', '#F5F5F5', '#F2F2F2', '#F2F2F2', '#F0F0F0', '#F0F0F0', '#EDEDED', '#EDEDED', '#EBEBEB', '#EBEBEB', '#E8E8E8', '#E8E8E8', '#E5E5E5', '#E5E5E5', '#E3E3E3', '#E3E3E3', '#E0E0E0', '#E0E0E0', '#DEDEDE', '#DEDEDE', '#DCDCDC', '#DBDBDB', '#DBDBDB', '#D9D9D9', '#D9D9D9', '#D6D6D6', '#D6D6D6', '#D4D4D4', '#D4D4D4', '#D3D3D3', '#D3D3D3', '#D1D1D1', '#D1D1D1', '#CFCFCF', '#CFCFCF', '#CCCCCC', '#CCCCCC', '#C9C9C9', '#C9C9C9', '#C7C7C7', '#C7C7C7', '#C4C4C4', '#C4C4C4', '#C2C2C2', '#C2C2C2', '#C0C0C0', '#BFBFBF', '#BFBFBF', '#BDBDBD', '#BDBDBD', '#BABABA', '#BABABA', '#B8B8B8', '#B8B8B8', '#B5B5B5', '#B5B5B5', '#B3B3B3', '#B3B3B3', '#B0B0B0', '#B0B0B0', '#ADADAD', '#ADADAD', '#ABABAB', '#ABABAB', '#A9A9A9', '#A9A9A9', '#A8A8A8', '#A8A8A8', '#A6A6A6', '#A6A6A6', '#A3A3A3', '#A3A3A3', '#A1A1A1', '#A1A1A1', '#9E9E9E', '#9E9E9E', '#9C9C9C', '#9C9C9C', '#999999', '#999999', '#969696', '#969696', '#949494', '#949494', '#919191', '#919191', '#8F8F8F', '#8F8F8F', '#8C8C8C', '#8C8C8C', '#8A8A8A', '#8A8A8A', '#878787', '#878787', '#858585', '#858585', '#828282', '#828282', '#808080', '#7F7F7F', '#7F7F7F', '#7E7E7E', '#7D7D7D', '#7D7D7D', '#7A7A7A', '#7A7A7A', '#787878', '#787878', '#757575', '#757575', '#737373', '#737373', '#707070', '#707070', '#6E6E6E', '#6E6E6E', '#6B6B6B', '#6B6B6B', '#696969', '#696969', '#696969', '#696969', '#666666', '#666666', '#636363', '#636363', '#616161', '#616161', '#5E5E5E', '#5E5E5E', '#5C5C5C', '#5C5C5C', '#595959', '#595959', '#575757', '#575757', '#545454', '#545454', '#525252', '#525252', '#4F4F4F', '#4F4F4F', '#4D4D4D', '#4D4D4D', '#4A4A4A', '#4A4A4A', '#474747', '#474747', '#454545', '#454545', '#424242', '#424242', '#404040', '#404040', '#3D3D3D', '#3D3D3D', '#3B3B3B', '#3B3B3B', '#383838', '#383838', '#363636', '#363636', '#333333', '#333333', '#303030', '#303030', '#2E2E2E', '#2E2E2E', '#2B2B2B', '#2B2B2B', '#292929', '#292929', '#262626', '#262626', '#242424', '#242424', '#212121', '#212121', '#1F1F1F', '#1F1F1F', '#1C1C1C', '#1C1C1C', '#1A1A1A', '#1A1A1A', '#171717', '#171717', '#141414', '#141414', '#121212', '#121212', '#0F0F0F', '#0F0F0F', '#0D0D0D', '#0D0D0D', '#0A0A0A', '#0A0A0A', '#080808', '#080808', '#050505', '#050505', '#030303', '#030303', '#000000', '#000000', '#000000', '#000000', '#000000', '#000000']
\ No newline at end of file diff --git a/frontend/imgrid/colors/js/wrkshp/maker.py b/frontend/imgrid/colors/js/wrkshp/maker.py new file mode 100755 index 0000000..65209aa --- /dev/null +++ b/frontend/imgrid/colors/js/wrkshp/maker.py @@ -0,0 +1,33 @@ +#!/usr/bin/python2.7 + + + +hexlist = ['#FFFAFA', '#FFFAFA', '#EEE9E9', '#FFC1C1', '#EEB4B4', '#CDC9C9', '#F08080', '#FF6A6A', '#CD9B9B', '#EE6363', '#BC8F8F', '#FF4040', '#FF3030', '#EE3B3B', '#CD5C5C', '#CD5555', '#EE2C2C', '#8B8989', '#CD3333', '#FF0000', '#FF0000', '#8B6969', '#CD2626', '#EE0000', '#B22222', '#A52A2A', '#CD0000', '#8B3A3A', '#8B2323', '#8B1A1A', '#8B0000', '#8B0000', '#800000', '#FFAEB9', '#CD8C95', '#8B5F65', '#EEA2AD', '#FFB6C1', '#FFC0CB', '#DC143C', '#FFB5C5', '#EEA9B8', '#CD919E', '#8B636C', '#8B475D', '#DB7093', '#EE799F', '#FF82AB', '#CD6889', '#FFF0F5', '#FFF0F5', '#CDC1C5', '#EEE0E5', '#8B8386', '#B03060', '#CD6090', '#CD3278', '#FF3E96', '#EE3A8C', '#8B2252', '#EE6AA7', '#FF6EB4', '#8B3A62', '#FF69B4', '#FF1493', '#FF1493', '#EE1289', '#CD1076', '#8B0A50', '#FF34B3', '#EE30A7', '#CD2990', '#8B1C62', '#C71585', '#D02090', '#EE7AE9', '#DA70D6', '#FF83FA', '#CD69C9', '#8B4789', '#FFE1FF', '#EED2EE', '#FFBBFF', '#EEAEEE', '#D8BFD8', '#CDB5CD', '#DDA0DD', '#EE82EE', '#CD96CD', '#8B7B8B', '#FF00FF', '#FF00FF', '#FF00FF', '#8B668B', '#EE00EE', '#CD00CD', '#8B008B', '#8B008B', '#800080', '#BA55D3', '#E066FF', '#D15FEE', '#B452CD', '#7A378B', '#9400D3', '#9932CC', '#BF3EFF', '#9A32CD', '#B23AEE', '#68228B', '#A020F0', '#4B0082', '#8A2BE2', '#912CEE', '#7D26CD', '#551A8B', '#9B30FF', '#9370DB', '#AB82FF', '#9F79EE', '#8968CD', '#5D478B', '#483D8B', '#8470FF', '#7B68EE', '#6A5ACD', '#836FFF', '#7A67EE', '#6959CD', '#473C8B', '#F8F8FF', '#E6E6FA', '#0000FF', '#0000FF', '#0000EE', '#0000CD', '#0000CD', '#00008B', '#00008B', '#191970', '#000080', '#000080', '#4169E1', '#4876FF', '#436EEE', '#3A5FCD', '#27408B', '#6495ED', '#B0C4DE', '#CAE1FF', '#BCD2EE', '#A2B5CD', '#6E7B8B', '#6C7B8B', '#C6E2FF', '#B9D3EE', '#9FB6CD', '#778899', '#778899', '#708090', '#708090', '#1E90FF', '#1E90FF', '#1C86EE', '#104E8B', '#1874CD', '#F0F8FF', '#36648B', '#4682B4', '#63B8FF', '#5CACEE', '#4F94CD', '#4A708B', '#87CEFF', '#7EC0EE', '#6CA6CD', '#87CEFA', '#607B8B', '#B0E2FF', '#A4D3EE', '#8DB6CD', '#87CEEB', '#9AC0CD', '#00BFFF', '#00BFFF', '#00B2EE', '#00688B', '#009ACD', '#BFEFFF', '#B2DFEE', '#ADD8E6', '#68838B', '#B0E0E6', '#98F5FF', '#8EE5EE', '#7AC5CD', '#53868B', '#00F5FF', '#00E5EE', '#00C5CD', '#00868B', '#5F9EA0', '#5F9EA0', '#00CED1', '#F0FFFF', '#F0FFFF', '#E0FFFF', '#E0FFFF', '#E0EEEE', '#D1EEEE', '#BBFFFF', '#AFEEEE', '#AEEEEE', '#97FFFF', '#C1CDCD', '#B4CDCD', '#8DEEEE', '#96CDCD', '#79CDCD', '#838B8B', '#7A8B8B', '#00FFFF', '#00FFFF', '#00FFFF', '#668B8B', '#00EEEE', '#528B8B', '#00CDCD', '#008B8B', '#008B8B', '#008080', '#2F4F4F', '#2F4F4F', '#48D1CC', '#20B2AA', '#40E0D0', '#458B74', '#7FFFD4', '#7FFFD4', '#76EEC6', '#66CDAA', '#66CDAA', '#00FA9A', '#F5FFFA', '#00FF7F', '#00FF7F', '#00EE76', '#00CD66', '#008B45', '#3CB371', '#2E8B57', '#43CD80', '#54FF9F', '#2E8B57', '#4EEE94', '#32814B', '#F0FFF0', '#F0FFF0', '#E0EEE0', '#C1FFC1', '#B4EEB4', '#9AFF9A', '#98FB98', '#C1CDC1', '#90EE90', '#90EE90', '#9BCD9B', '#8FBC8F', '#7CCD7C', '#838B83', '#00FF00', '#00FF00', '#32CD32', '#698B69', '#00EE00', '#548B54', '#00CD00', '#228B22', '#008B00', '#008000', '#006400', '#7CFC00', '#7FFF00', '#7FFF00', '#76EE00', '#66CD00', '#458B00', '#ADFF2F', '#A2CD5A', '#CAFF70', '#BCEE68', '#6E8B3D', '#556B2F', '#6B8E23', '#C0FF3E', '#B3EE3A', '#9ACD32', '#9ACD32', '#698B22', '#FFFFF0', '#FFFFF0', '#FFFFE0', '#FFFFE0', '#F5F5DC', '#EEEEE0', '#FAFAD2', '#EEEED1', '#CDCDC1', '#CDCDB4', '#8B8B83', '#8B8B7A', '#FFFF00', '#FFFF00', '#EEEE00', '#CDCD00', '#8B8B00', '#808000', '#BDB76B', '#EEE685', '#8B8970', '#FFF68F', '#CDC673', '#8B864E', '#EEE8AA', '#FFFACD', '#FFFACD', '#F0E68C', '#CDC9A5', '#EEE9BF', '#D1C166', '#8B8878', '#FFD700', '#FFD700', '#EEC900', '#CDAD00', '#8B7500', '#EEDD82', '#8B814C', '#FFEC8B', '#CDBE70', '#EEDC82', '#CDC8B1', '#EEE8CD', '#FFF8DC', '#FFF8DC', '#DAA520', '#FFC125', '#EEB422', '#CD9B1D', '#8B6914', '#B8860B', '#FFB90F', '#EEAD0E', '#CD950C', '#8B6508', '#FFFAF0', '#EED8AE', '#FDF5E6', '#F5DEB3', '#FFE7BA', '#CDBA96', '#FFA500', '#FFA500', '#EE9A00', '#CD8500', '#8B5A00', '#8B7E66', '#FFE4B5', '#FFEFD5', '#CDB38B', '#FFEBCD', '#FFDEAD', '#FFDEAD', '#EECFA1', '#8B795E', '#8B8378', '#FAEBD7', '#D2B48C', '#8B7D6B', '#DEB887', '#EEDFCC', '#FFD39B', '#CDAA7D', '#EEC591', '#FFEFDB', '#8B7355', '#CDC0B0', '#FF8C00', '#EED5B7', '#FFE4C4', '#FFE4C4', '#CDB79E', '#FF7F00', '#FAF0E6', '#EE7600', '#CD6600', '#8B4500', '#CD853F', '#FFA54F', '#EE9A49', '#CD853F', '#8B5A2B', '#FFDAB9', '#FFDAB9', '#8B7765', '#EECBAD', '#CDAF95', '#F4A460', '#8B8682', '#EEE5DE', '#CDC5BF', '#D2691E', '#FF7F24', '#EE7621', '#CD661D', '#8B4513', '#8B4513', '#FFF5EE', '#FFF5EE', '#8B4726', '#A0522D', '#FF8247', '#EE7942', '#CD6839', '#CD8162', '#FFA07A', '#FFA07A', '#8B5742', '#EE9572', '#FF7F50', '#FF4500', '#FF4500', '#EE4000', '#CD3700', '#8B2500', '#E9967A', '#FF8C69', '#EE8262', '#CD7054', '#8B4C39', '#FF7256', '#EE6A50', '#CD5B45', '#8B3E2F', '#8B3626', '#FF6347', '#FF6347', '#EE5C42', '#CD4F39', '#8B7D7B', '#EED5D2', '#FFE4E1', '#FFE4E1', '#FA8072', '#CDB7B5', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FFFFFF', '#FCFCFC', '#FCFCFC', '#FAFAFA', '#FAFAFA', '#F7F7F7', '#F7F7F7', '#F5F5F5', '#F5F5F5', '#F5F5F5', '#F2F2F2', '#F2F2F2', '#F0F0F0', '#F0F0F0', '#EDEDED', '#EDEDED', '#EBEBEB', '#EBEBEB', '#E8E8E8', '#E8E8E8', '#E5E5E5', '#E5E5E5', '#E3E3E3', '#E3E3E3', '#E0E0E0', '#E0E0E0', '#DEDEDE', '#DEDEDE', '#DCDCDC', '#DBDBDB', '#DBDBDB', '#D9D9D9', '#D9D9D9', '#D6D6D6', '#D6D6D6', '#D4D4D4', '#D4D4D4', '#D3D3D3', '#D3D3D3', '#D1D1D1', '#D1D1D1', '#CFCFCF', '#CFCFCF', '#CCCCCC', '#CCCCCC', '#C9C9C9', '#C9C9C9', '#C7C7C7', '#C7C7C7', '#C4C4C4', '#C4C4C4', '#C2C2C2', '#C2C2C2', '#C0C0C0', '#BFBFBF', '#BFBFBF', '#BDBDBD', '#BDBDBD', '#BABABA', '#BABABA', '#B8B8B8', '#B8B8B8', '#B5B5B5', '#B5B5B5', '#B3B3B3', '#B3B3B3', '#B0B0B0', '#B0B0B0', '#ADADAD', '#ADADAD', '#ABABAB', '#ABABAB', '#A9A9A9', '#A9A9A9', '#A8A8A8', '#A8A8A8', '#A6A6A6', '#A6A6A6', '#A3A3A3', '#A3A3A3', '#A1A1A1', '#A1A1A1', '#9E9E9E', '#9E9E9E', '#9C9C9C', '#9C9C9C', '#999999', '#999999', '#969696', '#969696', '#949494', '#949494', '#919191', '#919191', '#8F8F8F', '#8F8F8F', '#8C8C8C', '#8C8C8C', '#8A8A8A', '#8A8A8A', '#878787', '#878787', '#858585', '#858585', '#828282', '#828282', '#808080', '#7F7F7F', '#7F7F7F', '#7E7E7E', '#7D7D7D', '#7D7D7D', '#7A7A7A', '#7A7A7A', '#787878', '#787878', '#757575', '#757575', '#737373', '#737373', '#707070', '#707070', '#6E6E6E', '#6E6E6E', '#6B6B6B', '#6B6B6B', '#696969', '#696969', '#696969', '#696969', '#666666', '#666666', '#636363', '#636363', '#616161', '#616161', '#5E5E5E', '#5E5E5E', '#5C5C5C', '#5C5C5C', '#595959', '#595959', '#575757', '#575757', '#545454', '#545454', '#525252', '#525252', '#4F4F4F', '#4F4F4F', '#4D4D4D', '#4D4D4D', '#4A4A4A', '#4A4A4A', '#474747', '#474747', '#454545', '#454545', '#424242', '#424242', '#404040', '#404040', '#3D3D3D', '#3D3D3D', '#3B3B3B', '#3B3B3B', '#383838', '#383838', '#363636', '#363636', '#333333', '#333333', '#303030', '#303030', '#2E2E2E', '#2E2E2E', '#2B2B2B', '#2B2B2B', '#292929', '#292929', '#262626', '#262626', '#242424', '#242424', '#212121', '#212121', '#1F1F1F', '#1F1F1F', '#1C1C1C', '#1C1C1C', '#1A1A1A', '#1A1A1A', '#171717', '#171717', '#141414', '#141414', '#121212', '#121212', '#0F0F0F', '#0F0F0F', '#0D0D0D', '#0D0D0D', '#0A0A0A', '#0A0A0A', '#080808', '#080808', '#050505', '#050505', '#030303', '#030303', '#000000', '#000000', '#000000', '#000000', '#000000', '#000000'] +rgblist = ['rgb(255, 250, 250)', 'rgb(255, 250, 250)', 'rgb(238, 233, 233)', 'rgb(255, 193, 193)', 'rgb(238, 180, 180)', 'rgb(205, 201, 201)', 'rgb(240, 128, 128)', 'rgb(255, 106, 106)', 'rgb(205, 155, 155)', 'rgb(238, 99, 99)', 'rgb(188, 143, 143)', 'rgb(255, 64, 64)', 'rgb(255, 48, 48)', 'rgb(238, 59, 59)', 'rgb(205, 92, 92)', 'rgb(205, 85, 85)', 'rgb(238, 44, 44)', 'rgb(139, 137, 137)', 'rgb(205, 51, 51)', 'rgb(255, 0, 0)', 'rgb(255, 0, 0)', 'rgb(139, 105, 105)', 'rgb(205, 38, 38)', 'rgb(238, 0, 0)', 'rgb(178, 34, 34)', 'rgb(165, 42, 42)', 'rgb(205, 0, 0)', 'rgb(139, 58, 58)', 'rgb(139, 35, 35)', 'rgb(139, 26, 26)', 'rgb(139, 0, 0)', 'rgb(139, 0, 0)', 'rgb(128, 0, 0)', 'rgb(255, 174, 185)', 'rgb(205, 140, 149)', 'rgb(139, 95, 101)', 'rgb(238, 162, 173)', 'rgb(255, 182, 193)', 'rgb(255, 192, 203)', 'rgb(220, 20, 60)', 'rgb(255, 181, 197)', 'rgb(238, 169, 184)', 'rgb(205, 145, 158)', 'rgb(139, 99, 108)', 'rgb(139, 71, 93)', 'rgb(219, 112, 147)', 'rgb(238, 121, 159)', 'rgb(255, 130, 171)', 'rgb(205, 104, 137)', 'rgb(255, 240, 245)', 'rgb(255, 240, 245)', 'rgb(205, 193, 197)', 'rgb(238, 224, 229)', 'rgb(139, 131, 134)', 'rgb(176, 48, 96)', 'rgb(205, 96, 144)', 'rgb(205, 50, 120)', 'rgb(255, 62, 150)', 'rgb(238, 58, 140)', 'rgb(139, 34, 82)', 'rgb(238, 106, 167)', 'rgb(255, 110, 180)', 'rgb(139, 58, 98)', 'rgb(255, 105, 180)', 'rgb(255, 20, 147)', 'rgb(255, 20, 147)', 'rgb(238, 18, 137)', 'rgb(205, 16, 118)', 'rgb(139, 10, 80)', 'rgb(255, 52, 179)', 'rgb(238, 48, 167)', 'rgb(205, 41, 144)', 'rgb(139, 28, 98)', 'rgb(199, 21, 133)', 'rgb(208, 32, 144)', 'rgb(238, 122, 233)', 'rgb(218, 112, 214)', 'rgb(255, 131, 250)', 'rgb(205, 105, 201)', 'rgb(139, 71, 137)', 'rgb(255, 225, 255)', 'rgb(238, 210, 238)', 'rgb(255, 187, 255)', 'rgb(238, 174, 238)', 'rgb(216, 191, 216)', 'rgb(205, 181, 205)', 'rgb(221, 160, 221)', 'rgb(238, 130, 238)', 'rgb(205, 150, 205)', 'rgb(139, 123, 139)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(139, 102, 139)', 'rgb(238, 0, 238)', 'rgb(205, 0, 205)', 'rgb(139, 0, 139)', 'rgb(139, 0, 139)', 'rgb(128, 0, 128)', 'rgb(186, 85, 211)', 'rgb(224, 102, 255)', 'rgb(209, 95, 238)', 'rgb(180, 82, 205)', 'rgb(122, 55, 139)', 'rgb(148, 0, 211)', 'rgb(153, 50, 204)', 'rgb(191, 62, 255)', 'rgb(154, 50, 205)', 'rgb(178, 58, 238)', 'rgb(104, 34, 139)', 'rgb(160, 32, 240)', 'rgb( 75, 0, 130)', 'rgb(138, 43, 226)', 'rgb(145, 44, 238)', 'rgb(125, 38, 205)', 'rgb( 85, 26, 139)', 'rgb(155, 48, 255)', 'rgb(147, 112, 219)', 'rgb(171, 130, 255)', 'rgb(159, 121, 238)', 'rgb(137, 104, 205)', 'rgb( 93, 71, 139)', 'rgb( 72, 61, 139)', 'rgb(132, 112, 255)', 'rgb(123, 104, 238)', 'rgb(106, 90, 205)', 'rgb(131, 111, 255)', 'rgb(122, 103, 238)', 'rgb(105, 89, 205)', 'rgb( 71, 60, 139)', 'rgb(248, 248, 255)', 'rgb(230, 230, 250)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 238)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 139)', 'rgb( 0, 0, 139)', 'rgb( 25, 25, 112)', 'rgb( 0, 0, 128)', 'rgb( 0, 0, 128)', 'rgb( 65, 105, 225)', 'rgb( 72, 118, 255)', 'rgb( 67, 110, 238)', 'rgb( 58, 95, 205)', 'rgb( 39, 64, 139)', 'rgb(100, 149, 237)', 'rgb(176, 196, 222)', 'rgb(202, 225, 255)', 'rgb(188, 210, 238)', 'rgb(162, 181, 205)', 'rgb(110, 123, 139)', 'rgb(108, 123, 139)', 'rgb(198, 226, 255)', 'rgb(185, 211, 238)', 'rgb(159, 182, 205)', 'rgb(119, 136, 153)', 'rgb(119, 136, 153)', 'rgb(112, 128, 144)', 'rgb(112, 128, 144)', 'rgb( 30, 144, 255)', 'rgb( 30, 144, 255)', 'rgb( 28, 134, 238)', 'rgb( 16, 78, 139)', 'rgb( 24, 116, 205)', 'rgb(240, 248, 255)', 'rgb( 54, 100, 139)', 'rgb( 70, 130, 180)', 'rgb( 99, 184, 255)', 'rgb( 92, 172, 238)', 'rgb( 79, 148, 205)', 'rgb( 74, 112, 139)', 'rgb(135, 206, 255)', 'rgb(126, 192, 238)', 'rgb(108, 166, 205)', 'rgb(135, 206, 250)', 'rgb( 96, 123, 139)', 'rgb(176, 226, 255)', 'rgb(164, 211, 238)', 'rgb(141, 182, 205)', 'rgb(135, 206, 235)', 'rgb(154, 192, 205)', 'rgb( 0, 191, 255)', 'rgb( 0, 191, 255)', 'rgb( 0, 178, 238)', 'rgb( 0, 104, 139)', 'rgb( 0, 154, 205)', 'rgb(191, 239, 255)', 'rgb(178, 223, 238)', 'rgb(173, 216, 230)', 'rgb(104, 131, 139)', 'rgb(176, 224, 230)', 'rgb(152, 245, 255)', 'rgb(142, 229, 238)', 'rgb(122, 197, 205)', 'rgb( 83, 134, 139)', 'rgb( 0, 245, 255)', 'rgb( 0, 229, 238)', 'rgb( 0, 197, 205)', 'rgb( 0, 134, 139)', 'rgb( 95, 158, 160)', 'rgb( 95, 158, 160)', 'rgb( 0, 206, 209)', 'rgb(240, 255, 255)', 'rgb(240, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 238, 238)', 'rgb(209, 238, 238)', 'rgb(187, 255, 255)', 'rgb(175, 238, 238)', 'rgb(174, 238, 238)', 'rgb(151, 255, 255)', 'rgb(193, 205, 205)', 'rgb(180, 205, 205)', 'rgb(141, 238, 238)', 'rgb(150, 205, 205)', 'rgb(121, 205, 205)', 'rgb(131, 139, 139)', 'rgb(122, 139, 139)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb(102, 139, 139)', 'rgb( 0, 238, 238)', 'rgb( 82, 139, 139)', 'rgb( 0, 205, 205)', 'rgb( 0, 139, 139)', 'rgb( 0, 139, 139)', 'rgb( 0, 128, 128)', 'rgb( 47, 79, 79)', 'rgb( 47, 79, 79)', 'rgb( 72, 209, 204)', 'rgb( 32, 178, 170)', 'rgb( 64, 224, 208)', 'rgb( 69, 139, 116)', 'rgb(127, 255, 212)', 'rgb(127, 255, 212)', 'rgb(118, 238, 198)', 'rgb(102, 205, 170)', 'rgb(102, 205, 170)', 'rgb( 0, 250, 154)', 'rgb(245, 255, 250)', 'rgb( 0, 255, 127)', 'rgb( 0, 255, 127)', 'rgb( 0, 238, 118)', 'rgb( 0, 205, 102)', 'rgb( 0, 139, 69)', 'rgb( 60, 179, 113)', 'rgb( 46, 139, 87)', 'rgb( 67, 205, 128)', 'rgb( 84, 255, 159)', 'rgb( 46, 139, 87)', 'rgb( 78, 238, 148)', 'rgb( 50, 129, 75)', 'rgb(240, 255, 240)', 'rgb(240, 255, 240)', 'rgb(224, 238, 224)', 'rgb(193, 255, 193)', 'rgb(180, 238, 180)', 'rgb(154, 255, 154)', 'rgb(152, 251, 152)', 'rgb(193, 205, 193)', 'rgb(144, 238, 144)', 'rgb(144, 238, 144)', 'rgb(155, 205, 155)', 'rgb(143, 188, 143)', 'rgb(124, 205, 124)', 'rgb(131, 139, 131)', 'rgb( 0, 255, 0)', 'rgb( 0, 255, 0)', 'rgb( 50, 205, 50)', 'rgb(105, 139, 105)', 'rgb( 0, 238, 0)', 'rgb( 84, 139, 84)', 'rgb( 0, 205, 0)', 'rgb( 34, 139, 34)', 'rgb( 0, 139, 0)', 'rgb( 0, 128, 0)', 'rgb( 0, 100, 0)', 'rgb(124, 252, 0)', 'rgb(127, 255, 0)', 'rgb(127, 255, 0)', 'rgb(118, 238, 0)', 'rgb(102, 205, 0)', 'rgb( 69, 139, 0)', 'rgb(173, 255, 47)', 'rgb(162, 205, 90)', 'rgb(202, 255, 112)', 'rgb(188, 238, 104)', 'rgb(110, 139, 61)', 'rgb( 85, 107, 47)', 'rgb(107, 142, 35)', 'rgb(192, 255, 62)', 'rgb(179, 238, 58)', 'rgb(154, 205, 50)', 'rgb(154, 205, 50)', 'rgb(105, 139, 34)', 'rgb(255, 255, 240)', 'rgb(255, 255, 240)', 'rgb(255, 255, 224)', 'rgb(255, 255, 224)', 'rgb(245, 245, 220)', 'rgb(238, 238, 224)', 'rgb(250, 250, 210)', 'rgb(238, 238, 209)', 'rgb(205, 205, 193)', 'rgb(205, 205, 180)', 'rgb(139, 139, 131)', 'rgb(139, 139, 122)', 'rgb(255, 255, 0)', 'rgb(255, 255, 0)', 'rgb(238, 238, 0)', 'rgb(205, 205, 0)', 'rgb(139, 139, 0)', 'rgb(128, 128, 0)', 'rgb(189, 183, 107)', 'rgb(238, 230, 133)', 'rgb(139, 137, 112)', 'rgb(255, 246, 143)', 'rgb(205, 198, 115)', 'rgb(139, 134, 78)', 'rgb(238, 232, 170)', 'rgb(255, 250, 205)', 'rgb(255, 250, 205)', 'rgb(240, 230, 140)', 'rgb(205, 201, 165)', 'rgb(238, 233, 191)', 'rgb(209, 193, 102)', 'rgb(139, 136, 120)', 'rgb(255, 215, 0)', 'rgb(255, 215, 0)', 'rgb(238, 201, 0)', 'rgb(205, 173, 0)', 'rgb(139, 117, 0)', 'rgb(238, 221, 130)', 'rgb(139, 129, 76)', 'rgb(255, 236, 139)', 'rgb(205, 190, 112)', 'rgb(238, 220, 130)', 'rgb(205, 200, 177)', 'rgb(238, 232, 205)', 'rgb(255, 248, 220)', 'rgb(255, 248, 220)', 'rgb(218, 165, 32)', 'rgb(255, 193, 37)', 'rgb(238, 180, 34)', 'rgb(205, 155, 29)', 'rgb(139, 105, 20)', 'rgb(184, 134, 11)', 'rgb(255, 185, 15)', 'rgb(238, 173, 14)', 'rgb(205, 149, 12)', 'rgb(139, 101, 8)', 'rgb(255, 250, 240)', 'rgb(238, 216, 174)', 'rgb(253, 245, 230)', 'rgb(245, 222, 179)', 'rgb(255, 231, 186)', 'rgb(205, 186, 150)', 'rgb(255, 165, 0)', 'rgb(255, 165, 0)', 'rgb(238, 154, 0)', 'rgb(205, 133, 0)', 'rgb(139, 90, 0)', 'rgb(139, 126, 102)', 'rgb(255, 228, 181)', 'rgb(255, 239, 213)', 'rgb(205, 179, 139)', 'rgb(255, 235, 205)', 'rgb(255, 222, 173)', 'rgb(255, 222, 173)', 'rgb(238, 207, 161)', 'rgb(139, 121, 94)', 'rgb(139, 131, 120)', 'rgb(250, 235, 215)', 'rgb(210, 180, 140)', 'rgb(139, 125, 107)', 'rgb(222, 184, 135)', 'rgb(238, 223, 204)', 'rgb(255, 211, 155)', 'rgb(205, 170, 125)', 'rgb(238, 197, 145)', 'rgb(255, 239, 219)', 'rgb(139, 115, 85)', 'rgb(205, 192, 176)', 'rgb(255, 140, 0)', 'rgb(238, 213, 183)', 'rgb(255, 228, 196)', 'rgb(255, 228, 196)', 'rgb(205, 183, 158)', 'rgb(255, 127, 0)', 'rgb(250, 240, 230)', 'rgb(238, 118, 0)', 'rgb(205, 102, 0)', 'rgb(139, 69, 0)', 'rgb(205, 133, 63)', 'rgb(255, 165, 79)', 'rgb(238, 154, 73)', 'rgb(205, 133, 63)', 'rgb(139, 90, 43)', 'rgb(255, 218, 185)', 'rgb(255, 218, 185)', 'rgb(139, 119, 101)', 'rgb(238, 203, 173)', 'rgb(205, 175, 149)', 'rgb(244, 164, 96)', 'rgb(139, 134, 130)', 'rgb(238, 229, 222)', 'rgb(205, 197, 191)', 'rgb(210, 105, 30)', 'rgb(255, 127, 36)', 'rgb(238, 118, 33)', 'rgb(205, 102, 29)', 'rgb(139, 69, 19)', 'rgb(139, 69, 19)', 'rgb(255, 245, 238)', 'rgb(255, 245, 238)', 'rgb(139, 71, 38)', 'rgb(160, 82, 45)', 'rgb(255, 130, 71)', 'rgb(238, 121, 66)', 'rgb(205, 104, 57)', 'rgb(205, 129, 98)', 'rgb(255, 160, 122)', 'rgb(255, 160, 122)', 'rgb(139, 87, 66)', 'rgb(238, 149, 114)', 'rgb(255, 127, 80)', 'rgb(255, 69, 0)', 'rgb(255, 69, 0)', 'rgb(238, 64, 0)', 'rgb(205, 55, 0)', 'rgb(139, 37, 0)', 'rgb(233, 150, 122)', 'rgb(255, 140, 105)', 'rgb(238, 130, 98)', 'rgb(205, 112, 84)', 'rgb(139, 76, 57)', 'rgb(255, 114, 86)', 'rgb(238, 106, 80)', 'rgb(205, 91, 69)', 'rgb(139, 62, 47)', 'rgb(139, 54, 38)', 'rgb(255, 99, 71)', 'rgb(255, 99, 71)', 'rgb(238, 92, 66)', 'rgb(205, 79, 57)', 'rgb(139, 125, 123)', 'rgb(238, 213, 210)', 'rgb(255, 228, 225)', 'rgb(255, 228, 225)', 'rgb(250, 128, 114)', 'rgb(205, 183, 181)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(252, 252, 252)', 'rgb(252, 252, 252)', 'rgb(250, 250, 250)', 'rgb(250, 250, 250)', 'rgb(247, 247, 247)', 'rgb(247, 247, 247)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(242, 242, 242)', 'rgb(242, 242, 242)', 'rgb(240, 240, 240)', 'rgb(240, 240, 240)', 'rgb(237, 237, 237)', 'rgb(237, 237, 237)', 'rgb(235, 235, 235)', 'rgb(235, 235, 235)', 'rgb(232, 232, 232)', 'rgb(232, 232, 232)', 'rgb(229, 229, 229)', 'rgb(229, 229, 229)', 'rgb(227, 227, 227)', 'rgb(227, 227, 227)', 'rgb(224, 224, 224)', 'rgb(224, 224, 224)', 'rgb(222, 222, 222)', 'rgb(222, 222, 222)', 'rgb(220, 220, 220)', 'rgb(219, 219, 219)', 'rgb(219, 219, 219)', 'rgb(217, 217, 217)', 'rgb(217, 217, 217)', 'rgb(214, 214, 214)', 'rgb(214, 214, 214)', 'rgb(212, 212, 212)', 'rgb(212, 212, 212)', 'rgb(211, 211, 211)', 'rgb(211, 211, 211)', 'rgb(209, 209, 209)', 'rgb(209, 209, 209)', 'rgb(207, 207, 207)', 'rgb(207, 207, 207)', 'rgb(204, 204, 204)', 'rgb(204, 204, 204)', 'rgb(201, 201, 201)', 'rgb(201, 201, 201)', 'rgb(199, 199, 199)', 'rgb(199, 199, 199)', 'rgb(196, 196, 196)', 'rgb(196, 196, 196)', 'rgb(194, 194, 194)', 'rgb(194, 194, 194)', 'rgb(192, 192, 192)', 'rgb(191, 191, 191)', 'rgb(191, 191, 191)', 'rgb(189, 189, 189)', 'rgb(189, 189, 189)', 'rgb(186, 186, 186)', 'rgb(186, 186, 186)', 'rgb(184, 184, 184)', 'rgb(184, 184, 184)', 'rgb(181, 181, 181)', 'rgb(181, 181, 181)', 'rgb(179, 179, 179)', 'rgb(179, 179, 179)', 'rgb(176, 176, 176)', 'rgb(176, 176, 176)', 'rgb(173, 173, 173)', 'rgb(173, 173, 173)', 'rgb(171, 171, 171)', 'rgb(171, 171, 171)', 'rgb(169, 169, 169)', 'rgb(169, 169, 169)', 'rgb(168, 168, 168)', 'rgb(168, 168, 168)', 'rgb(166, 166, 166)', 'rgb(166, 166, 166)', 'rgb(163, 163, 163)', 'rgb(163, 163, 163)', 'rgb(161, 161, 161)', 'rgb(161, 161, 161)', 'rgb(158, 158, 158)', 'rgb(158, 158, 158)', 'rgb(156, 156, 156)', 'rgb(156, 156, 156)', 'rgb(153, 153, 153)', 'rgb(153, 153, 153)', 'rgb(150, 150, 150)', 'rgb(150, 150, 150)', 'rgb(148, 148, 148)', 'rgb(148, 148, 148)', 'rgb(145, 145, 145)', 'rgb(145, 145, 145)', 'rgb(143, 143, 143)', 'rgb(143, 143, 143)', 'rgb(140, 140, 140)', 'rgb(140, 140, 140)', 'rgb(138, 138, 138)', 'rgb(138, 138, 138)', 'rgb(135, 135, 135)', 'rgb(135, 135, 135)', 'rgb(133, 133, 133)', 'rgb(133, 133, 133)', 'rgb(130, 130, 130)', 'rgb(130, 130, 130)', 'rgb(128, 128, 128)', 'rgb(127, 127, 127)', 'rgb(127, 127, 127)', 'rgb(126, 126, 126)', 'rgb(125, 125, 125)', 'rgb(125, 125, 125)', 'rgb(122, 122, 122)', 'rgb(122, 122, 122)', 'rgb(120, 120, 120)', 'rgb(120, 120, 120)', 'rgb(117, 117, 117)', 'rgb(117, 117, 117)', 'rgb(115, 115, 115)', 'rgb(115, 115, 115)', 'rgb(112, 112, 112)', 'rgb(112, 112, 112)', 'rgb(110, 110, 110)', 'rgb(110, 110, 110)', 'rgb(107, 107, 107)', 'rgb(107, 107, 107)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(102, 102, 102)', 'rgb(102, 102, 102)', 'rgb( 99, 99, 99)', 'rgb( 99, 99, 99)', 'rgb( 97, 97, 97)', 'rgb( 97, 97, 97)', 'rgb( 94, 94, 94)', 'rgb( 94, 94, 94)', 'rgb( 92, 92, 92)', 'rgb( 92, 92, 92)', 'rgb( 89, 89, 89)', 'rgb( 89, 89, 89)', 'rgb( 87, 87, 87)', 'rgb( 87, 87, 87)', 'rgb( 84, 84, 84)', 'rgb( 84, 84, 84)', 'rgb( 82, 82, 82)', 'rgb( 82, 82, 82)', 'rgb( 79, 79, 79)', 'rgb( 79, 79, 79)', 'rgb( 77, 77, 77)', 'rgb( 77, 77, 77)', 'rgb( 74, 74, 74)', 'rgb( 74, 74, 74)', 'rgb( 71, 71, 71)', 'rgb( 71, 71, 71)', 'rgb( 69, 69, 69)', 'rgb( 69, 69, 69)', 'rgb( 66, 66, 66)', 'rgb( 66, 66, 66)', 'rgb( 64, 64, 64)', 'rgb( 64, 64, 64)', 'rgb( 61, 61, 61)', 'rgb( 61, 61, 61)', 'rgb( 59, 59, 59)', 'rgb( 59, 59, 59)', 'rgb( 56, 56, 56)', 'rgb( 56, 56, 56)', 'rgb( 54, 54, 54)', 'rgb( 54, 54, 54)', 'rgb( 51, 51, 51)', 'rgb( 51, 51, 51)', 'rgb( 48, 48, 48)', 'rgb( 48, 48, 48)', 'rgb( 46, 46, 46)', 'rgb( 46, 46, 46)', 'rgb( 43, 43, 43)', 'rgb( 43, 43, 43)', 'rgb( 41, 41, 41)', 'rgb( 41, 41, 41)', 'rgb( 38, 38, 38)', 'rgb( 38, 38, 38)', 'rgb( 36, 36, 36)', 'rgb( 36, 36, 36)', 'rgb( 33, 33, 33)', 'rgb( 33, 33, 33)', 'rgb( 31, 31, 31)', 'rgb( 31, 31, 31)', 'rgb( 28, 28, 28)', 'rgb( 28, 28, 28)', 'rgb( 26, 26, 26)', 'rgb( 26, 26, 26)', 'rgb( 23, 23, 23)', 'rgb( 23, 23, 23)', 'rgb( 20, 20, 20)', 'rgb( 20, 20, 20)', 'rgb( 18, 18, 18)', 'rgb( 18, 18, 18)', 'rgb( 15, 15, 15)', 'rgb( 15, 15, 15)', 'rgb( 13, 13, 13)', 'rgb( 13, 13, 13)', 'rgb( 10, 10, 10)', 'rgb( 10, 10, 10)', 'rgb( 8, 8, 8)', 'rgb( 8, 8, 8)', 'rgb( 5, 5, 5)', 'rgb( 5, 5, 5)', 'rgb( 3, 3, 3)', 'rgb( 3, 3, 3)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'white', 'white'] +namelist = ['snow', 'snow1', 'snow2', 'RosyBrown1', 'RosyBrown2', 'snow3', 'LightCoral', 'IndianRed1', 'RosyBrown3', 'IndianRed2', 'RosyBrown', 'brown1', 'firebrick1', 'brown2', 'IndianRed', 'IndianRed3', 'firebrick2', 'snow4', 'brown3', 'red', 'red1', 'RosyBrown4', 'firebrick3', 'red2', 'firebrick', 'brown', 'red3', 'IndianRed4', 'brown4', 'firebrick4', 'DarkRed', 'red4', 'maroon', 'LightPink1', 'LightPink3', 'LightPink4', 'LightPink2', 'LightPink', 'pink', 'crimson', 'pink1', 'pink2', 'pink3', 'pink4', 'PaleVioletRed4', 'PaleVioletRed', 'PaleVioletRed2', 'PaleVioletRed1', 'PaleVioletRed3', 'LavenderBlush', 'LavenderBlush1', 'LavenderBlush3', 'LavenderBlush2', 'LavenderBlush4', 'maroon', 'HotPink3', 'VioletRed3', 'VioletRed1', 'VioletRed2', 'VioletRed4', 'HotPink2', 'HotPink1', 'HotPink4', 'HotPink', 'DeepPink', 'DeepPink1', 'DeepPink2', 'DeepPink3', 'DeepPink4', 'maroon1', 'maroon2', 'maroon3', 'maroon4', 'MediumVioletRed', 'VioletRed', 'orchid2', 'orchid', 'orchid1', 'orchid3', 'orchid4', 'thistle1', 'thistle2', 'plum1', 'plum2', 'thistle', 'thistle3', 'plum', 'violet', 'plum3', 'thistle4', 'fuchsia', 'magenta', 'magenta1', 'plum4', 'magenta2', 'magenta3', 'DarkMagenta', 'magenta4', 'purple', 'MediumOrchid', 'MediumOrchid1', 'MediumOrchid2', 'MediumOrchid3', 'MediumOrchid4', 'DarkViolet', 'DarkOrchid', 'DarkOrchid1', 'DarkOrchid3', 'DarkOrchid2', 'DarkOrchid4', 'purple', 'indigo', 'BlueViolet', 'purple2', 'purple3', 'purple4', 'purple1', 'MediumPurple', 'MediumPurple1', 'MediumPurple2', 'MediumPurple3', 'MediumPurple4', 'DarkSlateBlue', 'LightSlateBlue', 'MediumSlateBlue', 'SlateBlue', 'SlateBlue1', 'SlateBlue2', 'SlateBlue3', 'SlateBlue4', 'GhostWhite', 'lavender', 'blue', 'blue1', 'blue2', 'blue3', 'MediumBlue', 'blue4', 'DarkBlue', 'MidnightBlue', 'navy', 'NavyBlue', 'RoyalBlue', 'RoyalBlue1', 'RoyalBlue2', 'RoyalBlue3', 'RoyalBlue4', 'CornflowerBlue', 'LightSteelBlue', 'LightSteelBlue1', 'LightSteelBlue2', 'LightSteelBlue3', 'LightSteelBlue4', 'SlateGray4', 'SlateGray1', 'SlateGray2', 'SlateGray3', 'LightSlateGray', 'LightSlateGrey', 'SlateGray', 'SlateGrey', 'DodgerBlue', 'DodgerBlue1', 'DodgerBlue2', 'DodgerBlue4', 'DodgerBlue3', 'AliceBlue', 'SteelBlue4', 'SteelBlue', 'SteelBlue1', 'SteelBlue2', 'SteelBlue3', 'SkyBlue4', 'SkyBlue1', 'SkyBlue2', 'SkyBlue3', 'LightSkyBlue', 'LightSkyBlue4', 'LightSkyBlue1', 'LightSkyBlue2', 'LightSkyBlue3', 'SkyBlue', 'LightBlue3', 'DeepSkyBlue', 'DeepSkyBlue1', 'DeepSkyBlue2', 'DeepSkyBlue4', 'DeepSkyBlue3', 'LightBlue1', 'LightBlue2', 'LightBlue', 'LightBlue4', 'PowderBlue', 'CadetBlue1', 'CadetBlue2', 'CadetBlue3', 'CadetBlue4', 'turquoise1', 'turquoise2', 'turquoise3', 'turquoise4', 'cadet blue', 'CadetBlue', 'DarkTurquoise', 'azure', 'azure1', 'LightCyan', 'LightCyan1', 'azure2', 'LightCyan2', 'PaleTurquoise1', 'PaleTurquoise', 'PaleTurquoise2', 'DarkSlateGray1', 'azure3', 'LightCyan3', 'DarkSlateGray2', 'PaleTurquoise3', 'DarkSlateGray3', 'azure4', 'LightCyan4', 'aqua', 'cyan', 'cyan1', 'PaleTurquoise4', 'cyan2', 'DarkSlateGray4', 'cyan3', 'cyan4', 'DarkCyan', 'teal', 'DarkSlateGray', 'DarkSlateGrey', 'MediumTurquoise', 'LightSeaGreen', 'turquoise', 'aquamarine4', 'aquamarine', 'aquamarine1', 'aquamarine2', 'aquamarine3', 'MediumAquamarine', 'MediumSpringGreen', 'MintCream', 'SpringGreen', 'SpringGreen1', 'SpringGreen2', 'SpringGreen3', 'SpringGreen4', 'MediumSeaGreen', 'SeaGreen', 'SeaGreen3', 'SeaGreen1', 'SeaGreen4', 'SeaGreen2', 'MediumForestGreen', 'honeydew', 'honeydew1', 'honeydew2', 'DarkSeaGreen1', 'DarkSeaGreen2', 'PaleGreen1', 'PaleGreen', 'honeydew3', 'LightGreen', 'PaleGreen2', 'DarkSeaGreen3', 'DarkSeaGreen', 'PaleGreen3', 'honeydew4', 'green1', 'lime', 'LimeGreen', 'DarkSeaGreen4', 'green2', 'PaleGreen4', 'green3', 'ForestGreen', 'green4', 'green', 'DarkGreen', 'LawnGreen', 'chartreuse', 'chartreuse1', 'chartreuse2', 'chartreuse3', 'chartreuse4', 'GreenYellow', 'DarkOliveGreen3', 'DarkOliveGreen1', 'DarkOliveGreen2', 'DarkOliveGreen4', 'DarkOliveGreen', 'OliveDrab', 'OliveDrab1', 'OliveDrab2', 'OliveDrab3', 'YellowGreen', 'OliveDrab4', 'ivory', 'ivory1', 'LightYellow', 'LightYellow1', 'beige', 'ivory2', 'LightGoldenrodYellow', 'LightYellow2', 'ivory3', 'LightYellow3', 'ivory4', 'LightYellow4', 'yellow', 'yellow1', 'yellow2', 'yellow3', 'yellow4', 'olive', 'DarkKhaki', 'khaki2', 'LemonChiffon4', 'khaki1', 'khaki3', 'khaki4', 'PaleGoldenrod', 'LemonChiffon', 'LemonChiffon1', 'khaki', 'LemonChiffon3', 'LemonChiffon2', 'MediumGoldenRod', 'cornsilk4', 'gold', 'gold1', 'gold2', 'gold3', 'gold4', 'LightGoldenrod', 'LightGoldenrod4', 'LightGoldenrod1', 'LightGoldenrod3', 'LightGoldenrod2', 'cornsilk3', 'cornsilk2', 'cornsilk', 'cornsilk1', 'goldenrod', 'goldenrod1', 'goldenrod2', 'goldenrod3', 'goldenrod4', 'DarkGoldenrod', 'DarkGoldenrod1', 'DarkGoldenrod2', 'DarkGoldenrod3', 'DarkGoldenrod4', 'FloralWhite', 'wheat2', 'OldLace', 'wheat', 'wheat1', 'wheat3', 'orange', 'orange1', 'orange2', 'orange3', 'orange4', 'wheat4', 'moccasin', 'PapayaWhip', 'NavajoWhite3', 'BlanchedAlmond', 'NavajoWhite', 'NavajoWhite1', 'NavajoWhite2', 'NavajoWhite4', 'AntiqueWhite4', 'AntiqueWhite', 'tan', 'bisque4', 'burlywood', 'AntiqueWhite2', 'burlywood1', 'burlywood3', 'burlywood2', 'AntiqueWhite1', 'burlywood4', 'AntiqueWhite3', 'DarkOrange', 'bisque2', 'bisque', 'bisque1', 'bisque3', 'DarkOrange1', 'linen', 'DarkOrange2', 'DarkOrange3', 'DarkOrange4', 'peru', 'tan1', 'tan2', 'tan3', 'tan4', 'PeachPuff', 'PeachPuff1', 'PeachPuff4', 'PeachPuff2', 'PeachPuff3', 'SandyBrown', 'seashell4', 'seashell2', 'seashell3', 'chocolate', 'chocolate1', 'chocolate2', 'chocolate3', 'chocolate4', 'SaddleBrown', 'seashell', 'seashell1', 'sienna4', 'sienna', 'sienna1', 'sienna2', 'sienna3', 'LightSalmon3', 'LightSalmon', 'LightSalmon1', 'LightSalmon4', 'LightSalmon2', 'coral', 'OrangeRed', 'OrangeRed1', 'OrangeRed2', 'OrangeRed3', 'OrangeRed4', 'DarkSalmon', 'salmon1', 'salmon2', 'salmon3', 'salmon4', 'coral1', 'coral2', 'coral3', 'coral4', 'tomato4', 'tomato', 'tomato1', 'tomato2', 'tomato3', 'MistyRose4', 'MistyRose2', 'MistyRose', 'MistyRose1', 'salmon', 'MistyRose3', 'white', 'gray100', 'grey100', 'grey100', 'gray99', 'grey99', 'gray98', 'grey98', 'gray97', 'grey97', 'gray96', 'grey96', 'WhiteSmoke', 'gray95', 'grey95', 'gray94', 'grey94', 'gray93', 'grey93', 'gray92', 'grey92', 'gray91', 'grey91', 'gray90', 'grey90', 'gray89', 'grey89', 'gray88', 'grey88', 'gray87', 'grey87', 'gainsboro', 'gray86', 'grey86', 'gray85', 'grey85', 'gray84', 'grey84', 'gray83', 'grey83', 'LightGray', 'LightGrey', 'gray82', 'grey82', 'gray81', 'grey81', 'gray80', 'grey80', 'gray79', 'grey79', 'gray78', 'grey78', 'gray77', 'grey77', 'gray76', 'grey76', 'silver', 'gray75', 'grey75', 'gray74', 'grey74', 'gray73', 'grey73', 'gray72', 'grey72', 'gray71', 'grey71', 'gray70', 'grey70', 'gray69', 'grey69', 'gray68', 'grey68', 'gray67', 'grey67', 'DarkGray', 'DarkGrey', 'gray66', 'grey66', 'gray65', 'grey65', 'gray64', 'grey64', 'gray63', 'grey63', 'gray62', 'grey62', 'gray61', 'grey61', 'gray60', 'grey60', 'gray59', 'grey59', 'gray58', 'grey58', 'gray57', 'grey57', 'gray56', 'grey56', 'gray55', 'grey55', 'gray54', 'grey54', 'gray53', 'grey53', 'gray52', 'grey52', 'gray51', 'grey51', 'fractal', 'gray50', 'grey50', 'gray', 'gray49', 'grey49', 'gray48', 'grey48', 'gray47', 'grey47', 'gray46', 'grey46', 'gray45', 'grey45', 'gray44', 'grey44', 'gray43', 'grey43', 'gray42', 'grey42', 'DimGray', 'DimGrey', 'gray41', 'grey41', 'gray40', 'grey40', 'gray39', 'grey39', 'gray38', 'grey38', 'gray37', 'grey37', 'gray36', 'grey36', 'gray35', 'grey35', 'gray34', 'grey34', 'gray33', 'grey33', 'gray32', 'grey32', 'gray31', 'grey31', 'gray30', 'grey30', 'gray29', 'grey29', 'gray28', 'grey28', 'gray27', 'grey27', 'gray26', 'grey26', 'gray25', 'grey25', 'gray24', 'grey24', 'gray23', 'grey23', 'gray22', 'grey22', 'gray21', 'grey21', 'gray20', 'grey20', 'gray19', 'grey19', 'gray18', 'grey18', 'gray17', 'grey17', 'gray16', 'grey16', 'gray15', 'grey15', 'gray14', 'grey14', 'gray13', 'grey13', 'gray12', 'grey12', 'gray11', 'grey11', 'gray10', 'grey10', 'gray9', 'grey9', 'gray8', 'grey8', 'gray7', 'grey7', 'gray6', 'grey6', 'gray5', 'grey5', 'gray4', 'grey4', 'gray3', 'grey3', 'gray2', 'grey2', 'gray1', 'grey1', 'black', 'gray0', 'grey0', 'opaque', 'none', 'transparent'] + + +#### create some dictionaries###### +#rgb to hex +#rgb to name +#the rest will not work +#maybe hex to rgb + +rgbtohex = {} +for x in xrange(0,len(hexlist)-1): + rgbtohex[rgblist[x]] = hexlist[x] + +rgbtoname ={} +for x in xrange(0, len(namelist)-1): + rgbtoname[rgblist[x]] = namelist[x] + +hextorgb = {} +for x in xrange(0, len(hexlist)-1): + hextorgb[hexlist[x]] = rgblist[x] + +f = open("colordictionaries2.js","w") +f.write('rgbtohex = '+str(rgbtohex)+'\n') +f.write('rgbtoname = '+str(rgbtoname)+'\n') +f.write('hextorgb = '+str(hextorgb)+'\n') + +f.close() diff --git a/frontend/imgrid/colors/js/wrkshp/names b/frontend/imgrid/colors/js/wrkshp/names new file mode 100755 index 0000000..ebcec30 --- /dev/null +++ b/frontend/imgrid/colors/js/wrkshp/names @@ -0,0 +1 @@ +namelist = ['snow', 'snow1', 'snow2', 'RosyBrown1', 'RosyBrown2', 'snow3', 'LightCoral', 'IndianRed1', 'RosyBrown3', 'IndianRed2', 'RosyBrown', 'brown1', 'firebrick1', 'brown2', 'IndianRed', 'IndianRed3', 'firebrick2', 'snow4', 'brown3', 'red', 'red1', 'RosyBrown4', 'firebrick3', 'red2', 'firebrick', 'brown', 'red3', 'IndianRed4', 'brown4', 'firebrick4', 'DarkRed', 'red4', 'maroon', 'LightPink1', 'LightPink3', 'LightPink4', 'LightPink2', 'LightPink', 'pink', 'crimson', 'pink1', 'pink2', 'pink3', 'pink4', 'PaleVioletRed4', 'PaleVioletRed', 'PaleVioletRed2', 'PaleVioletRed1', 'PaleVioletRed3', 'LavenderBlush', 'LavenderBlush1', 'LavenderBlush3', 'LavenderBlush2', 'LavenderBlush4', 'maroon', 'HotPink3', 'VioletRed3', 'VioletRed1', 'VioletRed2', 'VioletRed4', 'HotPink2', 'HotPink1', 'HotPink4', 'HotPink', 'DeepPink', 'DeepPink1', 'DeepPink2', 'DeepPink3', 'DeepPink4', 'maroon1', 'maroon2', 'maroon3', 'maroon4', 'MediumVioletRed', 'VioletRed', 'orchid2', 'orchid', 'orchid1', 'orchid3', 'orchid4', 'thistle1', 'thistle2', 'plum1', 'plum2', 'thistle', 'thistle3', 'plum', 'violet', 'plum3', 'thistle4', 'fuchsia', 'magenta', 'magenta1', 'plum4', 'magenta2', 'magenta3', 'DarkMagenta', 'magenta4', 'purple', 'MediumOrchid', 'MediumOrchid1', 'MediumOrchid2', 'MediumOrchid3', 'MediumOrchid4', 'DarkViolet', 'DarkOrchid', 'DarkOrchid1', 'DarkOrchid3', 'DarkOrchid2', 'DarkOrchid4', 'purple', 'indigo', 'BlueViolet', 'purple2', 'purple3', 'purple4', 'purple1', 'MediumPurple', 'MediumPurple1', 'MediumPurple2', 'MediumPurple3', 'MediumPurple4', 'DarkSlateBlue', 'LightSlateBlue', 'MediumSlateBlue', 'SlateBlue', 'SlateBlue1', 'SlateBlue2', 'SlateBlue3', 'SlateBlue4', 'GhostWhite', 'lavender', 'blue', 'blue1', 'blue2', 'blue3', 'MediumBlue', 'blue4', 'DarkBlue', 'MidnightBlue', 'navy', 'NavyBlue', 'RoyalBlue', 'RoyalBlue1', 'RoyalBlue2', 'RoyalBlue3', 'RoyalBlue4', 'CornflowerBlue', 'LightSteelBlue', 'LightSteelBlue1', 'LightSteelBlue2', 'LightSteelBlue3', 'LightSteelBlue4', 'SlateGray4', 'SlateGray1', 'SlateGray2', 'SlateGray3', 'LightSlateGray', 'LightSlateGrey', 'SlateGray', 'SlateGrey', 'DodgerBlue', 'DodgerBlue1', 'DodgerBlue2', 'DodgerBlue4', 'DodgerBlue3', 'AliceBlue', 'SteelBlue4', 'SteelBlue', 'SteelBlue1', 'SteelBlue2', 'SteelBlue3', 'SkyBlue4', 'SkyBlue1', 'SkyBlue2', 'SkyBlue3', 'LightSkyBlue', 'LightSkyBlue4', 'LightSkyBlue1', 'LightSkyBlue2', 'LightSkyBlue3', 'SkyBlue', 'LightBlue3', 'DeepSkyBlue', 'DeepSkyBlue1', 'DeepSkyBlue2', 'DeepSkyBlue4', 'DeepSkyBlue3', 'LightBlue1', 'LightBlue2', 'LightBlue', 'LightBlue4', 'PowderBlue', 'CadetBlue1', 'CadetBlue2', 'CadetBlue3', 'CadetBlue4', 'turquoise1', 'turquoise2', 'turquoise3', 'turquoise4', 'cadet blue', 'CadetBlue', 'DarkTurquoise', 'azure', 'azure1', 'LightCyan', 'LightCyan1', 'azure2', 'LightCyan2', 'PaleTurquoise1', 'PaleTurquoise', 'PaleTurquoise2', 'DarkSlateGray1', 'azure3', 'LightCyan3', 'DarkSlateGray2', 'PaleTurquoise3', 'DarkSlateGray3', 'azure4', 'LightCyan4', 'aqua', 'cyan', 'cyan1', 'PaleTurquoise4', 'cyan2', 'DarkSlateGray4', 'cyan3', 'cyan4', 'DarkCyan', 'teal', 'DarkSlateGray', 'DarkSlateGrey', 'MediumTurquoise', 'LightSeaGreen', 'turquoise', 'aquamarine4', 'aquamarine', 'aquamarine1', 'aquamarine2', 'aquamarine3', 'MediumAquamarine', 'MediumSpringGreen', 'MintCream', 'SpringGreen', 'SpringGreen1', 'SpringGreen2', 'SpringGreen3', 'SpringGreen4', 'MediumSeaGreen', 'SeaGreen', 'SeaGreen3', 'SeaGreen1', 'SeaGreen4', 'SeaGreen2', 'MediumForestGreen', 'honeydew', 'honeydew1', 'honeydew2', 'DarkSeaGreen1', 'DarkSeaGreen2', 'PaleGreen1', 'PaleGreen', 'honeydew3', 'LightGreen', 'PaleGreen2', 'DarkSeaGreen3', 'DarkSeaGreen', 'PaleGreen3', 'honeydew4', 'green1', 'lime', 'LimeGreen', 'DarkSeaGreen4', 'green2', 'PaleGreen4', 'green3', 'ForestGreen', 'green4', 'green', 'DarkGreen', 'LawnGreen', 'chartreuse', 'chartreuse1', 'chartreuse2', 'chartreuse3', 'chartreuse4', 'GreenYellow', 'DarkOliveGreen3', 'DarkOliveGreen1', 'DarkOliveGreen2', 'DarkOliveGreen4', 'DarkOliveGreen', 'OliveDrab', 'OliveDrab1', 'OliveDrab2', 'OliveDrab3', 'YellowGreen', 'OliveDrab4', 'ivory', 'ivory1', 'LightYellow', 'LightYellow1', 'beige', 'ivory2', 'LightGoldenrodYellow', 'LightYellow2', 'ivory3', 'LightYellow3', 'ivory4', 'LightYellow4', 'yellow', 'yellow1', 'yellow2', 'yellow3', 'yellow4', 'olive', 'DarkKhaki', 'khaki2', 'LemonChiffon4', 'khaki1', 'khaki3', 'khaki4', 'PaleGoldenrod', 'LemonChiffon', 'LemonChiffon1', 'khaki', 'LemonChiffon3', 'LemonChiffon2', 'MediumGoldenRod', 'cornsilk4', 'gold', 'gold1', 'gold2', 'gold3', 'gold4', 'LightGoldenrod', 'LightGoldenrod4', 'LightGoldenrod1', 'LightGoldenrod3', 'LightGoldenrod2', 'cornsilk3', 'cornsilk2', 'cornsilk', 'cornsilk1', 'goldenrod', 'goldenrod1', 'goldenrod2', 'goldenrod3', 'goldenrod4', 'DarkGoldenrod', 'DarkGoldenrod1', 'DarkGoldenrod2', 'DarkGoldenrod3', 'DarkGoldenrod4', 'FloralWhite', 'wheat2', 'OldLace', 'wheat', 'wheat1', 'wheat3', 'orange', 'orange1', 'orange2', 'orange3', 'orange4', 'wheat4', 'moccasin', 'PapayaWhip', 'NavajoWhite3', 'BlanchedAlmond', 'NavajoWhite', 'NavajoWhite1', 'NavajoWhite2', 'NavajoWhite4', 'AntiqueWhite4', 'AntiqueWhite', 'tan', 'bisque4', 'burlywood', 'AntiqueWhite2', 'burlywood1', 'burlywood3', 'burlywood2', 'AntiqueWhite1', 'burlywood4', 'AntiqueWhite3', 'DarkOrange', 'bisque2', 'bisque', 'bisque1', 'bisque3', 'DarkOrange1', 'linen', 'DarkOrange2', 'DarkOrange3', 'DarkOrange4', 'peru', 'tan1', 'tan2', 'tan3', 'tan4', 'PeachPuff', 'PeachPuff1', 'PeachPuff4', 'PeachPuff2', 'PeachPuff3', 'SandyBrown', 'seashell4', 'seashell2', 'seashell3', 'chocolate', 'chocolate1', 'chocolate2', 'chocolate3', 'chocolate4', 'SaddleBrown', 'seashell', 'seashell1', 'sienna4', 'sienna', 'sienna1', 'sienna2', 'sienna3', 'LightSalmon3', 'LightSalmon', 'LightSalmon1', 'LightSalmon4', 'LightSalmon2', 'coral', 'OrangeRed', 'OrangeRed1', 'OrangeRed2', 'OrangeRed3', 'OrangeRed4', 'DarkSalmon', 'salmon1', 'salmon2', 'salmon3', 'salmon4', 'coral1', 'coral2', 'coral3', 'coral4', 'tomato4', 'tomato', 'tomato1', 'tomato2', 'tomato3', 'MistyRose4', 'MistyRose2', 'MistyRose', 'MistyRose1', 'salmon', 'MistyRose3', 'white', 'gray100', 'grey100', 'grey100', 'gray99', 'grey99', 'gray98', 'grey98', 'gray97', 'grey97', 'gray96', 'grey96', 'WhiteSmoke', 'gray95', 'grey95', 'gray94', 'grey94', 'gray93', 'grey93', 'gray92', 'grey92', 'gray91', 'grey91', 'gray90', 'grey90', 'gray89', 'grey89', 'gray88', 'grey88', 'gray87', 'grey87', 'gainsboro', 'gray86', 'grey86', 'gray85', 'grey85', 'gray84', 'grey84', 'gray83', 'grey83', 'LightGray', 'LightGrey', 'gray82', 'grey82', 'gray81', 'grey81', 'gray80', 'grey80', 'gray79', 'grey79', 'gray78', 'grey78', 'gray77', 'grey77', 'gray76', 'grey76', 'silver', 'gray75', 'grey75', 'gray74', 'grey74', 'gray73', 'grey73', 'gray72', 'grey72', 'gray71', 'grey71', 'gray70', 'grey70', 'gray69', 'grey69', 'gray68', 'grey68', 'gray67', 'grey67', 'DarkGray', 'DarkGrey', 'gray66', 'grey66', 'gray65', 'grey65', 'gray64', 'grey64', 'gray63', 'grey63', 'gray62', 'grey62', 'gray61', 'grey61', 'gray60', 'grey60', 'gray59', 'grey59', 'gray58', 'grey58', 'gray57', 'grey57', 'gray56', 'grey56', 'gray55', 'grey55', 'gray54', 'grey54', 'gray53', 'grey53', 'gray52', 'grey52', 'gray51', 'grey51', 'fractal', 'gray50', 'grey50', 'gray', 'gray49', 'grey49', 'gray48', 'grey48', 'gray47', 'grey47', 'gray46', 'grey46', 'gray45', 'grey45', 'gray44', 'grey44', 'gray43', 'grey43', 'gray42', 'grey42', 'DimGray', 'DimGrey', 'gray41', 'grey41', 'gray40', 'grey40', 'gray39', 'grey39', 'gray38', 'grey38', 'gray37', 'grey37', 'gray36', 'grey36', 'gray35', 'grey35', 'gray34', 'grey34', 'gray33', 'grey33', 'gray32', 'grey32', 'gray31', 'grey31', 'gray30', 'grey30', 'gray29', 'grey29', 'gray28', 'grey28', 'gray27', 'grey27', 'gray26', 'grey26', 'gray25', 'grey25', 'gray24', 'grey24', 'gray23', 'grey23', 'gray22', 'grey22', 'gray21', 'grey21', 'gray20', 'grey20', 'gray19', 'grey19', 'gray18', 'grey18', 'gray17', 'grey17', 'gray16', 'grey16', 'gray15', 'grey15', 'gray14', 'grey14', 'gray13', 'grey13', 'gray12', 'grey12', 'gray11', 'grey11', 'gray10', 'grey10', 'gray9', 'grey9', 'gray8', 'grey8', 'gray7', 'grey7', 'gray6', 'grey6', 'gray5', 'grey5', 'gray4', 'grey4', 'gray3', 'grey3', 'gray2', 'grey2', 'gray1', 'grey1', 'black', 'gray0', 'grey0', 'opaque', 'none', 'transparent']
\ No newline at end of file diff --git a/frontend/imgrid/colors/js/wrkshp/rgbs b/frontend/imgrid/colors/js/wrkshp/rgbs new file mode 100755 index 0000000..59981a8 --- /dev/null +++ b/frontend/imgrid/colors/js/wrkshp/rgbs @@ -0,0 +1 @@ +rgblist = ['rgb(255, 250, 250)', 'rgb(255, 250, 250)', 'rgb(238, 233, 233)', 'rgb(255, 193, 193)', 'rgb(238, 180, 180)', 'rgb(205, 201, 201)', 'rgb(240, 128, 128)', 'rgb(255, 106, 106)', 'rgb(205, 155, 155)', 'rgb(238, 99, 99)', 'rgb(188, 143, 143)', 'rgb(255, 64, 64)', 'rgb(255, 48, 48)', 'rgb(238, 59, 59)', 'rgb(205, 92, 92)', 'rgb(205, 85, 85)', 'rgb(238, 44, 44)', 'rgb(139, 137, 137)', 'rgb(205, 51, 51)', 'rgb(255, 0, 0)', 'rgb(255, 0, 0)', 'rgb(139, 105, 105)', 'rgb(205, 38, 38)', 'rgb(238, 0, 0)', 'rgb(178, 34, 34)', 'rgb(165, 42, 42)', 'rgb(205, 0, 0)', 'rgb(139, 58, 58)', 'rgb(139, 35, 35)', 'rgb(139, 26, 26)', 'rgb(139, 0, 0)', 'rgb(139, 0, 0)', 'rgb(128, 0, 0)', 'rgb(255, 174, 185)', 'rgb(205, 140, 149)', 'rgb(139, 95, 101)', 'rgb(238, 162, 173)', 'rgb(255, 182, 193)', 'rgb(255, 192, 203)', 'rgb(220, 20, 60)', 'rgb(255, 181, 197)', 'rgb(238, 169, 184)', 'rgb(205, 145, 158)', 'rgb(139, 99, 108)', 'rgb(139, 71, 93)', 'rgb(219, 112, 147)', 'rgb(238, 121, 159)', 'rgb(255, 130, 171)', 'rgb(205, 104, 137)', 'rgb(255, 240, 245)', 'rgb(255, 240, 245)', 'rgb(205, 193, 197)', 'rgb(238, 224, 229)', 'rgb(139, 131, 134)', 'rgb(176, 48, 96)', 'rgb(205, 96, 144)', 'rgb(205, 50, 120)', 'rgb(255, 62, 150)', 'rgb(238, 58, 140)', 'rgb(139, 34, 82)', 'rgb(238, 106, 167)', 'rgb(255, 110, 180)', 'rgb(139, 58, 98)', 'rgb(255, 105, 180)', 'rgb(255, 20, 147)', 'rgb(255, 20, 147)', 'rgb(238, 18, 137)', 'rgb(205, 16, 118)', 'rgb(139, 10, 80)', 'rgb(255, 52, 179)', 'rgb(238, 48, 167)', 'rgb(205, 41, 144)', 'rgb(139, 28, 98)', 'rgb(199, 21, 133)', 'rgb(208, 32, 144)', 'rgb(238, 122, 233)', 'rgb(218, 112, 214)', 'rgb(255, 131, 250)', 'rgb(205, 105, 201)', 'rgb(139, 71, 137)', 'rgb(255, 225, 255)', 'rgb(238, 210, 238)', 'rgb(255, 187, 255)', 'rgb(238, 174, 238)', 'rgb(216, 191, 216)', 'rgb(205, 181, 205)', 'rgb(221, 160, 221)', 'rgb(238, 130, 238)', 'rgb(205, 150, 205)', 'rgb(139, 123, 139)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(255, 0, 255)', 'rgb(139, 102, 139)', 'rgb(238, 0, 238)', 'rgb(205, 0, 205)', 'rgb(139, 0, 139)', 'rgb(139, 0, 139)', 'rgb(128, 0, 128)', 'rgb(186, 85, 211)', 'rgb(224, 102, 255)', 'rgb(209, 95, 238)', 'rgb(180, 82, 205)', 'rgb(122, 55, 139)', 'rgb(148, 0, 211)', 'rgb(153, 50, 204)', 'rgb(191, 62, 255)', 'rgb(154, 50, 205)', 'rgb(178, 58, 238)', 'rgb(104, 34, 139)', 'rgb(160, 32, 240)', 'rgb( 75, 0, 130)', 'rgb(138, 43, 226)', 'rgb(145, 44, 238)', 'rgb(125, 38, 205)', 'rgb( 85, 26, 139)', 'rgb(155, 48, 255)', 'rgb(147, 112, 219)', 'rgb(171, 130, 255)', 'rgb(159, 121, 238)', 'rgb(137, 104, 205)', 'rgb( 93, 71, 139)', 'rgb( 72, 61, 139)', 'rgb(132, 112, 255)', 'rgb(123, 104, 238)', 'rgb(106, 90, 205)', 'rgb(131, 111, 255)', 'rgb(122, 103, 238)', 'rgb(105, 89, 205)', 'rgb( 71, 60, 139)', 'rgb(248, 248, 255)', 'rgb(230, 230, 250)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 255)', 'rgb( 0, 0, 238)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 205)', 'rgb( 0, 0, 139)', 'rgb( 0, 0, 139)', 'rgb( 25, 25, 112)', 'rgb( 0, 0, 128)', 'rgb( 0, 0, 128)', 'rgb( 65, 105, 225)', 'rgb( 72, 118, 255)', 'rgb( 67, 110, 238)', 'rgb( 58, 95, 205)', 'rgb( 39, 64, 139)', 'rgb(100, 149, 237)', 'rgb(176, 196, 222)', 'rgb(202, 225, 255)', 'rgb(188, 210, 238)', 'rgb(162, 181, 205)', 'rgb(110, 123, 139)', 'rgb(108, 123, 139)', 'rgb(198, 226, 255)', 'rgb(185, 211, 238)', 'rgb(159, 182, 205)', 'rgb(119, 136, 153)', 'rgb(119, 136, 153)', 'rgb(112, 128, 144)', 'rgb(112, 128, 144)', 'rgb( 30, 144, 255)', 'rgb( 30, 144, 255)', 'rgb( 28, 134, 238)', 'rgb( 16, 78, 139)', 'rgb( 24, 116, 205)', 'rgb(240, 248, 255)', 'rgb( 54, 100, 139)', 'rgb( 70, 130, 180)', 'rgb( 99, 184, 255)', 'rgb( 92, 172, 238)', 'rgb( 79, 148, 205)', 'rgb( 74, 112, 139)', 'rgb(135, 206, 255)', 'rgb(126, 192, 238)', 'rgb(108, 166, 205)', 'rgb(135, 206, 250)', 'rgb( 96, 123, 139)', 'rgb(176, 226, 255)', 'rgb(164, 211, 238)', 'rgb(141, 182, 205)', 'rgb(135, 206, 235)', 'rgb(154, 192, 205)', 'rgb( 0, 191, 255)', 'rgb( 0, 191, 255)', 'rgb( 0, 178, 238)', 'rgb( 0, 104, 139)', 'rgb( 0, 154, 205)', 'rgb(191, 239, 255)', 'rgb(178, 223, 238)', 'rgb(173, 216, 230)', 'rgb(104, 131, 139)', 'rgb(176, 224, 230)', 'rgb(152, 245, 255)', 'rgb(142, 229, 238)', 'rgb(122, 197, 205)', 'rgb( 83, 134, 139)', 'rgb( 0, 245, 255)', 'rgb( 0, 229, 238)', 'rgb( 0, 197, 205)', 'rgb( 0, 134, 139)', 'rgb( 95, 158, 160)', 'rgb( 95, 158, 160)', 'rgb( 0, 206, 209)', 'rgb(240, 255, 255)', 'rgb(240, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 255, 255)', 'rgb(224, 238, 238)', 'rgb(209, 238, 238)', 'rgb(187, 255, 255)', 'rgb(175, 238, 238)', 'rgb(174, 238, 238)', 'rgb(151, 255, 255)', 'rgb(193, 205, 205)', 'rgb(180, 205, 205)', 'rgb(141, 238, 238)', 'rgb(150, 205, 205)', 'rgb(121, 205, 205)', 'rgb(131, 139, 139)', 'rgb(122, 139, 139)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb( 0, 255, 255)', 'rgb(102, 139, 139)', 'rgb( 0, 238, 238)', 'rgb( 82, 139, 139)', 'rgb( 0, 205, 205)', 'rgb( 0, 139, 139)', 'rgb( 0, 139, 139)', 'rgb( 0, 128, 128)', 'rgb( 47, 79, 79)', 'rgb( 47, 79, 79)', 'rgb( 72, 209, 204)', 'rgb( 32, 178, 170)', 'rgb( 64, 224, 208)', 'rgb( 69, 139, 116)', 'rgb(127, 255, 212)', 'rgb(127, 255, 212)', 'rgb(118, 238, 198)', 'rgb(102, 205, 170)', 'rgb(102, 205, 170)', 'rgb( 0, 250, 154)', 'rgb(245, 255, 250)', 'rgb( 0, 255, 127)', 'rgb( 0, 255, 127)', 'rgb( 0, 238, 118)', 'rgb( 0, 205, 102)', 'rgb( 0, 139, 69)', 'rgb( 60, 179, 113)', 'rgb( 46, 139, 87)', 'rgb( 67, 205, 128)', 'rgb( 84, 255, 159)', 'rgb( 46, 139, 87)', 'rgb( 78, 238, 148)', 'rgb( 50, 129, 75)', 'rgb(240, 255, 240)', 'rgb(240, 255, 240)', 'rgb(224, 238, 224)', 'rgb(193, 255, 193)', 'rgb(180, 238, 180)', 'rgb(154, 255, 154)', 'rgb(152, 251, 152)', 'rgb(193, 205, 193)', 'rgb(144, 238, 144)', 'rgb(144, 238, 144)', 'rgb(155, 205, 155)', 'rgb(143, 188, 143)', 'rgb(124, 205, 124)', 'rgb(131, 139, 131)', 'rgb( 0, 255, 0)', 'rgb( 0, 255, 0)', 'rgb( 50, 205, 50)', 'rgb(105, 139, 105)', 'rgb( 0, 238, 0)', 'rgb( 84, 139, 84)', 'rgb( 0, 205, 0)', 'rgb( 34, 139, 34)', 'rgb( 0, 139, 0)', 'rgb( 0, 128, 0)', 'rgb( 0, 100, 0)', 'rgb(124, 252, 0)', 'rgb(127, 255, 0)', 'rgb(127, 255, 0)', 'rgb(118, 238, 0)', 'rgb(102, 205, 0)', 'rgb( 69, 139, 0)', 'rgb(173, 255, 47)', 'rgb(162, 205, 90)', 'rgb(202, 255, 112)', 'rgb(188, 238, 104)', 'rgb(110, 139, 61)', 'rgb( 85, 107, 47)', 'rgb(107, 142, 35)', 'rgb(192, 255, 62)', 'rgb(179, 238, 58)', 'rgb(154, 205, 50)', 'rgb(154, 205, 50)', 'rgb(105, 139, 34)', 'rgb(255, 255, 240)', 'rgb(255, 255, 240)', 'rgb(255, 255, 224)', 'rgb(255, 255, 224)', 'rgb(245, 245, 220)', 'rgb(238, 238, 224)', 'rgb(250, 250, 210)', 'rgb(238, 238, 209)', 'rgb(205, 205, 193)', 'rgb(205, 205, 180)', 'rgb(139, 139, 131)', 'rgb(139, 139, 122)', 'rgb(255, 255, 0)', 'rgb(255, 255, 0)', 'rgb(238, 238, 0)', 'rgb(205, 205, 0)', 'rgb(139, 139, 0)', 'rgb(128, 128, 0)', 'rgb(189, 183, 107)', 'rgb(238, 230, 133)', 'rgb(139, 137, 112)', 'rgb(255, 246, 143)', 'rgb(205, 198, 115)', 'rgb(139, 134, 78)', 'rgb(238, 232, 170)', 'rgb(255, 250, 205)', 'rgb(255, 250, 205)', 'rgb(240, 230, 140)', 'rgb(205, 201, 165)', 'rgb(238, 233, 191)', 'rgb(209, 193, 102)', 'rgb(139, 136, 120)', 'rgb(255, 215, 0)', 'rgb(255, 215, 0)', 'rgb(238, 201, 0)', 'rgb(205, 173, 0)', 'rgb(139, 117, 0)', 'rgb(238, 221, 130)', 'rgb(139, 129, 76)', 'rgb(255, 236, 139)', 'rgb(205, 190, 112)', 'rgb(238, 220, 130)', 'rgb(205, 200, 177)', 'rgb(238, 232, 205)', 'rgb(255, 248, 220)', 'rgb(255, 248, 220)', 'rgb(218, 165, 32)', 'rgb(255, 193, 37)', 'rgb(238, 180, 34)', 'rgb(205, 155, 29)', 'rgb(139, 105, 20)', 'rgb(184, 134, 11)', 'rgb(255, 185, 15)', 'rgb(238, 173, 14)', 'rgb(205, 149, 12)', 'rgb(139, 101, 8)', 'rgb(255, 250, 240)', 'rgb(238, 216, 174)', 'rgb(253, 245, 230)', 'rgb(245, 222, 179)', 'rgb(255, 231, 186)', 'rgb(205, 186, 150)', 'rgb(255, 165, 0)', 'rgb(255, 165, 0)', 'rgb(238, 154, 0)', 'rgb(205, 133, 0)', 'rgb(139, 90, 0)', 'rgb(139, 126, 102)', 'rgb(255, 228, 181)', 'rgb(255, 239, 213)', 'rgb(205, 179, 139)', 'rgb(255, 235, 205)', 'rgb(255, 222, 173)', 'rgb(255, 222, 173)', 'rgb(238, 207, 161)', 'rgb(139, 121, 94)', 'rgb(139, 131, 120)', 'rgb(250, 235, 215)', 'rgb(210, 180, 140)', 'rgb(139, 125, 107)', 'rgb(222, 184, 135)', 'rgb(238, 223, 204)', 'rgb(255, 211, 155)', 'rgb(205, 170, 125)', 'rgb(238, 197, 145)', 'rgb(255, 239, 219)', 'rgb(139, 115, 85)', 'rgb(205, 192, 176)', 'rgb(255, 140, 0)', 'rgb(238, 213, 183)', 'rgb(255, 228, 196)', 'rgb(255, 228, 196)', 'rgb(205, 183, 158)', 'rgb(255, 127, 0)', 'rgb(250, 240, 230)', 'rgb(238, 118, 0)', 'rgb(205, 102, 0)', 'rgb(139, 69, 0)', 'rgb(205, 133, 63)', 'rgb(255, 165, 79)', 'rgb(238, 154, 73)', 'rgb(205, 133, 63)', 'rgb(139, 90, 43)', 'rgb(255, 218, 185)', 'rgb(255, 218, 185)', 'rgb(139, 119, 101)', 'rgb(238, 203, 173)', 'rgb(205, 175, 149)', 'rgb(244, 164, 96)', 'rgb(139, 134, 130)', 'rgb(238, 229, 222)', 'rgb(205, 197, 191)', 'rgb(210, 105, 30)', 'rgb(255, 127, 36)', 'rgb(238, 118, 33)', 'rgb(205, 102, 29)', 'rgb(139, 69, 19)', 'rgb(139, 69, 19)', 'rgb(255, 245, 238)', 'rgb(255, 245, 238)', 'rgb(139, 71, 38)', 'rgb(160, 82, 45)', 'rgb(255, 130, 71)', 'rgb(238, 121, 66)', 'rgb(205, 104, 57)', 'rgb(205, 129, 98)', 'rgb(255, 160, 122)', 'rgb(255, 160, 122)', 'rgb(139, 87, 66)', 'rgb(238, 149, 114)', 'rgb(255, 127, 80)', 'rgb(255, 69, 0)', 'rgb(255, 69, 0)', 'rgb(238, 64, 0)', 'rgb(205, 55, 0)', 'rgb(139, 37, 0)', 'rgb(233, 150, 122)', 'rgb(255, 140, 105)', 'rgb(238, 130, 98)', 'rgb(205, 112, 84)', 'rgb(139, 76, 57)', 'rgb(255, 114, 86)', 'rgb(238, 106, 80)', 'rgb(205, 91, 69)', 'rgb(139, 62, 47)', 'rgb(139, 54, 38)', 'rgb(255, 99, 71)', 'rgb(255, 99, 71)', 'rgb(238, 92, 66)', 'rgb(205, 79, 57)', 'rgb(139, 125, 123)', 'rgb(238, 213, 210)', 'rgb(255, 228, 225)', 'rgb(255, 228, 225)', 'rgb(250, 128, 114)', 'rgb(205, 183, 181)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(255, 255, 255)', 'rgb(252, 252, 252)', 'rgb(252, 252, 252)', 'rgb(250, 250, 250)', 'rgb(250, 250, 250)', 'rgb(247, 247, 247)', 'rgb(247, 247, 247)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(245, 245, 245)', 'rgb(242, 242, 242)', 'rgb(242, 242, 242)', 'rgb(240, 240, 240)', 'rgb(240, 240, 240)', 'rgb(237, 237, 237)', 'rgb(237, 237, 237)', 'rgb(235, 235, 235)', 'rgb(235, 235, 235)', 'rgb(232, 232, 232)', 'rgb(232, 232, 232)', 'rgb(229, 229, 229)', 'rgb(229, 229, 229)', 'rgb(227, 227, 227)', 'rgb(227, 227, 227)', 'rgb(224, 224, 224)', 'rgb(224, 224, 224)', 'rgb(222, 222, 222)', 'rgb(222, 222, 222)', 'rgb(220, 220, 220)', 'rgb(219, 219, 219)', 'rgb(219, 219, 219)', 'rgb(217, 217, 217)', 'rgb(217, 217, 217)', 'rgb(214, 214, 214)', 'rgb(214, 214, 214)', 'rgb(212, 212, 212)', 'rgb(212, 212, 212)', 'rgb(211, 211, 211)', 'rgb(211, 211, 211)', 'rgb(209, 209, 209)', 'rgb(209, 209, 209)', 'rgb(207, 207, 207)', 'rgb(207, 207, 207)', 'rgb(204, 204, 204)', 'rgb(204, 204, 204)', 'rgb(201, 201, 201)', 'rgb(201, 201, 201)', 'rgb(199, 199, 199)', 'rgb(199, 199, 199)', 'rgb(196, 196, 196)', 'rgb(196, 196, 196)', 'rgb(194, 194, 194)', 'rgb(194, 194, 194)', 'rgb(192, 192, 192)', 'rgb(191, 191, 191)', 'rgb(191, 191, 191)', 'rgb(189, 189, 189)', 'rgb(189, 189, 189)', 'rgb(186, 186, 186)', 'rgb(186, 186, 186)', 'rgb(184, 184, 184)', 'rgb(184, 184, 184)', 'rgb(181, 181, 181)', 'rgb(181, 181, 181)', 'rgb(179, 179, 179)', 'rgb(179, 179, 179)', 'rgb(176, 176, 176)', 'rgb(176, 176, 176)', 'rgb(173, 173, 173)', 'rgb(173, 173, 173)', 'rgb(171, 171, 171)', 'rgb(171, 171, 171)', 'rgb(169, 169, 169)', 'rgb(169, 169, 169)', 'rgb(168, 168, 168)', 'rgb(168, 168, 168)', 'rgb(166, 166, 166)', 'rgb(166, 166, 166)', 'rgb(163, 163, 163)', 'rgb(163, 163, 163)', 'rgb(161, 161, 161)', 'rgb(161, 161, 161)', 'rgb(158, 158, 158)', 'rgb(158, 158, 158)', 'rgb(156, 156, 156)', 'rgb(156, 156, 156)', 'rgb(153, 153, 153)', 'rgb(153, 153, 153)', 'rgb(150, 150, 150)', 'rgb(150, 150, 150)', 'rgb(148, 148, 148)', 'rgb(148, 148, 148)', 'rgb(145, 145, 145)', 'rgb(145, 145, 145)', 'rgb(143, 143, 143)', 'rgb(143, 143, 143)', 'rgb(140, 140, 140)', 'rgb(140, 140, 140)', 'rgb(138, 138, 138)', 'rgb(138, 138, 138)', 'rgb(135, 135, 135)', 'rgb(135, 135, 135)', 'rgb(133, 133, 133)', 'rgb(133, 133, 133)', 'rgb(130, 130, 130)', 'rgb(130, 130, 130)', 'rgb(128, 128, 128)', 'rgb(127, 127, 127)', 'rgb(127, 127, 127)', 'rgb(126, 126, 126)', 'rgb(125, 125, 125)', 'rgb(125, 125, 125)', 'rgb(122, 122, 122)', 'rgb(122, 122, 122)', 'rgb(120, 120, 120)', 'rgb(120, 120, 120)', 'rgb(117, 117, 117)', 'rgb(117, 117, 117)', 'rgb(115, 115, 115)', 'rgb(115, 115, 115)', 'rgb(112, 112, 112)', 'rgb(112, 112, 112)', 'rgb(110, 110, 110)', 'rgb(110, 110, 110)', 'rgb(107, 107, 107)', 'rgb(107, 107, 107)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(105, 105, 105)', 'rgb(102, 102, 102)', 'rgb(102, 102, 102)', 'rgb( 99, 99, 99)', 'rgb( 99, 99, 99)', 'rgb( 97, 97, 97)', 'rgb( 97, 97, 97)', 'rgb( 94, 94, 94)', 'rgb( 94, 94, 94)', 'rgb( 92, 92, 92)', 'rgb( 92, 92, 92)', 'rgb( 89, 89, 89)', 'rgb( 89, 89, 89)', 'rgb( 87, 87, 87)', 'rgb( 87, 87, 87)', 'rgb( 84, 84, 84)', 'rgb( 84, 84, 84)', 'rgb( 82, 82, 82)', 'rgb( 82, 82, 82)', 'rgb( 79, 79, 79)', 'rgb( 79, 79, 79)', 'rgb( 77, 77, 77)', 'rgb( 77, 77, 77)', 'rgb( 74, 74, 74)', 'rgb( 74, 74, 74)', 'rgb( 71, 71, 71)', 'rgb( 71, 71, 71)', 'rgb( 69, 69, 69)', 'rgb( 69, 69, 69)', 'rgb( 66, 66, 66)', 'rgb( 66, 66, 66)', 'rgb( 64, 64, 64)', 'rgb( 64, 64, 64)', 'rgb( 61, 61, 61)', 'rgb( 61, 61, 61)', 'rgb( 59, 59, 59)', 'rgb( 59, 59, 59)', 'rgb( 56, 56, 56)', 'rgb( 56, 56, 56)', 'rgb( 54, 54, 54)', 'rgb( 54, 54, 54)', 'rgb( 51, 51, 51)', 'rgb( 51, 51, 51)', 'rgb( 48, 48, 48)', 'rgb( 48, 48, 48)', 'rgb( 46, 46, 46)', 'rgb( 46, 46, 46)', 'rgb( 43, 43, 43)', 'rgb( 43, 43, 43)', 'rgb( 41, 41, 41)', 'rgb( 41, 41, 41)', 'rgb( 38, 38, 38)', 'rgb( 38, 38, 38)', 'rgb( 36, 36, 36)', 'rgb( 36, 36, 36)', 'rgb( 33, 33, 33)', 'rgb( 33, 33, 33)', 'rgb( 31, 31, 31)', 'rgb( 31, 31, 31)', 'rgb( 28, 28, 28)', 'rgb( 28, 28, 28)', 'rgb( 26, 26, 26)', 'rgb( 26, 26, 26)', 'rgb( 23, 23, 23)', 'rgb( 23, 23, 23)', 'rgb( 20, 20, 20)', 'rgb( 20, 20, 20)', 'rgb( 18, 18, 18)', 'rgb( 18, 18, 18)', 'rgb( 15, 15, 15)', 'rgb( 15, 15, 15)', 'rgb( 13, 13, 13)', 'rgb( 13, 13, 13)', 'rgb( 10, 10, 10)', 'rgb( 10, 10, 10)', 'rgb( 8, 8, 8)', 'rgb( 8, 8, 8)', 'rgb( 5, 5, 5)', 'rgb( 5, 5, 5)', 'rgb( 3, 3, 3)', 'rgb( 3, 3, 3)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'rgb( 0, 0, 0)', 'white', 'white']
\ No newline at end of file diff --git a/frontend/imgrid/colors/junk/ScrollEffect.js b/frontend/imgrid/colors/junk/ScrollEffect.js new file mode 100755 index 0000000..ac8ca3f --- /dev/null +++ b/frontend/imgrid/colors/junk/ScrollEffect.js @@ -0,0 +1,86 @@ +var vt = function () { + var view_box, + scrolled_element, + scrolled_element_actualheight = 0, + new_scrolled_element_top_position = 0, + final_Landing_Spot = 0, + hidden_material = 0, + viewbox_actualheight = 0, + y_coordinate = 0; + + var velx; + var prevY; + // ----- setup jquery selectors, set mouse event, run function run on timer + var start = function (view_element, element_to_be_scrolled) { + + // ----- mouse event ----- + $('.colors').mousemove(function(e){ + y_coordinate = e.clientY; + velx = e.clientY - prevY; + }); + + // ----- selectors and variables + view_box = $('#'+view_element)[0];//.(view_element);//viewarea + scrolled_element = $('#'+element_to_be_scrolled)[0]; //container + viewbox_actualheight = view_box.offsetHeight;//always 850px + scrolled_element_actualheight = scrolled_element.offsetHeight; + hidden_material = scrolled_element_actualheight - viewbox_actualheight; + + + // ----- start engine ----- + + setInterval(run, 60);//previously 16, the higher the number, the easier it is on the browser + }; + ///////////////////////////////////////////////////////////////////////////// + + + // ----- main ----- all this function does is adjust the top position of the div + var run = function () { + + prevY = y_coordinate; + + //if velocity is negative, landing spot and scrolltop increase in value (you have to add it) + + //velocity function if velocity is high, final landing spot is high, + +//FINAL LANDING SPOT IS NO LONGER FINAL LANDING SPOT. INSTEAD it's +//how much the div will move + // ----- calculate the final landing spot +// if(y_coordinate < viewbox_actualheight){ //it almost always is + final_Landing_Spot = y_coordinate * -18.5//( hidden_material / viewbox_actualheight)*-1; //this is negative because it's adjusting top css + + $('#preview').html('x-velocity='+'scrolled element'+scrolled_element_offset_height+'thats it'+velx+'<br><span id="boners" style="position:absolute; z-index:1000;"></span>') +// } + /*this is the mouse position multiplied by the ratio of hidden to visible. this makes sense going in the negative direction, because + it allows the number to grow in proportion to how much invisible stuff there is...the issue is that the mouse position is small at the top of + the screen and large at the bottom...it needs to be equalized*/ + + + + // ----- function to determine easing + var velocity = (final_Landing_Spot - new_scrolled_element_top_position) + new_scrolled_element_top_position += Math.max(-25, Math.min(25, (final_Landing_Spot - new_scrolled_element_top_position))); + + + + + + + + + + + + + $('#boners').html('<span style="font-size:14"> final_Landing_Spot ='+(final_Landing_Spot - new_scrolled_element_top_position)+'<br>var vvvvvvelocity='+velocity+'<br> clientY='+y_coordinate+'<br>new scrolled top='+new_scrolled_element_top_position+'</span>') + // ----- HTML position ----- + scrolled_element.style.top = Math.round(new_scrolled_element_top_position) + 'px'; //and finally it's put in...continuously against the timer + + }; + + return { + //////////////////////////////////////////////////////////////////////////// + /* ==== public functions ==== */ + start : start, + } +}(); diff --git a/frontend/imgrid/colors/junk/ScrollEffectcomingsoon.js b/frontend/imgrid/colors/junk/ScrollEffectcomingsoon.js new file mode 100755 index 0000000..3388d5f --- /dev/null +++ b/frontend/imgrid/colors/junk/ScrollEffectcomingsoon.js @@ -0,0 +1,237 @@ +var vt = function () { + var view_box, + scrolled_element, + scrolled_element_actualheight = 0, + easing = 0, + final_resting_place = 0, + hidden_material = 0, + viewbox_actualheight = 0; + var y_coordinate = 0; + + var velocity; + var prevY; + var lastrested = 0; + // ----- setup jquery selectors, set mouse event, run function run on timer + var start = function (view_element, element_to_be_scrolled) { + + // ----- mouse event ----- + $('.colors').mousemove(function(e){ + y_coordinate = e.clientY; + velocity = e.clientY - prevY; + }); + velocity = y_coordinate - prevY + // ----- selectors and variables + view_box = $('#'+view_element)[0];//.(view_element);//viewarea + scrolled_element = $('#'+element_to_be_scrolled)[0]; //container + viewbox_actualheight = view_box.offsetHeight;//always 850px + scrolled_element_actualheight = scrolled_element.offsetHeight; + hidden_material = scrolled_element_actualheight - viewbox_actualheight; + + + // ----- timer ----- + + setInterval(run, 50);//previously 16, the higher the number, the easier it is on the browser + }; + ///////////////////////////////////////////////////////////////////////////// + + + // ----- main ----- all this function does is adjust the top position of the div + var run = function () { + + prevY = y_coordinate; + + //if velocity is negative, landing spot and scrolltop increase in value (you have to add it) + + //velocity function if velocity is high, final landing spot is high, + +//FINAL LANDING SPOT IS NO LONGER FINAL LANDING SPOT. INSTEAD it's +//how much the div will move + // ----- calculate the final landing spot +// if(y_coordinate < viewbox_actualheight){ //it almost always is + final_resting_place = velocity * -8 + // -18.5//( hidden_material / viewbox_actualheight)*-1; //this is negative because it's adjusting top css + var rush = velocity*.1 + + $('#preview').html('velocity='+velocity+'<br>rush='+rush+'<br><span id="boners" style="position:absolute; z-index:1000;"></span>') +// } + /*this is the mouse position multiplied by the ratio of hidden to visible. this makes sense going in the negative direction, because + it allows the number to grow in proportion to how much invisible stuff there is...the issue is that the mouse position is small at the top of + the screen and large at the bottom...it needs to be equalized*/ + + + + // ----- function to determine roll_to_zero + // var wheelshow; + var roll_to_zero; + // if(Math.abs(velocity)<10){roll_to_zero = roll_to_zero} + // else{ + roll_to_zero = (final_resting_place - easing) + // easing += Math.max(-25, Math.min(25, roll_to_zero));} + // easing += Math.max(-25, Math.min(25, roll_to_zero));} + if (roll_to_zero > 0) + {if (roll_to_zero > 8000) + {easing = easing + 100} + else if (roll_to_zero > 6000) + {easing = easing +50} + else if (roll_to_zero > 3000) + {easing = easing + 30} + else if (roll_to_zero > 1000) + {easing = easing + 20} + else if (roll_to_zero > 50) + {easing = easing +5} + else{easing = easing +1}} + else if (roll_to_zero < 0) + {if (roll_to_zero < 8000) + {easing = easing - 100} + else if (roll_to_zero < 6000) + {easing = easing -50} + else if (roll_to_zero < 3000) + {easing = easing - 30} + else if (roll_to_zero < 1000) + {easing = easing - 20} + else if (roll_to_zero < 50) + {easing = easing -1}} + else{easing = final_resting_place} + + if (roll_to_zero == 0){roll_to_zero = 0} + if (Math.abs(velocity) <= 50){roll_to_zero = 0} +// } + // easing = + //in other words if its less than 25(and moving down to zero), it uses 25 and if it's greater than 25 (moving up to zero) it uses 25. it will move + //faster going up if the Math.min(25, number is higher, but since the value is determined by the mouse cursor position it won't move as fast + + + + + + + + + + + $('#boners').html('<span style="font-size:14"><br>final resting place='+final_resting_place+'<br>var roll_to_zero='+roll_to_zero+'<br> clientY='+y_coordinate+'<br>easing='+easing+'</span>') + // ----- HTML position ----- + scrolled_element.style.top = Math.round(easing) + 'px'; //and finally it's put in...continuously against the timer + + }; +// var wheelshow = final_resting_place - lastrested; + // while(easing > 0){html = this div rightwheel} +// while(easing < 0){html = this div leftwheel.show} //wheel should be gray and transparent 3/4 view bg = colors under the mouseover + // if(easing == 0){hmtl = ''} + return { + //////////////////////////////////////////////////////////////////////////// + /* ==== public functions ==== */ + start : start, + } +}(); + + +/*minimap...how would it work? + +an image of the page... + +plus a div with a border + +there would have to be some sort of mathematical correllation to the window.height and the height of the div +against the minimap + + + + + +WHAT WE'VE GOT;;;;;;;;;;;;;;;;;;;;;;;;; +VELOCITY Y...A NUMBER THAT INDICATES THE CHANGE IN POSITION OF THE MOUSE + +HIDDENMATERIAL/VIEWBOX ACTUAL HeIGHT = 18.5 + +resting space range is -200 -1200 + + + +the way the algorithm works + + +final_top_position = (y coordinate)(-20) //some big number that's dependent on the y position + + +easing function...rolling toward the final_top_position + +[first off +the y coordinate shouldn't be based on the upper left (only because of VALUE, that's why it's easier to scroll down than up)] + +[e.pageY-($(window).height()*0.5)] + +value should be eradicated...we should instead use velocity which is DELTA. doesn't matter + + + roll_to_zero = (final_Landing_Spot - easing) first a destination spot is calculated, then easing takes place +new_scrolled_element + + + roll_to_zero = (final_Landing_Spot - easing)} + easing += Math.max(-25, Math.min(25, roll_to_zero)) + +instead of adjusting the height to the final landing spot, it becomes the easing value + +how easing works + x += Math.max(-25, Math.min(25, finalrestingplace-x));//as x approaches the final resting place, easing is used. 25 and -25 are used to traverse +long spaces more quickly + +where x = the current scroller position +as x becomes larger final resting place gets closer to 0 (it would actually be smaller, but we're dealing with negative values) + +the function is read from the inside out + +and of course, the statement that is missing is that x MUST be less than the overall distance travelable (which MUST be calculated) + +what's less important is the destination spot. more important would be the distance traveled per mouse move + +if the velocity is low, the distance is low, if the velocity is really high, it zooms to the end. + +before getting into specifics, for ease of reference lets say the velocity is has a range of -10 to 10, the over all distance traveled is 100px + +if the velocity is equal to range(-3,3) distance traved = 0 +if the velocity is between range(-4,-3) or range(3,4) distance traveled = 2 +if the velocity is between range (5,6) or (-5,-6) distance traveled would be 20 +if the velocity is between the range of 7,8 or -7,-8 the distance traveled would be 40 +if the velocity is between the range of 89 the velocity traveled would 80 +9-10 velocity is 160 + +0 +-12302 from the top is the current max + + + + + + + + +plotted out this looks like this + # + + + + + + + + # + + + + + # + + +__- __- __# __ __ __ __ __ __ __ __ __ + +essentially we want something that looks like this (0.3x)^5 +0.ax^b + +we can play with which exponent is right, but only choosing odd ones +where a is the stationary range number +and b is the new slope + + +this function is called on a timer*/ diff --git a/frontend/imgrid/colors/junk/brush.ani b/frontend/imgrid/colors/junk/brush.ani Binary files differnew file mode 100755 index 0000000..6da99b4 --- /dev/null +++ b/frontend/imgrid/colors/junk/brush.ani diff --git a/frontend/imgrid/colors/junk/colordictOLD.js b/frontend/imgrid/colors/junk/colordictOLD.js new file mode 100755 index 0000000..67220ca --- /dev/null +++ b/frontend/imgrid/colors/junk/colordictOLD.js @@ -0,0 +1,2 @@ +var hextoname = {'#EE1289': 'DeepPink2', '#EE8262': 'salmon2', '#C4C4C4': 'gray77', '#556B2F': 'DarkOliveGreen', '#FF8C00': 'DarkOrange', '#8B7B8B': 'thistle4', '#0000EE': 'blue2', '#EED5D2': 'MistyRose2', '#BA55D3': 'MediumOrchid', '#FFF5EE': 'seashell', '#912CEE': 'purple2', '#2F4F4F': 'DarkSlateGray', '#32814B': 'MediumForestGreen', '#D15FEE': 'MediumOrchid2', '#F0FFF0': 'honeydew', '#B23AEE': 'DarkOrchid2', '#8B7765': 'PeachPuff4', '#3D3D3D': 'gray24', '#54FF9F': 'SeaGreen1', '#636363': 'gray39', '#8B8386': 'LavenderBlush4', '#FF4040': 'brown1', '#EEA9B8': 'pink2', '#C2C2C2': 'gray76', '#800080': 'purple', '#545454': 'gray33', '#EE3A8C': 'VioletRed2', '#8A8A8A': 'gray54', '#FF00FF': 'fuchsia', '#436EEE': 'RoyalBlue2', '#8B864E': 'khaki4', '#0A0A0A': 'gray4', '#808000': 'olive', '#E3E3E3': 'gray89', '#1874CD': 'DodgerBlue3', '#BCD2EE': 'LightSteelBlue2', '#A9A9A9': 'DarkGray', '#F4A460': 'SandyBrown', '#FF3030': 'firebrick1', '#FFEBCD': 'BlanchedAlmond', '#B0C4DE': 'LightSteelBlue', '#00CDCD': 'cyan3', '#C0FF3E': 'OliveDrab1', '#FFD700': 'gold', '#242424': 'gray14', '#8B2252': 'VioletRed4', '#4EEE94': 'SeaGreen2', '#CD3278': 'VioletRed3', '#00E5EE': 'turquoise2', '#CD853F': 'peru', '#ADD8E6': 'LightBlue', '#C7C7C7': 'gray78', '#CD2990': 'maroon3', '#EEE5DE': 'seashell2', '#66CD00': 'chartreuse3', '#878787': 'gray53', '#FFA54F': 'tan1', '#A2B5CD': 'LightSteelBlue3', '#BC8F8F': 'RosyBrown', '#C9C9C9': 'gray79', '#D1C166': 'MediumGoldenRod', '#8B2323': 'brown4', '#B3EE3A': 'OliveDrab2', '#EEEED1': 'LightYellow2', '#AEEEEE': 'PaleTurquoise2', '#BDBDBD': 'gray74', '#FF7F00': 'DarkOrange1', '#FFC0CB': 'pink', '#EE3B3B': 'brown2', '#CDC8B1': 'cornsilk3', '#CDB38B': 'NavajoWhite3', '#CDBA96': 'wheat3', '#B4EEB4': 'DarkSeaGreen2', '#40E0D0': 'turquoise', '#8B795E': 'NavajoWhite4', '#27408B': 'RoyalBlue4', '#424242': 'gray26', '#CDB7B5': 'MistyRose3', '#CAE1FF': 'LightSteelBlue1', '#F0FFFF': 'azure', '#2E8B57': 'SeaGreen', '#87CEEB': 'SkyBlue', '#CD00CD': 'magenta3', '#CDAA7D': 'burlywood3', '#836FFF': 'SlateBlue1', '#ABABAB': 'gray67', '#EEB4B4': 'RosyBrown2', '#8B7355': 'burlywood4', '#F0E68C': 'khaki', '#CDCDB4': 'LightYellow3', '#4D4D4D': 'gray30', '#B8B8B8': 'gray72', '#B4CDCD': 'LightCyan3', '#008B8B': 'cyan4', '#828282': 'gray51', '#00EEEE': 'cyan2', '#708090': 'SlateGray', '#9AFF9A': 'PaleGreen1', '#FFA07A': 'LightSalmon', '#EBEBEB': 'gray92', '#FFB5C5': 'pink1', '#00688B': 'DeepSkyBlue4', '#DBDBDB': 'gray86', '#191970': 'MidnightBlue', '#FF83FA': 'orchid1', '#A1A1A1': 'gray63', '#838B8B': 'azure4', '#FFA500': 'orange', '#00FF7F': 'SpringGreen', '#EEAD0E': 'DarkGoldenrod2', '#B03060': 'maroon', '#96CDCD': 'PaleTurquoise3', '#CD3333': 'brown3', '#CDBE70': 'LightGoldenrod3', '#7CCD7C': 'PaleGreen3', '#97FFFF': 'DarkSlateGray1', '#DAA520': 'goldenrod', '#8B3A3A': 'IndianRed4', '#6B6B6B': 'gray42', '#FFFAF0': 'FloralWhite', '#757575': 'gray46', '#BFBFBF': 'gray75', '#00EE76': 'SpringGreen2', '#FFFAFA': 'snow', '#6E8B3D': 'DarkOliveGreen4', '#EEE685': 'khaki2', '#FF3E96': 'VioletRed1', '#EE0000': 'red2', '#FDF5E6': 'OldLace', '#E066FF': 'MediumOrchid1', '#8DB6CD': 'LightSkyBlue3', '#FF7256': 'coral1', '#7CFC00': 'LawnGreen', '#838B83': 'honeydew4', '#BF3EFF': 'DarkOrchid1', '#8B6914': 'goldenrod4', '#00CD66': 'SpringGreen3', '#525252': 'gray32', '#A4D3EE': 'LightSkyBlue2', '#00868B': 'turquoise4', '#8DEEEE': 'DarkSlateGray2', '#787878': 'gray47', '#8B1C62': 'maroon4', '#616161': 'gray38', '#4876FF': 'RoyalBlue1', '#9F79EE': 'MediumPurple2', '#212121': 'gray13', '#C1CDC1': 'honeydew3', '#CD69C9': 'orchid3', '#E0EEEE': 'azure2', '#8B7E66': 'wheat4', '#8A2BE2': 'BlueViolet', '#CDCD00': 'yellow3', '#EE5C42': 'tomato2', '#6E6E6E': 'gray43', '#EEAEEE': 'plum2', '#DC143C': 'crimson', '#CD919E': 'pink3', '#528B8B': 'DarkSlateGray4', '#AFEEEE': 'PaleTurquoise', '#CD6889': 'PaleVioletRed3', '#E6E6FA': 'lavender', '#EE00EE': 'magenta2', '#999999': 'gray60', '#F0F8FF': 'AliceBlue', '#595959': 'gray35', '#FF7F50': 'coral', '#A6A6A6': 'gray65', '#DEDEDE': 'gray87', '#262626': 'gray15', '#6CA6CD': 'SkyBlue3', '#8B8B83': 'ivory4', '#474747': 'gray28', '#F7F7F7': 'gray97', '#548B54': 'PaleGreen4', '#48D1CC': 'MediumTurquoise', '#C1CDCD': 'azure3', '#E0EEE0': 'honeydew2', '#FFB90F': 'DarkGoldenrod1', '#FFD39B': 'burlywood1', '#8B5A2B': 'tan4', '#EEE9BF': 'LemonChiffon2', '#BCEE68': 'DarkOliveGreen2', '#8470FF': 'LightSlateBlue', '#8B0A50': 'DeepPink4', '#FFF68F': 'khaki1', '#EEA2AD': 'LightPink2', '#CD5B45': 'coral3', '#7FFF00': 'chartreuse', '#8B8378': 'AntiqueWhite4', '#9BCD9B': 'DarkSeaGreen3', '#454545': 'gray27', '#D1D1D1': 'gray82', '#EEE8AA': 'PaleGoldenrod', '#668B8B': 'PaleTurquoise4', '#EE30A7': 'maroon2', '#FFC125': 'goldenrod1', '#8B475D': 'PaleVioletRed4', '#D8BFD8': 'thistle', '#404040': 'gray25', '#EEEE00': 'yellow2', '#CDB5CD': 'thistle3', '#00C5CD': 'turquoise3', '#00CED1': 'DarkTurquoise', '#CFCFCF': 'gray81', '#008B00': 'green4', '#7A7A7A': 'gray48', '#B8860B': 'DarkGoldenrod', '#1C86EE': 'DodgerBlue2', '#8B5742': 'LightSalmon4', '#1A1A1A': 'gray10', '#8B008B': 'DarkMagenta', '#0F0F0F': 'gray6', '#CD3700': 'OrangeRed3', '#7F7F7F': 'gray50', '#FF6EB4': 'HotPink1', '#6959CD': 'SlateBlue3', '#90EE90': 'LightGreen', '#8B4789': 'orchid4', '#EE7AE9': 'orchid2', '#8968CD': 'MediumPurple3', '#080808': 'gray3', '#CDC9C9': 'snow3', '#BDB76B': 'DarkKhaki', '#9370DB': 'MediumPurple', '#EEDC82': 'LightGoldenrod2', '#3CB371': 'MediumSeaGreen', '#F5FFFA': 'MintCream', '#303030': 'gray19', '#B9D3EE': 'SlateGray2', '#575757': 'gray34', '#F5F5DC': 'beige', '#BABABA': 'gray73', '#0000CD': 'blue3', '#FF8247': 'sienna1', '#F2F2F2': 'gray95', '#EED5B7': 'bisque2', '#FFEC8B': 'LightGoldenrod1', '#EE7600': 'DarkOrange2', '#8B636C': 'pink4', '#8B814C': 'LightGoldenrod4', '#FFE4B5': 'moccasin', '#4F94CD': 'SteelBlue3', '#CDAD00': 'gold3', '#CD5555': 'IndianRed3', '#8B7500': 'gold4', '#473C8B': 'SlateBlue4', '#B0E0E6': 'PowderBlue', '#FFFF00': 'yellow', '#CD96CD': 'plum3', '#006400': 'DarkGreen', '#FAFAFA': 'gray98', '#53868B': 'CadetBlue4', '#8B4513': 'chocolate4', '#98FB98': 'PaleGreen', '#63B8FF': 'SteelBlue1', '#FFAEB9': 'LightPink1', '#EE6A50': 'coral2', '#87CEFF': 'SkyBlue1', '#87CEFA': 'LightSkyBlue', '#ADFF2F': 'GreenYellow', '#008B45': 'SpringGreen4', '#EE4000': 'OrangeRed2', '#8B6969': 'RosyBrown4', '#00008B': 'blue4', '#DB7093': 'PaleVioletRed', '#7EC0EE': 'SkyBlue2', '#3B3B3B': 'gray23', '#8C8C8C': 'gray55', '#5F9EA0': 'cadet blue', '#EE799F': 'PaleVioletRed2', '#CD6090': 'HotPink3', '#8B8682': 'seashell4', '#458B74': 'aquamarine4', '#EECFA1': 'NavajoWhite2', '#76EE00': 'chartreuse2', '#000080': 'navy', '#228B22': 'ForestGreen', '#8B8B00': 'yellow4', '#B5B5B5': 'gray71', '#CD950C': 'DarkGoldenrod3', '#EE82EE': 'violet', '#EDEDED': 'gray93', '#F5DEB3': 'wheat', '#3A5FCD': 'RoyalBlue3', '#00FA9A': 'MediumSpringGreen', '#F0F0F0': 'gray94', '#D1EEEE': 'LightCyan2', '#2E2E2E': 'gray18', '#EEC591': 'burlywood2', '#8B3E2F': 'coral4', '#CD8162': 'LightSalmon3', '#9AC0CD': 'LightBlue3', '#8B8989': 'snow4', '#EED8AE': 'wheat2', '#551A8B': 'purple4', '#919191': 'gray57', '#949494': 'gray58', '#778899': 'LightSlateGray', '#FFFACD': 'LemonChiffon', '#458B00': 'chartreuse4', '#008000': 'green', '#FFFFF0': 'ivory', '#E0E0E0': 'gray88', '#EEB422': 'goldenrod2', '#A020F0': 'purple', '#5CACEE': 'SteelBlue2', '#CD4F39': 'tomato3', '#CDC0B0': 'AntiqueWhite3', '#6E7B8B': 'LightSteelBlue4', '#9E9E9E': 'gray62', '#CDC673': 'khaki3', '#104E8B': 'DodgerBlue4', '#E0FFFF': 'LightCyan', '#FFFFFF': 'white', '#6C7B8B': 'SlateGray4', '#FFC1C1': 'RosyBrown1', '#D6D6D6': 'gray84', '#8B4726': 'sienna4', '#CD9B1D': 'goldenrod3', '#FF6347': 'tomato', '#FF34B3': 'maroon1', '#7D7D7D': 'gray49', '#121212': 'gray7', '#B0E2FF': 'LightSkyBlue1', '#8B3A62': 'HotPink4', '#CD5C5C': 'IndianRed', '#4A4A4A': 'gray29', '#B0B0B0': 'gray69', '#D9D9D9': 'gray85', '#A2CD5A': 'DarkOliveGreen3', '#8B0000': 'DarkRed', '#FF6A6A': 'IndianRed1', '#CD6600': 'DarkOrange3', '#FFEFDB': 'AntiqueWhite1', '#E9967A': 'DarkSalmon', '#EEE9E9': 'snow2', '#D4D4D4': 'gray83', '#383838': 'gray22', '#7A67EE': 'SlateBlue2', '#4169E1': 'RoyalBlue', '#5E5E5E': 'gray37', '#00F5FF': 'turquoise1', '#FFEFD5': 'PapayaWhip', '#CDAF95': 'PeachPuff3', '#CCCCCC': 'gray80', '#00BFFF': 'DeepSkyBlue', '#CDB79E': 'bisque3', '#969696': 'gray59', '#4F4F4F': 'gray31', '#1E90FF': 'DodgerBlue', '#FCFCFC': 'gray99', '#EE2C2C': 'firebrick2', '#8B6508': 'DarkGoldenrod4', '#696969': 'DimGray', '#FF7F24': 'chocolate1', '#8FBC8F': 'DarkSeaGreen', '#66CDAA': 'aquamarine3', '#6495ED': 'CornflowerBlue', '#0D0D0D': 'gray5', '#EEE0E5': 'LavenderBlush2', '#666666': 'gray40', '#B2DFEE': 'LightBlue2', '#B22222': 'firebrick', '#4B0082': 'indigo', '#FF82AB': 'PaleVioletRed1', '#AB82FF': 'MediumPurple1', '#79CDCD': 'DarkSlateGray3', '#FFE4C4': 'bisque', '#DEB887': 'burlywood', '#5D478B': 'MediumPurple4', '#8B3626': 'tomato4', '#FFFFE0': 'LightYellow', '#FFE4E1': 'MistyRose', '#171717': 'gray9', '#EEDFCC': 'AntiqueWhite2', '#9400D3': 'DarkViolet', '#BFEFFF': 'LightBlue1', '#8B7D6B': 'bisque4', '#FF8C69': 'salmon1', '#C6E2FF': 'SlateGray1', '#1C1C1C': 'gray11', '#FF4500': 'OrangeRed', '#FFE7BA': 'wheat1', '#808080': 'fractal', '#EE9572': 'LightSalmon2', '#CD8500': 'orange3', '#8B5A00': 'orange4', '#9932CC': 'DarkOrchid', '#EECBAD': 'PeachPuff2', '#CD8C95': 'LightPink3', '#292929': 'gray16', '#CD1076': 'DeepPink3', '#7A378B': 'MediumOrchid4', '#FF0000': 'red', '#698B22': 'OliveDrab4', '#ADADAD': 'gray68', '#EEE8CD': 'cornsilk2', '#DDA0DD': 'plum', '#7D26CD': 'purple3', '#DA70D6': 'orchid', '#DCDCDC': 'gainsboro', '#68228B': 'DarkOrchid4', '#7B68EE': 'MediumSlateBlue', '#000000': 'black', '#6B8E23': 'OliveDrab', '#FF69B4': 'HotPink', '#800000': 'maroon', '#8B668B': 'plum4', '#363636': 'gray21', '#8B4500': 'DarkOrange4', '#D3D3D3': 'LightGray', '#607B8B': 'LightSkyBlue4', '#F08080': 'LightCoral', '#CD9B9B': 'RosyBrown3', '#76EEC6': 'aquamarine2', '#FAEBD7': 'AntiqueWhite', '#68838B': 'LightBlue4', '#7FFFD4': 'aquamarine', '#C0C0C0': 'silver', '#EEDD82': 'LightGoldenrod', '#EE9A49': 'tan2', '#4A708B': 'SkyBlue4', '#008080': 'teal', '#7AC5CD': 'CadetBlue3', '#98F5FF': 'CadetBlue1', '#8B2500': 'OrangeRed4', '#8F8F8F': 'gray56', '#FFF0F5': 'LavenderBlush', '#8B8970': 'LemonChiffon4', '#8B8878': 'cornsilk4', '#6A5ACD': 'SlateBlue', '#4682B4': 'SteelBlue', '#EEEEE0': 'ivory2', '#B3B3B3': 'gray70', '#00FF00': 'green1', '#FFDEAD': 'NavajoWhite', '#CD2626': 'firebrick3', '#8B4C39': 'salmon4', '#9B30FF': 'purple1', '#E5E5E5': 'gray90', '#36648B': 'SteelBlue4', '#9C9C9C': 'gray61', '#F8F8FF': 'GhostWhite', '#333333': 'gray20', '#5C5C5C': 'gray36', '#737373': 'gray45', '#EEC900': 'gold2', '#FFE1FF': 'thistle1', '#C1FFC1': 'DarkSeaGreen1', '#CDC5BF': 'seashell3', '#A0522D': 'sienna', '#8B5F65': 'LightPink4', '#CDC1C5': 'LavenderBlush3', '#EE7621': 'chocolate2', '#FFBBFF': 'plum1', '#CD6839': 'sienna3', '#698B69': 'DarkSeaGreen4', '#050505': 'gray2', '#CD661D': 'chocolate3', '#FAFAD2': 'LightGoldenrodYellow', '#CDCDC1': 'ivory3', '#FFF8DC': 'cornsilk', '#A8A8A8': 'gray66', '#B452CD': 'MediumOrchid3', '#D2B48C': 'tan', '#8EE5EE': 'CadetBlue2', '#483D8B': 'DarkSlateBlue', '#BBFFFF': 'PaleTurquoise1', '#0000FF': 'blue', '#EE6AA7': 'HotPink2', '#EE7942': 'sienna2', '#00CD00': 'green3', '#141414': 'gray8', '#9ACD32': 'OliveDrab3', '#C71585': 'MediumVioletRed', '#EE9A00': 'orange2', '#CAFF70': 'DarkOliveGreen1', '#F5F5F5': 'gray96', '#32CD32': 'LimeGreen', '#00EE00': 'green2', '#FFB6C1': 'LightPink', '#8B1A1A': 'firebrick4', '#00B2EE': 'DeepSkyBlue2', '#20B2AA': 'LightSeaGreen', '#707070': 'gray44', '#009ACD': 'DeepSkyBlue3', '#A52A2A': 'brown', '#EE6363': 'IndianRed2', '#FAF0E6': 'linen', '#8B7D7B': 'MistyRose4', '#9A32CD': 'DarkOrchid3', '#1F1F1F': 'gray12', '#E8E8E8': 'gray91', '#7E7E7E': 'gray', '#7A8B8B': 'LightCyan4', '#CD7054': 'salmon3', '#9FB6CD': 'SlateGray3', '#CDC9A5': 'LemonChiffon3', '#D02090': 'VioletRed', '#00FFFF': 'aqua', '#2B2B2B': 'gray17', '#858585': 'gray52', '#A3A3A3': 'gray64', '#CD0000': 'red3', '#43CD80': 'SeaGreen3', '#FA8072': 'salmon', '#FFDAB9': 'PeachPuff', '#D2691E': 'chocolate', '#FF1493': 'DeepPink', '#EED2EE': 'thistle2', '#030303': 'gray1', '#8B8B7A': 'LightYellow4'} +var nametohex = {'grey21': '#363636', 'yellow': '#FFFF00', 'grey61': '#9C9C9C', 'HotPink3': '#CD6090', 'grey63': '#A1A1A1', 'grey62': '#9E9E9E', 'grey65': '#A6A6A6', 'AliceBlue': '#F0F8FF', 'grey67': '#ABABAB', 'grey66': '#A8A8A8', 'LightCyan1': '#E0FFFF', 'grey68': '#ADADAD', 'LightCyan3': '#B4CDCD', 'LightCyan2': '#D1EEEE', 'LightCyan4': '#7A8B8B', 'gray32': '#525252', 'gray33': '#545454', 'DarkTurquoise': '#00CED1', 'gray31': '#4F4F4F', 'gray36': '#5C5C5C', 'gray37': '#5E5E5E', 'gray34': '#575757', 'gray35': '#595959', 'aquamarine4': '#458B74', 'gray38': '#616161', 'gray39': '#636363', 'aquamarine1': '#7FFFD4', 'aquamarine3': '#66CDAA', 'aquamarine2': '#76EEC6', 'CadetBlue4': '#53868B', 'CadetBlue3': '#7AC5CD', 'CadetBlue2': '#8EE5EE', 'CadetBlue1': '#98F5FF', 'crimson': '#DC143C', 'VioletRed1': '#FF3E96', 'VioletRed2': '#EE3A8C', 'VioletRed3': '#CD3278', 'VioletRed4': '#8B2252', 'brown': '#A52A2A', 'DarkGoldenrod': '#B8860B', 'gray8': '#141414', 'SlateGrey': '#708090', 'NavajoWhite2': '#EECFA1', 'gray2': '#050505', 'cyan': '#00FFFF', 'gray0': '#000000', 'gray1': '#030303', 'fractal': '#808080', 'gray7': '#121212', 'gray4': '#0A0A0A', 'gray5': '#0D0D0D', 'grey60': '#999999', 'DarkBlue': '#00008B', 'gray98': '#FAFAFA', 'DarkKhaki': '#BDB76B', 'gray99': '#FCFCFC', 'teal': '#008080', 'grey11': '#1C1C1C', 'coral4': '#8B3E2F', 'grey12': '#1F1F1F', 'grey64': '#A3A3A3', 'PaleGreen1': '#9AFF9A', 'PaleGreen3': '#7CCD7C', 'PaleGreen2': '#90EE90', 'PaleGreen4': '#548B54', 'grey14': '#242424', 'lavender': '#E6E6FA', 'grey15': '#262626', 'chartreuse3': '#66CD00', 'chartreuse2': '#76EE00', 'chartreuse1': '#7FFF00', 'chartreuse4': '#458B00', 'RosyBrown': '#BC8F8F', 'blue': '#0000FF', 'NavajoWhite': '#FFDEAD', 'opaque': '#000000', 'maroon4': '#8B1C62', 'maroon3': '#CD2990', 'maroon2': '#EE30A7', 'maroon1': '#FF34B3', 'gold3': '#CDAD00', 'gold2': '#EEC900', 'gold1': '#FFD700', 'gold4': '#8B7500', 'LightSlateGrey': '#778899', 'gray30': '#4D4D4D', 'DarkGreen': '#006400', 'SkyBlue': '#87CEEB', 'GhostWhite': '#F8F8FF', 'LavenderBlush': '#FFF0F5', 'SeaGreen': '#2E8B57', 'BlanchedAlmond': '#FFEBCD', 'gray60': '#999999', 'DarkOliveGreen': '#556B2F', 'firebrick2': '#EE2C2C', 'firebrick1': '#FF3030', 'firebrick4': '#8B1A1A', 'sienna': '#A0522D', 'blue1': '#0000FF', 'lime': '#00FF00', 'gray55': '#8C8C8C', 'blue2': '#0000EE', 'DarkViolet': '#9400D3', 'blue4': '#00008B', 'peru': '#CD853F', 'DarkMagenta': '#8B008B', 'LightBlue2': '#B2DFEE', 'red2': '#EE0000', 'red1': '#FF0000', 'LightBlue1': '#BFEFFF', 'LightBlue4': '#68838B', 'red4': '#8B0000', 'MediumSpringGreen': '#00FA9A', 'chocolate': '#D2691E', 'ForestGreen': '#228B22', 'DarkRed': '#8B0000', 'olive': '#808000', 'HotPink2': '#EE6AA7', 'HotPink1': '#FF6EB4', 'HotPink4': '#8B3A62', 'grey18': '#2E2E2E', 'grey19': '#303030', 'none': '#000000', 'PeachPuff': '#FFDAB9', 'MediumGoldenRod': '#D1C166', 'moccasin': '#FFE4B5', 'grey10': '#1A1A1A', 'chocolate1': '#FF7F24', 'chocolate2': '#EE7621', 'chocolate3': '#CD661D', 'chocolate4': '#8B4513', 'wheat2': '#EED8AE', 'grey16': '#292929', 'grey17': '#2B2B2B', 'gray69': '#B0B0B0', 'gray68': '#ADADAD', 'gray65': '#A6A6A6', 'gray64': '#A3A3A3', 'gray67': '#ABABAB', 'gray66': '#A8A8A8', 'gray61': '#9C9C9C', 'coral': '#FF7F50', 'gray63': '#A1A1A1', 'gray62': '#9E9E9E', 'LightGoldenrod': '#EEDD82', 'turquoise4': '#00868B', 'seashell2': '#EEE5DE', 'seashell3': '#CDC5BF', 'magenta': '#FF00FF', 'seashell1': '#FFF5EE', 'tan': '#D2B48C', 'seashell4': '#8B8682', 'pink': '#FFC0CB', 'LightSlateBlue': '#8470FF', 'SteelBlue1': '#63B8FF', 'SteelBlue3': '#4F94CD', 'SteelBlue2': '#5CACEE', 'SteelBlue4': '#36648B', 'grey89': '#E3E3E3', 'grey88': '#E0E0E0', 'grey87': '#DEDEDE', 'grey86': '#DBDBDB', 'grey85': '#D9D9D9', 'grey84': '#D6D6D6', 'grey83': '#D4D4D4', 'grey82': '#D1D1D1', 'grey81': '#CFCFCF', 'grey80': '#CCCCCC', 'ivory2': '#EEEEE0', 'khaki4': '#8B864E', 'khaki1': '#FFF68F', 'khaki2': '#EEE685', 'khaki3': '#CDC673', 'salmon1': '#FF8C69', 'salmon3': '#CD7054', 'salmon2': '#EE8262', 'salmon4': '#8B4C39', 'LightPink': '#FFB6C1', 'gray9': '#171717', 'green': '#008000', 'brown2': '#EE3B3B', 'brown3': '#CD3333', 'brown1': '#FF4040', 'brown4': '#8B2323', 'cadet blue': '#5F9EA0', 'orange4': '#8B5A00', 'orange1': '#FFA500', 'orange3': '#CD8500', 'orange2': '#EE9A00', 'gray3': '#080808', 'gray6': '#0F0F0F', 'yellow4': '#8B8B00', 'yellow3': '#CDCD00', 'yellow2': '#EEEE00', 'yellow1': '#FFFF00', 'PapayaWhip': '#FFEFD5', 'bisque2': '#EED5B7', 'OliveDrab4': '#698B22', 'bisque3': '#CDB79E', 'OliveDrab1': '#C0FF3E', 'OliveDrab2': '#B3EE3A', 'OliveDrab3': '#9ACD32', 'SkyBlue4': '#4A708B', 'SkyBlue1': '#87CEFF', 'SkyBlue3': '#6CA6CD', 'SkyBlue2': '#7EC0EE', 'grey58': '#949494', 'grey59': '#969696', 'grey54': '#8A8A8A', 'grey55': '#8C8C8C', 'grey56': '#8F8F8F', 'grey57': '#919191', 'grey50': '#7F7F7F', 'silver': '#C0C0C0', 'grey52': '#858585', 'grey53': '#878787', 'cyan2': '#00EEEE', 'cyan3': '#00CDCD', 'gray23': '#3B3B3B', 'RosyBrown4': '#8B6969', 'gray25': '#404040', 'CornflowerBlue': '#6495ED', 'cyan4': '#008B8B', 'gray26': '#424242', 'gray29': '#4A4A4A', 'LimeGreen': '#32CD32', 'MistyRose': '#FFE4E1', 'navy': '#000080', 'gray94': '#F0F0F0', 'gray95': '#F2F2F2', 'gray96': '#F5F5F5', 'gray97': '#F7F7F7', 'gray90': '#E5E5E5', 'gray91': '#E8E8E8', 'gray92': '#EBEBEB', 'gray93': '#EDEDED', 'MediumPurple': '#9370DB', 'MidnightBlue': '#191970', 'cornsilk': '#FFF8DC', 'red': '#FF0000', 'grey69': '#B0B0B0', 'DarkOrchid4': '#68228B', 'blue3': '#0000CD', 'LightSteelBlue': '#B0C4DE', 'DarkOrchid1': '#BF3EFF', 'DarkOrchid2': '#B23AEE', 'DarkOrchid3': '#9A32CD', 'grey72': '#B8B8B8', 'FloralWhite': '#FFFAF0', 'grey70': '#B3B3B3', 'DarkSeaGreen': '#8FBC8F', 'grey71': '#B5B5B5', 'gray17': '#2B2B2B', 'grey77': '#C4C4C4', 'tomato4': '#8B3626', 'tomato1': '#FF6347', 'tomato3': '#CD4F39', 'tomato2': '#EE5C42', 'DarkSlateGray1': '#97FFFF', 'DarkSlateGray2': '#8DEEEE', 'DarkSlateGray3': '#79CDCD', 'DarkSlateGray4': '#528B8B', 'SteelBlue': '#4682B4', 'MediumSlateBlue': '#7B68EE', 'OrangeRed': '#FF4500', 'grey79': '#C9C9C9', 'MediumVioletRed': '#C71585', 'burlywood': '#DEB887', 'white': '#FFFFFF', 'tomato': '#FF6347', 'DodgerBlue': '#1E90FF', 'RoyalBlue4': '#27408B', 'RoyalBlue1': '#4876FF', 'RoyalBlue3': '#3A5FCD', 'RoyalBlue2': '#436EEE', 'MistyRose1': '#FFE4E1', 'MistyRose3': '#CDB7B5', 'MistyRose2': '#EED5D2', 'MistyRose4': '#8B7D7B', 'LightGray': '#D3D3D3', 'LightYellow': '#FFFFE0', 'DarkOrange': '#FF8C00', 'DarkGray': '#A9A9A9', 'SlateGray': '#708090', 'turquoise3': '#00C5CD', 'turquoise2': '#00E5EE', 'turquoise1': '#00F5FF', 'burlywood2': '#EEC591', 'burlywood4': '#8B7355', 'DarkSlateGray': '#2F4F4F', 'linen': '#FAF0E6', 'grey47': '#787878', 'snow': '#FFFAFA', 'grey46': '#757575', 'gray58': '#949494', 'gray59': '#969696', 'IndianRed4': '#8B3A3A', 'purple4': '#551A8B', 'gray52': '#858585', 'gray53': '#878787', 'purple1': '#9B30FF', 'IndianRed1': '#FF6A6A', 'purple3': '#7D26CD', 'purple2': '#912CEE', 'thistle3': '#CDB5CD', 'thistle2': '#EED2EE', 'SpringGreen2': '#00EE76', 'SpringGreen3': '#00CD66', 'SpringGreen4': '#008B45', 'thistle4': '#8B7B8B', 'LightPink2': '#EEA2AD', 'LightPink3': '#CD8C95', 'LightPink1': '#FFAEB9', 'LightPink4': '#8B5F65', 'MediumPurple1': '#AB82FF', 'MediumPurple2': '#9F79EE', 'MediumPurple3': '#8968CD', 'MediumPurple4': '#5D478B', 'MediumTurquoise': '#48D1CC', 'DimGray': '#696969', 'gray14': '#242424', 'grey100': '#FFFFFF', 'OrangeRed3': '#CD3700', 'OrangeRed2': '#EE4000', 'OrangeRed1': '#FF4500', 'LightSeaGreen': '#20B2AA', 'gold': '#FFD700', 'OrangeRed4': '#8B2500', 'NavajoWhite4': '#8B795E', 'NavajoWhite1': '#FFDEAD', 'LawnGreen': '#7CFC00', 'NavajoWhite3': '#CDB38B', 'LightGoldenrod4': '#8B814C', 'LightGoldenrod1': '#FFEC8B', 'LightGoldenrod3': '#CDBE70', 'LightGoldenrod2': '#EEDC82', 'gray21': '#363636', 'PaleGreen': '#98FB98', 'green4': '#008B00', 'green1': '#00FF00', 'green3': '#00CD00', 'green2': '#00EE00', 'MediumOrchid': '#BA55D3', 'black': '#000000', 'gray20': '#333333', 'orchid4': '#8B4789', 'DodgerBlue1': '#1E90FF', 'DodgerBlue2': '#1C86EE', 'DodgerBlue3': '#1874CD', 'DodgerBlue4': '#104E8B', 'orchid1': '#FF83FA', 'orchid2': '#EE7AE9', 'orchid3': '#CD69C9', 'DarkSeaGreen4': '#698B69', 'DarkSeaGreen3': '#9BCD9B', 'DarkSeaGreen2': '#B4EEB4', 'DarkSeaGreen1': '#C1FFC1', 'gray100': '#FFFFFF', 'BlueViolet': '#8A2BE2', 'bisque4': '#8B7D6B', 'MediumOrchid4': '#7A378B', 'MintCream': '#F5FFFA', 'MediumOrchid1': '#E066FF', 'bisque1': '#FFE4C4', 'MediumOrchid3': '#B452CD', 'MediumOrchid2': '#D15FEE', 'gray': '#7E7E7E', 'DeepSkyBlue': '#00BFFF', 'LightGrey': '#D3D3D3', 'grey78': '#C7C7C7', 'gray22': '#383838', 'plum4': '#8B668B', 'plum3': '#CD96CD', 'plum2': '#EEAEEE', 'plum1': '#FFBBFF', 'DarkSlateGrey': '#2F4F4F', 'DarkOrchid': '#9932CC', 'OliveDrab': '#6B8E23', 'gray83': '#D4D4D4', 'grey49': '#7D7D7D', 'grey48': '#7A7A7A', 'thistle': '#D8BFD8', 'violet': '#EE82EE', 'grey43': '#6E6E6E', 'grey42': '#6B6B6B', 'LightSalmon4': '#8B5742', 'grey40': '#666666', 'LightSalmon2': '#EE9572', 'LightSalmon3': '#CD8162', 'grey45': '#737373', 'LightSalmon1': '#FFA07A', 'honeydew': '#F0FFF0', 'gray18': '#2E2E2E', 'gray19': '#303030', 'LightCyan': '#E0FFFF', 'gray15': '#262626', 'gray16': '#292929', 'gray82': '#D1D1D1', 'gray10': '#1A1A1A', 'gray11': '#1C1C1C', 'gray12': '#1F1F1F', 'gray13': '#212121', 'grey93': '#EDEDED', 'PaleGoldenrod': '#EEE8AA', 'gainsboro': '#DCDCDC', 'AntiqueWhite3': '#CDC0B0', 'AntiqueWhite2': '#EEDFCC', 'AntiqueWhite1': '#FFEFDB', 'gray27': '#454545', 'SlateBlue': '#6A5ACD', 'AntiqueWhite4': '#8B8378', 'DimGrey': '#696969', 'VioletRed': '#D02090', 'WhiteSmoke': '#F5F5F5', 'grey38': '#616161', 'grey39': '#636363', 'grey36': '#5C5C5C', 'grey37': '#5E5E5E', 'grey34': '#575757', 'grey35': '#595959', 'aqua': '#00FFFF', 'grey33': '#545454', 'grey30': '#4D4D4D', 'grey31': '#4F4F4F', 'NavyBlue': '#000080', 'sienna4': '#8B4726', 'gray81': '#CFCFCF', 'gray80': '#CCCCCC', 'sienna1': '#FF8247', 'gray86': '#DBDBDB', 'sienna3': '#CD6839', 'sienna2': '#EE7942', 'gray89': '#E3E3E3', 'gray88': '#E0E0E0', 'SlateBlue4': '#473C8B', 'gray87': '#DEDEDE', 'LightSteelBlue1': '#CAE1FF', 'magenta3': '#CD00CD', 'IndianRed': '#CD5C5C', 'SlateBlue2': '#7A67EE', 'SlateBlue1': '#836FFF', 'LightBlue': '#ADD8E6', 'PeachPuff4': '#8B7765', 'seashell': '#FFF5EE', 'SaddleBrown': '#8B4513', 'PeachPuff1': '#FFDAB9', 'PeachPuff2': '#EECBAD', 'PeachPuff3': '#CDAF95', 'aquamarine': '#7FFFD4', 'LemonChiffon2': '#EEE9BF', 'LemonChiffon1': '#FFFACD', 'tan4': '#8B5A2B', 'tan3': '#CD853F', 'tan2': '#EE9A49', 'tan1': '#FFA54F', 'LemonChiffon4': '#8B8970', 'orange': '#FFA500', 'OldLace': '#FDF5E6', 'PowderBlue': '#B0E0E6', 'RosyBrown3': '#CD9B9B', 'RoyalBlue': '#4169E1', 'LightSkyBlue4': '#607B8B', 'LightSkyBlue1': '#B0E2FF', 'LightSkyBlue2': '#A4D3EE', 'LightSkyBlue3': '#8DB6CD', 'LightYellow1': '#FFFFE0', 'LightYellow2': '#EEEED1', 'LightYellow3': '#CDCDB4', 'LightYellow4': '#8B8B7A', 'goldenrod4': '#8B6914', 'goldenrod1': '#FFC125', 'goldenrod2': '#EEB422', 'goldenrod3': '#CD9B1D', 'grey32': '#525252', 'LemonChiffon': '#FFFACD', 'burlywood1': '#FFD39B', 'YellowGreen': '#9ACD32', 'LightCoral': '#F08080', 'burlywood3': '#CDAA7D', 'ivory3': '#CDCDC1', 'firebrick3': '#CD2626', 'ivory1': '#FFFFF0', 'grey8': '#141414', 'ivory4': '#8B8B83', 'grey9': '#171717', 'DarkSalmon': '#E9967A', 'SlateGray1': '#C6E2FF', 'SlateGray2': '#B9D3EE', 'SlateGray3': '#9FB6CD', 'SlateGray4': '#6C7B8B', 'RosyBrown2': '#EEB4B4', 'RosyBrown1': '#FFC1C1', 'gray85': '#D9D9D9', 'gray84': '#D6D6D6', 'LightGreen': '#90EE90', 'LavenderBlush1': '#FFF0F5', 'grey73': '#BABABA', 'LavenderBlush3': '#CDC1C5', 'LavenderBlush2': '#EEE0E5', 'grey76': '#C2C2C2', 'LavenderBlush4': '#8B8386', 'grey74': '#BDBDBD', 'grey75': '#BFBFBF', 'pink1': '#FFB5C5', 'pink3': '#CD919E', 'pink2': '#EEA9B8', 'pink4': '#8B636C', 'gray47': '#787878', 'gray46': '#757575', 'gray45': '#737373', 'gray44': '#707070', 'gray43': '#6E6E6E', 'gray42': '#6B6B6B', 'gray41': '#696969', 'gray40': '#666666', 'gray49': '#7D7D7D', 'gray48': '#7A7A7A', 'MediumAquamarine': '#66CDAA', 'MediumForestGreen': '#32814B', 'azure1': '#F0FFFF', 'azure3': '#C1CDCD', 'azure2': '#E0EEEE', 'indigo': '#4B0082', 'azure4': '#838B8B', 'firebrick': '#B22222', 'DarkGrey': '#A9A9A9', 'magenta4': '#8B008B', 'SlateBlue3': '#6959CD', 'magenta2': '#EE00EE', 'magenta1': '#FF00FF', 'grey51': '#828282', 'chartreuse': '#7FFF00', 'grey41': '#696969', 'DarkOliveGreen4': '#6E8B3D', 'turquoise': '#40E0D0', 'DarkOliveGreen1': '#CAFF70', 'DarkOliveGreen3': '#A2CD5A', 'DarkOliveGreen2': '#BCEE68', 'grey6': '#0F0F0F', 'grey7': '#121212', 'grey4': '#0A0A0A', 'grey5': '#0D0D0D', 'grey2': '#050505', 'grey3': '#080808', 'grey0': '#000000', 'grey1': '#030303', 'gray50': '#7F7F7F', 'cyan1': '#00FFFF', 'gray51': '#828282', 'gray24': '#3D3D3D', 'HotPink': '#FF69B4', 'DarkGoldenrod4': '#8B6508', 'gray54': '#8A8A8A', 'DarkGoldenrod1': '#FFB90F', 'DarkGoldenrod2': '#EEAD0E', 'DarkGoldenrod3': '#CD950C', 'IndianRed2': '#EE6363', 'DeepPink': '#FF1493', 'gray28': '#474747', 'IndianRed3': '#CD5555', 'DarkCyan': '#008B8B', 'GreenYellow': '#ADFF2F', 'LightSalmon': '#FFA07A', 'DarkOrange4': '#8B4500', 'DarkOrange1': '#FF7F00', 'transparent': '#000000', 'DarkOrange3': '#CD6600', 'orchid': '#DA70D6', 'purple': '#800080', 'wheat4': '#8B7E66', 'wheat1': '#FFE7BA', 'wheat3': '#CDBA96', 'SpringGreen1': '#00FF7F', 'coral3': '#CD5B45', 'coral2': '#EE6A50', 'coral1': '#FF7256', 'thistle1': '#FFE1FF', 'PaleTurquoise': '#AFEEEE', 'bisque': '#FFE4C4', 'DeepPink3': '#CD1076', 'DeepPink2': '#EE1289', 'DeepPink1': '#FF1493', 'khaki': '#F0E68C', 'wheat': '#F5DEB3', 'MediumSeaGreen': '#3CB371', 'DeepPink4': '#8B0A50', 'salmon': '#FA8072', 'grey44': '#707070', 'DarkSlateBlue': '#483D8B', 'PaleVioletRed4': '#8B475D', 'PaleVioletRed1': '#FF82AB', 'PaleVioletRed2': '#EE799F', 'PaleVioletRed3': '#CD6889', 'AntiqueWhite': '#FAEBD7', 'PaleTurquoise4': '#668B8B', 'PaleTurquoise3': '#96CDCD', 'PaleTurquoise2': '#AEEEEE', 'PaleTurquoise1': '#BBFFFF', 'gray56': '#8F8F8F', 'plum': '#DDA0DD', 'beige': '#F5F5DC', 'SpringGreen': '#00FF7F', 'azure': '#F0FFFF', 'honeydew1': '#F0FFF0', 'honeydew2': '#E0EEE0', 'honeydew3': '#C1CDC1', 'honeydew4': '#838B83', 'gray57': '#919191', 'snow4': '#8B8989', 'snow2': '#EEE9E9', 'snow3': '#CDC9C9', 'snow1': '#FFFAFA', 'SandyBrown': '#F4A460', 'grey13': '#212121', 'SeaGreen4': '#2E8B57', 'SeaGreen3': '#43CD80', 'SeaGreen2': '#4EEE94', 'SeaGreen1': '#54FF9F', 'grey29': '#4A4A4A', 'grey28': '#474747', 'grey25': '#404040', 'grey24': '#3D3D3D', 'grey27': '#454545', 'grey26': '#424242', 'fuchsia': '#FF00FF', 'grey20': '#333333', 'grey23': '#3B3B3B', 'grey22': '#383838', 'gray78': '#C7C7C7', 'gray79': '#C9C9C9', 'gray76': '#C2C2C2', 'gray77': '#C4C4C4', 'gray74': '#BDBDBD', 'gray75': '#BFBFBF', 'gray72': '#B8B8B8', 'gray73': '#BABABA', 'gray70': '#B3B3B3', 'gray71': '#B5B5B5', 'ivory': '#FFFFF0', 'LemonChiffon3': '#CDC9A5', 'DeepSkyBlue4': '#00688B', 'DeepSkyBlue3': '#009ACD', 'DeepSkyBlue2': '#00B2EE', 'DeepSkyBlue1': '#00BFFF', 'cornsilk4': '#8B8878', 'cornsilk2': '#EEE8CD', 'cornsilk3': '#CDC8B1', 'CadetBlue': '#5F9EA0', 'cornsilk1': '#FFF8DC', 'grey90': '#E5E5E5', 'grey91': '#E8E8E8', 'grey92': '#EBEBEB', 'goldenrod': '#DAA520', 'grey94': '#F0F0F0', 'grey95': '#F2F2F2', 'grey96': '#F5F5F5', 'grey97': '#F7F7F7', 'grey98': '#FAFAFA', 'grey99': '#FCFCFC', 'red3': '#CD0000', 'LightSteelBlue2': '#BCD2EE', 'LightSteelBlue3': '#A2B5CD', 'LightSteelBlue4': '#6E7B8B', 'LightBlue3': '#9AC0CD', 'maroon': '#800000', 'LightSkyBlue': '#87CEFA', 'LightGoldenrodYellow': '#FAFAD2', 'MediumBlue': '#0000CD', 'LightSlateGray': '#778899', 'DarkOrange2': '#EE7600', 'PaleVioletRed': '#DB7093'} diff --git a/frontend/imgrid/colors/junk/colorpicker.html b/frontend/imgrid/colors/junk/colorpicker.html new file mode 100755 index 0000000..23993ac --- /dev/null +++ b/frontend/imgrid/colors/junk/colorpicker.html @@ -0,0 +1,254 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> +<html> +<head> +<style type='text/css'> +body + { + background-image:url('http://asdf.us/im/ef/_imgrid_1320723477_pepper.png'); + } +#firstd + { + position:fixed; + top:40px; + right:20%; + height:40px; + width:0px; + background-color:#ffdead; + color:white; + } +#secondd + { + position:fixed; + top: 100px; + right:20%; + height:40px; + width: 200px; + font-family:'helvetica'; + font-size:40px; + } + +#error + { + position: fixed; + bottom: 100px; + height:40px; + width: 200px; + background-color: mediumseagreen; + right: 50%; + } +#colorerror + { + position: fixed; + bottom:50px; + height:30px; + width: 140px; + background-color: red; + right: 50%; + } +iframe + { + width:600px; + height:400px; + } +#namespace + { + position:fixed; + bottom:40px; + right:20px; + } +#hexmode + { + position:fixed; + top:300px; + right:100px; + font-size:40px; + font-family:helvetica; + } +#hexswitch + { + height:100px; + width:300px; + font-size:20px + border-style: groove; + border-width: 4px; + background-color:goldenrod; + text-align:center; + } +</style> +</head> +<body> +<div class='content' sytle="background-color:yellow; height:40px; width:300px; position:fixed; bottom:20px; right:45%">BLACH BLAH BLAH</div> +<button>wonderbutton</button> +<p>hex</p> +<p>text</p> +<div id='hexswitch'>CLICK TO SHOW HEXES</div> +<div><iframe src='colorsnew.html'></iframe></div> +<div id='guy2' class='guys' style='position:fixed;z-index:10;background-color:dodgerblue;height:40px;width:50px;top:10px;right:81%'>funny</div> +<div id='guy3' class='guys' style='position:fixed;z-index:10;background-color:snow;height:40px;width:50px;top:10px;right:76%'>happy</div> +<div id='guy1' class='guys' style='position:fixed;z-index:10;background-color:magenta;height:40px;width:50px;top:10px;right:66%'>silly</div> +<div id='guy5' class='guys' style='position:fixed;z-index:10;background-color:magenta;height:40px;width:50px;top:10px;right:71%'>smart</div> +<div id='showinfo' class='guys' style='position:fixed;z-index:10;background-color:magenta;height:40px;width:50px;top:10px;right:60%'>click it</div> + +<div id='firstd'>click me</div><div id='secondd'></div> +<div id='error'></div> +<div id='colorerror'></div> +<input id='namespace' type='text'></input> +<div id='hexmode'>choose between hex or text...<input id='hexortext' type='checkbox' value="1"></input></div> +<script type="text/javascript" src="jquery-1.6.4.min.js"></script> +<script type="text/javascript" src="colordict.js"></script> +<script type="text/javascript"> + +function showid(id) + { + $('#guy5').html(id) + } +$('.guys').mouseover(function() { + showid(this.id); +}); +$("button").click(function () { +$("p").toggle(); +}); + +function removecontent() + { + $('.content').hover(function(){return}) + $('.content').html("") + } +removecontent() +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idstr, propertystr) + { + grab = $('#'+idstr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idstr, propertystr) + { + result = getproperty(idstr, propertystr) + newwidth = goldenize(result) + widthval = newwidth.toString()+'px' + $('#'+idstr).css('width', widthval) + } +makegolden('firstd', 'height') +$('#colorerror').css('background-color', '#556B2F') + +//from http://haacked.com/archive/2009/12/29/convert-rgb-to-hex.aspx +function colorToHex(color) { + if (color.substr(0, 1) === '#') { + return color; + } + var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); + + var red = parseInt(digits[2]); + var green = parseInt(digits[3]); + var blue = parseInt(digits[4]); + + var rgb = blue | (green << 8) | (red << 16); + return digits[1] + '#' + rgb.toString(16); +}; + + +monica = $('#hexortext:checked').length +$('#error').append(monica) +$('#error').append('knows whassup') +var hexes = false +function hexswitch() + { + if(hexes == false) + { + $('#hexswitch').html('CLICK TO SHOW COLOR NAMES') + hexes = true; + } + + else + { + $('#hexswitch').html('CLICK TO SHOW HEX NAMES') + hexes = false; + } + } +$('#hexswitch').click(function(){hexswitch()}) +//takes a div name and returns a colorname +function showcolorname(divstr) + { + bgcolor = $('#'+divstr).css('background-color') + lowercasehex = colorToHex(bgcolor) + hex = lowercasehex.toUpperCase() + imname = hextoname[hex] + if ($('#hexortext:checked').length == 1) + { + imname = hex + } + return imname + } +function bigname() + { + bebop = showcolorname('firstd') + $('#secondd').html(bebop) + } +function putitin(hotboy) + { + $('#namespace').val(hotboy) + } +$("#firstd").hover(function(){bigname()}) +$("#firstd").hover(function(){$('#secondd').fadeOut(100);$('#secondd').fadeIn(500);}); +function boys () + { + var heyguys = showcolorname('firstd') + putitin(heyguys) + } +$('#firstd').click(function(){boys()}) +//$('#'+divstr).mouseover(bigname(divstr) +//three way toggle with background color +//here's how it will work +//there is a dictionary of background color hexes which translate into names +// with every click of a div the .html() property shifts between three states +//1. showing the background color as a string +//2. showing nothing +//3. showing the value of the hash using the background color as the key to the +//hash +//first step: make the three stage button DONE + +var infostate = 0; +$('#showinfo').click(function(){ + if(infostate == 0) + {$('#guy2').html(colorToHex($('#guy2').css('background-color')));infostate = 1} + else if(infostate == 1) + {$('#guy2').html(newdict[colorToHex($('#guy2').css('background-color'))]);infostate = 2} + else if(infostate == 2) + {$('#guy2').html(0);infostate = 0} + }) +//second step make dictionary DONE +var newdict = {} +newdict['#1e90ff'] = 'green' +newdict['#ff00ff'] = 'purple' +newdict['#fffafa'] = 'mauve' + +//make it happen using guy1 guy2 guy3 +// DO NOT USE HEX TO COLORNAME AND JQUERY BACKGROUND COLOR...use the dictionari +//es instead...they are divlist, and hextoname and nametohex and divtoname they have a +//range of 0-673 (or length of 674) + + +var happyguys = ['#guy1','#guy2','#guy3'] +function tester() + { + for(var i=0; i<happyguys.length; i++){ + $(happyguys[i]).html($(happyguys[i]).css('background-color')) + } + } +tester() + +//the script will be very convoluted. please make it anyway +//remember the only way to affect a list of things is to iterate over them +//make a list of the div names put it in this format... do that next + +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/junk/colorpixx.css b/frontend/imgrid/colors/junk/colorpixx.css new file mode 100755 index 0000000..1ddf557 --- /dev/null +++ b/frontend/imgrid/colors/junk/colorpixx.css @@ -0,0 +1,2047 @@ + +body +{word-wrap: break-word;} + +#main div +{display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +min-height: 30px; +min-width:20px; +zoom: 1; +*display: inline;} +} + +#main + { + width:600px; + } +#colornames +{position:fixed; +font-size:50px; +top:50px; +right:50%;} +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{height:30px; +width:10px;} diff --git a/frontend/imgrid/colors/junk/colorpixx.js b/frontend/imgrid/colors/junk/colorpixx.js new file mode 100755 index 0000000..4b42e4d --- /dev/null +++ b/frontend/imgrid/colors/junk/colorpixx.js @@ -0,0 +1,92 @@ +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newwidth = goldenize(result) + widthval = newwidth.toString()+'px' + $(idandselectr).css('width', widthval) + } +makegolden('.colors', 'height') +//remove content this function takes the name out of the divs + +function removecontent() + { + $('.colors').html("") + } +removecontent() + +function colorToHex(color) { + if (color.substr(0, 1) === '#') { + return color; + } + var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); + + var red = parseInt(digits[2]); + var green = parseInt(digits[3]); + var blue = parseInt(digits[4]); + + var rgb = blue | (green << 8) | (red << 16); + return digits[1] + '#' + rgb.toString(16); +}; + +//takes a div name and returns a colorname + +function showcolorname(divstr) + + { + + bgcolor = $('#'+divstr).css('background-color') + lowercasehex = colorToHex(bgcolor) + hex = lowercasehex.toUpperCase() + imname = hextoname[hex] +/* if ($('#hexortext:checked').length == 1) + { + imname = hex + }*/ + return imname + } +function bigname(divstr) + { + bebop = showcolorname(divstr) +// $('#colornames').html(bebop) + } +function writeit(text) + { +// $('#colornames').append(text) + } +function makebig(divstr) + { + firstheight = $('#'+divstr).height() + newheight = goldenize(firstheight) + $('#'+divstr).height(newheight) +// $('#colornames').append(firstheight) + } +function makesmall(divstr) + { + oldheight = $('.colors').height() + $('#'+divstr).height(oldheight) + } +$('.colors').hover(function() { + bigname(this.id); + makebig(this.id); + makegolden('#'+this.id, 'height')}, +function(){ + makesmall(this.id); + makegolden('#'+this.id, 'height') +}); +$('#colornames').html("") +$("#popupContact").css('background-color', 'black') +$('.colors').css('margin-top', '2px') diff --git a/frontend/imgrid/colors/junk/colors.html b/frontend/imgrid/colors/junk/colors.html new file mode 100755 index 0000000..0ef22f9 --- /dev/null +++ b/frontend/imgrid/colors/junk/colors.html @@ -0,0 +1,5429 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<!-- saved from url=(0124)https://mail.google.com/mail/?ui=2&ik=8c5c6e41c0&view=att&th=131a60939ee4c454&attid=0.1&disp=inline&realattid=f_gr2htzs60&zw --> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head> +<style type="text/css"> +* + { + font-family: sans-serif; + } +</style> +<body> + + + +<div> +<h1><a></a>List of Color Names</h1> +<div> + +<p>a list of named colors for use with PHOTOBLASTER:</p> + +<table> +<tbody> + <tr> + <th align="right">Name</th> + <th align="center">Color</th> + <th align="left">RGB</th> + <th align="left">Hex</th> + + </tr> + + <tr> + <td align="right">snow</td> + <td align="center" style="background-color:rgb(255, 250, 250)">snow</td> + <td align="left">rgb(255, 250, 250)</td> + <td align="left">#FFFAFA</td> + + </tr> + + <tr> + <td align="right">snow1</td> + <td align="center" style="background-color:rgb(255, 250, 250)">snow1</td> + <td align="left">rgb(255, 250, 250)</td> + <td align="left">#FFFAFA</td> + + </tr> + + <tr> + <td align="right">snow2</td> + <td align="center" style="background-color:rgb(238, 233, 233)">snow2</td> + <td align="left">rgb(238, 233, 233)</td> + <td align="left">#EEE9E9</td> + + </tr> + + <tr> + <td align="right">RosyBrown1</td> + <td align="center" style="background-color:rgb(255, 193, 193)">RosyBrown1</td> + <td align="left">rgb(255, 193, 193)</td> + <td align="left">#FFC1C1</td> + + </tr> + + <tr> + <td align="right">RosyBrown2</td> + <td align="center" style="background-color:rgb(238, 180, 180)">RosyBrown2</td> + <td align="left">rgb(238, 180, 180)</td> + <td align="left">#EEB4B4</td> + + </tr> + + <tr> + <td align="right">snow3</td> + <td align="center" style="background-color:rgb(205, 201, 201)">snow3</td> + <td align="left">rgb(205, 201, 201)</td> + <td align="left">#CDC9C9</td> + + </tr> + + <tr> + <td align="right">LightCoral</td> + <td align="center" style="background-color:rgb(240, 128, 128)">LightCoral</td> + <td align="left">rgb(240, 128, 128)</td> + <td align="left">#F08080</td> + + </tr> + + <tr> + <td align="right">IndianRed1</td> + <td align="center" style="background-color:rgb(255, 106, 106)">IndianRed1</td> + <td align="left">rgb(255, 106, 106)</td> + <td align="left">#FF6A6A</td> + + </tr> + + <tr> + <td align="right">RosyBrown3</td> + <td align="center" style="background-color:rgb(205, 155, 155)">RosyBrown3</td> + <td align="left">rgb(205, 155, 155)</td> + <td align="left">#CD9B9B</td> + + </tr> + + <tr> + <td align="right">IndianRed2</td> + <td align="center" style="background-color:rgb(238, 99, 99)">IndianRed2</td> + <td align="left">rgb(238, 99, 99)</td> + <td align="left">#EE6363</td> + + </tr> + + <tr> + <td align="right">RosyBrown</td> + <td align="center" style="background-color:rgb(188, 143, 143)">RosyBrown</td> + <td align="left">rgb(188, 143, 143)</td> + <td align="left">#BC8F8F</td> + + </tr> + + <tr> + <td align="right">brown1</td> + <td align="center" style="background-color:rgb(255, 64, 64)">brown1</td> + <td align="left">rgb(255, 64, 64)</td> + <td align="left">#FF4040</td> + + </tr> + + <tr> + <td align="right">firebrick1</td> + <td align="center" style="background-color:rgb(255, 48, 48)">firebrick1</td> + <td align="left">rgb(255, 48, 48)</td> + <td align="left">#FF3030</td> + + </tr> + + <tr> + <td align="right">brown2</td> + <td align="center" style="background-color:rgb(238, 59, 59)">brown2</td> + <td align="left">rgb(238, 59, 59)</td> + <td align="left">#EE3B3B</td> + + </tr> + + <tr> + <td align="right">IndianRed</td> + <td align="center" style="background-color:rgb(205, 92, 92)">IndianRed</td> + <td align="left">rgb(205, 92, 92)</td> + <td align="left">#CD5C5C</td> + + </tr> + + <tr> + <td align="right">IndianRed3</td> + <td align="center" style="background-color:rgb(205, 85, 85)">IndianRed3</td> + <td align="left">rgb(205, 85, 85)</td> + <td align="left">#CD5555</td> + + </tr> + + <tr> + <td align="right">firebrick2</td> + <td align="center" style="background-color:rgb(238, 44, 44)">firebrick2</td> + <td align="left">rgb(238, 44, 44)</td> + <td align="left">#EE2C2C</td> + + </tr> + + <tr> + <td align="right">snow4</td> + <td align="center" style="background-color:rgb(139, 137, 137)">snow4</td> + <td align="left">rgb(139, 137, 137)</td> + <td align="left">#8B8989</td> + + </tr> + + <tr> + <td align="right">brown3</td> + <td align="center" style="background-color:rgb(205, 51, 51)">brown3</td> + <td align="left">rgb(205, 51, 51)</td> + <td align="left">#CD3333</td> + + </tr> + + <tr> + <td align="right">red</td> + <td align="center" style="background-color:rgb(255, 0, 0)">red</td> + <td align="left">rgb(255, 0, 0)</td> + <td align="left">#FF0000</td> + + </tr> + + <tr> + <td align="right">red1</td> + <td align="center" style="background-color:rgb(255, 0, 0)">red1</td> + <td align="left">rgb(255, 0, 0)</td> + <td align="left">#FF0000</td> + + </tr> + + <tr> + <td align="right">RosyBrown4</td> + <td align="center" style="background-color:rgb(139, 105, 105)">RosyBrown4</td> + <td align="left">rgb(139, 105, 105)</td> + <td align="left">#8B6969</td> + + </tr> + + <tr> + <td align="right">firebrick3</td> + <td align="center" style="background-color:rgb(205, 38, 38)">firebrick3</td> + <td align="left">rgb(205, 38, 38)</td> + <td align="left">#CD2626</td> + + </tr> + + <tr> + <td align="right">red2</td> + <td align="center" style="background-color:rgb(238, 0, 0)">red2</td> + <td align="left">rgb(238, 0, 0)</td> + <td align="left">#EE0000</td> + + </tr> + + <tr> + <td align="right">firebrick</td> + <td align="center" style="background-color:rgb(178, 34, 34)">firebrick</td> + <td align="left">rgb(178, 34, 34)</td> + <td align="left">#B22222</td> + + </tr> + + <tr> + <td align="right">brown</td> + <td align="center" style="background-color:rgb(165, 42, 42)">brown</td> + <td align="left">rgb(165, 42, 42)</td> + <td align="left">#A52A2A</td> + + </tr> + + <tr> + <td align="right">red3</td> + <td align="center" style="background-color:rgb(205, 0, 0)">red3</td> + <td align="left">rgb(205, 0, 0)</td> + <td align="left">#CD0000</td> + + </tr> + + <tr> + <td align="right">IndianRed4</td> + <td align="center" style="background-color:rgb(139, 58, 58)">IndianRed4</td> + <td align="left">rgb(139, 58, 58)</td> + <td align="left">#8B3A3A</td> + + </tr> + + <tr> + <td align="right">brown4</td> + <td align="center" style="background-color:rgb(139, 35, 35)">brown4</td> + <td align="left">rgb(139, 35, 35)</td> + <td align="left">#8B2323</td> + + </tr> + + <tr> + <td align="right">firebrick4</td> + <td align="center" style="background-color:rgb(139, 26, 26)">firebrick4</td> + <td align="left">rgb(139, 26, 26)</td> + <td align="left">#8B1A1A</td> + + </tr> + + <tr> + <td align="right">DarkRed</td> + <td align="center" style="background-color:rgb(139, 0, 0)">DarkRed</td> + <td align="left">rgb(139, 0, 0)</td> + <td align="left">#8B0000</td> + + </tr> + + <tr> + <td align="right">red4</td> + <td align="center" style="background-color:rgb(139, 0, 0)">red4</td> + <td align="left">rgb(139, 0, 0)</td> + <td align="left">#8B0000</td> + + </tr> + + <tr> + <td align="right">maroon</td> + <td align="center" style="background-color:rgb(128, 0, 0)">maroon</td> + <td align="left">rgb(128, 0, 0)</td> + <td align="left">#800000</td> + + </tr> + + <tr> + <td align="right">LightPink1</td> + <td align="center" style="background-color:rgb(255, 174, 185)">LightPink1</td> + <td align="left">rgb(255, 174, 185)</td> + <td align="left">#FFAEB9</td> + + </tr> + + <tr> + <td align="right">LightPink3</td> + <td align="center" style="background-color:rgb(205, 140, 149)">LightPink3</td> + <td align="left">rgb(205, 140, 149)</td> + <td align="left">#CD8C95</td> + + </tr> + + <tr> + <td align="right">LightPink4</td> + <td align="center" style="background-color:rgb(139, 95, 101)">LightPink4</td> + <td align="left">rgb(139, 95, 101)</td> + <td align="left">#8B5F65</td> + + </tr> + + <tr> + <td align="right">LightPink2</td> + <td align="center" style="background-color:rgb(238, 162, 173)">LightPink2</td> + <td align="left">rgb(238, 162, 173)</td> + <td align="left">#EEA2AD</td> + + </tr> + + <tr> + <td align="right">LightPink</td> + <td align="center" style="background-color:rgb(255, 182, 193)">LightPink</td> + <td align="left">rgb(255, 182, 193)</td> + <td align="left">#FFB6C1</td> + + </tr> + + <tr> + <td align="right">pink</td> + <td align="center" style="background-color:rgb(255, 192, 203)">pink</td> + <td align="left">rgb(255, 192, 203)</td> + <td align="left">#FFC0CB</td> + + </tr> + + <tr> + <td align="right">crimson</td> + <td align="center" style="background-color:rgb(220, 20, 60)">crimson</td> + <td align="left">rgb(220, 20, 60)</td> + <td align="left">#DC143C</td> + + </tr> + + <tr> + <td align="right">pink1</td> + <td align="center" style="background-color:rgb(255, 181, 197)">pink1</td> + <td align="left">rgb(255, 181, 197)</td> + <td align="left">#FFB5C5</td> + + </tr> + + <tr> + <td align="right">pink2</td> + <td align="center" style="background-color:rgb(238, 169, 184)">pink2</td> + <td align="left">rgb(238, 169, 184)</td> + <td align="left">#EEA9B8</td> + + </tr> + + <tr> + <td align="right">pink3</td> + <td align="center" style="background-color:rgb(205, 145, 158)">pink3</td> + <td align="left">rgb(205, 145, 158)</td> + <td align="left">#CD919E</td> + + </tr> + + <tr> + <td align="right">pink4</td> + <td align="center" style="background-color:rgb(139, 99, 108)">pink4</td> + <td align="left">rgb(139, 99, 108)</td> + <td align="left">#8B636C</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed4</td> + <td align="center" style="background-color:rgb(139, 71, 93)">PaleVioletRed4</td> + <td align="left">rgb(139, 71, 93)</td> + <td align="left">#8B475D</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed</td> + <td align="center" style="background-color:rgb(219, 112, 147)">PaleVioletRed</td> + <td align="left">rgb(219, 112, 147)</td> + <td align="left">#DB7093</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed2</td> + <td align="center" style="background-color:rgb(238, 121, 159)">PaleVioletRed2</td> + <td align="left">rgb(238, 121, 159)</td> + <td align="left">#EE799F</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed1</td> + <td align="center" style="background-color:rgb(255, 130, 171)">PaleVioletRed1</td> + <td align="left">rgb(255, 130, 171)</td> + <td align="left">#FF82AB</td> + + </tr> + + <tr> + <td align="right">PaleVioletRed3</td> + <td align="center" style="background-color:rgb(205, 104, 137)">PaleVioletRed3</td> + <td align="left">rgb(205, 104, 137)</td> + <td align="left">#CD6889</td> + + </tr> + + <tr> + <td align="right">LavenderBlush</td> + <td align="center" style="background-color:rgb(255, 240, 245)">LavenderBlush</td> + <td align="left">rgb(255, 240, 245)</td> + <td align="left">#FFF0F5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush1</td> + <td align="center" style="background-color:rgb(255, 240, 245)">LavenderBlush1</td> + <td align="left">rgb(255, 240, 245)</td> + <td align="left">#FFF0F5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush3</td> + <td align="center" style="background-color:rgb(205, 193, 197)">LavenderBlush3</td> + <td align="left">rgb(205, 193, 197)</td> + <td align="left">#CDC1C5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush2</td> + <td align="center" style="background-color:rgb(238, 224, 229)">LavenderBlush2</td> + <td align="left">rgb(238, 224, 229)</td> + <td align="left">#EEE0E5</td> + + </tr> + + <tr> + <td align="right">LavenderBlush4</td> + <td align="center" style="background-color:rgb(139, 131, 134)">LavenderBlush4</td> + <td align="left">rgb(139, 131, 134)</td> + <td align="left">#8B8386</td> + + </tr> + + <tr> + <td align="right">maroon</td> + <td align="center" style="background-color:rgb(176, 48, 96)">maroon</td> + <td align="left">rgb(176, 48, 96)</td> + <td align="left">#B03060</td> + + </tr> + + <tr> + <td align="right">HotPink3</td> + <td align="center" style="background-color:rgb(205, 96, 144)">HotPink3</td> + <td align="left">rgb(205, 96, 144)</td> + <td align="left">#CD6090</td> + + </tr> + + <tr> + <td align="right">VioletRed3</td> + <td align="center" style="background-color:rgb(205, 50, 120)">VioletRed3</td> + <td align="left">rgb(205, 50, 120)</td> + <td align="left">#CD3278</td> + + </tr> + + <tr> + <td align="right">VioletRed1</td> + <td align="center" style="background-color:rgb(255, 62, 150)">VioletRed1</td> + <td align="left">rgb(255, 62, 150)</td> + <td align="left">#FF3E96</td> + + </tr> + + <tr> + <td align="right">VioletRed2</td> + <td align="center" style="background-color:rgb(238, 58, 140)">VioletRed2</td> + <td align="left">rgb(238, 58, 140)</td> + <td align="left">#EE3A8C</td> + + </tr> + + <tr> + <td align="right">VioletRed4</td> + <td align="center" style="background-color:rgb(139, 34, 82)">VioletRed4</td> + <td align="left">rgb(139, 34, 82)</td> + <td align="left">#8B2252</td> + + </tr> + + <tr> + <td align="right">HotPink2</td> + <td align="center" style="background-color:rgb(238, 106, 167)">HotPink2</td> + <td align="left">rgb(238, 106, 167)</td> + <td align="left">#EE6AA7</td> + + </tr> + + <tr> + <td align="right">HotPink1</td> + <td align="center" style="background-color:rgb(255, 110, 180)">HotPink1</td> + <td align="left">rgb(255, 110, 180)</td> + <td align="left">#FF6EB4</td> + + </tr> + + <tr> + <td align="right">HotPink4</td> + <td align="center" style="background-color:rgb(139, 58, 98)">HotPink4</td> + <td align="left">rgb(139, 58, 98)</td> + <td align="left">#8B3A62</td> + + </tr> + + <tr> + <td align="right">HotPink</td> + <td align="center" style="background-color:rgb(255, 105, 180)">HotPink</td> + <td align="left">rgb(255, 105, 180)</td> + <td align="left">#FF69B4</td> + + </tr> + + <tr> + <td align="right">DeepPink</td> + <td align="center" style="background-color:rgb(255, 20, 147)">DeepPink</td> + <td align="left">rgb(255, 20, 147)</td> + <td align="left">#FF1493</td> + + </tr> + + <tr> + <td align="right">DeepPink1</td> + <td align="center" style="background-color:rgb(255, 20, 147)">DeepPink1</td> + <td align="left">rgb(255, 20, 147)</td> + <td align="left">#FF1493</td> + + </tr> + + <tr> + <td align="right">DeepPink2</td> + <td align="center" style="background-color:rgb(238, 18, 137)">DeepPink2</td> + <td align="left">rgb(238, 18, 137)</td> + <td align="left">#EE1289</td> + + </tr> + + <tr> + <td align="right">DeepPink3</td> + <td align="center" style="background-color:rgb(205, 16, 118)">DeepPink3</td> + <td align="left">rgb(205, 16, 118)</td> + <td align="left">#CD1076</td> + + </tr> + + <tr> + <td align="right">DeepPink4</td> + <td align="center" style="background-color:rgb(139, 10, 80)">DeepPink4</td> + <td align="left">rgb(139, 10, 80)</td> + <td align="left">#8B0A50</td> + + </tr> + + <tr> + <td align="right">maroon1</td> + <td align="center" style="background-color:rgb(255, 52, 179)">maroon1</td> + <td align="left">rgb(255, 52, 179)</td> + <td align="left">#FF34B3</td> + + </tr> + + <tr> + <td align="right">maroon2</td> + <td align="center" style="background-color:rgb(238, 48, 167)">maroon2</td> + <td align="left">rgb(238, 48, 167)</td> + <td align="left">#EE30A7</td> + + </tr> + + <tr> + <td align="right">maroon3</td> + <td align="center" style="background-color:rgb(205, 41, 144)">maroon3</td> + <td align="left">rgb(205, 41, 144)</td> + <td align="left">#CD2990</td> + + </tr> + + <tr> + <td align="right">maroon4</td> + <td align="center" style="background-color:rgb(139, 28, 98)">maroon4</td> + <td align="left">rgb(139, 28, 98)</td> + <td align="left">#8B1C62</td> + + </tr> + + <tr> + <td align="right">MediumVioletRed</td> + <td align="center" style="background-color:rgb(199, 21, 133)">MediumVioletRed</td> + <td align="left">rgb(199, 21, 133)</td> + <td align="left">#C71585</td> + + </tr> + + <tr> + <td align="right">VioletRed</td> + <td align="center" style="background-color:rgb(208, 32, 144)">VioletRed</td> + <td align="left">rgb(208, 32, 144)</td> + <td align="left">#D02090</td> + + </tr> + + <tr> + <td align="right">orchid2</td> + <td align="center" style="background-color:rgb(238, 122, 233)">orchid2</td> + <td align="left">rgb(238, 122, 233)</td> + <td align="left">#EE7AE9</td> + + </tr> + + <tr> + <td align="right">orchid</td> + <td align="center" style="background-color:rgb(218, 112, 214)">orchid</td> + <td align="left">rgb(218, 112, 214)</td> + <td align="left">#DA70D6</td> + + </tr> + + <tr> + <td align="right">orchid1</td> + <td align="center" style="background-color:rgb(255, 131, 250)">orchid1</td> + <td align="left">rgb(255, 131, 250)</td> + <td align="left">#FF83FA</td> + + </tr> + + <tr> + <td align="right">orchid3</td> + <td align="center" style="background-color:rgb(205, 105, 201)">orchid3</td> + <td align="left">rgb(205, 105, 201)</td> + <td align="left">#CD69C9</td> + + </tr> + + <tr> + <td align="right">orchid4</td> + <td align="center" style="background-color:rgb(139, 71, 137)">orchid4</td> + <td align="left">rgb(139, 71, 137)</td> + <td align="left">#8B4789</td> + + </tr> + + <tr> + <td align="right">thistle1</td> + <td align="center" style="background-color:rgb(255, 225, 255)">thistle1</td> + <td align="left">rgb(255, 225, 255)</td> + <td align="left">#FFE1FF</td> + + </tr> + + <tr> + <td align="right">thistle2</td> + <td align="center" style="background-color:rgb(238, 210, 238)">thistle2</td> + <td align="left">rgb(238, 210, 238)</td> + <td align="left">#EED2EE</td> + + </tr> + + <tr> + <td align="right">plum1</td> + <td align="center" style="background-color:rgb(255, 187, 255)">plum1</td> + <td align="left">rgb(255, 187, 255)</td> + <td align="left">#FFBBFF</td> + + </tr> + + <tr> + <td align="right">plum2</td> + <td align="center" style="background-color:rgb(238, 174, 238)">plum2</td> + <td align="left">rgb(238, 174, 238)</td> + <td align="left">#EEAEEE</td> + + </tr> + + <tr> + <td align="right">thistle</td> + <td align="center" style="background-color:rgb(216, 191, 216)">thistle</td> + <td align="left">rgb(216, 191, 216)</td> + <td align="left">#D8BFD8</td> + + </tr> + + <tr> + <td align="right">thistle3</td> + <td align="center" style="background-color:rgb(205, 181, 205)">thistle3</td> + <td align="left">rgb(205, 181, 205)</td> + <td align="left">#CDB5CD</td> + + </tr> + + <tr> + <td align="right">plum</td> + <td align="center" style="background-color:rgb(221, 160, 221)">plum</td> + <td align="left">rgb(221, 160, 221)</td> + <td align="left">#DDA0DD</td> + + </tr> + + <tr> + <td align="right">violet</td> + <td align="center" style="background-color:rgb(238, 130, 238)">violet</td> + <td align="left">rgb(238, 130, 238)</td> + <td align="left">#EE82EE</td> + + </tr> + + <tr> + <td align="right">plum3</td> + <td align="center" style="background-color:rgb(205, 150, 205)">plum3</td> + <td align="left">rgb(205, 150, 205)</td> + <td align="left">#CD96CD</td> + + </tr> + + <tr> + <td align="right">thistle4</td> + <td align="center" style="background-color:rgb(139, 123, 139)">thistle4</td> + <td align="left">rgb(139, 123, 139)</td> + <td align="left">#8B7B8B</td> + + </tr> + + <tr> + <td align="right">fuchsia</td> + <td align="center" style="background-color:rgb(255, 0, 255)">fuchsia</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">magenta</td> + <td align="center" style="background-color:rgb(255, 0, 255)">magenta</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">magenta1</td> + <td align="center" style="background-color:rgb(255, 0, 255)">magenta1</td> + <td align="left">rgb(255, 0, 255)</td> + <td align="left">#FF00FF</td> + + </tr> + + <tr> + <td align="right">plum4</td> + <td align="center" style="background-color:rgb(139, 102, 139)">plum4</td> + <td align="left">rgb(139, 102, 139)</td> + <td align="left">#8B668B</td> + + </tr> + + <tr> + <td align="right">magenta2</td> + <td align="center" style="background-color:rgb(238, 0, 238)">magenta2</td> + <td align="left">rgb(238, 0, 238)</td> + <td align="left">#EE00EE</td> + + </tr> + + <tr> + <td align="right">magenta3</td> + <td align="center" style="background-color:rgb(205, 0, 205)">magenta3</td> + <td align="left">rgb(205, 0, 205)</td> + <td align="left">#CD00CD</td> + + </tr> + + <tr> + <td align="right">DarkMagenta</td> + <td align="center" style="background-color:rgb(139, 0, 139)">DarkMagenta</td> + <td align="left">rgb(139, 0, 139)</td> + <td align="left">#8B008B</td> + + </tr> + + <tr> + <td align="right">magenta4</td> + <td align="center" style="background-color:rgb(139, 0, 139)">magenta4</td> + <td align="left">rgb(139, 0, 139)</td> + <td align="left">#8B008B</td> + + </tr> + + <tr> + <td align="right">purple</td> + <td align="center" style="background-color:rgb(128, 0, 128)">purple</td> + <td align="left">rgb(128, 0, 128)</td> + <td align="left">#800080</td> + + </tr> + + <tr> + <td align="right">MediumOrchid</td> + <td align="center" style="background-color:rgb(186, 85, 211)">MediumOrchid</td> + <td align="left">rgb(186, 85, 211)</td> + <td align="left">#BA55D3</td> + + </tr> + + <tr> + <td align="right">MediumOrchid1</td> + <td align="center" style="background-color:rgb(224, 102, 255)">MediumOrchid1</td> + <td align="left">rgb(224, 102, 255)</td> + <td align="left">#E066FF</td> + + </tr> + + <tr> + <td align="right">MediumOrchid2</td> + <td align="center" style="background-color:rgb(209, 95, 238)">MediumOrchid2</td> + <td align="left">rgb(209, 95, 238)</td> + <td align="left">#D15FEE</td> + + </tr> + + <tr> + <td align="right">MediumOrchid3</td> + <td align="center" style="background-color:rgb(180, 82, 205)">MediumOrchid3</td> + <td align="left">rgb(180, 82, 205)</td> + <td align="left">#B452CD</td> + + </tr> + + <tr> + <td align="right">MediumOrchid4</td> + <td align="center" style="background-color:rgb(122, 55, 139)">MediumOrchid4</td> + <td align="left">rgb(122, 55, 139)</td> + <td align="left">#7A378B</td> + + </tr> + + <tr> + <td align="right">DarkViolet</td> + <td align="center" style="background-color:rgb(148, 0, 211)">DarkViolet</td> + <td align="left">rgb(148, 0, 211)</td> + <td align="left">#9400D3</td> + + </tr> + + <tr> + <td align="right">DarkOrchid</td> + <td align="center" style="background-color:rgb(153, 50, 204)">DarkOrchid</td> + <td align="left">rgb(153, 50, 204)</td> + <td align="left">#9932CC</td> + + </tr> + + <tr> + <td align="right">DarkOrchid1</td> + <td align="center" style="background-color:rgb(191, 62, 255)">DarkOrchid1</td> + <td align="left">rgb(191, 62, 255)</td> + <td align="left">#BF3EFF</td> + + </tr> + + <tr> + <td align="right">DarkOrchid3</td> + <td align="center" style="background-color:rgb(154, 50, 205)">DarkOrchid3</td> + <td align="left">rgb(154, 50, 205)</td> + <td align="left">#9A32CD</td> + + </tr> + + <tr> + <td align="right">DarkOrchid2</td> + <td align="center" style="background-color:rgb(178, 58, 238)">DarkOrchid2</td> + <td align="left">rgb(178, 58, 238)</td> + <td align="left">#B23AEE</td> + + </tr> + + <tr> + <td align="right">DarkOrchid4</td> + <td align="center" style="background-color:rgb(104, 34, 139)">DarkOrchid4</td> + <td align="left">rgb(104, 34, 139)</td> + <td align="left">#68228B</td> + + </tr> + + <tr> + <td align="right">purple</td> + <td align="center" style="background-color:rgb(160, 32, 240)">purple</td> + <td align="left">rgb(160, 32, 240)</td> + <td align="left">#A020F0</td> + + </tr> + + <tr> + <td align="right">indigo</td> + <td align="center" style="background-color:rgb( 75, 0, 130)">indigo</td> + <td align="left">rgb( 75, 0, 130)</td> + <td align="left">#4B0082</td> + + </tr> + + <tr> + <td align="right">BlueViolet</td> + <td align="center" style="background-color:rgb(138, 43, 226)">BlueViolet</td> + <td align="left">rgb(138, 43, 226)</td> + <td align="left">#8A2BE2</td> + + </tr> + + <tr> + <td align="right">purple2</td> + <td align="center" style="background-color:rgb(145, 44, 238)">purple2</td> + <td align="left">rgb(145, 44, 238)</td> + <td align="left">#912CEE</td> + + </tr> + + <tr> + <td align="right">purple3</td> + <td align="center" style="background-color:rgb(125, 38, 205)">purple3</td> + <td align="left">rgb(125, 38, 205)</td> + <td align="left">#7D26CD</td> + + </tr> + + <tr> + <td align="right">purple4</td> + <td align="center" style="background-color:rgb( 85, 26, 139)">purple4</td> + <td align="left">rgb( 85, 26, 139)</td> + <td align="left">#551A8B</td> + + </tr> + + <tr> + <td align="right">purple1</td> + <td align="center" style="background-color:rgb(155, 48, 255)">purple1</td> + <td align="left">rgb(155, 48, 255)</td> + <td align="left">#9B30FF</td> + + </tr> + + <tr> + <td align="right">MediumPurple</td> + <td align="center" style="background-color:rgb(147, 112, 219)">MediumPurple</td> + <td align="left">rgb(147, 112, 219)</td> + <td align="left">#9370DB</td> + + </tr> + + <tr> + <td align="right">MediumPurple1</td> + <td align="center" style="background-color:rgb(171, 130, 255)">MediumPurple1</td> + <td align="left">rgb(171, 130, 255)</td> + <td align="left">#AB82FF</td> + + </tr> + + <tr> + <td align="right">MediumPurple2</td> + <td align="center" style="background-color:rgb(159, 121, 238)">MediumPurple2</td> + <td align="left">rgb(159, 121, 238)</td> + <td align="left">#9F79EE</td> + + </tr> + + <tr> + <td align="right">MediumPurple3</td> + <td align="center" style="background-color:rgb(137, 104, 205)">MediumPurple3</td> + <td align="left">rgb(137, 104, 205)</td> + <td align="left">#8968CD</td> + + </tr> + + <tr> + <td align="right">MediumPurple4</td> + <td align="center" style="background-color:rgb( 93, 71, 139)">MediumPurple4</td> + <td align="left">rgb( 93, 71, 139)</td> + <td align="left">#5D478B</td> + + </tr> + + <tr> + <td align="right">DarkSlateBlue</td> + <td align="center" style="background-color:rgb( 72, 61, 139)">DarkSlateBlue</td> + <td align="left">rgb( 72, 61, 139)</td> + <td align="left">#483D8B</td> + + </tr> + + <tr> + <td align="right">LightSlateBlue</td> + <td align="center" style="background-color:rgb(132, 112, 255)">LightSlateBlue</td> + <td align="left">rgb(132, 112, 255)</td> + <td align="left">#8470FF</td> + + </tr> + + <tr> + <td align="right">MediumSlateBlue</td> + <td align="center" style="background-color:rgb(123, 104, 238)">MediumSlateBlue</td> + <td align="left">rgb(123, 104, 238)</td> + <td align="left">#7B68EE</td> + + </tr> + + <tr> + <td align="right">SlateBlue</td> + <td align="center" style="background-color:rgb(106, 90, 205)">SlateBlue</td> + <td align="left">rgb(106, 90, 205)</td> + <td align="left">#6A5ACD</td> + + </tr> + + <tr> + <td align="right">SlateBlue1</td> + <td align="center" style="background-color:rgb(131, 111, 255)">SlateBlue1</td> + <td align="left">rgb(131, 111, 255)</td> + <td align="left">#836FFF</td> + + </tr> + + <tr> + <td align="right">SlateBlue2</td> + <td align="center" style="background-color:rgb(122, 103, 238)">SlateBlue2</td> + <td align="left">rgb(122, 103, 238)</td> + <td align="left">#7A67EE</td> + + </tr> + + <tr> + <td align="right">SlateBlue3</td> + <td align="center" style="background-color:rgb(105, 89, 205)">SlateBlue3</td> + <td align="left">rgb(105, 89, 205)</td> + <td align="left">#6959CD</td> + + </tr> + + <tr> + <td align="right">SlateBlue4</td> + <td align="center" style="background-color:rgb( 71, 60, 139)">SlateBlue4</td> + <td align="left">rgb( 71, 60, 139)</td> + <td align="left">#473C8B</td> + + </tr> + + <tr> + <td align="right">GhostWhite</td> + <td align="center" style="background-color:rgb(248, 248, 255)">GhostWhite</td> + <td align="left">rgb(248, 248, 255)</td> + <td align="left">#F8F8FF</td> + + </tr> + + <tr> + <td align="right">lavender</td> + <td align="center" style="background-color:rgb(230, 230, 250)">lavender</td> + <td align="left">rgb(230, 230, 250)</td> + <td align="left">#E6E6FA</td> + + </tr> + + <tr> + <td align="right">blue</td> + <td align="center" style="background-color:rgb( 0, 0, 255)">blue</td> + <td align="left">rgb( 0, 0, 255)</td> + <td align="left">#0000FF</td> + + </tr> + + <tr> + <td align="right">blue1</td> + <td align="center" style="background-color:rgb( 0, 0, 255)">blue1</td> + <td align="left">rgb( 0, 0, 255)</td> + <td align="left">#0000FF</td> + + </tr> + + <tr> + <td align="right">blue2</td> + <td align="center" style="background-color:rgb( 0, 0, 238)">blue2</td> + <td align="left">rgb( 0, 0, 238)</td> + <td align="left">#0000EE</td> + + </tr> + + <tr> + <td align="right">blue3</td> + <td align="center" style="background-color:rgb( 0, 0, 205)">blue3</td> + <td align="left">rgb( 0, 0, 205)</td> + <td align="left">#0000CD</td> + + </tr> + + <tr> + <td align="right">MediumBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 205)">MediumBlue</td> + <td align="left">rgb( 0, 0, 205)</td> + <td align="left">#0000CD</td> + + </tr> + + <tr> + <td align="right">blue4</td> + <td align="center" style="background-color:rgb( 0, 0, 139)">blue4</td> + <td align="left">rgb( 0, 0, 139)</td> + <td align="left">#00008B</td> + + </tr> + + <tr> + <td align="right">DarkBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 139)">DarkBlue</td> + <td align="left">rgb( 0, 0, 139)</td> + <td align="left">#00008B</td> + + </tr> + + <tr> + <td align="right">MidnightBlue</td> + <td align="center" style="background-color:rgb( 25, 25, 112)">MidnightBlue</td> + <td align="left">rgb( 25, 25, 112)</td> + <td align="left">#191970</td> + + </tr> + + <tr> + <td align="right">navy</td> + <td align="center" style="background-color:rgb( 0, 0, 128)">navy</td> + <td align="left">rgb( 0, 0, 128)</td> + <td align="left">#000080</td> + + </tr> + + <tr> + <td align="right">NavyBlue</td> + <td align="center" style="background-color:rgb( 0, 0, 128)">NavyBlue</td> + <td align="left">rgb( 0, 0, 128)</td> + <td align="left">#000080</td> + + </tr> + + <tr> + <td align="right">RoyalBlue</td> + <td align="center" style="background-color:rgb( 65, 105, 225)">RoyalBlue</td> + <td align="left">rgb( 65, 105, 225)</td> + <td align="left">#4169E1</td> + + </tr> + + <tr> + <td align="right">RoyalBlue1</td> + <td align="center" style="background-color:rgb( 72, 118, 255)">RoyalBlue1</td> + <td align="left">rgb( 72, 118, 255)</td> + <td align="left">#4876FF</td> + + </tr> + + <tr> + <td align="right">RoyalBlue2</td> + <td align="center" style="background-color:rgb( 67, 110, 238)">RoyalBlue2</td> + <td align="left">rgb( 67, 110, 238)</td> + <td align="left">#436EEE</td> + + </tr> + + <tr> + <td align="right">RoyalBlue3</td> + <td align="center" style="background-color:rgb( 58, 95, 205)">RoyalBlue3</td> + <td align="left">rgb( 58, 95, 205)</td> + <td align="left">#3A5FCD</td> + + </tr> + + <tr> + <td align="right">RoyalBlue4</td> + <td align="center" style="background-color:rgb( 39, 64, 139)">RoyalBlue4</td> + <td align="left">rgb( 39, 64, 139)</td> + <td align="left">#27408B</td> + + </tr> + + <tr> + <td align="right">CornflowerBlue</td> + <td align="center" style="background-color:rgb(100, 149, 237)">CornflowerBlue</td> + <td align="left">rgb(100, 149, 237)</td> + <td align="left">#6495ED</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue</td> + <td align="center" style="background-color:rgb(176, 196, 222)">LightSteelBlue</td> + <td align="left">rgb(176, 196, 222)</td> + <td align="left">#B0C4DE</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue1</td> + <td align="center" style="background-color:rgb(202, 225, 255)">LightSteelBlue1</td> + <td align="left">rgb(202, 225, 255)</td> + <td align="left">#CAE1FF</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue2</td> + <td align="center" style="background-color:rgb(188, 210, 238)">LightSteelBlue2</td> + <td align="left">rgb(188, 210, 238)</td> + <td align="left">#BCD2EE</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue3</td> + <td align="center" style="background-color:rgb(162, 181, 205)">LightSteelBlue3</td> + <td align="left">rgb(162, 181, 205)</td> + <td align="left">#A2B5CD</td> + + </tr> + + <tr> + <td align="right">LightSteelBlue4</td> + <td align="center" style="background-color:rgb(110, 123, 139)">LightSteelBlue4</td> + <td align="left">rgb(110, 123, 139)</td> + <td align="left">#6E7B8B</td> + + </tr> + + <tr> + <td align="right">SlateGray4</td> + <td align="center" style="background-color:rgb(108, 123, 139)">SlateGray4</td> + <td align="left">rgb(108, 123, 139)</td> + <td align="left">#6C7B8B</td> + + </tr> + + <tr> + <td align="right">SlateGray1</td> + <td align="center" style="background-color:rgb(198, 226, 255)">SlateGray1</td> + <td align="left">rgb(198, 226, 255)</td> + <td align="left">#C6E2FF</td> + + </tr> + + <tr> + <td align="right">SlateGray2</td> + <td align="center" style="background-color:rgb(185, 211, 238)">SlateGray2</td> + <td align="left">rgb(185, 211, 238)</td> + <td align="left">#B9D3EE</td> + + </tr> + + <tr> + <td align="right">SlateGray3</td> + <td align="center" style="background-color:rgb(159, 182, 205)">SlateGray3</td> + <td align="left">rgb(159, 182, 205)</td> + <td align="left">#9FB6CD</td> + + </tr> + + <tr> + <td align="right">LightSlateGray</td> + <td align="center" style="background-color:rgb(119, 136, 153)">LightSlateGray</td> + <td align="left">rgb(119, 136, 153)</td> + <td align="left">#778899</td> + + </tr> + + <tr> + <td align="right">LightSlateGrey</td> + <td align="center" style="background-color:rgb(119, 136, 153)">LightSlateGrey</td> + <td align="left">rgb(119, 136, 153)</td> + <td align="left">#778899</td> + + </tr> + + <tr> + <td align="right">SlateGray</td> + <td align="center" style="background-color:rgb(112, 128, 144)">SlateGray</td> + <td align="left">rgb(112, 128, 144)</td> + <td align="left">#708090</td> + + </tr> + + <tr> + <td align="right">SlateGrey</td> + <td align="center" style="background-color:rgb(112, 128, 144)">SlateGrey</td> + <td align="left">rgb(112, 128, 144)</td> + <td align="left">#708090</td> + + </tr> + + <tr> + <td align="right">DodgerBlue</td> + <td align="center" style="background-color:rgb( 30, 144, 255)">DodgerBlue</td> + <td align="left">rgb( 30, 144, 255)</td> + <td align="left">#1E90FF</td> + + </tr> + + <tr> + <td align="right">DodgerBlue1</td> + <td align="center" style="background-color:rgb( 30, 144, 255)">DodgerBlue1</td> + <td align="left">rgb( 30, 144, 255)</td> + <td align="left">#1E90FF</td> + + </tr> + + <tr> + <td align="right">DodgerBlue2</td> + <td align="center" style="background-color:rgb( 28, 134, 238)">DodgerBlue2</td> + <td align="left">rgb( 28, 134, 238)</td> + <td align="left">#1C86EE</td> + + </tr> + + <tr> + <td align="right">DodgerBlue4</td> + <td align="center" style="background-color:rgb( 16, 78, 139)">DodgerBlue4</td> + <td align="left">rgb( 16, 78, 139)</td> + <td align="left">#104E8B</td> + + </tr> + + <tr> + <td align="right">DodgerBlue3</td> + <td align="center" style="background-color:rgb( 24, 116, 205)">DodgerBlue3</td> + <td align="left">rgb( 24, 116, 205)</td> + <td align="left">#1874CD</td> + + </tr> + + <tr> + <td align="right">AliceBlue</td> + <td align="center" style="background-color:rgb(240, 248, 255)">AliceBlue</td> + <td align="left">rgb(240, 248, 255)</td> + <td align="left">#F0F8FF</td> + + </tr> + + <tr> + <td align="right">SteelBlue4</td> + <td align="center" style="background-color:rgb( 54, 100, 139)">SteelBlue4</td> + <td align="left">rgb( 54, 100, 139)</td> + <td align="left">#36648B</td> + + </tr> + + <tr> + <td align="right">SteelBlue</td> + <td align="center" style="background-color:rgb( 70, 130, 180)">SteelBlue</td> + <td align="left">rgb( 70, 130, 180)</td> + <td align="left">#4682B4</td> + + </tr> + + <tr> + <td align="right">SteelBlue1</td> + <td align="center" style="background-color:rgb( 99, 184, 255)">SteelBlue1</td> + <td align="left">rgb( 99, 184, 255)</td> + <td align="left">#63B8FF</td> + + </tr> + + <tr> + <td align="right">SteelBlue2</td> + <td align="center" style="background-color:rgb( 92, 172, 238)">SteelBlue2</td> + <td align="left">rgb( 92, 172, 238)</td> + <td align="left">#5CACEE</td> + + </tr> + + <tr> + <td align="right">SteelBlue3</td> + <td align="center" style="background-color:rgb( 79, 148, 205)">SteelBlue3</td> + <td align="left">rgb( 79, 148, 205)</td> + <td align="left">#4F94CD</td> + + </tr> + + <tr> + <td align="right">SkyBlue4</td> + <td align="center" style="background-color:rgb( 74, 112, 139)">SkyBlue4</td> + <td align="left">rgb( 74, 112, 139)</td> + <td align="left">#4A708B</td> + + </tr> + + <tr> + <td align="right">SkyBlue1</td> + <td align="center" style="background-color:rgb(135, 206, 255)">SkyBlue1</td> + <td align="left">rgb(135, 206, 255)</td> + <td align="left">#87CEFF</td> + + </tr> + + <tr> + <td align="right">SkyBlue2</td> + <td align="center" style="background-color:rgb(126, 192, 238)">SkyBlue2</td> + <td align="left">rgb(126, 192, 238)</td> + <td align="left">#7EC0EE</td> + + </tr> + + <tr> + <td align="right">SkyBlue3</td> + <td align="center" style="background-color:rgb(108, 166, 205)">SkyBlue3</td> + <td align="left">rgb(108, 166, 205)</td> + <td align="left">#6CA6CD</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue</td> + <td align="center" style="background-color:rgb(135, 206, 250)">LightSkyBlue</td> + <td align="left">rgb(135, 206, 250)</td> + <td align="left">#87CEFA</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue4</td> + <td align="center" style="background-color:rgb( 96, 123, 139)">LightSkyBlue4</td> + <td align="left">rgb( 96, 123, 139)</td> + <td align="left">#607B8B</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue1</td> + <td align="center" style="background-color:rgb(176, 226, 255)">LightSkyBlue1</td> + <td align="left">rgb(176, 226, 255)</td> + <td align="left">#B0E2FF</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue2</td> + <td align="center" style="background-color:rgb(164, 211, 238)">LightSkyBlue2</td> + <td align="left">rgb(164, 211, 238)</td> + <td align="left">#A4D3EE</td> + + </tr> + + <tr> + <td align="right">LightSkyBlue3</td> + <td align="center" style="background-color:rgb(141, 182, 205)">LightSkyBlue3</td> + <td align="left">rgb(141, 182, 205)</td> + <td align="left">#8DB6CD</td> + + </tr> + + <tr> + <td align="right">SkyBlue</td> + <td align="center" style="background-color:rgb(135, 206, 235)">SkyBlue</td> + <td align="left">rgb(135, 206, 235)</td> + <td align="left">#87CEEB</td> + + </tr> + + <tr> + <td align="right">LightBlue3</td> + <td align="center" style="background-color:rgb(154, 192, 205)">LightBlue3</td> + <td align="left">rgb(154, 192, 205)</td> + <td align="left">#9AC0CD</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue</td> + <td align="center" style="background-color:rgb( 0, 191, 255)">DeepSkyBlue</td> + <td align="left">rgb( 0, 191, 255)</td> + <td align="left">#00BFFF</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue1</td> + <td align="center" style="background-color:rgb( 0, 191, 255)">DeepSkyBlue1</td> + <td align="left">rgb( 0, 191, 255)</td> + <td align="left">#00BFFF</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue2</td> + <td align="center" style="background-color:rgb( 0, 178, 238)">DeepSkyBlue2</td> + <td align="left">rgb( 0, 178, 238)</td> + <td align="left">#00B2EE</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue4</td> + <td align="center" style="background-color:rgb( 0, 104, 139)">DeepSkyBlue4</td> + <td align="left">rgb( 0, 104, 139)</td> + <td align="left">#00688B</td> + + </tr> + + <tr> + <td align="right">DeepSkyBlue3</td> + <td align="center" style="background-color:rgb( 0, 154, 205)">DeepSkyBlue3</td> + <td align="left">rgb( 0, 154, 205)</td> + <td align="left">#009ACD</td> + + </tr> + + <tr> + <td align="right">LightBlue1</td> + <td align="center" style="background-color:rgb(191, 239, 255)">LightBlue1</td> + <td align="left">rgb(191, 239, 255)</td> + <td align="left">#BFEFFF</td> + + </tr> + + <tr> + <td align="right">LightBlue2</td> + <td align="center" style="background-color:rgb(178, 223, 238)">LightBlue2</td> + <td align="left">rgb(178, 223, 238)</td> + <td align="left">#B2DFEE</td> + + </tr> + + <tr> + <td align="right">LightBlue</td> + <td align="center" style="background-color:rgb(173, 216, 230)">LightBlue</td> + <td align="left">rgb(173, 216, 230)</td> + <td align="left">#ADD8E6</td> + + </tr> + + <tr> + <td align="right">LightBlue4</td> + <td align="center" style="background-color:rgb(104, 131, 139)">LightBlue4</td> + <td align="left">rgb(104, 131, 139)</td> + <td align="left">#68838B</td> + + </tr> + + <tr> + <td align="right">PowderBlue</td> + <td align="center" style="background-color:rgb(176, 224, 230)">PowderBlue</td> + <td align="left">rgb(176, 224, 230)</td> + <td align="left">#B0E0E6</td> + + </tr> + + <tr> + <td align="right">CadetBlue1</td> + <td align="center" style="background-color:rgb(152, 245, 255)">CadetBlue1</td> + <td align="left">rgb(152, 245, 255)</td> + <td align="left">#98F5FF</td> + + </tr> + + <tr> + <td align="right">CadetBlue2</td> + <td align="center" style="background-color:rgb(142, 229, 238)">CadetBlue2</td> + <td align="left">rgb(142, 229, 238)</td> + <td align="left">#8EE5EE</td> + + </tr> + + <tr> + <td align="right">CadetBlue3</td> + <td align="center" style="background-color:rgb(122, 197, 205)">CadetBlue3</td> + <td align="left">rgb(122, 197, 205)</td> + <td align="left">#7AC5CD</td> + + </tr> + + <tr> + <td align="right">CadetBlue4</td> + <td align="center" style="background-color:rgb( 83, 134, 139)">CadetBlue4</td> + <td align="left">rgb( 83, 134, 139)</td> + <td align="left">#53868B</td> + + </tr> + + <tr> + <td align="right">turquoise1</td> + <td align="center" style="background-color:rgb( 0, 245, 255)">turquoise1</td> + <td align="left">rgb( 0, 245, 255)</td> + <td align="left">#00F5FF</td> + + </tr> + + <tr> + <td align="right">turquoise2</td> + <td align="center" style="background-color:rgb( 0, 229, 238)">turquoise2</td> + <td align="left">rgb( 0, 229, 238)</td> + <td align="left">#00E5EE</td> + + </tr> + + <tr> + <td align="right">turquoise3</td> + <td align="center" style="background-color:rgb( 0, 197, 205)">turquoise3</td> + <td align="left">rgb( 0, 197, 205)</td> + <td align="left">#00C5CD</td> + + </tr> + + <tr> + <td align="right">turquoise4</td> + <td align="center" style="background-color:rgb( 0, 134, 139)">turquoise4</td> + <td align="left">rgb( 0, 134, 139)</td> + <td align="left">#00868B</td> + + </tr> + + <tr> + <td align="right">cadet blue</td> + <td align="center" style="background-color:rgb( 95, 158, 160)">cadet blue</td> + <td align="left">rgb( 95, 158, 160)</td> + <td align="left">#5F9EA0</td> + + </tr> + + <tr> + <td align="right">CadetBlue</td> + <td align="center" style="background-color:rgb( 95, 158, 160)">CadetBlue</td> + <td align="left">rgb( 95, 158, 160)</td> + <td align="left">#5F9EA0</td> + + </tr> + + <tr> + <td align="right">DarkTurquoise</td> + <td align="center" style="background-color:rgb( 0, 206, 209)">DarkTurquoise</td> + <td align="left">rgb( 0, 206, 209)</td> + <td align="left">#00CED1</td> + + </tr> + + <tr> + <td align="right">azure</td> + <td align="center" style="background-color:rgb(240, 255, 255)">azure</td> + <td align="left">rgb(240, 255, 255)</td> + <td align="left">#F0FFFF</td> + + </tr> + + <tr> + <td align="right">azure1</td> + <td align="center" style="background-color:rgb(240, 255, 255)">azure1</td> + <td align="left">rgb(240, 255, 255)</td> + <td align="left">#F0FFFF</td> + + </tr> + + <tr> + <td align="right">LightCyan</td> + <td align="center" style="background-color:rgb(224, 255, 255)">LightCyan</td> + <td align="left">rgb(224, 255, 255)</td> + <td align="left">#E0FFFF</td> + + </tr> + + <tr> + <td align="right">LightCyan1</td> + <td align="center" style="background-color:rgb(224, 255, 255)">LightCyan1</td> + <td align="left">rgb(224, 255, 255)</td> + <td align="left">#E0FFFF</td> + + </tr> + + <tr> + <td align="right">azure2</td> + <td align="center" style="background-color:rgb(224, 238, 238)">azure2</td> + <td align="left">rgb(224, 238, 238)</td> + <td align="left">#E0EEEE</td> + + </tr> + + <tr> + <td align="right">LightCyan2</td> + <td align="center" style="background-color:rgb(209, 238, 238)">LightCyan2</td> + <td align="left">rgb(209, 238, 238)</td> + <td align="left">#D1EEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise1</td> + <td align="center" style="background-color:rgb(187, 255, 255)">PaleTurquoise1</td> + <td align="left">rgb(187, 255, 255)</td> + <td align="left">#BBFFFF</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise</td> + <td align="center" style="background-color:rgb(175, 238, 238)">PaleTurquoise</td> + <td align="left">rgb(175, 238, 238)</td> + <td align="left">#AFEEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise2</td> + <td align="center" style="background-color:rgb(174, 238, 238)">PaleTurquoise2</td> + <td align="left">rgb(174, 238, 238)</td> + <td align="left">#AEEEEE</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray1</td> + <td align="center" style="background-color:rgb(151, 255, 255)">DarkSlateGray1</td> + <td align="left">rgb(151, 255, 255)</td> + <td align="left">#97FFFF</td> + + </tr> + + <tr> + <td align="right">azure3</td> + <td align="center" style="background-color:rgb(193, 205, 205)">azure3</td> + <td align="left">rgb(193, 205, 205)</td> + <td align="left">#C1CDCD</td> + + </tr> + + <tr> + <td align="right">LightCyan3</td> + <td align="center" style="background-color:rgb(180, 205, 205)">LightCyan3</td> + <td align="left">rgb(180, 205, 205)</td> + <td align="left">#B4CDCD</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray2</td> + <td align="center" style="background-color:rgb(141, 238, 238)">DarkSlateGray2</td> + <td align="left">rgb(141, 238, 238)</td> + <td align="left">#8DEEEE</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise3</td> + <td align="center" style="background-color:rgb(150, 205, 205)">PaleTurquoise3</td> + <td align="left">rgb(150, 205, 205)</td> + <td align="left">#96CDCD</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray3</td> + <td align="center" style="background-color:rgb(121, 205, 205)">DarkSlateGray3</td> + <td align="left">rgb(121, 205, 205)</td> + <td align="left">#79CDCD</td> + + </tr> + + <tr> + <td align="right">azure4</td> + <td align="center" style="background-color:rgb(131, 139, 139)">azure4</td> + <td align="left">rgb(131, 139, 139)</td> + <td align="left">#838B8B</td> + + </tr> + + <tr> + <td align="right">LightCyan4</td> + <td align="center" style="background-color:rgb(122, 139, 139)">LightCyan4</td> + <td align="left">rgb(122, 139, 139)</td> + <td align="left">#7A8B8B</td> + + </tr> + + <tr> + <td align="right">aqua</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">aqua</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">cyan</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">cyan</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">cyan1</td> + <td align="center" style="background-color:rgb( 0, 255, 255)">cyan1</td> + <td align="left">rgb( 0, 255, 255)</td> + <td align="left">#00FFFF</td> + + </tr> + + <tr> + <td align="right">PaleTurquoise4</td> + <td align="center" style="background-color:rgb(102, 139, 139)">PaleTurquoise4</td> + <td align="left">rgb(102, 139, 139)</td> + <td align="left">#668B8B</td> + + </tr> + + <tr> + <td align="right">cyan2</td> + <td align="center" style="background-color:rgb( 0, 238, 238)">cyan2</td> + <td align="left">rgb( 0, 238, 238)</td> + <td align="left">#00EEEE</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray4</td> + <td align="center" style="background-color:rgb( 82, 139, 139)">DarkSlateGray4</td> + <td align="left">rgb( 82, 139, 139)</td> + <td align="left">#528B8B</td> + + </tr> + + <tr> + <td align="right">cyan3</td> + <td align="center" style="background-color:rgb( 0, 205, 205)">cyan3</td> + <td align="left">rgb( 0, 205, 205)</td> + <td align="left">#00CDCD</td> + + </tr> + + <tr> + <td align="right">cyan4</td> + <td align="center" style="background-color:rgb( 0, 139, 139)">cyan4</td> + <td align="left">rgb( 0, 139, 139)</td> + <td align="left">#008B8B</td> + + </tr> + + <tr> + <td align="right">DarkCyan</td> + <td align="center" style="background-color:rgb( 0, 139, 139)">DarkCyan</td> + <td align="left">rgb( 0, 139, 139)</td> + <td align="left">#008B8B</td> + + </tr> + + <tr> + <td align="right">teal</td> + <td align="center" style="background-color:rgb( 0, 128, 128)">teal</td> + <td align="left">rgb( 0, 128, 128)</td> + <td align="left">#008080</td> + + </tr> + + <tr> + <td align="right">DarkSlateGray</td> + <td align="center" style="background-color:rgb( 47, 79, 79)">DarkSlateGray</td> + <td align="left">rgb( 47, 79, 79)</td> + <td align="left">#2F4F4F</td> + + </tr> + + <tr> + <td align="right">DarkSlateGrey</td> + <td align="center" style="background-color:rgb( 47, 79, 79)">DarkSlateGrey</td> + <td align="left">rgb( 47, 79, 79)</td> + <td align="left">#2F4F4F</td> + + </tr> + + <tr> + <td align="right">MediumTurquoise</td> + <td align="center" style="background-color:rgb( 72, 209, 204)">MediumTurquoise</td> + <td align="left">rgb( 72, 209, 204)</td> + <td align="left">#48D1CC</td> + + </tr> + + <tr> + <td align="right">LightSeaGreen</td> + <td align="center" style="background-color:rgb( 32, 178, 170)">LightSeaGreen</td> + <td align="left">rgb( 32, 178, 170)</td> + <td align="left">#20B2AA</td> + + </tr> + + <tr> + <td align="right">turquoise</td> + <td align="center" style="background-color:rgb( 64, 224, 208)">turquoise</td> + <td align="left">rgb( 64, 224, 208)</td> + <td align="left">#40E0D0</td> + + </tr> + + <tr> + <td align="right">aquamarine4</td> + <td align="center" style="background-color:rgb( 69, 139, 116)">aquamarine4</td> + <td align="left">rgb( 69, 139, 116)</td> + <td align="left">#458B74</td> + + </tr> + + <tr> + <td align="right">aquamarine</td> + <td align="center" style="background-color:rgb(127, 255, 212)">aquamarine</td> + <td align="left">rgb(127, 255, 212)</td> + <td align="left">#7FFFD4</td> + + </tr> + + <tr> + <td align="right">aquamarine1</td> + <td align="center" style="background-color:rgb(127, 255, 212)">aquamarine1</td> + <td align="left">rgb(127, 255, 212)</td> + <td align="left">#7FFFD4</td> + + </tr> + + <tr> + <td align="right">aquamarine2</td> + <td align="center" style="background-color:rgb(118, 238, 198)">aquamarine2</td> + <td align="left">rgb(118, 238, 198)</td> + <td align="left">#76EEC6</td> + + </tr> + + <tr> + <td align="right">aquamarine3</td> + <td align="center" style="background-color:rgb(102, 205, 170)">aquamarine3</td> + <td align="left">rgb(102, 205, 170)</td> + <td align="left">#66CDAA</td> + + </tr> + + <tr> + <td align="right">MediumAquamarine</td> + <td align="center" style="background-color:rgb(102, 205, 170)">MediumAquamarine</td> + <td align="left">rgb(102, 205, 170)</td> + <td align="left">#66CDAA</td> + + </tr> + + <tr> + <td align="right">MediumSpringGreen</td> + <td align="center" style="background-color:rgb( 0, 250, 154)">MediumSpringGreen</td> + <td align="left">rgb( 0, 250, 154)</td> + <td align="left">#00FA9A</td> + + </tr> + + <tr> + <td align="right">MintCream</td> + <td align="center" style="background-color:rgb(245, 255, 250)">MintCream</td> + <td align="left">rgb(245, 255, 250)</td> + <td align="left">#F5FFFA</td> + + </tr> + + <tr> + <td align="right">SpringGreen</td> + <td align="center" style="background-color:rgb( 0, 255, 127)">SpringGreen</td> + <td align="left">rgb( 0, 255, 127)</td> + <td align="left">#00FF7F</td> + + </tr> + + <tr> + <td align="right">SpringGreen1</td> + <td align="center" style="background-color:rgb( 0, 255, 127)">SpringGreen1</td> + <td align="left">rgb( 0, 255, 127)</td> + <td align="left">#00FF7F</td> + + </tr> + + <tr> + <td align="right">SpringGreen2</td> + <td align="center" style="background-color:rgb( 0, 238, 118)">SpringGreen2</td> + <td align="left">rgb( 0, 238, 118)</td> + <td align="left">#00EE76</td> + + </tr> + + <tr> + <td align="right">SpringGreen3</td> + <td align="center" style="background-color:rgb( 0, 205, 102)">SpringGreen3</td> + <td align="left">rgb( 0, 205, 102)</td> + <td align="left">#00CD66</td> + + </tr> + + <tr> + <td align="right">SpringGreen4</td> + <td align="center" style="background-color:rgb( 0, 139, 69)">SpringGreen4</td> + <td align="left">rgb( 0, 139, 69)</td> + <td align="left">#008B45</td> + + </tr> + + <tr> + <td align="right">MediumSeaGreen</td> + <td align="center" style="background-color:rgb( 60, 179, 113)">MediumSeaGreen</td> + <td align="left">rgb( 60, 179, 113)</td> + <td align="left">#3CB371</td> + + </tr> + + <tr> + <td align="right">SeaGreen</td> + <td align="center" style="background-color:rgb( 46, 139, 87)">SeaGreen</td> + <td align="left">rgb( 46, 139, 87)</td> + <td align="left">#2E8B57</td> + + </tr> + + <tr> + <td align="right">SeaGreen3</td> + <td align="center" style="background-color:rgb( 67, 205, 128)">SeaGreen3</td> + <td align="left">rgb( 67, 205, 128)</td> + <td align="left">#43CD80</td> + + </tr> + + <tr> + <td align="right">SeaGreen1</td> + <td align="center" style="background-color:rgb( 84, 255, 159)">SeaGreen1</td> + <td align="left">rgb( 84, 255, 159)</td> + <td align="left">#54FF9F</td> + + </tr> + + <tr> + <td align="right">SeaGreen4</td> + <td align="center" style="background-color:rgb( 46, 139, 87)">SeaGreen4</td> + <td align="left">rgb( 46, 139, 87)</td> + <td align="left">#2E8B57</td> + + </tr> + + <tr> + <td align="right">SeaGreen2</td> + <td align="center" style="background-color:rgb( 78, 238, 148)">SeaGreen2</td> + <td align="left">rgb( 78, 238, 148)</td> + <td align="left">#4EEE94</td> + + </tr> + + <tr> + <td align="right">MediumForestGreen</td> + <td align="center" style="background-color:rgb( 50, 129, 75)">MediumForestGreen</td> + <td align="left">rgb( 50, 129, 75)</td> + <td align="left">#32814B</td> + + </tr> + + <tr> + <td align="right">honeydew</td> + <td align="center" style="background-color:rgb(240, 255, 240)">honeydew</td> + <td align="left">rgb(240, 255, 240)</td> + <td align="left">#F0FFF0</td> + + </tr> + + <tr> + <td align="right">honeydew1</td> + <td align="center" style="background-color:rgb(240, 255, 240)">honeydew1</td> + <td align="left">rgb(240, 255, 240)</td> + <td align="left">#F0FFF0</td> + + </tr> + + <tr> + <td align="right">honeydew2</td> + <td align="center" style="background-color:rgb(224, 238, 224)">honeydew2</td> + <td align="left">rgb(224, 238, 224)</td> + <td align="left">#E0EEE0</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen1</td> + <td align="center" style="background-color:rgb(193, 255, 193)">DarkSeaGreen1</td> + <td align="left">rgb(193, 255, 193)</td> + <td align="left">#C1FFC1</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen2</td> + <td align="center" style="background-color:rgb(180, 238, 180)">DarkSeaGreen2</td> + <td align="left">rgb(180, 238, 180)</td> + <td align="left">#B4EEB4</td> + + </tr> + + <tr> + <td align="right">PaleGreen1</td> + <td align="center" style="background-color:rgb(154, 255, 154)">PaleGreen1</td> + <td align="left">rgb(154, 255, 154)</td> + <td align="left">#9AFF9A</td> + + </tr> + + <tr> + <td align="right">PaleGreen</td> + <td align="center" style="background-color:rgb(152, 251, 152)">PaleGreen</td> + <td align="left">rgb(152, 251, 152)</td> + <td align="left">#98FB98</td> + + </tr> + + <tr> + <td align="right">honeydew3</td> + <td align="center" style="background-color:rgb(193, 205, 193)">honeydew3</td> + <td align="left">rgb(193, 205, 193)</td> + <td align="left">#C1CDC1</td> + + </tr> + + <tr> + <td align="right">LightGreen</td> + <td align="center" style="background-color:rgb(144, 238, 144)">LightGreen</td> + <td align="left">rgb(144, 238, 144)</td> + <td align="left">#90EE90</td> + + </tr> + + <tr> + <td align="right">PaleGreen2</td> + <td align="center" style="background-color:rgb(144, 238, 144)">PaleGreen2</td> + <td align="left">rgb(144, 238, 144)</td> + <td align="left">#90EE90</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen3</td> + <td align="center" style="background-color:rgb(155, 205, 155)">DarkSeaGreen3</td> + <td align="left">rgb(155, 205, 155)</td> + <td align="left">#9BCD9B</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen</td> + <td align="center" style="background-color:rgb(143, 188, 143)">DarkSeaGreen</td> + <td align="left">rgb(143, 188, 143)</td> + <td align="left">#8FBC8F</td> + + </tr> + + <tr> + <td align="right">PaleGreen3</td> + <td align="center" style="background-color:rgb(124, 205, 124)">PaleGreen3</td> + <td align="left">rgb(124, 205, 124)</td> + <td align="left">#7CCD7C</td> + + </tr> + + <tr> + <td align="right">honeydew4</td> + <td align="center" style="background-color:rgb(131, 139, 131)">honeydew4</td> + <td align="left">rgb(131, 139, 131)</td> + <td align="left">#838B83</td> + + </tr> + + <tr> + <td align="right">green1</td> + <td align="center" style="background-color:rgb( 0, 255, 0)">green1</td> + <td align="left">rgb( 0, 255, 0)</td> + <td align="left">#00FF00</td> + + </tr> + + <tr> + <td align="right">lime</td> + <td align="center" style="background-color:rgb( 0, 255, 0)">lime</td> + <td align="left">rgb( 0, 255, 0)</td> + <td align="left">#00FF00</td> + + </tr> + + <tr> + <td align="right">LimeGreen</td> + <td align="center" style="background-color:rgb( 50, 205, 50)">LimeGreen</td> + <td align="left">rgb( 50, 205, 50)</td> + <td align="left">#32CD32</td> + + </tr> + + <tr> + <td align="right">DarkSeaGreen4</td> + <td align="center" style="background-color:rgb(105, 139, 105)">DarkSeaGreen4</td> + <td align="left">rgb(105, 139, 105)</td> + <td align="left">#698B69</td> + + </tr> + + <tr> + <td align="right">green2</td> + <td align="center" style="background-color:rgb( 0, 238, 0)">green2</td> + <td align="left">rgb( 0, 238, 0)</td> + <td align="left">#00EE00</td> + + </tr> + + <tr> + <td align="right">PaleGreen4</td> + <td align="center" style="background-color:rgb( 84, 139, 84)">PaleGreen4</td> + <td align="left">rgb( 84, 139, 84)</td> + <td align="left">#548B54</td> + + </tr> + + <tr> + <td align="right">green3</td> + <td align="center" style="background-color:rgb( 0, 205, 0)">green3</td> + <td align="left">rgb( 0, 205, 0)</td> + <td align="left">#00CD00</td> + + </tr> + + <tr> + <td align="right">ForestGreen</td> + <td align="center" style="background-color:rgb( 34, 139, 34)">ForestGreen</td> + <td align="left">rgb( 34, 139, 34)</td> + <td align="left">#228B22</td> + + </tr> + + <tr> + <td align="right">green4</td> + <td align="center" style="background-color:rgb( 0, 139, 0)">green4</td> + <td align="left">rgb( 0, 139, 0)</td> + <td align="left">#008B00</td> + + </tr> + + <tr> + <td align="right">green</td> + <td align="center" style="background-color:rgb( 0, 128, 0)">green</td> + <td align="left">rgb( 0, 128, 0)</td> + <td align="left">#008000</td> + + </tr> + + <tr> + <td align="right">DarkGreen</td> + <td align="center" style="background-color:rgb( 0, 100, 0)">DarkGreen</td> + <td align="left">rgb( 0, 100, 0)</td> + <td align="left">#006400</td> + + </tr> + + <tr> + <td align="right">LawnGreen</td> + <td align="center" style="background-color:rgb(124, 252, 0)">LawnGreen</td> + <td align="left">rgb(124, 252, 0)</td> + <td align="left">#7CFC00</td> + + </tr> + + <tr> + <td align="right">chartreuse</td> + <td align="center" style="background-color:rgb(127, 255, 0)">chartreuse</td> + <td align="left">rgb(127, 255, 0)</td> + <td align="left">#7FFF00</td> + + </tr> + + <tr> + <td align="right">chartreuse1</td> + <td align="center" style="background-color:rgb(127, 255, 0)">chartreuse1</td> + <td align="left">rgb(127, 255, 0)</td> + <td align="left">#7FFF00</td> + + </tr> + + <tr> + <td align="right">chartreuse2</td> + <td align="center" style="background-color:rgb(118, 238, 0)">chartreuse2</td> + <td align="left">rgb(118, 238, 0)</td> + <td align="left">#76EE00</td> + + </tr> + + <tr> + <td align="right">chartreuse3</td> + <td align="center" style="background-color:rgb(102, 205, 0)">chartreuse3</td> + <td align="left">rgb(102, 205, 0)</td> + <td align="left">#66CD00</td> + + </tr> + + <tr> + <td align="right">chartreuse4</td> + <td align="center" style="background-color:rgb( 69, 139, 0)">chartreuse4</td> + <td align="left">rgb( 69, 139, 0)</td> + <td align="left">#458B00</td> + + </tr> + + <tr> + <td align="right">GreenYellow</td> + <td align="center" style="background-color:rgb(173, 255, 47)">GreenYellow</td> + <td align="left">rgb(173, 255, 47)</td> + <td align="left">#ADFF2F</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen3</td> + <td align="center" style="background-color:rgb(162, 205, 90)">DarkOliveGreen3</td> + <td align="left">rgb(162, 205, 90)</td> + <td align="left">#A2CD5A</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen1</td> + <td align="center" style="background-color:rgb(202, 255, 112)">DarkOliveGreen1</td> + <td align="left">rgb(202, 255, 112)</td> + <td align="left">#CAFF70</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen2</td> + <td align="center" style="background-color:rgb(188, 238, 104)">DarkOliveGreen2</td> + <td align="left">rgb(188, 238, 104)</td> + <td align="left">#BCEE68</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen4</td> + <td align="center" style="background-color:rgb(110, 139, 61)">DarkOliveGreen4</td> + <td align="left">rgb(110, 139, 61)</td> + <td align="left">#6E8B3D</td> + + </tr> + + <tr> + <td align="right">DarkOliveGreen</td> + <td align="center" style="background-color:rgb( 85, 107, 47)">DarkOliveGreen</td> + <td align="left">rgb( 85, 107, 47)</td> + <td align="left">#556B2F</td> + + </tr> + + <tr> + <td align="right">OliveDrab</td> + <td align="center" style="background-color:rgb(107, 142, 35)">OliveDrab</td> + <td align="left">rgb(107, 142, 35)</td> + <td align="left">#6B8E23</td> + + </tr> + + <tr> + <td align="right">OliveDrab1</td> + <td align="center" style="background-color:rgb(192, 255, 62)">OliveDrab1</td> + <td align="left">rgb(192, 255, 62)</td> + <td align="left">#C0FF3E</td> + + </tr> + + <tr> + <td align="right">OliveDrab2</td> + <td align="center" style="background-color:rgb(179, 238, 58)">OliveDrab2</td> + <td align="left">rgb(179, 238, 58)</td> + <td align="left">#B3EE3A</td> + + </tr> + + <tr> + <td align="right">OliveDrab3</td> + <td align="center" style="background-color:rgb(154, 205, 50)">OliveDrab3</td> + <td align="left">rgb(154, 205, 50)</td> + <td align="left">#9ACD32</td> + + </tr> + + <tr> + <td align="right">YellowGreen</td> + <td align="center" style="background-color:rgb(154, 205, 50)">YellowGreen</td> + <td align="left">rgb(154, 205, 50)</td> + <td align="left">#9ACD32</td> + + </tr> + + <tr> + <td align="right">OliveDrab4</td> + <td align="center" style="background-color:rgb(105, 139, 34)">OliveDrab4</td> + <td align="left">rgb(105, 139, 34)</td> + <td align="left">#698B22</td> + + </tr> + + <tr> + <td align="right">ivory</td> + <td align="center" style="background-color:rgb(255, 255, 240)">ivory</td> + <td align="left">rgb(255, 255, 240)</td> + <td align="left">#FFFFF0</td> + + </tr> + + <tr> + <td align="right">ivory1</td> + <td align="center" style="background-color:rgb(255, 255, 240)">ivory1</td> + <td align="left">rgb(255, 255, 240)</td> + <td align="left">#FFFFF0</td> + + </tr> + + <tr> + <td align="right">LightYellow</td> + <td align="center" style="background-color:rgb(255, 255, 224)">LightYellow</td> + <td align="left">rgb(255, 255, 224)</td> + <td align="left">#FFFFE0</td> + + </tr> + + <tr> + <td align="right">LightYellow1</td> + <td align="center" style="background-color:rgb(255, 255, 224)">LightYellow1</td> + <td align="left">rgb(255, 255, 224)</td> + <td align="left">#FFFFE0</td> + + </tr> + + <tr> + <td align="right">beige</td> + <td align="center" style="background-color:rgb(245, 245, 220)">beige</td> + <td align="left">rgb(245, 245, 220)</td> + <td align="left">#F5F5DC</td> + + </tr> + + <tr> + <td align="right">ivory2</td> + <td align="center" style="background-color:rgb(238, 238, 224)">ivory2</td> + <td align="left">rgb(238, 238, 224)</td> + <td align="left">#EEEEE0</td> + + </tr> + + <tr> + <td align="right">LightGoldenrodYellow</td> + <td align="center" style="background-color:rgb(250, 250, 210)">LightGoldenrodYellow</td> + <td align="left">rgb(250, 250, 210)</td> + <td align="left">#FAFAD2</td> + + </tr> + + <tr> + <td align="right">LightYellow2</td> + <td align="center" style="background-color:rgb(238, 238, 209)">LightYellow2</td> + <td align="left">rgb(238, 238, 209)</td> + <td align="left">#EEEED1</td> + + </tr> + + <tr> + <td align="right">ivory3</td> + <td align="center" style="background-color:rgb(205, 205, 193)">ivory3</td> + <td align="left">rgb(205, 205, 193)</td> + <td align="left">#CDCDC1</td> + + </tr> + + <tr> + <td align="right">LightYellow3</td> + <td align="center" style="background-color:rgb(205, 205, 180)">LightYellow3</td> + <td align="left">rgb(205, 205, 180)</td> + <td align="left">#CDCDB4</td> + + </tr> + + <tr> + <td align="right">ivory4</td> + <td align="center" style="background-color:rgb(139, 139, 131)">ivory4</td> + <td align="left">rgb(139, 139, 131)</td> + <td align="left">#8B8B83</td> + + </tr> + + <tr> + <td align="right">LightYellow4</td> + <td align="center" style="background-color:rgb(139, 139, 122)">LightYellow4</td> + <td align="left">rgb(139, 139, 122)</td> + <td align="left">#8B8B7A</td> + + </tr> + + <tr> + <td align="right">yellow</td> + <td align="center" style="background-color:rgb(255, 255, 0)">yellow</td> + <td align="left">rgb(255, 255, 0)</td> + <td align="left">#FFFF00</td> + + </tr> + + <tr> + <td align="right">yellow1</td> + <td align="center" style="background-color:rgb(255, 255, 0)">yellow1</td> + <td align="left">rgb(255, 255, 0)</td> + <td align="left">#FFFF00</td> + + </tr> + + <tr> + <td align="right">yellow2</td> + <td align="center" style="background-color:rgb(238, 238, 0)">yellow2</td> + <td align="left">rgb(238, 238, 0)</td> + <td align="left">#EEEE00</td> + + </tr> + + <tr> + <td align="right">yellow3</td> + <td align="center" style="background-color:rgb(205, 205, 0)">yellow3</td> + <td align="left">rgb(205, 205, 0)</td> + <td align="left">#CDCD00</td> + + </tr> + + <tr> + <td align="right">yellow4</td> + <td align="center" style="background-color:rgb(139, 139, 0)">yellow4</td> + <td align="left">rgb(139, 139, 0)</td> + <td align="left">#8B8B00</td> + + </tr> + + <tr> + <td align="right">olive</td> + <td align="center" style="background-color:rgb(128, 128, 0)">olive</td> + <td align="left">rgb(128, 128, 0)</td> + <td align="left">#808000</td> + + </tr> + + <tr> + <td align="right">DarkKhaki</td> + <td align="center" style="background-color:rgb(189, 183, 107)">DarkKhaki</td> + <td align="left">rgb(189, 183, 107)</td> + <td align="left">#BDB76B</td> + + </tr> + + <tr> + <td align="right">khaki2</td> + <td align="center" style="background-color:rgb(238, 230, 133)">khaki2</td> + <td align="left">rgb(238, 230, 133)</td> + <td align="left">#EEE685</td> + + </tr> + + <tr> + <td align="right">LemonChiffon4</td> + <td align="center" style="background-color:rgb(139, 137, 112)">LemonChiffon4</td> + <td align="left">rgb(139, 137, 112)</td> + <td align="left">#8B8970</td> + + </tr> + + <tr> + <td align="right">khaki1</td> + <td align="center" style="background-color:rgb(255, 246, 143)">khaki1</td> + <td align="left">rgb(255, 246, 143)</td> + <td align="left">#FFF68F</td> + + </tr> + + <tr> + <td align="right">khaki3</td> + <td align="center" style="background-color:rgb(205, 198, 115)">khaki3</td> + <td align="left">rgb(205, 198, 115)</td> + <td align="left">#CDC673</td> + + </tr> + + <tr> + <td align="right">khaki4</td> + <td align="center" style="background-color:rgb(139, 134, 78)">khaki4</td> + <td align="left">rgb(139, 134, 78)</td> + <td align="left">#8B864E</td> + + </tr> + + <tr> + <td align="right">PaleGoldenrod</td> + <td align="center" style="background-color:rgb(238, 232, 170)">PaleGoldenrod</td> + <td align="left">rgb(238, 232, 170)</td> + <td align="left">#EEE8AA</td> + + </tr> + + <tr> + <td align="right">LemonChiffon</td> + <td align="center" style="background-color:rgb(255, 250, 205)">LemonChiffon</td> + <td align="left">rgb(255, 250, 205)</td> + <td align="left">#FFFACD</td> + + </tr> + + <tr> + <td align="right">LemonChiffon1</td> + <td align="center" style="background-color:rgb(255, 250, 205)">LemonChiffon1</td> + <td align="left">rgb(255, 250, 205)</td> + <td align="left">#FFFACD</td> + + </tr> + + <tr> + <td align="right">khaki</td> + <td align="center" style="background-color:rgb(240, 230, 140)">khaki</td> + <td align="left">rgb(240, 230, 140)</td> + <td align="left">#F0E68C</td> + + </tr> + + <tr> + <td align="right">LemonChiffon3</td> + <td align="center" style="background-color:rgb(205, 201, 165)">LemonChiffon3</td> + <td align="left">rgb(205, 201, 165)</td> + <td align="left">#CDC9A5</td> + + </tr> + + <tr> + <td align="right">LemonChiffon2</td> + <td align="center" style="background-color:rgb(238, 233, 191)">LemonChiffon2</td> + <td align="left">rgb(238, 233, 191)</td> + <td align="left">#EEE9BF</td> + + </tr> + + <tr> + <td align="right">MediumGoldenRod</td> + <td align="center" style="background-color:rgb(209, 193, 102)">MediumGoldenRod</td> + <td align="left">rgb(209, 193, 102)</td> + <td align="left">#D1C166</td> + + </tr> + + <tr> + <td align="right">cornsilk4</td> + <td align="center" style="background-color:rgb(139, 136, 120)">cornsilk4</td> + <td align="left">rgb(139, 136, 120)</td> + <td align="left">#8B8878</td> + + </tr> + + <tr> + <td align="right">gold</td> + <td align="center" style="background-color:rgb(255, 215, 0)">gold</td> + <td align="left">rgb(255, 215, 0)</td> + <td align="left">#FFD700</td> + + </tr> + + <tr> + <td align="right">gold1</td> + <td align="center" style="background-color:rgb(255, 215, 0)">gold1</td> + <td align="left">rgb(255, 215, 0)</td> + <td align="left">#FFD700</td> + + </tr> + + <tr> + <td align="right">gold2</td> + <td align="center" style="background-color:rgb(238, 201, 0)">gold2</td> + <td align="left">rgb(238, 201, 0)</td> + <td align="left">#EEC900</td> + + </tr> + + <tr> + <td align="right">gold3</td> + <td align="center" style="background-color:rgb(205, 173, 0)">gold3</td> + <td align="left">rgb(205, 173, 0)</td> + <td align="left">#CDAD00</td> + + </tr> + + <tr> + <td align="right">gold4</td> + <td align="center" style="background-color:rgb(139, 117, 0)">gold4</td> + <td align="left">rgb(139, 117, 0)</td> + <td align="left">#8B7500</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod</td> + <td align="center" style="background-color:rgb(238, 221, 130)">LightGoldenrod</td> + <td align="left">rgb(238, 221, 130)</td> + <td align="left">#EEDD82</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod4</td> + <td align="center" style="background-color:rgb(139, 129, 76)">LightGoldenrod4</td> + <td align="left">rgb(139, 129, 76)</td> + <td align="left">#8B814C</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod1</td> + <td align="center" style="background-color:rgb(255, 236, 139)">LightGoldenrod1</td> + <td align="left">rgb(255, 236, 139)</td> + <td align="left">#FFEC8B</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod3</td> + <td align="center" style="background-color:rgb(205, 190, 112)">LightGoldenrod3</td> + <td align="left">rgb(205, 190, 112)</td> + <td align="left">#CDBE70</td> + + </tr> + + <tr> + <td align="right">LightGoldenrod2</td> + <td align="center" style="background-color:rgb(238, 220, 130)">LightGoldenrod2</td> + <td align="left">rgb(238, 220, 130)</td> + <td align="left">#EEDC82</td> + + </tr> + + <tr> + <td align="right">cornsilk3</td> + <td align="center" style="background-color:rgb(205, 200, 177)">cornsilk3</td> + <td align="left">rgb(205, 200, 177)</td> + <td align="left">#CDC8B1</td> + + </tr> + + <tr> + <td align="right">cornsilk2</td> + <td align="center" style="background-color:rgb(238, 232, 205)">cornsilk2</td> + <td align="left">rgb(238, 232, 205)</td> + <td align="left">#EEE8CD</td> + + </tr> + + <tr> + <td align="right">cornsilk</td> + <td align="center" style="background-color:rgb(255, 248, 220)">cornsilk</td> + <td align="left">rgb(255, 248, 220)</td> + <td align="left">#FFF8DC</td> + + </tr> + + <tr> + <td align="right">cornsilk1</td> + <td align="center" style="background-color:rgb(255, 248, 220)">cornsilk1</td> + <td align="left">rgb(255, 248, 220)</td> + <td align="left">#FFF8DC</td> + + </tr> + + <tr> + <td align="right">goldenrod</td> + <td align="center" style="background-color:rgb(218, 165, 32)">goldenrod</td> + <td align="left">rgb(218, 165, 32)</td> + <td align="left">#DAA520</td> + + </tr> + + <tr> + <td align="right">goldenrod1</td> + <td align="center" style="background-color:rgb(255, 193, 37)">goldenrod1</td> + <td align="left">rgb(255, 193, 37)</td> + <td align="left">#FFC125</td> + + </tr> + + <tr> + <td align="right">goldenrod2</td> + <td align="center" style="background-color:rgb(238, 180, 34)">goldenrod2</td> + <td align="left">rgb(238, 180, 34)</td> + <td align="left">#EEB422</td> + + </tr> + + <tr> + <td align="right">goldenrod3</td> + <td align="center" style="background-color:rgb(205, 155, 29)">goldenrod3</td> + <td align="left">rgb(205, 155, 29)</td> + <td align="left">#CD9B1D</td> + + </tr> + + <tr> + <td align="right">goldenrod4</td> + <td align="center" style="background-color:rgb(139, 105, 20)">goldenrod4</td> + <td align="left">rgb(139, 105, 20)</td> + <td align="left">#8B6914</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod</td> + <td align="center" style="background-color:rgb(184, 134, 11)">DarkGoldenrod</td> + <td align="left">rgb(184, 134, 11)</td> + <td align="left">#B8860B</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod1</td> + <td align="center" style="background-color:rgb(255, 185, 15)">DarkGoldenrod1</td> + <td align="left">rgb(255, 185, 15)</td> + <td align="left">#FFB90F</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod2</td> + <td align="center" style="background-color:rgb(238, 173, 14)">DarkGoldenrod2</td> + <td align="left">rgb(238, 173, 14)</td> + <td align="left">#EEAD0E</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod3</td> + <td align="center" style="background-color:rgb(205, 149, 12)">DarkGoldenrod3</td> + <td align="left">rgb(205, 149, 12)</td> + <td align="left">#CD950C</td> + + </tr> + + <tr> + <td align="right">DarkGoldenrod4</td> + <td align="center" style="background-color:rgb(139, 101, 8)">DarkGoldenrod4</td> + <td align="left">rgb(139, 101, 8)</td> + <td align="left">#8B6508</td> + + </tr> + + <tr> + <td align="right">FloralWhite</td> + <td align="center" style="background-color:rgb(255, 250, 240)">FloralWhite</td> + <td align="left">rgb(255, 250, 240)</td> + <td align="left">#FFFAF0</td> + + </tr> + + <tr> + <td align="right">wheat2</td> + <td align="center" style="background-color:rgb(238, 216, 174)">wheat2</td> + <td align="left">rgb(238, 216, 174)</td> + <td align="left">#EED8AE</td> + + </tr> + + <tr> + <td align="right">OldLace</td> + <td align="center" style="background-color:rgb(253, 245, 230)">OldLace</td> + <td align="left">rgb(253, 245, 230)</td> + <td align="left">#FDF5E6</td> + + </tr> + + <tr> + <td align="right">wheat</td> + <td align="center" style="background-color:rgb(245, 222, 179)">wheat</td> + <td align="left">rgb(245, 222, 179)</td> + <td align="left">#F5DEB3</td> + + </tr> + + <tr> + <td align="right">wheat1</td> + <td align="center" style="background-color:rgb(255, 231, 186)">wheat1</td> + <td align="left">rgb(255, 231, 186)</td> + <td align="left">#FFE7BA</td> + + </tr> + + <tr> + <td align="right">wheat3</td> + <td align="center" style="background-color:rgb(205, 186, 150)">wheat3</td> + <td align="left">rgb(205, 186, 150)</td> + <td align="left">#CDBA96</td> + + </tr> + + <tr> + <td align="right">orange</td> + <td align="center" style="background-color:rgb(255, 165, 0)">orange</td> + <td align="left">rgb(255, 165, 0)</td> + <td align="left">#FFA500</td> + + </tr> + + <tr> + <td align="right">orange1</td> + <td align="center" style="background-color:rgb(255, 165, 0)">orange1</td> + <td align="left">rgb(255, 165, 0)</td> + <td align="left">#FFA500</td> + + </tr> + + <tr> + <td align="right">orange2</td> + <td align="center" style="background-color:rgb(238, 154, 0)">orange2</td> + <td align="left">rgb(238, 154, 0)</td> + <td align="left">#EE9A00</td> + + </tr> + + <tr> + <td align="right">orange3</td> + <td align="center" style="background-color:rgb(205, 133, 0)">orange3</td> + <td align="left">rgb(205, 133, 0)</td> + <td align="left">#CD8500</td> + + </tr> + + <tr> + <td align="right">orange4</td> + <td align="center" style="background-color:rgb(139, 90, 0)">orange4</td> + <td align="left">rgb(139, 90, 0)</td> + <td align="left">#8B5A00</td> + + </tr> + + <tr> + <td align="right">wheat4</td> + <td align="center" style="background-color:rgb(139, 126, 102)">wheat4</td> + <td align="left">rgb(139, 126, 102)</td> + <td align="left">#8B7E66</td> + + </tr> + + <tr> + <td align="right">moccasin</td> + <td align="center" style="background-color:rgb(255, 228, 181)">moccasin</td> + <td align="left">rgb(255, 228, 181)</td> + <td align="left">#FFE4B5</td> + + </tr> + + <tr> + <td align="right">PapayaWhip</td> + <td align="center" style="background-color:rgb(255, 239, 213)">PapayaWhip</td> + <td align="left">rgb(255, 239, 213)</td> + <td align="left">#FFEFD5</td> + + </tr> + + <tr> + <td align="right">NavajoWhite3</td> + <td align="center" style="background-color:rgb(205, 179, 139)">NavajoWhite3</td> + <td align="left">rgb(205, 179, 139)</td> + <td align="left">#CDB38B</td> + + </tr> + + <tr> + <td align="right">BlanchedAlmond</td> + <td align="center" style="background-color:rgb(255, 235, 205)">BlanchedAlmond</td> + <td align="left">rgb(255, 235, 205)</td> + <td align="left">#FFEBCD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite</td> + <td align="center" style="background-color:rgb(255, 222, 173)">NavajoWhite</td> + <td align="left">rgb(255, 222, 173)</td> + <td align="left">#FFDEAD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite1</td> + <td align="center" style="background-color:rgb(255, 222, 173)">NavajoWhite1</td> + <td align="left">rgb(255, 222, 173)</td> + <td align="left">#FFDEAD</td> + + </tr> + + <tr> + <td align="right">NavajoWhite2</td> + <td align="center" style="background-color:rgb(238, 207, 161)">NavajoWhite2</td> + <td align="left">rgb(238, 207, 161)</td> + <td align="left">#EECFA1</td> + + </tr> + + <tr> + <td align="right">NavajoWhite4</td> + <td align="center" style="background-color:rgb(139, 121, 94)">NavajoWhite4</td> + <td align="left">rgb(139, 121, 94)</td> + <td align="left">#8B795E</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite4</td> + <td align="center" style="background-color:rgb(139, 131, 120)">AntiqueWhite4</td> + <td align="left">rgb(139, 131, 120)</td> + <td align="left">#8B8378</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite</td> + <td align="center" style="background-color:rgb(250, 235, 215)">AntiqueWhite</td> + <td align="left">rgb(250, 235, 215)</td> + <td align="left">#FAEBD7</td> + + </tr> + + <tr> + <td align="right">tan</td> + <td align="center" style="background-color:rgb(210, 180, 140)">tan</td> + <td align="left">rgb(210, 180, 140)</td> + <td align="left">#D2B48C</td> + + </tr> + + <tr> + <td align="right">bisque4</td> + <td align="center" style="background-color:rgb(139, 125, 107)">bisque4</td> + <td align="left">rgb(139, 125, 107)</td> + <td align="left">#8B7D6B</td> + + </tr> + + <tr> + <td align="right">burlywood</td> + <td align="center" style="background-color:rgb(222, 184, 135)">burlywood</td> + <td align="left">rgb(222, 184, 135)</td> + <td align="left">#DEB887</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite2</td> + <td align="center" style="background-color:rgb(238, 223, 204)">AntiqueWhite2</td> + <td align="left">rgb(238, 223, 204)</td> + <td align="left">#EEDFCC</td> + + </tr> + + <tr> + <td align="right">burlywood1</td> + <td align="center" style="background-color:rgb(255, 211, 155)">burlywood1</td> + <td align="left">rgb(255, 211, 155)</td> + <td align="left">#FFD39B</td> + + </tr> + + <tr> + <td align="right">burlywood3</td> + <td align="center" style="background-color:rgb(205, 170, 125)">burlywood3</td> + <td align="left">rgb(205, 170, 125)</td> + <td align="left">#CDAA7D</td> + + </tr> + + <tr> + <td align="right">burlywood2</td> + <td align="center" style="background-color:rgb(238, 197, 145)">burlywood2</td> + <td align="left">rgb(238, 197, 145)</td> + <td align="left">#EEC591</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite1</td> + <td align="center" style="background-color:rgb(255, 239, 219)">AntiqueWhite1</td> + <td align="left">rgb(255, 239, 219)</td> + <td align="left">#FFEFDB</td> + + </tr> + + <tr> + <td align="right">burlywood4</td> + <td align="center" style="background-color:rgb(139, 115, 85)">burlywood4</td> + <td align="left">rgb(139, 115, 85)</td> + <td align="left">#8B7355</td> + + </tr> + + <tr> + <td align="right">AntiqueWhite3</td> + <td align="center" style="background-color:rgb(205, 192, 176)">AntiqueWhite3</td> + <td align="left">rgb(205, 192, 176)</td> + <td align="left">#CDC0B0</td> + + </tr> + + <tr> + <td align="right">DarkOrange</td> + <td align="center" style="background-color:rgb(255, 140, 0)">DarkOrange</td> + <td align="left">rgb(255, 140, 0)</td> + <td align="left">#FF8C00</td> + + </tr> + + <tr> + <td align="right">bisque2</td> + <td align="center" style="background-color:rgb(238, 213, 183)">bisque2</td> + <td align="left">rgb(238, 213, 183)</td> + <td align="left">#EED5B7</td> + + </tr> + + <tr> + <td align="right">bisque</td> + <td align="center" style="background-color:rgb(255, 228, 196)">bisque</td> + <td align="left">rgb(255, 228, 196)</td> + <td align="left">#FFE4C4</td> + + </tr> + + <tr> + <td align="right">bisque1</td> + <td align="center" style="background-color:rgb(255, 228, 196)">bisque1</td> + <td align="left">rgb(255, 228, 196)</td> + <td align="left">#FFE4C4</td> + + </tr> + + <tr> + <td align="right">bisque3</td> + <td align="center" style="background-color:rgb(205, 183, 158)">bisque3</td> + <td align="left">rgb(205, 183, 158)</td> + <td align="left">#CDB79E</td> + + </tr> + + <tr> + <td align="right">DarkOrange1</td> + <td align="center" style="background-color:rgb(255, 127, 0)">DarkOrange1</td> + <td align="left">rgb(255, 127, 0)</td> + <td align="left">#FF7F00</td> + + </tr> + + <tr> + <td align="right">linen</td> + <td align="center" style="background-color:rgb(250, 240, 230)">linen</td> + <td align="left">rgb(250, 240, 230)</td> + <td align="left">#FAF0E6</td> + + </tr> + + <tr> + <td align="right">DarkOrange2</td> + <td align="center" style="background-color:rgb(238, 118, 0)">DarkOrange2</td> + <td align="left">rgb(238, 118, 0)</td> + <td align="left">#EE7600</td> + + </tr> + + <tr> + <td align="right">DarkOrange3</td> + <td align="center" style="background-color:rgb(205, 102, 0)">DarkOrange3</td> + <td align="left">rgb(205, 102, 0)</td> + <td align="left">#CD6600</td> + + </tr> + + <tr> + <td align="right">DarkOrange4</td> + <td align="center" style="background-color:rgb(139, 69, 0)">DarkOrange4</td> + <td align="left">rgb(139, 69, 0)</td> + <td align="left">#8B4500</td> + + </tr> + + <tr> + <td align="right">peru</td> + <td align="center" style="background-color:rgb(205, 133, 63)">peru</td> + <td align="left">rgb(205, 133, 63)</td> + <td align="left">#CD853F</td> + + </tr> + + <tr> + <td align="right">tan1</td> + <td align="center" style="background-color:rgb(255, 165, 79)">tan1</td> + <td align="left">rgb(255, 165, 79)</td> + <td align="left">#FFA54F</td> + + </tr> + + <tr> + <td align="right">tan2</td> + <td align="center" style="background-color:rgb(238, 154, 73)">tan2</td> + <td align="left">rgb(238, 154, 73)</td> + <td align="left">#EE9A49</td> + + </tr> + + <tr> + <td align="right">tan3</td> + <td align="center" style="background-color:rgb(205, 133, 63)">tan3</td> + <td align="left">rgb(205, 133, 63)</td> + <td align="left">#CD853F</td> + + </tr> + + <tr> + <td align="right">tan4</td> + <td align="center" style="background-color:rgb(139, 90, 43)">tan4</td> + <td align="left">rgb(139, 90, 43)</td> + <td align="left">#8B5A2B</td> + + </tr> + + <tr> + <td align="right">PeachPuff</td> + <td align="center" style="background-color:rgb(255, 218, 185)">PeachPuff</td> + <td align="left">rgb(255, 218, 185)</td> + <td align="left">#FFDAB9</td> + + </tr> + + <tr> + <td align="right">PeachPuff1</td> + <td align="center" style="background-color:rgb(255, 218, 185)">PeachPuff1</td> + <td align="left">rgb(255, 218, 185)</td> + <td align="left">#FFDAB9</td> + + </tr> + + <tr> + <td align="right">PeachPuff4</td> + <td align="center" style="background-color:rgb(139, 119, 101)">PeachPuff4</td> + <td align="left">rgb(139, 119, 101)</td> + <td align="left">#8B7765</td> + + </tr> + + <tr> + <td align="right">PeachPuff2</td> + <td align="center" style="background-color:rgb(238, 203, 173)">PeachPuff2</td> + <td align="left">rgb(238, 203, 173)</td> + <td align="left">#EECBAD</td> + + </tr> + + <tr> + <td align="right">PeachPuff3</td> + <td align="center" style="background-color:rgb(205, 175, 149)">PeachPuff3</td> + <td align="left">rgb(205, 175, 149)</td> + <td align="left">#CDAF95</td> + + </tr> + + <tr> + <td align="right">SandyBrown</td> + <td align="center" style="background-color:rgb(244, 164, 96)">SandyBrown</td> + <td align="left">rgb(244, 164, 96)</td> + <td align="left">#F4A460</td> + + </tr> + + <tr> + <td align="right">seashell4</td> + <td align="center" style="background-color:rgb(139, 134, 130)">seashell4</td> + <td align="left">rgb(139, 134, 130)</td> + <td align="left">#8B8682</td> + + </tr> + + <tr> + <td align="right">seashell2</td> + <td align="center" style="background-color:rgb(238, 229, 222)">seashell2</td> + <td align="left">rgb(238, 229, 222)</td> + <td align="left">#EEE5DE</td> + + </tr> + + <tr> + <td align="right">seashell3</td> + <td align="center" style="background-color:rgb(205, 197, 191)">seashell3</td> + <td align="left">rgb(205, 197, 191)</td> + <td align="left">#CDC5BF</td> + + </tr> + + <tr> + <td align="right">chocolate</td> + <td align="center" style="background-color:rgb(210, 105, 30)">chocolate</td> + <td align="left">rgb(210, 105, 30)</td> + <td align="left">#D2691E</td> + + </tr> + + <tr> + <td align="right">chocolate1</td> + <td align="center" style="background-color:rgb(255, 127, 36)">chocolate1</td> + <td align="left">rgb(255, 127, 36)</td> + <td align="left">#FF7F24</td> + + </tr> + + <tr> + <td align="right">chocolate2</td> + <td align="center" style="background-color:rgb(238, 118, 33)">chocolate2</td> + <td align="left">rgb(238, 118, 33)</td> + <td align="left">#EE7621</td> + + </tr> + + <tr> + <td align="right">chocolate3</td> + <td align="center" style="background-color:rgb(205, 102, 29)">chocolate3</td> + <td align="left">rgb(205, 102, 29)</td> + <td align="left">#CD661D</td> + + </tr> + + <tr> + <td align="right">chocolate4</td> + <td align="center" style="background-color:rgb(139, 69, 19)">chocolate4</td> + <td align="left">rgb(139, 69, 19)</td> + <td align="left">#8B4513</td> + + </tr> + + <tr> + <td align="right">SaddleBrown</td> + <td align="center" style="background-color:rgb(139, 69, 19)">SaddleBrown</td> + <td align="left">rgb(139, 69, 19)</td> + <td align="left">#8B4513</td> + + </tr> + + <tr> + <td align="right">seashell</td> + <td align="center" style="background-color:rgb(255, 245, 238)">seashell</td> + <td align="left">rgb(255, 245, 238)</td> + <td align="left">#FFF5EE</td> + + </tr> + + <tr> + <td align="right">seashell1</td> + <td align="center" style="background-color:rgb(255, 245, 238)">seashell1</td> + <td align="left">rgb(255, 245, 238)</td> + <td align="left">#FFF5EE</td> + + </tr> + + <tr> + <td align="right">sienna4</td> + <td align="center" style="background-color:rgb(139, 71, 38)">sienna4</td> + <td align="left">rgb(139, 71, 38)</td> + <td align="left">#8B4726</td> + + </tr> + + <tr> + <td align="right">sienna</td> + <td align="center" style="background-color:rgb(160, 82, 45)">sienna</td> + <td align="left">rgb(160, 82, 45)</td> + <td align="left">#A0522D</td> + + </tr> + + <tr> + <td align="right">sienna1</td> + <td align="center" style="background-color:rgb(255, 130, 71)">sienna1</td> + <td align="left">rgb(255, 130, 71)</td> + <td align="left">#FF8247</td> + + </tr> + + <tr> + <td align="right">sienna2</td> + <td align="center" style="background-color:rgb(238, 121, 66)">sienna2</td> + <td align="left">rgb(238, 121, 66)</td> + <td align="left">#EE7942</td> + + </tr> + + <tr> + <td align="right">sienna3</td> + <td align="center" style="background-color:rgb(205, 104, 57)">sienna3</td> + <td align="left">rgb(205, 104, 57)</td> + <td align="left">#CD6839</td> + + </tr> + + <tr> + <td align="right">LightSalmon3</td> + <td align="center" style="background-color:rgb(205, 129, 98)">LightSalmon3</td> + <td align="left">rgb(205, 129, 98)</td> + <td align="left">#CD8162</td> + + </tr> + + <tr> + <td align="right">LightSalmon</td> + <td align="center" style="background-color:rgb(255, 160, 122)">LightSalmon</td> + <td align="left">rgb(255, 160, 122)</td> + <td align="left">#FFA07A</td> + + </tr> + + <tr> + <td align="right">LightSalmon1</td> + <td align="center" style="background-color:rgb(255, 160, 122)">LightSalmon1</td> + <td align="left">rgb(255, 160, 122)</td> + <td align="left">#FFA07A</td> + + </tr> + + <tr> + <td align="right">LightSalmon4</td> + <td align="center" style="background-color:rgb(139, 87, 66)">LightSalmon4</td> + <td align="left">rgb(139, 87, 66)</td> + <td align="left">#8B5742</td> + + </tr> + + <tr> + <td align="right">LightSalmon2</td> + <td align="center" style="background-color:rgb(238, 149, 114)">LightSalmon2</td> + <td align="left">rgb(238, 149, 114)</td> + <td align="left">#EE9572</td> + + </tr> + + <tr> + <td align="right">coral</td> + <td align="center" style="background-color:rgb(255, 127, 80)">coral</td> + <td align="left">rgb(255, 127, 80)</td> + <td align="left">#FF7F50</td> + + </tr> + + <tr> + <td align="right">OrangeRed</td> + <td align="center" style="background-color:rgb(255, 69, 0)">OrangeRed</td> + <td align="left">rgb(255, 69, 0)</td> + <td align="left">#FF4500</td> + + </tr> + + <tr> + <td align="right">OrangeRed1</td> + <td align="center" style="background-color:rgb(255, 69, 0)">OrangeRed1</td> + <td align="left">rgb(255, 69, 0)</td> + <td align="left">#FF4500</td> + + </tr> + + <tr> + <td align="right">OrangeRed2</td> + <td align="center" style="background-color:rgb(238, 64, 0)">OrangeRed2</td> + <td align="left">rgb(238, 64, 0)</td> + <td align="left">#EE4000</td> + + </tr> + + <tr> + <td align="right">OrangeRed3</td> + <td align="center" style="background-color:rgb(205, 55, 0)">OrangeRed3</td> + <td align="left">rgb(205, 55, 0)</td> + <td align="left">#CD3700</td> + + </tr> + + <tr> + <td align="right">OrangeRed4</td> + <td align="center" style="background-color:rgb(139, 37, 0)">OrangeRed4</td> + <td align="left">rgb(139, 37, 0)</td> + <td align="left">#8B2500</td> + + </tr> + + <tr> + <td align="right">DarkSalmon</td> + <td align="center" style="background-color:rgb(233, 150, 122)">DarkSalmon</td> + <td align="left">rgb(233, 150, 122)</td> + <td align="left">#E9967A</td> + + </tr> + + <tr> + <td align="right">salmon1</td> + <td align="center" style="background-color:rgb(255, 140, 105)">salmon1</td> + <td align="left">rgb(255, 140, 105)</td> + <td align="left">#FF8C69</td> + + </tr> + + <tr> + <td align="right">salmon2</td> + <td align="center" style="background-color:rgb(238, 130, 98)">salmon2</td> + <td align="left">rgb(238, 130, 98)</td> + <td align="left">#EE8262</td> + + </tr> + + <tr> + <td align="right">salmon3</td> + <td align="center" style="background-color:rgb(205, 112, 84)">salmon3</td> + <td align="left">rgb(205, 112, 84)</td> + <td align="left">#CD7054</td> + + </tr> + + <tr> + <td align="right">salmon4</td> + <td align="center" style="background-color:rgb(139, 76, 57)">salmon4</td> + <td align="left">rgb(139, 76, 57)</td> + <td align="left">#8B4C39</td> + + </tr> + + <tr> + <td align="right">coral1</td> + <td align="center" style="background-color:rgb(255, 114, 86)">coral1</td> + <td align="left">rgb(255, 114, 86)</td> + <td align="left">#FF7256</td> + + </tr> + + <tr> + <td align="right">coral2</td> + <td align="center" style="background-color:rgb(238, 106, 80)">coral2</td> + <td align="left">rgb(238, 106, 80)</td> + <td align="left">#EE6A50</td> + + </tr> + + <tr> + <td align="right">coral3</td> + <td align="center" style="background-color:rgb(205, 91, 69)">coral3</td> + <td align="left">rgb(205, 91, 69)</td> + <td align="left">#CD5B45</td> + + </tr> + + <tr> + <td align="right">coral4</td> + <td align="center" style="background-color:rgb(139, 62, 47)">coral4</td> + <td align="left">rgb(139, 62, 47)</td> + <td align="left">#8B3E2F</td> + + </tr> + + <tr> + <td align="right">tomato4</td> + <td align="center" style="background-color:rgb(139, 54, 38)">tomato4</td> + <td align="left">rgb(139, 54, 38)</td> + <td align="left">#8B3626</td> + + </tr> + + <tr> + <td align="right">tomato</td> + <td align="center" style="background-color:rgb(255, 99, 71)">tomato</td> + <td align="left">rgb(255, 99, 71)</td> + <td align="left">#FF6347</td> + + </tr> + + <tr> + <td align="right">tomato1</td> + <td align="center" style="background-color:rgb(255, 99, 71)">tomato1</td> + <td align="left">rgb(255, 99, 71)</td> + <td align="left">#FF6347</td> + + </tr> + + <tr> + <td align="right">tomato2</td> + <td align="center" style="background-color:rgb(238, 92, 66)">tomato2</td> + <td align="left">rgb(238, 92, 66)</td> + <td align="left">#EE5C42</td> + + </tr> + + <tr> + <td align="right">tomato3</td> + <td align="center" style="background-color:rgb(205, 79, 57)">tomato3</td> + <td align="left">rgb(205, 79, 57)</td> + <td align="left">#CD4F39</td> + + </tr> + + <tr> + <td align="right">MistyRose4</td> + <td align="center" style="background-color:rgb(139, 125, 123)">MistyRose4</td> + <td align="left">rgb(139, 125, 123)</td> + <td align="left">#8B7D7B</td> + + </tr> + + <tr> + <td align="right">MistyRose2</td> + <td align="center" style="background-color:rgb(238, 213, 210)">MistyRose2</td> + <td align="left">rgb(238, 213, 210)</td> + <td align="left">#EED5D2</td> + + </tr> + + <tr> + <td align="right">MistyRose</td> + <td align="center" style="background-color:rgb(255, 228, 225)">MistyRose</td> + <td align="left">rgb(255, 228, 225)</td> + <td align="left">#FFE4E1</td> + + </tr> + + <tr> + <td align="right">MistyRose1</td> + <td align="center" style="background-color:rgb(255, 228, 225)">MistyRose1</td> + <td align="left">rgb(255, 228, 225)</td> + <td align="left">#FFE4E1</td> + + </tr> + + <tr> + <td align="right">salmon</td> + <td align="center" style="background-color:rgb(250, 128, 114)">salmon</td> + <td align="left">rgb(250, 128, 114)</td> + <td align="left">#FA8072</td> + + </tr> + + <tr> + <td align="right">MistyRose3</td> + <td align="center" style="background-color:rgb(205, 183, 181)">MistyRose3</td> + <td align="left">rgb(205, 183, 181)</td> + <td align="left">#CDB7B5</td> + + </tr> + + <tr> + <td align="right">white</td> + <td align="center" style="background-color:rgb(255, 255, 255)">white</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">gray100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">gray100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">grey100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">grey100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">grey100</td> + <td align="center" style="background-color:rgb(255, 255, 255)">grey100</td> + <td align="left">rgb(255, 255, 255)</td> + <td align="left">#FFFFFF</td> + + </tr> + + <tr> + <td align="right">gray99</td> + <td align="center" style="background-color:rgb(252, 252, 252)">gray99</td> + <td align="left">rgb(252, 252, 252)</td> + <td align="left">#FCFCFC</td> + + </tr> + + <tr> + <td align="right">grey99</td> + <td align="center" style="background-color:rgb(252, 252, 252)">grey99</td> + <td align="left">rgb(252, 252, 252)</td> + <td align="left">#FCFCFC</td> + + </tr> + + <tr> + <td align="right">gray98</td> + <td align="center" style="background-color:rgb(250, 250, 250)">gray98</td> + <td align="left">rgb(250, 250, 250)</td> + <td align="left">#FAFAFA</td> + + </tr> + + <tr> + <td align="right">grey98</td> + <td align="center" style="background-color:rgb(250, 250, 250)">grey98</td> + <td align="left">rgb(250, 250, 250)</td> + <td align="left">#FAFAFA</td> + + </tr> + + <tr> + <td align="right">gray97</td> + <td align="center" style="background-color:rgb(247, 247, 247)">gray97</td> + <td align="left">rgb(247, 247, 247)</td> + <td align="left">#F7F7F7</td> + + </tr> + + <tr> + <td align="right">grey97</td> + <td align="center" style="background-color:rgb(247, 247, 247)">grey97</td> + <td align="left">rgb(247, 247, 247)</td> + <td align="left">#F7F7F7</td> + + </tr> + + <tr> + <td align="right">gray96</td> + <td align="center" style="background-color:rgb(245, 245, 245)">gray96</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">grey96</td> + <td align="center" style="background-color:rgb(245, 245, 245)">grey96</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">WhiteSmoke</td> + <td align="center" style="background-color:rgb(245, 245, 245)">WhiteSmoke</td> + <td align="left">rgb(245, 245, 245)</td> + <td align="left">#F5F5F5</td> + + </tr> + + <tr> + <td align="right">gray95</td> + <td align="center" style="background-color:rgb(242, 242, 242)">gray95</td> + <td align="left">rgb(242, 242, 242)</td> + <td align="left">#F2F2F2</td> + + </tr> + + <tr> + <td align="right">grey95</td> + <td align="center" style="background-color:rgb(242, 242, 242)">grey95</td> + <td align="left">rgb(242, 242, 242)</td> + <td align="left">#F2F2F2</td> + + </tr> + + <tr> + <td align="right">gray94</td> + <td align="center" style="background-color:rgb(240, 240, 240)">gray94</td> + <td align="left">rgb(240, 240, 240)</td> + <td align="left">#F0F0F0</td> + + </tr> + + <tr> + <td align="right">grey94</td> + <td align="center" style="background-color:rgb(240, 240, 240)">grey94</td> + <td align="left">rgb(240, 240, 240)</td> + <td align="left">#F0F0F0</td> + + </tr> + + <tr> + <td align="right">gray93</td> + <td align="center" style="background-color:rgb(237, 237, 237)">gray93</td> + <td align="left">rgb(237, 237, 237)</td> + <td align="left">#EDEDED</td> + + </tr> + + <tr> + <td align="right">grey93</td> + <td align="center" style="background-color:rgb(237, 237, 237)">grey93</td> + <td align="left">rgb(237, 237, 237)</td> + <td align="left">#EDEDED</td> + + </tr> + + <tr> + <td align="right">gray92</td> + <td align="center" style="background-color:rgb(235, 235, 235)">gray92</td> + <td align="left">rgb(235, 235, 235)</td> + <td align="left">#EBEBEB</td> + + </tr> + + <tr> + <td align="right">grey92</td> + <td align="center" style="background-color:rgb(235, 235, 235)">grey92</td> + <td align="left">rgb(235, 235, 235)</td> + <td align="left">#EBEBEB</td> + + </tr> + + <tr> + <td align="right">gray91</td> + <td align="center" style="background-color:rgb(232, 232, 232)">gray91</td> + <td align="left">rgb(232, 232, 232)</td> + <td align="left">#E8E8E8</td> + + </tr> + + <tr> + <td align="right">grey91</td> + <td align="center" style="background-color:rgb(232, 232, 232)">grey91</td> + <td align="left">rgb(232, 232, 232)</td> + <td align="left">#E8E8E8</td> + + </tr> + + <tr> + <td align="right">gray90</td> + <td align="center" style="background-color:rgb(229, 229, 229)">gray90</td> + <td align="left">rgb(229, 229, 229)</td> + <td align="left">#E5E5E5</td> + + </tr> + + <tr> + <td align="right">grey90</td> + <td align="center" style="background-color:rgb(229, 229, 229)">grey90</td> + <td align="left">rgb(229, 229, 229)</td> + <td align="left">#E5E5E5</td> + + </tr> + + <tr> + <td align="right">gray89</td> + <td align="center" style="background-color:rgb(227, 227, 227)">gray89</td> + <td align="left">rgb(227, 227, 227)</td> + <td align="left">#E3E3E3</td> + + </tr> + + <tr> + <td align="right">grey89</td> + <td align="center" style="background-color:rgb(227, 227, 227)">grey89</td> + <td align="left">rgb(227, 227, 227)</td> + <td align="left">#E3E3E3</td> + + </tr> + + <tr> + <td align="right">gray88</td> + <td align="center" style="background-color:rgb(224, 224, 224)">gray88</td> + <td align="left">rgb(224, 224, 224)</td> + <td align="left">#E0E0E0</td> + + </tr> + + <tr> + <td align="right">grey88</td> + <td align="center" style="background-color:rgb(224, 224, 224)">grey88</td> + <td align="left">rgb(224, 224, 224)</td> + <td align="left">#E0E0E0</td> + + </tr> + + <tr> + <td align="right">gray87</td> + <td align="center" style="background-color:rgb(222, 222, 222)">gray87</td> + <td align="left">rgb(222, 222, 222)</td> + <td align="left">#DEDEDE</td> + + </tr> + + <tr> + <td align="right">grey87</td> + <td align="center" style="background-color:rgb(222, 222, 222)">grey87</td> + <td align="left">rgb(222, 222, 222)</td> + <td align="left">#DEDEDE</td> + + </tr> + + <tr> + <td align="right">gainsboro</td> + <td align="center" style="background-color:rgb(220, 220, 220)">gainsboro</td> + <td align="left">rgb(220, 220, 220)</td> + <td align="left">#DCDCDC</td> + + </tr> + + <tr> + <td align="right">gray86</td> + <td align="center" style="background-color:rgb(219, 219, 219)">gray86</td> + <td align="left">rgb(219, 219, 219)</td> + <td align="left">#DBDBDB</td> + + </tr> + + <tr> + <td align="right">grey86</td> + <td align="center" style="background-color:rgb(219, 219, 219)">grey86</td> + <td align="left">rgb(219, 219, 219)</td> + <td align="left">#DBDBDB</td> + + </tr> + + <tr> + <td align="right">gray85</td> + <td align="center" style="background-color:rgb(217, 217, 217)">gray85</td> + <td align="left">rgb(217, 217, 217)</td> + <td align="left">#D9D9D9</td> + + </tr> + + <tr> + <td align="right">grey85</td> + <td align="center" style="background-color:rgb(217, 217, 217)">grey85</td> + <td align="left">rgb(217, 217, 217)</td> + <td align="left">#D9D9D9</td> + + </tr> + + <tr> + <td align="right">gray84</td> + <td align="center" style="background-color:rgb(214, 214, 214)">gray84</td> + <td align="left">rgb(214, 214, 214)</td> + <td align="left">#D6D6D6</td> + + </tr> + + <tr> + <td align="right">grey84</td> + <td align="center" style="background-color:rgb(214, 214, 214)">grey84</td> + <td align="left">rgb(214, 214, 214)</td> + <td align="left">#D6D6D6</td> + + </tr> + + <tr> + <td align="right">gray83</td> + <td align="center" style="background-color:rgb(212, 212, 212)">gray83</td> + <td align="left">rgb(212, 212, 212)</td> + <td align="left">#D4D4D4</td> + + </tr> + + <tr> + <td align="right">grey83</td> + <td align="center" style="background-color:rgb(212, 212, 212)">grey83</td> + <td align="left">rgb(212, 212, 212)</td> + <td align="left">#D4D4D4</td> + + </tr> + + <tr> + <td align="right">LightGray</td> + <td align="center" style="background-color:rgb(211, 211, 211)">LightGray</td> + <td align="left">rgb(211, 211, 211)</td> + <td align="left">#D3D3D3</td> + + </tr> + + <tr> + <td align="right">LightGrey</td> + <td align="center" style="background-color:rgb(211, 211, 211)">LightGrey</td> + <td align="left">rgb(211, 211, 211)</td> + <td align="left">#D3D3D3</td> + + </tr> + + <tr> + <td align="right">gray82</td> + <td align="center" style="background-color:rgb(209, 209, 209)">gray82</td> + <td align="left">rgb(209, 209, 209)</td> + <td align="left">#D1D1D1</td> + + </tr> + + <tr> + <td align="right">grey82</td> + <td align="center" style="background-color:rgb(209, 209, 209)">grey82</td> + <td align="left">rgb(209, 209, 209)</td> + <td align="left">#D1D1D1</td> + + </tr> + + <tr> + <td align="right">gray81</td> + <td align="center" style="background-color:rgb(207, 207, 207)">gray81</td> + <td align="left">rgb(207, 207, 207)</td> + <td align="left">#CFCFCF</td> + + </tr> + + <tr> + <td align="right">grey81</td> + <td align="center" style="background-color:rgb(207, 207, 207)">grey81</td> + <td align="left">rgb(207, 207, 207)</td> + <td align="left">#CFCFCF</td> + + </tr> + + <tr> + <td align="right">gray80</td> + <td align="center" style="background-color:rgb(204, 204, 204)">gray80</td> + <td align="left">rgb(204, 204, 204)</td> + <td align="left">#CCCCCC</td> + + </tr> + + <tr> + <td align="right">grey80</td> + <td align="center" style="background-color:rgb(204, 204, 204)">grey80</td> + <td align="left">rgb(204, 204, 204)</td> + <td align="left">#CCCCCC</td> + + </tr> + + <tr> + <td align="right">gray79</td> + <td align="center" style="background-color:rgb(201, 201, 201)">gray79</td> + <td align="left">rgb(201, 201, 201)</td> + <td align="left">#C9C9C9</td> + + </tr> + + <tr> + <td align="right">grey79</td> + <td align="center" style="background-color:rgb(201, 201, 201)">grey79</td> + <td align="left">rgb(201, 201, 201)</td> + <td align="left">#C9C9C9</td> + + </tr> + + <tr> + <td align="right">gray78</td> + <td align="center" style="background-color:rgb(199, 199, 199)">gray78</td> + <td align="left">rgb(199, 199, 199)</td> + <td align="left">#C7C7C7</td> + + </tr> + + <tr> + <td align="right">grey78</td> + <td align="center" style="background-color:rgb(199, 199, 199)">grey78</td> + <td align="left">rgb(199, 199, 199)</td> + <td align="left">#C7C7C7</td> + + </tr> + + <tr> + <td align="right">gray77</td> + <td align="center" style="background-color:rgb(196, 196, 196)">gray77</td> + <td align="left">rgb(196, 196, 196)</td> + <td align="left">#C4C4C4</td> + + </tr> + + <tr> + <td align="right">grey77</td> + <td align="center" style="background-color:rgb(196, 196, 196)">grey77</td> + <td align="left">rgb(196, 196, 196)</td> + <td align="left">#C4C4C4</td> + + </tr> + + <tr> + <td align="right">gray76</td> + <td align="center" style="background-color:rgb(194, 194, 194)">gray76</td> + <td align="left">rgb(194, 194, 194)</td> + <td align="left">#C2C2C2</td> + + </tr> + + <tr> + <td align="right">grey76</td> + <td align="center" style="background-color:rgb(194, 194, 194)">grey76</td> + <td align="left">rgb(194, 194, 194)</td> + <td align="left">#C2C2C2</td> + + </tr> + + <tr> + <td align="right">silver</td> + <td align="center" style="background-color:rgb(192, 192, 192)">silver</td> + <td align="left">rgb(192, 192, 192)</td> + <td align="left">#C0C0C0</td> + + </tr> + + <tr> + <td align="right">gray75</td> + <td align="center" style="background-color:rgb(191, 191, 191)">gray75</td> + <td align="left">rgb(191, 191, 191)</td> + <td align="left">#BFBFBF</td> + + </tr> + + <tr> + <td align="right">grey75</td> + <td align="center" style="background-color:rgb(191, 191, 191)">grey75</td> + <td align="left">rgb(191, 191, 191)</td> + <td align="left">#BFBFBF</td> + + </tr> + + <tr> + <td align="right">gray74</td> + <td align="center" style="background-color:rgb(189, 189, 189)">gray74</td> + <td align="left">rgb(189, 189, 189)</td> + <td align="left">#BDBDBD</td> + + </tr> + + <tr> + <td align="right">grey74</td> + <td align="center" style="background-color:rgb(189, 189, 189)">grey74</td> + <td align="left">rgb(189, 189, 189)</td> + <td align="left">#BDBDBD</td> + + </tr> + + <tr> + <td align="right">gray73</td> + <td align="center" style="background-color:rgb(186, 186, 186)">gray73</td> + <td align="left">rgb(186, 186, 186)</td> + <td align="left">#BABABA</td> + + </tr> + + <tr> + <td align="right">grey73</td> + <td align="center" style="background-color:rgb(186, 186, 186)">grey73</td> + <td align="left">rgb(186, 186, 186)</td> + <td align="left">#BABABA</td> + + </tr> + + <tr> + <td align="right">gray72</td> + <td align="center" style="background-color:rgb(184, 184, 184)">gray72</td> + <td align="left">rgb(184, 184, 184)</td> + <td align="left">#B8B8B8</td> + + </tr> + + <tr> + <td align="right">grey72</td> + <td align="center" style="background-color:rgb(184, 184, 184)">grey72</td> + <td align="left">rgb(184, 184, 184)</td> + <td align="left">#B8B8B8</td> + + </tr> + + <tr> + <td align="right">gray71</td> + <td align="center" style="background-color:rgb(181, 181, 181)">gray71</td> + <td align="left">rgb(181, 181, 181)</td> + <td align="left">#B5B5B5</td> + + </tr> + + <tr> + <td align="right">grey71</td> + <td align="center" style="background-color:rgb(181, 181, 181)">grey71</td> + <td align="left">rgb(181, 181, 181)</td> + <td align="left">#B5B5B5</td> + + </tr> + + <tr> + <td align="right">gray70</td> + <td align="center" style="background-color:rgb(179, 179, 179)">gray70</td> + <td align="left">rgb(179, 179, 179)</td> + <td align="left">#B3B3B3</td> + + </tr> + + <tr> + <td align="right">grey70</td> + <td align="center" style="background-color:rgb(179, 179, 179)">grey70</td> + <td align="left">rgb(179, 179, 179)</td> + <td align="left">#B3B3B3</td> + + </tr> + + <tr> + <td align="right">gray69</td> + <td align="center" style="background-color:rgb(176, 176, 176)">gray69</td> + <td align="left">rgb(176, 176, 176)</td> + <td align="left">#B0B0B0</td> + + </tr> + + <tr> + <td align="right">grey69</td> + <td align="center" style="background-color:rgb(176, 176, 176)">grey69</td> + <td align="left">rgb(176, 176, 176)</td> + <td align="left">#B0B0B0</td> + + </tr> + + <tr> + <td align="right">gray68</td> + <td align="center" style="background-color:rgb(173, 173, 173)">gray68</td> + <td align="left">rgb(173, 173, 173)</td> + <td align="left">#ADADAD</td> + + </tr> + + <tr> + <td align="right">grey68</td> + <td align="center" style="background-color:rgb(173, 173, 173)">grey68</td> + <td align="left">rgb(173, 173, 173)</td> + <td align="left">#ADADAD</td> + + </tr> + + <tr> + <td align="right">gray67</td> + <td align="center" style="background-color:rgb(171, 171, 171)">gray67</td> + <td align="left">rgb(171, 171, 171)</td> + <td align="left">#ABABAB</td> + + </tr> + + <tr> + <td align="right">grey67</td> + <td align="center" style="background-color:rgb(171, 171, 171)">grey67</td> + <td align="left">rgb(171, 171, 171)</td> + <td align="left">#ABABAB</td> + + </tr> + + <tr> + <td align="right">DarkGray</td> + <td align="center" style="background-color:rgb(169, 169, 169)">DarkGray</td> + <td align="left">rgb(169, 169, 169)</td> + <td align="left">#A9A9A9</td> + + </tr> + + <tr> + <td align="right">DarkGrey</td> + <td align="center" style="background-color:rgb(169, 169, 169)">DarkGrey</td> + <td align="left">rgb(169, 169, 169)</td> + <td align="left">#A9A9A9</td> + + </tr> + + <tr> + <td align="right">gray66</td> + <td align="center" style="background-color:rgb(168, 168, 168)">gray66</td> + <td align="left">rgb(168, 168, 168)</td> + <td align="left">#A8A8A8</td> + + </tr> + + <tr> + <td align="right">grey66</td> + <td align="center" style="background-color:rgb(168, 168, 168)">grey66</td> + <td align="left">rgb(168, 168, 168)</td> + <td align="left">#A8A8A8</td> + + </tr> + + <tr> + <td align="right">gray65</td> + <td align="center" style="background-color:rgb(166, 166, 166)">gray65</td> + <td align="left">rgb(166, 166, 166)</td> + <td align="left">#A6A6A6</td> + + </tr> + + <tr> + <td align="right">grey65</td> + <td align="center" style="background-color:rgb(166, 166, 166)">grey65</td> + <td align="left">rgb(166, 166, 166)</td> + <td align="left">#A6A6A6</td> + + </tr> + + <tr> + <td align="right">gray64</td> + <td align="center" style="background-color:rgb(163, 163, 163)">gray64</td> + <td align="left">rgb(163, 163, 163)</td> + <td align="left">#A3A3A3</td> + + </tr> + + <tr> + <td align="right">grey64</td> + <td align="center" style="background-color:rgb(163, 163, 163)">grey64</td> + <td align="left">rgb(163, 163, 163)</td> + <td align="left">#A3A3A3</td> + + </tr> + + <tr> + <td align="right">gray63</td> + <td align="center" style="background-color:rgb(161, 161, 161)">gray63</td> + <td align="left">rgb(161, 161, 161)</td> + <td align="left">#A1A1A1</td> + + </tr> + + <tr> + <td align="right">grey63</td> + <td align="center" style="background-color:rgb(161, 161, 161)">grey63</td> + <td align="left">rgb(161, 161, 161)</td> + <td align="left">#A1A1A1</td> + + </tr> + + <tr> + <td align="right">gray62</td> + <td align="center" style="background-color:rgb(158, 158, 158)">gray62</td> + <td align="left">rgb(158, 158, 158)</td> + <td align="left">#9E9E9E</td> + + </tr> + + <tr> + <td align="right">grey62</td> + <td align="center" style="background-color:rgb(158, 158, 158)">grey62</td> + <td align="left">rgb(158, 158, 158)</td> + <td align="left">#9E9E9E</td> + + </tr> + + <tr> + <td align="right">gray61</td> + <td align="center" style="background-color:rgb(156, 156, 156)">gray61</td> + <td align="left">rgb(156, 156, 156)</td> + <td align="left">#9C9C9C</td> + + </tr> + + <tr> + <td align="right">grey61</td> + <td align="center" style="background-color:rgb(156, 156, 156)">grey61</td> + <td align="left">rgb(156, 156, 156)</td> + <td align="left">#9C9C9C</td> + + </tr> + + <tr> + <td align="right">gray60</td> + <td align="center" style="background-color:rgb(153, 153, 153)">gray60</td> + <td align="left">rgb(153, 153, 153)</td> + <td align="left">#999999</td> + + </tr> + + <tr> + <td align="right">grey60</td> + <td align="center" style="background-color:rgb(153, 153, 153)">grey60</td> + <td align="left">rgb(153, 153, 153)</td> + <td align="left">#999999</td> + + </tr> + + <tr> + <td align="right">gray59</td> + <td align="center" style="background-color:rgb(150, 150, 150)">gray59</td> + <td align="left">rgb(150, 150, 150)</td> + <td align="left">#969696</td> + + </tr> + + <tr> + <td align="right">grey59</td> + <td align="center" style="background-color:rgb(150, 150, 150)">grey59</td> + <td align="left">rgb(150, 150, 150)</td> + <td align="left">#969696</td> + + </tr> + + <tr> + <td align="right">gray58</td> + <td align="center" style="background-color:rgb(148, 148, 148)">gray58</td> + <td align="left">rgb(148, 148, 148)</td> + <td align="left">#949494</td> + + </tr> + + <tr> + <td align="right">grey58</td> + <td align="center" style="background-color:rgb(148, 148, 148)">grey58</td> + <td align="left">rgb(148, 148, 148)</td> + <td align="left">#949494</td> + + </tr> + + <tr> + <td align="right">gray57</td> + <td align="center" style="background-color:rgb(145, 145, 145)">gray57</td> + <td align="left">rgb(145, 145, 145)</td> + <td align="left">#919191</td> + + </tr> + + <tr> + <td align="right">grey57</td> + <td align="center" style="background-color:rgb(145, 145, 145)">grey57</td> + <td align="left">rgb(145, 145, 145)</td> + <td align="left">#919191</td> + + </tr> + + <tr> + <td align="right">gray56</td> + <td align="center" style="background-color:rgb(143, 143, 143)">gray56</td> + <td align="left">rgb(143, 143, 143)</td> + <td align="left">#8F8F8F</td> + + </tr> + + <tr> + <td align="right">grey56</td> + <td align="center" style="background-color:rgb(143, 143, 143)">grey56</td> + <td align="left">rgb(143, 143, 143)</td> + <td align="left">#8F8F8F</td> + + </tr> + + <tr> + <td align="right">gray55</td> + <td align="center" style="background-color:rgb(140, 140, 140)">gray55</td> + <td align="left">rgb(140, 140, 140)</td> + <td align="left">#8C8C8C</td> + + </tr> + + <tr> + <td align="right">grey55</td> + <td align="center" style="background-color:rgb(140, 140, 140)">grey55</td> + <td align="left">rgb(140, 140, 140)</td> + <td align="left">#8C8C8C</td> + + </tr> + + <tr> + <td align="right">gray54</td> + <td align="center" style="background-color:rgb(138, 138, 138)">gray54</td> + <td align="left">rgb(138, 138, 138)</td> + <td align="left">#8A8A8A</td> + + </tr> + + <tr> + <td align="right">grey54</td> + <td align="center" style="background-color:rgb(138, 138, 138)">grey54</td> + <td align="left">rgb(138, 138, 138)</td> + <td align="left">#8A8A8A</td> + + </tr> + + <tr> + <td align="right">gray53</td> + <td align="center" style="background-color:rgb(135, 135, 135)">gray53</td> + <td align="left">rgb(135, 135, 135)</td> + <td align="left">#878787</td> + + </tr> + + <tr> + <td align="right">grey53</td> + <td align="center" style="background-color:rgb(135, 135, 135)">grey53</td> + <td align="left">rgb(135, 135, 135)</td> + <td align="left">#878787</td> + + </tr> + + <tr> + <td align="right">gray52</td> + <td align="center" style="background-color:rgb(133, 133, 133)">gray52</td> + <td align="left">rgb(133, 133, 133)</td> + <td align="left">#858585</td> + + </tr> + + <tr> + <td align="right">grey52</td> + <td align="center" style="background-color:rgb(133, 133, 133)">grey52</td> + <td align="left">rgb(133, 133, 133)</td> + <td align="left">#858585</td> + + </tr> + + <tr> + <td align="right">gray51</td> + <td align="center" style="background-color:rgb(130, 130, 130)">gray51</td> + <td align="left">rgb(130, 130, 130)</td> + <td align="left">#828282</td> + + </tr> + + <tr> + <td align="right">grey51</td> + <td align="center" style="background-color:rgb(130, 130, 130)">grey51</td> + <td align="left">rgb(130, 130, 130)</td> + <td align="left">#828282</td> + + </tr> + + <tr> + <td align="right">fractal</td> + <td align="center" style="background-color:rgb(128, 128, 128)">fractal</td> + <td align="left">rgb(128, 128, 128)</td> + <td align="left">#808080</td> + + </tr> + + <tr> + <td align="right">gray50</td> + <td align="center" style="background-color:rgb(127, 127, 127)">gray50</td> + <td align="left">rgb(127, 127, 127)</td> + <td align="left">#7F7F7F</td> + + </tr> + + <tr> + <td align="right">grey50</td> + <td align="center" style="background-color:rgb(127, 127, 127)">grey50</td> + <td align="left">rgb(127, 127, 127)</td> + <td align="left">#7F7F7F</td> + + </tr> + + <tr> + <td align="right">gray</td> + <td align="center" style="background-color:rgb(126, 126, 126)">gray</td> + <td align="left">rgb(126, 126, 126)</td> + <td align="left">#7E7E7E</td> + + </tr> + + <tr> + <td align="right">gray49</td> + <td align="center" style="background-color:rgb(125, 125, 125)">gray49</td> + <td align="left">rgb(125, 125, 125)</td> + <td align="left">#7D7D7D</td> + + </tr> + + <tr> + <td align="right">grey49</td> + <td align="center" style="background-color:rgb(125, 125, 125)">grey49</td> + <td align="left">rgb(125, 125, 125)</td> + <td align="left">#7D7D7D</td> + + </tr> + + <tr> + <td align="right">gray48</td> + <td align="center" style="background-color:rgb(122, 122, 122)">gray48</td> + <td align="left">rgb(122, 122, 122)</td> + <td align="left">#7A7A7A</td> + + </tr> + + <tr> + <td align="right">grey48</td> + <td align="center" style="background-color:rgb(122, 122, 122)">grey48</td> + <td align="left">rgb(122, 122, 122)</td> + <td align="left">#7A7A7A</td> + + </tr> + + <tr> + <td align="right">gray47</td> + <td align="center" style="background-color:rgb(120, 120, 120)">gray47</td> + <td align="left">rgb(120, 120, 120)</td> + <td align="left">#787878</td> + + </tr> + + <tr> + <td align="right">grey47</td> + <td align="center" style="background-color:rgb(120, 120, 120)">grey47</td> + <td align="left">rgb(120, 120, 120)</td> + <td align="left">#787878</td> + + </tr> + + <tr> + <td align="right">gray46</td> + <td align="center" style="background-color:rgb(117, 117, 117)">gray46</td> + <td align="left">rgb(117, 117, 117)</td> + <td align="left">#757575</td> + + </tr> + + <tr> + <td align="right">grey46</td> + <td align="center" style="background-color:rgb(117, 117, 117)">grey46</td> + <td align="left">rgb(117, 117, 117)</td> + <td align="left">#757575</td> + + </tr> + + <tr> + <td align="right">gray45</td> + <td align="center" style="background-color:rgb(115, 115, 115)">gray45</td> + <td align="left">rgb(115, 115, 115)</td> + <td align="left">#737373</td> + + </tr> + + <tr> + <td align="right">grey45</td> + <td align="center" style="background-color:rgb(115, 115, 115)">grey45</td> + <td align="left">rgb(115, 115, 115)</td> + <td align="left">#737373</td> + + </tr> + + <tr> + <td align="right">gray44</td> + <td align="center" style="background-color:rgb(112, 112, 112)">gray44</td> + <td align="left">rgb(112, 112, 112)</td> + <td align="left">#707070</td> + + </tr> + + <tr> + <td align="right">grey44</td> + <td align="center" style="background-color:rgb(112, 112, 112)">grey44</td> + <td align="left">rgb(112, 112, 112)</td> + <td align="left">#707070</td> + + </tr> + + <tr> + <td align="right">gray43</td> + <td align="center" style="background-color:rgb(110, 110, 110)">gray43</td> + <td align="left">rgb(110, 110, 110)</td> + <td align="left">#6E6E6E</td> + + </tr> + + <tr> + <td align="right">grey43</td> + <td align="center" style="background-color:rgb(110, 110, 110)">grey43</td> + <td align="left">rgb(110, 110, 110)</td> + <td align="left">#6E6E6E</td> + + </tr> + + <tr> + <td align="right">gray42</td> + <td align="center" style="background-color:rgb(107, 107, 107)">gray42</td> + <td align="left">rgb(107, 107, 107)</td> + <td align="left">#6B6B6B</td> + + </tr> + + <tr> + <td align="right">grey42</td> + <td align="center" style="background-color:rgb(107, 107, 107)">grey42</td> + <td align="left">rgb(107, 107, 107)</td> + <td align="left">#6B6B6B</td> + + </tr> + + <tr> + <td align="right">DimGray</td> + <td align="center" style="background-color:rgb(105, 105, 105)">DimGray</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">DimGrey</td> + <td align="center" style="background-color:rgb(105, 105, 105)">DimGrey</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">gray41</td> + <td align="center" style="background-color:rgb(105, 105, 105)">gray41</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">grey41</td> + <td align="center" style="background-color:rgb(105, 105, 105)">grey41</td> + <td align="left">rgb(105, 105, 105)</td> + <td align="left">#696969</td> + + </tr> + + <tr> + <td align="right">gray40</td> + <td align="center" style="background-color:rgb(102, 102, 102)">gray40</td> + <td align="left">rgb(102, 102, 102)</td> + <td align="left">#666666</td> + + </tr> + + <tr> + <td align="right">grey40</td> + <td align="center" style="background-color:rgb(102, 102, 102)">grey40</td> + <td align="left">rgb(102, 102, 102)</td> + <td align="left">#666666</td> + + </tr> + + <tr> + <td align="right">gray39</td> + <td align="center" style="background-color:rgb( 99, 99, 99)">gray39</td> + <td align="left">rgb( 99, 99, 99)</td> + <td align="left">#636363</td> + + </tr> + + <tr> + <td align="right">grey39</td> + <td align="center" style="background-color:rgb( 99, 99, 99)">grey39</td> + <td align="left">rgb( 99, 99, 99)</td> + <td align="left">#636363</td> + + </tr> + + <tr> + <td align="right">gray38</td> + <td align="center" style="background-color:rgb( 97, 97, 97)">gray38</td> + <td align="left">rgb( 97, 97, 97)</td> + <td align="left">#616161</td> + + </tr> + + <tr> + <td align="right">grey38</td> + <td align="center" style="background-color:rgb( 97, 97, 97)">grey38</td> + <td align="left">rgb( 97, 97, 97)</td> + <td align="left">#616161</td> + + </tr> + + <tr> + <td align="right">gray37</td> + <td align="center" style="background-color:rgb( 94, 94, 94)">gray37</td> + <td align="left">rgb( 94, 94, 94)</td> + <td align="left">#5E5E5E</td> + + </tr> + + <tr> + <td align="right">grey37</td> + <td align="center" style="background-color:rgb( 94, 94, 94)">grey37</td> + <td align="left">rgb( 94, 94, 94)</td> + <td align="left">#5E5E5E</td> + + </tr> + + <tr> + <td align="right">gray36</td> + <td align="center" style="background-color:rgb( 92, 92, 92)">gray36</td> + <td align="left">rgb( 92, 92, 92)</td> + <td align="left">#5C5C5C</td> + + </tr> + + <tr> + <td align="right">grey36</td> + <td align="center" style="background-color:rgb( 92, 92, 92)">grey36</td> + <td align="left">rgb( 92, 92, 92)</td> + <td align="left">#5C5C5C</td> + + </tr> + + <tr> + <td align="right">gray35</td> + <td align="center" style="background-color:rgb( 89, 89, 89)">gray35</td> + <td align="left">rgb( 89, 89, 89)</td> + <td align="left">#595959</td> + + </tr> + + <tr> + <td align="right">grey35</td> + <td align="center" style="background-color:rgb( 89, 89, 89)">grey35</td> + <td align="left">rgb( 89, 89, 89)</td> + <td align="left">#595959</td> + + </tr> + + <tr> + <td align="right">gray34</td> + <td align="center" style="background-color:rgb( 87, 87, 87)">gray34</td> + <td align="left">rgb( 87, 87, 87)</td> + <td align="left">#575757</td> + + </tr> + + <tr> + <td align="right">grey34</td> + <td align="center" style="background-color:rgb( 87, 87, 87)">grey34</td> + <td align="left">rgb( 87, 87, 87)</td> + <td align="left">#575757</td> + + </tr> + + <tr> + <td align="right">gray33</td> + <td align="center" style="background-color:rgb( 84, 84, 84)">gray33</td> + <td align="left">rgb( 84, 84, 84)</td> + <td align="left">#545454</td> + + </tr> + + <tr> + <td align="right">grey33</td> + <td align="center" style="background-color:rgb( 84, 84, 84)">grey33</td> + <td align="left">rgb( 84, 84, 84)</td> + <td align="left">#545454</td> + + </tr> + + <tr> + <td align="right">gray32</td> + <td align="center" style="background-color:rgb( 82, 82, 82)">gray32</td> + <td align="left">rgb( 82, 82, 82)</td> + <td align="left">#525252</td> + + </tr> + + <tr> + <td align="right">grey32</td> + <td align="center" style="background-color:rgb( 82, 82, 82)">grey32</td> + <td align="left">rgb( 82, 82, 82)</td> + <td align="left">#525252</td> + + </tr> + + <tr> + <td align="right">gray31</td> + <td align="center" style="background-color:rgb( 79, 79, 79)">gray31</td> + <td align="left">rgb( 79, 79, 79)</td> + <td align="left">#4F4F4F</td> + + </tr> + + <tr> + <td align="right">grey31</td> + <td align="center" style="background-color:rgb( 79, 79, 79)">grey31</td> + <td align="left">rgb( 79, 79, 79)</td> + <td align="left">#4F4F4F</td> + + </tr> + + <tr> + <td align="right">gray30</td> + <td align="center" style="background-color:rgb( 77, 77, 77)">gray30</td> + <td align="left">rgb( 77, 77, 77)</td> + <td align="left">#4D4D4D</td> + + </tr> + + <tr> + <td align="right">grey30</td> + <td align="center" style="background-color:rgb( 77, 77, 77)">grey30</td> + <td align="left">rgb( 77, 77, 77)</td> + <td align="left">#4D4D4D</td> + + </tr> + + <tr> + <td align="right">gray29</td> + <td align="center" style="background-color:rgb( 74, 74, 74)">gray29</td> + <td align="left">rgb( 74, 74, 74)</td> + <td align="left">#4A4A4A</td> + + </tr> + + <tr> + <td align="right">grey29</td> + <td align="center" style="background-color:rgb( 74, 74, 74)">grey29</td> + <td align="left">rgb( 74, 74, 74)</td> + <td align="left">#4A4A4A</td> + + </tr> + + <tr> + <td align="right">gray28</td> + <td align="center" style="background-color:rgb( 71, 71, 71)">gray28</td> + <td align="left">rgb( 71, 71, 71)</td> + <td align="left">#474747</td> + + </tr> + + <tr> + <td align="right">grey28</td> + <td align="center" style="background-color:rgb( 71, 71, 71)">grey28</td> + <td align="left">rgb( 71, 71, 71)</td> + <td align="left">#474747</td> + + </tr> + + <tr> + <td align="right">gray27</td> + <td align="center" style="background-color:rgb( 69, 69, 69)">gray27</td> + <td align="left">rgb( 69, 69, 69)</td> + <td align="left">#454545</td> + + </tr> + + <tr> + <td align="right">grey27</td> + <td align="center" style="background-color:rgb( 69, 69, 69)">grey27</td> + <td align="left">rgb( 69, 69, 69)</td> + <td align="left">#454545</td> + + </tr> + + <tr> + <td align="right">gray26</td> + <td align="center" style="background-color:rgb( 66, 66, 66)">gray26</td> + <td align="left">rgb( 66, 66, 66)</td> + <td align="left">#424242</td> + + </tr> + + <tr> + <td align="right">grey26</td> + <td align="center" style="background-color:rgb( 66, 66, 66)">grey26</td> + <td align="left">rgb( 66, 66, 66)</td> + <td align="left">#424242</td> + + </tr> + + <tr> + <td align="right">gray25</td> + <td align="center" style="background-color:rgb( 64, 64, 64)">gray25</td> + <td align="left">rgb( 64, 64, 64)</td> + <td align="left">#404040</td> + + </tr> + + <tr> + <td align="right">grey25</td> + <td align="center" style="background-color:rgb( 64, 64, 64)">grey25</td> + <td align="left">rgb( 64, 64, 64)</td> + <td align="left">#404040</td> + + </tr> + + <tr> + <td align="right">gray24</td> + <td align="center" style="background-color:rgb( 61, 61, 61)">gray24</td> + <td align="left">rgb( 61, 61, 61)</td> + <td align="left">#3D3D3D</td> + + </tr> + + <tr> + <td align="right">grey24</td> + <td align="center" style="background-color:rgb( 61, 61, 61)">grey24</td> + <td align="left">rgb( 61, 61, 61)</td> + <td align="left">#3D3D3D</td> + + </tr> + + <tr> + <td align="right">gray23</td> + <td align="center" style="background-color:rgb( 59, 59, 59)">gray23</td> + <td align="left">rgb( 59, 59, 59)</td> + <td align="left">#3B3B3B</td> + + </tr> + + <tr> + <td align="right">grey23</td> + <td align="center" style="background-color:rgb( 59, 59, 59)">grey23</td> + <td align="left">rgb( 59, 59, 59)</td> + <td align="left">#3B3B3B</td> + + </tr> + + <tr> + <td align="right">gray22</td> + <td align="center" style="background-color:rgb( 56, 56, 56)">gray22</td> + <td align="left">rgb( 56, 56, 56)</td> + <td align="left">#383838</td> + + </tr> + + <tr> + <td align="right">grey22</td> + <td align="center" style="background-color:rgb( 56, 56, 56)">grey22</td> + <td align="left">rgb( 56, 56, 56)</td> + <td align="left">#383838</td> + + </tr> + + <tr> + <td align="right">gray21</td> + <td align="center" style="background-color:rgb( 54, 54, 54)">gray21</td> + <td align="left">rgb( 54, 54, 54)</td> + <td align="left">#363636</td> + + </tr> + + <tr> + <td align="right">grey21</td> + <td align="center" style="background-color:rgb( 54, 54, 54)">grey21</td> + <td align="left">rgb( 54, 54, 54)</td> + <td align="left">#363636</td> + + </tr> + + <tr> + <td align="right">gray20</td> + <td align="center" style="background-color:rgb( 51, 51, 51)">gray20</td> + <td align="left">rgb( 51, 51, 51)</td> + <td align="left">#333333</td> + + </tr> + + <tr> + <td align="right">grey20</td> + <td align="center" style="background-color:rgb( 51, 51, 51)">grey20</td> + <td align="left">rgb( 51, 51, 51)</td> + <td align="left">#333333</td> + + </tr> + + <tr> + <td align="right">gray19</td> + <td align="center" style="background-color:rgb( 48, 48, 48)">gray19</td> + <td align="left">rgb( 48, 48, 48)</td> + <td align="left">#303030</td> + + </tr> + + <tr> + <td align="right">grey19</td> + <td align="center" style="background-color:rgb( 48, 48, 48)">grey19</td> + <td align="left">rgb( 48, 48, 48)</td> + <td align="left">#303030</td> + + </tr> + + <tr> + <td align="right">gray18</td> + <td align="center" style="background-color:rgb( 46, 46, 46)">gray18</td> + <td align="left">rgb( 46, 46, 46)</td> + <td align="left">#2E2E2E</td> + + </tr> + + <tr> + <td align="right">grey18</td> + <td align="center" style="background-color:rgb( 46, 46, 46)">grey18</td> + <td align="left">rgb( 46, 46, 46)</td> + <td align="left">#2E2E2E</td> + + </tr> + + <tr> + <td align="right">gray17</td> + <td align="center" style="background-color:rgb( 43, 43, 43)">gray17</td> + <td align="left">rgb( 43, 43, 43)</td> + <td align="left">#2B2B2B</td> + + </tr> + + <tr> + <td align="right">grey17</td> + <td align="center" style="background-color:rgb( 43, 43, 43)">grey17</td> + <td align="left">rgb( 43, 43, 43)</td> + <td align="left">#2B2B2B</td> + + </tr> + + <tr> + <td align="right">gray16</td> + <td align="center" style="background-color:rgb( 41, 41, 41)">gray16</td> + <td align="left">rgb( 41, 41, 41)</td> + <td align="left">#292929</td> + + </tr> + + <tr> + <td align="right">grey16</td> + <td align="center" style="background-color:rgb( 41, 41, 41)">grey16</td> + <td align="left">rgb( 41, 41, 41)</td> + <td align="left">#292929</td> + + </tr> + + <tr> + <td align="right">gray15</td> + <td align="center" style="background-color:rgb( 38, 38, 38)">gray15</td> + <td align="left">rgb( 38, 38, 38)</td> + <td align="left">#262626</td> + + </tr> + + <tr> + <td align="right">grey15</td> + <td align="center" style="background-color:rgb( 38, 38, 38)">grey15</td> + <td align="left">rgb( 38, 38, 38)</td> + <td align="left">#262626</td> + + </tr> + + <tr> + <td align="right">gray14</td> + <td align="center" style="background-color:rgb( 36, 36, 36)">gray14</td> + <td align="left">rgb( 36, 36, 36)</td> + <td align="left">#242424</td> + + </tr> + + <tr> + <td align="right">grey14</td> + <td align="center" style="background-color:rgb( 36, 36, 36)">grey14</td> + <td align="left">rgb( 36, 36, 36)</td> + <td align="left">#242424</td> + + </tr> + + <tr> + <td align="right">gray13</td> + <td align="center" style="background-color:rgb( 33, 33, 33)">gray13</td> + <td align="left">rgb( 33, 33, 33)</td> + <td align="left">#212121</td> + + </tr> + + <tr> + <td align="right">grey13</td> + <td align="center" style="background-color:rgb( 33, 33, 33)">grey13</td> + <td align="left">rgb( 33, 33, 33)</td> + <td align="left">#212121</td> + + </tr> + + <tr> + <td align="right">gray12</td> + <td align="center" style="background-color:rgb( 31, 31, 31)">gray12</td> + <td align="left">rgb( 31, 31, 31)</td> + <td align="left">#1F1F1F</td> + + </tr> + + <tr> + <td align="right">grey12</td> + <td align="center" style="background-color:rgb( 31, 31, 31)">grey12</td> + <td align="left">rgb( 31, 31, 31)</td> + <td align="left">#1F1F1F</td> + + </tr> + + <tr> + <td align="right">gray11</td> + <td align="center" style="background-color:rgb( 28, 28, 28)">gray11</td> + <td align="left">rgb( 28, 28, 28)</td> + <td align="left">#1C1C1C</td> + + </tr> + + <tr> + <td align="right">grey11</td> + <td align="center" style="background-color:rgb( 28, 28, 28)">grey11</td> + <td align="left">rgb( 28, 28, 28)</td> + <td align="left">#1C1C1C</td> + + </tr> + + <tr> + <td align="right">gray10</td> + <td align="center" style="background-color:rgb( 26, 26, 26)">gray10</td> + <td align="left">rgb( 26, 26, 26)</td> + <td align="left">#1A1A1A</td> + + </tr> + + <tr> + <td align="right">grey10</td> + <td align="center" style="background-color:rgb( 26, 26, 26)">grey10</td> + <td align="left">rgb( 26, 26, 26)</td> + <td align="left">#1A1A1A</td> + + </tr> + + <tr> + <td align="right">gray9</td> + <td align="center" style="background-color:rgb( 23, 23, 23)">gray9</td> + <td align="left">rgb( 23, 23, 23)</td> + <td align="left">#171717</td> + + </tr> + + <tr> + <td align="right">grey9</td> + <td align="center" style="background-color:rgb( 23, 23, 23)">grey9</td> + <td align="left">rgb( 23, 23, 23)</td> + <td align="left">#171717</td> + + </tr> + + <tr> + <td align="right">gray8</td> + <td align="center" style="background-color:rgb( 20, 20, 20)">gray8</td> + <td align="left">rgb( 20, 20, 20)</td> + <td align="left">#141414</td> + + </tr> + + <tr> + <td align="right">grey8</td> + <td align="center" style="background-color:rgb( 20, 20, 20)">grey8</td> + <td align="left">rgb( 20, 20, 20)</td> + <td align="left">#141414</td> + + </tr> + + <tr> + <td align="right">gray7</td> + <td align="center" style="background-color:rgb( 18, 18, 18)">gray7</td> + <td align="left">rgb( 18, 18, 18)</td> + <td align="left">#121212</td> + + </tr> + + <tr> + <td align="right">grey7</td> + <td align="center" style="background-color:rgb( 18, 18, 18)">grey7</td> + <td align="left">rgb( 18, 18, 18)</td> + <td align="left">#121212</td> + + </tr> + + <tr> + <td align="right">gray6</td> + <td align="center" style="background-color:rgb( 15, 15, 15)">gray6</td> + <td align="left">rgb( 15, 15, 15)</td> + <td align="left">#0F0F0F</td> + + </tr> + + <tr> + <td align="right">grey6</td> + <td align="center" style="background-color:rgb( 15, 15, 15)">grey6</td> + <td align="left">rgb( 15, 15, 15)</td> + <td align="left">#0F0F0F</td> + + </tr> + + <tr> + <td align="right">gray5</td> + <td align="center" style="background-color:rgb( 13, 13, 13)">gray5</td> + <td align="left">rgb( 13, 13, 13)</td> + <td align="left">#0D0D0D</td> + + </tr> + + <tr> + <td align="right">grey5</td> + <td align="center" style="background-color:rgb( 13, 13, 13)">grey5</td> + <td align="left">rgb( 13, 13, 13)</td> + <td align="left">#0D0D0D</td> + + </tr> + + <tr> + <td align="right">gray4</td> + <td align="center" style="background-color:rgb( 10, 10, 10)">gray4</td> + <td align="left">rgb( 10, 10, 10)</td> + <td align="left">#0A0A0A</td> + + </tr> + + <tr> + <td align="right">grey4</td> + <td align="center" style="background-color:rgb( 10, 10, 10)">grey4</td> + <td align="left">rgb( 10, 10, 10)</td> + <td align="left">#0A0A0A</td> + + </tr> + + <tr> + <td align="right">gray3</td> + <td align="center" style="background-color:rgb( 8, 8, 8)">gray3</td> + <td align="left">rgb( 8, 8, 8)</td> + <td align="left">#080808</td> + + </tr> + + <tr> + <td align="right">grey3</td> + <td align="center" style="background-color:rgb( 8, 8, 8)">grey3</td> + <td align="left">rgb( 8, 8, 8)</td> + <td align="left">#080808</td> + + </tr> + + <tr> + <td align="right">gray2</td> + <td align="center" style="background-color:rgb( 5, 5, 5)">gray2</td> + <td align="left">rgb( 5, 5, 5)</td> + <td align="left">#050505</td> + + </tr> + + <tr> + <td align="right">grey2</td> + <td align="center" style="background-color:rgb( 5, 5, 5)">grey2</td> + <td align="left">rgb( 5, 5, 5)</td> + <td align="left">#050505</td> + + </tr> + + <tr> + <td align="right">gray1</td> + <td align="center" style="background-color:rgb( 3, 3, 3)">gray1</td> + <td align="left">rgb( 3, 3, 3)</td> + <td align="left">#030303</td> + + </tr> + + <tr> + <td align="right">grey1</td> + <td align="center" style="background-color:rgb( 3, 3, 3)">grey1</td> + <td align="left">rgb( 3, 3, 3)</td> + <td align="left">#030303</td> + + </tr> + + <tr> + <td align="right">black</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">black</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">gray0</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">gray0</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">grey0</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">grey0</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">opaque</td> + <td align="center" style="background-color:rgb( 0, 0, 0)">opaque</td> + <td align="left">rgb( 0, 0, 0)</td> + <td align="left">#000000</td> + + </tr> + + <tr> + <td align="right">none</td> + <td align="center" style="background-color:white">none</td> + <td align="left">rgba( 0, 0, 0, 0.0)</td> + <td align="left">#00000000</td> + + </tr> + + <tr> + <td align="right">transparent</td> + <td align="center" style="background-color:white">transparent</td> + <td align="left">rgba( 0, 0, 0, 0.0)</td> + <td align="left">#00000000</td> + + </tr> + + </tbody> +</table> + +</div> + +</div> + +</body></html> diff --git a/frontend/imgrid/colors/junk/colorsbest.html b/frontend/imgrid/colors/junk/colorsbest.html new file mode 100755 index 0000000..047eb6b --- /dev/null +++ b/frontend/imgrid/colors/junk/colorsbest.html @@ -0,0 +1,3606 @@ +<html> +<head> + +<style type='text/css'> + +body +{ +max-width:100%; +max-height:100%; +font-family:helvetica; +font-size:10px; +} + + +#container div +{ +display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +min-height: 30px; +zoom: 1; +*display: inline; +cursor:pointer; +} + +#container +{ +margin:0 auto; +width:600px; +padding-top:100px; +text-align:center; +} + +#colornames +{ +color:white; +position:fixed; +font-size:50px; +top:50px; +right:60%; +width:400px; +} + +#hexswitch + { + position:fixed; + top:20px; + right:10%; + height:100px; + width:300px; + font-size:20px + border-style: groove; + border-width: 4px; + background-color:goldenrod; + text-align:center; + } +#infoswitch + { + position:fixed; + top: 60px; + right:50%; + font-size:20px; + background-color:magenta; + text-align:center; + z-index:100; + } + +#namespace + { + position:fixed; + top:500px; + right:20px; + } + + + +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{ +height:30px; +width:10px; +} +</style></head><body> +<div id='container'> +<div id='d0' class='colors'> +snow</div> +<div id='d1' class='colors'> +snow1</div> +<div id='d2' class='colors'> +snow2</div> +<div id='d3' class='colors'> +RosyBrown1</div> +<div id='d4' class='colors'> +RosyBrown2</div> +<div id='d5' class='colors'> +snow3</div> +<div id='d6' class='colors'> +LightCoral</div> +<div id='d7' class='colors'> +IndianRed1</div> +<div id='d8' class='colors'> +RosyBrown3</div> +<div id='d9' class='colors'> +IndianRed2</div> +<div id='d10' class='colors'> +RosyBrown</div> +<div id='d11' class='colors'> +brown1</div> +<div id='d12' class='colors'> +firebrick1</div> +<div id='d13' class='colors'> +brown2</div> +<div id='d14' class='colors'> +IndianRed</div> +<div id='d15' class='colors'> +IndianRed3</div> +<div id='d16' class='colors'> +firebrick2</div> +<div id='d17' class='colors'> +snow4</div> +<div id='d18' class='colors'> +brown3</div> +<div id='d19' class='colors'> +red</div> +<div id='d20' class='colors'> +red1</div> +<div id='d21' class='colors'> +RosyBrown4</div> +<div id='d22' class='colors'> +firebrick3</div> +<div id='d23' class='colors'> +red2</div> +<div id='d24' class='colors'> +firebrick</div> +<div id='d25' class='colors'> +brown</div> +<div id='d26' class='colors'> +red3</div> +<div id='d27' class='colors'> +IndianRed4</div> +<div id='d28' class='colors'> +brown4</div> +<div id='d29' class='colors'> +firebrick4</div> +<div id='d30' class='colors'> +DarkRed</div> +<div id='d31' class='colors'> +red4</div> +<div id='d32' class='colors'> +maroon</div> +<div id='d33' class='colors'> +LightPink1</div> +<div id='d34' class='colors'> +LightPink3</div> +<div id='d35' class='colors'> +LightPink4</div> +<div id='d36' class='colors'> +LightPink2</div> +<div id='d37' class='colors'> +LightPink</div> +<div id='d38' class='colors'> +pink</div> +<div id='d39' class='colors'> +crimson</div> +<div id='d40' class='colors'> +pink1</div> +<div id='d41' class='colors'> +pink2</div> +<div id='d42' class='colors'> +pink3</div> +<div id='d43' class='colors'> +pink4</div> +<div id='d44' class='colors'> +PaleVioletRed4</div> +<div id='d45' class='colors'> +PaleVioletRed</div> +<div id='d46' class='colors'> +PaleVioletRed2</div> +<div id='d47' class='colors'> +PaleVioletRed1</div> +<div id='d48' class='colors'> +PaleVioletRed3</div> +<div id='d49' class='colors'> +LavenderBlush</div> +<div id='d50' class='colors'> +LavenderBlush1</div> +<div id='d51' class='colors'> +LavenderBlush3</div> +<div id='d52' class='colors'> +LavenderBlush2</div> +<div id='d53' class='colors'> +LavenderBlush4</div> +<div id='d54' class='colors'> +maroon</div> +<div id='d55' class='colors'> +HotPink3</div> +<div id='d56' class='colors'> +VioletRed3</div> +<div id='d57' class='colors'> +VioletRed1</div> +<div id='d58' class='colors'> +VioletRed2</div> +<div id='d59' class='colors'> +VioletRed4</div> +<div id='d60' class='colors'> +HotPink2</div> +<div id='d61' class='colors'> +HotPink1</div> +<div id='d62' class='colors'> +HotPink4</div> +<div id='d63' class='colors'> +HotPink</div> +<div id='d64' class='colors'> +DeepPink</div> +<div id='d65' class='colors'> +DeepPink1</div> +<div id='d66' class='colors'> +DeepPink2</div> +<div id='d67' class='colors'> +DeepPink3</div> +<div id='d68' class='colors'> +DeepPink4</div> +<div id='d69' class='colors'> +maroon1</div> +<div id='d70' class='colors'> +maroon2</div> +<div id='d71' class='colors'> +maroon3</div> +<div id='d72' class='colors'> +maroon4</div> +<div id='d73' class='colors'> +MediumVioletRed</div> +<div id='d74' class='colors'> +VioletRed</div> +<div id='d75' class='colors'> +orchid2</div> +<div id='d76' class='colors'> +orchid</div> +<div id='d77' class='colors'> +orchid1</div> +<div id='d78' class='colors'> +orchid3</div> +<div id='d79' class='colors'> +orchid4</div> +<div id='d80' class='colors'> +thistle1</div> +<div id='d81' class='colors'> +thistle2</div> +<div id='d82' class='colors'> +plum1</div> +<div id='d83' class='colors'> +plum2</div> +<div id='d84' class='colors'> +thistle</div> +<div id='d85' class='colors'> +thistle3</div> +<div id='d86' class='colors'> +plum</div> +<div id='d87' class='colors'> +violet</div> +<div id='d88' class='colors'> +plum3</div> +<div id='d89' class='colors'> +thistle4</div> +<div id='d90' class='colors'> +fuchsia</div> +<div id='d91' class='colors'> +magenta</div> +<div id='d92' class='colors'> +magenta1</div> +<div id='d93' class='colors'> +plum4</div> +<div id='d94' class='colors'> +magenta2</div> +<div id='d95' class='colors'> +magenta3</div> +<div id='d96' class='colors'> +DarkMagenta</div> +<div id='d97' class='colors'> +magenta4</div> +<div id='d98' class='colors'> +purple</div> +<div id='d99' class='colors'> +MediumOrchid</div> +<div id='d100' class='colors'> +MediumOrchid1</div> +<div id='d101' class='colors'> +MediumOrchid2</div> +<div id='d102' class='colors'> +MediumOrchid3</div> +<div id='d103' class='colors'> +MediumOrchid4</div> +<div id='d104' class='colors'> +DarkViolet</div> +<div id='d105' class='colors'> +DarkOrchid</div> +<div id='d106' class='colors'> +DarkOrchid1</div> +<div id='d107' class='colors'> +DarkOrchid3</div> +<div id='d108' class='colors'> +DarkOrchid2</div> +<div id='d109' class='colors'> +DarkOrchid4</div> +<div id='d110' class='colors'> +purple</div> +<div id='d111' class='colors'> +indigo</div> +<div id='d112' class='colors'> +BlueViolet</div> +<div id='d113' class='colors'> +purple2</div> +<div id='d114' class='colors'> +purple3</div> +<div id='d115' class='colors'> +purple4</div> +<div id='d116' class='colors'> +purple1</div> +<div id='d117' class='colors'> +MediumPurple</div> +<div id='d118' class='colors'> +MediumPurple1</div> +<div id='d119' class='colors'> +MediumPurple2</div> +<div id='d120' class='colors'> +MediumPurple3</div> +<div id='d121' class='colors'> +MediumPurple4</div> +<div id='d122' class='colors'> +DarkSlateBlue</div> +<div id='d123' class='colors'> +LightSlateBlue</div> +<div id='d124' class='colors'> +MediumSlateBlue</div> +<div id='d125' class='colors'> +SlateBlue</div> +<div id='d126' class='colors'> +SlateBlue1</div> +<div id='d127' class='colors'> +SlateBlue2</div> +<div id='d128' class='colors'> +SlateBlue3</div> +<div id='d129' class='colors'> +SlateBlue4</div> +<div id='d130' class='colors'> +GhostWhite</div> +<div id='d131' class='colors'> +lavender</div> +<div id='d132' class='colors'> +blue</div> +<div id='d133' class='colors'> +blue1</div> +<div id='d134' class='colors'> +blue2</div> +<div id='d135' class='colors'> +blue3</div> +<div id='d136' class='colors'> +MediumBlue</div> +<div id='d137' class='colors'> +blue4</div> +<div id='d138' class='colors'> +DarkBlue</div> +<div id='d139' class='colors'> +MidnightBlue</div> +<div id='d140' class='colors'> +navy</div> +<div id='d141' class='colors'> +NavyBlue</div> +<div id='d142' class='colors'> +RoyalBlue</div> +<div id='d143' class='colors'> +RoyalBlue1</div> +<div id='d144' class='colors'> +RoyalBlue2</div> +<div id='d145' class='colors'> +RoyalBlue3</div> +<div id='d146' class='colors'> +RoyalBlue4</div> +<div id='d147' class='colors'> +CornflowerBlue</div> +<div id='d148' class='colors'> +LightSteelBlue</div> +<div id='d149' class='colors'> +LightSteelBlue1</div> +<div id='d150' class='colors'> +LightSteelBlue2</div> +<div id='d151' class='colors'> +LightSteelBlue3</div> +<div id='d152' class='colors'> +LightSteelBlue4</div> +<div id='d153' class='colors'> +SlateGray4</div> +<div id='d154' class='colors'> +SlateGray1</div> +<div id='d155' class='colors'> +SlateGray2</div> +<div id='d156' class='colors'> +SlateGray3</div> +<div id='d157' class='colors'> +LightSlateGray</div> +<div id='d158' class='colors'> +LightSlateGrey</div> +<div id='d159' class='colors'> +SlateGray</div> +<div id='d160' class='colors'> +SlateGrey</div> +<div id='d161' class='colors'> +DodgerBlue</div> +<div id='d162' class='colors'> +DodgerBlue1</div> +<div id='d163' class='colors'> +DodgerBlue2</div> +<div id='d164' class='colors'> +DodgerBlue4</div> +<div id='d165' class='colors'> +DodgerBlue3</div> +<div id='d166' class='colors'> +AliceBlue</div> +<div id='d167' class='colors'> +SteelBlue4</div> +<div id='d168' class='colors'> +SteelBlue</div> +<div id='d169' class='colors'> +SteelBlue1</div> +<div id='d170' class='colors'> +SteelBlue2</div> +<div id='d171' class='colors'> +SteelBlue3</div> +<div id='d172' class='colors'> +SkyBlue4</div> +<div id='d173' class='colors'> +SkyBlue1</div> +<div id='d174' class='colors'> +SkyBlue2</div> +<div id='d175' class='colors'> +SkyBlue3</div> +<div id='d176' class='colors'> +LightSkyBlue</div> +<div id='d177' class='colors'> +LightSkyBlue4</div> +<div id='d178' class='colors'> +LightSkyBlue1</div> +<div id='d179' class='colors'> +LightSkyBlue2</div> +<div id='d180' class='colors'> +LightSkyBlue3</div> +<div id='d181' class='colors'> +SkyBlue</div> +<div id='d182' class='colors'> +LightBlue3</div> +<div id='d183' class='colors'> +DeepSkyBlue</div> +<div id='d184' class='colors'> +DeepSkyBlue1</div> +<div id='d185' class='colors'> +DeepSkyBlue2</div> +<div id='d186' class='colors'> +DeepSkyBlue4</div> +<div id='d187' class='colors'> +DeepSkyBlue3</div> +<div id='d188' class='colors'> +LightBlue1</div> +<div id='d189' class='colors'> +LightBlue2</div> +<div id='d190' class='colors'> +LightBlue</div> +<div id='d191' class='colors'> +LightBlue4</div> +<div id='d192' class='colors'> +PowderBlue</div> +<div id='d193' class='colors'> +CadetBlue1</div> +<div id='d194' class='colors'> +CadetBlue2</div> +<div id='d195' class='colors'> +CadetBlue3</div> +<div id='d196' class='colors'> +CadetBlue4</div> +<div id='d197' class='colors'> +turquoise1</div> +<div id='d198' class='colors'> +turquoise2</div> +<div id='d199' class='colors'> +turquoise3</div> +<div id='d200' class='colors'> +turquoise4</div> +<div id='d201' class='colors'> +cadet blue</div> +<div id='d202' class='colors'> +CadetBlue</div> +<div id='d203' class='colors'> +DarkTurquoise</div> +<div id='d204' class='colors'> +azure</div> +<div id='d205' class='colors'> +azure1</div> +<div id='d206' class='colors'> +LightCyan</div> +<div id='d207' class='colors'> +LightCyan1</div> +<div id='d208' class='colors'> +azure2</div> +<div id='d209' class='colors'> +LightCyan2</div> +<div id='d210' class='colors'> +PaleTurquoise1</div> +<div id='d211' class='colors'> +PaleTurquoise</div> +<div id='d212' class='colors'> +PaleTurquoise2</div> +<div id='d213' class='colors'> +DarkSlateGray1</div> +<div id='d214' class='colors'> +azure3</div> +<div id='d215' class='colors'> +LightCyan3</div> +<div id='d216' class='colors'> +DarkSlateGray2</div> +<div id='d217' class='colors'> +PaleTurquoise3</div> +<div id='d218' class='colors'> +DarkSlateGray3</div> +<div id='d219' class='colors'> +azure4</div> +<div id='d220' class='colors'> +LightCyan4</div> +<div id='d221' class='colors'> +aqua</div> +<div id='d222' class='colors'> +cyan</div> +<div id='d223' class='colors'> +cyan1</div> +<div id='d224' class='colors'> +PaleTurquoise4</div> +<div id='d225' class='colors'> +cyan2</div> +<div id='d226' class='colors'> +DarkSlateGray4</div> +<div id='d227' class='colors'> +cyan3</div> +<div id='d228' class='colors'> +cyan4</div> +<div id='d229' class='colors'> +DarkCyan</div> +<div id='d230' class='colors'> +teal</div> +<div id='d231' class='colors'> +DarkSlateGray</div> +<div id='d232' class='colors'> +DarkSlateGrey</div> +<div id='d233' class='colors'> +MediumTurquoise</div> +<div id='d234' class='colors'> +LightSeaGreen</div> +<div id='d235' class='colors'> +turquoise</div> +<div id='d236' class='colors'> +aquamarine4</div> +<div id='d237' class='colors'> +aquamarine</div> +<div id='d238' class='colors'> +aquamarine1</div> +<div id='d239' class='colors'> +aquamarine2</div> +<div id='d240' class='colors'> +aquamarine3</div> +<div id='d241' class='colors'> +MediumAquamarine</div> +<div id='d242' class='colors'> +MediumSpringGreen</div> +<div id='d243' class='colors'> +MintCream</div> +<div id='d244' class='colors'> +SpringGreen</div> +<div id='d245' class='colors'> +SpringGreen1</div> +<div id='d246' class='colors'> +SpringGreen2</div> +<div id='d247' class='colors'> +SpringGreen3</div> +<div id='d248' class='colors'> +SpringGreen4</div> +<div id='d249' class='colors'> +MediumSeaGreen</div> +<div id='d250' class='colors'> +SeaGreen</div> +<div id='d251' class='colors'> +SeaGreen3</div> +<div id='d252' class='colors'> +SeaGreen1</div> +<div id='d253' class='colors'> +SeaGreen4</div> +<div id='d254' class='colors'> +SeaGreen2</div> +<div id='d255' class='colors'> +MediumForestGreen</div> +<div id='d256' class='colors'> +honeydew</div> +<div id='d257' class='colors'> +honeydew1</div> +<div id='d258' class='colors'> +honeydew2</div> +<div id='d259' class='colors'> +DarkSeaGreen1</div> +<div id='d260' class='colors'> +DarkSeaGreen2</div> +<div id='d261' class='colors'> +PaleGreen1</div> +<div id='d262' class='colors'> +PaleGreen</div> +<div id='d263' class='colors'> +honeydew3</div> +<div id='d264' class='colors'> +LightGreen</div> +<div id='d265' class='colors'> +PaleGreen2</div> +<div id='d266' class='colors'> +DarkSeaGreen3</div> +<div id='d267' class='colors'> +DarkSeaGreen</div> +<div id='d268' class='colors'> +PaleGreen3</div> +<div id='d269' class='colors'> +honeydew4</div> +<div id='d270' class='colors'> +green1</div> +<div id='d271' class='colors'> +lime</div> +<div id='d272' class='colors'> +LimeGreen</div> +<div id='d273' class='colors'> +DarkSeaGreen4</div> +<div id='d274' class='colors'> +green2</div> +<div id='d275' class='colors'> +PaleGreen4</div> +<div id='d276' class='colors'> +green3</div> +<div id='d277' class='colors'> +ForestGreen</div> +<div id='d278' class='colors'> +green4</div> +<div id='d279' class='colors'> +green</div> +<div id='d280' class='colors'> +DarkGreen</div> +<div id='d281' class='colors'> +LawnGreen</div> +<div id='d282' class='colors'> +chartreuse</div> +<div id='d283' class='colors'> +chartreuse1</div> +<div id='d284' class='colors'> +chartreuse2</div> +<div id='d285' class='colors'> +chartreuse3</div> +<div id='d286' class='colors'> +chartreuse4</div> +<div id='d287' class='colors'> +GreenYellow</div> +<div id='d288' class='colors'> +DarkOliveGreen3</div> +<div id='d289' class='colors'> +DarkOliveGreen1</div> +<div id='d290' class='colors'> +DarkOliveGreen2</div> +<div id='d291' class='colors'> +DarkOliveGreen4</div> +<div id='d292' class='colors'> +DarkOliveGreen</div> +<div id='d293' class='colors'> +OliveDrab</div> +<div id='d294' class='colors'> +OliveDrab1</div> +<div id='d295' class='colors'> +OliveDrab2</div> +<div id='d296' class='colors'> +OliveDrab3</div> +<div id='d297' class='colors'> +YellowGreen</div> +<div id='d298' class='colors'> +OliveDrab4</div> +<div id='d299' class='colors'> +ivory</div> +<div id='d300' class='colors'> +ivory1</div> +<div id='d301' class='colors'> +LightYellow</div> +<div id='d302' class='colors'> +LightYellow1</div> +<div id='d303' class='colors'> +beige</div> +<div id='d304' class='colors'> +ivory2</div> +<div id='d305' class='colors'> +LightGoldenrodYellow</div> +<div id='d306' class='colors'> +LightYellow2</div> +<div id='d307' class='colors'> +ivory3</div> +<div id='d308' class='colors'> +LightYellow3</div> +<div id='d309' class='colors'> +ivory4</div> +<div id='d310' class='colors'> +LightYellow4</div> +<div id='d311' class='colors'> +yellow</div> +<div id='d312' class='colors'> +yellow1</div> +<div id='d313' class='colors'> +yellow2</div> +<div id='d314' class='colors'> +yellow3</div> +<div id='d315' class='colors'> +yellow4</div> +<div id='d316' class='colors'> +olive</div> +<div id='d317' class='colors'> +DarkKhaki</div> +<div id='d318' class='colors'> +khaki2</div> +<div id='d319' class='colors'> +LemonChiffon4</div> +<div id='d320' class='colors'> +khaki1</div> +<div id='d321' class='colors'> +khaki3</div> +<div id='d322' class='colors'> +khaki4</div> +<div id='d323' class='colors'> +PaleGoldenrod</div> +<div id='d324' class='colors'> +LemonChiffon</div> +<div id='d325' class='colors'> +LemonChiffon1</div> +<div id='d326' class='colors'> +khaki</div> +<div id='d327' class='colors'> +LemonChiffon3</div> +<div id='d328' class='colors'> +LemonChiffon2</div> +<div id='d329' class='colors'> +MediumGoldenRod</div> +<div id='d330' class='colors'> +cornsilk4</div> +<div id='d331' class='colors'> +gold</div> +<div id='d332' class='colors'> +gold1</div> +<div id='d333' class='colors'> +gold2</div> +<div id='d334' class='colors'> +gold3</div> +<div id='d335' class='colors'> +gold4</div> +<div id='d336' class='colors'> +LightGoldenrod</div> +<div id='d337' class='colors'> +LightGoldenrod4</div> +<div id='d338' class='colors'> +LightGoldenrod1</div> +<div id='d339' class='colors'> +LightGoldenrod3</div> +<div id='d340' class='colors'> +LightGoldenrod2</div> +<div id='d341' class='colors'> +cornsilk3</div> +<div id='d342' class='colors'> +cornsilk2</div> +<div id='d343' class='colors'> +cornsilk</div> +<div id='d344' class='colors'> +cornsilk1</div> +<div id='d345' class='colors'> +goldenrod</div> +<div id='d346' class='colors'> +goldenrod1</div> +<div id='d347' class='colors'> +goldenrod2</div> +<div id='d348' class='colors'> +goldenrod3</div> +<div id='d349' class='colors'> +goldenrod4</div> +<div id='d350' class='colors'> +DarkGoldenrod</div> +<div id='d351' class='colors'> +DarkGoldenrod1</div> +<div id='d352' class='colors'> +DarkGoldenrod2</div> +<div id='d353' class='colors'> +DarkGoldenrod3</div> +<div id='d354' class='colors'> +DarkGoldenrod4</div> +<div id='d355' class='colors'> +FloralWhite</div> +<div id='d356' class='colors'> +wheat2</div> +<div id='d357' class='colors'> +OldLace</div> +<div id='d358' class='colors'> +wheat</div> +<div id='d359' class='colors'> +wheat1</div> +<div id='d360' class='colors'> +wheat3</div> +<div id='d361' class='colors'> +orange</div> +<div id='d362' class='colors'> +orange1</div> +<div id='d363' class='colors'> +orange2</div> +<div id='d364' class='colors'> +orange3</div> +<div id='d365' class='colors'> +orange4</div> +<div id='d366' class='colors'> +wheat4</div> +<div id='d367' class='colors'> +moccasin</div> +<div id='d368' class='colors'> +PapayaWhip</div> +<div id='d369' class='colors'> +NavajoWhite3</div> +<div id='d370' class='colors'> +BlanchedAlmond</div> +<div id='d371' class='colors'> +NavajoWhite</div> +<div id='d372' class='colors'> +NavajoWhite1</div> +<div id='d373' class='colors'> +NavajoWhite2</div> +<div id='d374' class='colors'> +NavajoWhite4</div> +<div id='d375' class='colors'> +AntiqueWhite4</div> +<div id='d376' class='colors'> +AntiqueWhite</div> +<div id='d377' class='colors'> +tan</div> +<div id='d378' class='colors'> +bisque4</div> +<div id='d379' class='colors'> +burlywood</div> +<div id='d380' class='colors'> +AntiqueWhite2</div> +<div id='d381' class='colors'> +burlywood1</div> +<div id='d382' class='colors'> +burlywood3</div> +<div id='d383' class='colors'> +burlywood2</div> +<div id='d384' class='colors'> +AntiqueWhite1</div> +<div id='d385' class='colors'> +burlywood4</div> +<div id='d386' class='colors'> +AntiqueWhite3</div> +<div id='d387' class='colors'> +DarkOrange</div> +<div id='d388' class='colors'> +bisque2</div> +<div id='d389' class='colors'> +bisque</div> +<div id='d390' class='colors'> +bisque1</div> +<div id='d391' class='colors'> +bisque3</div> +<div id='d392' class='colors'> +DarkOrange1</div> +<div id='d393' class='colors'> +linen</div> +<div id='d394' class='colors'> +DarkOrange2</div> +<div id='d395' class='colors'> +DarkOrange3</div> +<div id='d396' class='colors'> +DarkOrange4</div> +<div id='d397' class='colors'> +peru</div> +<div id='d398' class='colors'> +tan1</div> +<div id='d399' class='colors'> +tan2</div> +<div id='d400' class='colors'> +tan3</div> +<div id='d401' class='colors'> +tan4</div> +<div id='d402' class='colors'> +PeachPuff</div> +<div id='d403' class='colors'> +PeachPuff1</div> +<div id='d404' class='colors'> +PeachPuff4</div> +<div id='d405' class='colors'> +PeachPuff2</div> +<div id='d406' class='colors'> +PeachPuff3</div> +<div id='d407' class='colors'> +SandyBrown</div> +<div id='d408' class='colors'> +seashell4</div> +<div id='d409' class='colors'> +seashell2</div> +<div id='d410' class='colors'> +seashell3</div> +<div id='d411' class='colors'> +chocolate</div> +<div id='d412' class='colors'> +chocolate1</div> +<div id='d413' class='colors'> +chocolate2</div> +<div id='d414' class='colors'> +chocolate3</div> +<div id='d415' class='colors'> +chocolate4</div> +<div id='d416' class='colors'> +SaddleBrown</div> +<div id='d417' class='colors'> +seashell</div> +<div id='d418' class='colors'> +seashell1</div> +<div id='d419' class='colors'> +sienna4</div> +<div id='d420' class='colors'> +sienna</div> +<div id='d421' class='colors'> +sienna1</div> +<div id='d422' class='colors'> +sienna2</div> +<div id='d423' class='colors'> +sienna3</div> +<div id='d424' class='colors'> +LightSalmon3</div> +<div id='d425' class='colors'> +LightSalmon</div> +<div id='d426' class='colors'> +LightSalmon1</div> +<div id='d427' class='colors'> +LightSalmon4</div> +<div id='d428' class='colors'> +LightSalmon2</div> +<div id='d429' class='colors'> +coral</div> +<div id='d430' class='colors'> +OrangeRed</div> +<div id='d431' class='colors'> +OrangeRed1</div> +<div id='d432' class='colors'> +OrangeRed2</div> +<div id='d433' class='colors'> +OrangeRed3</div> +<div id='d434' class='colors'> +OrangeRed4</div> +<div id='d435' class='colors'> +DarkSalmon</div> +<div id='d436' class='colors'> +salmon1</div> +<div id='d437' class='colors'> +salmon2</div> +<div id='d438' class='colors'> +salmon3</div> +<div id='d439' class='colors'> +salmon4</div> +<div id='d440' class='colors'> +coral1</div> +<div id='d441' class='colors'> +coral2</div> +<div id='d442' class='colors'> +coral3</div> +<div id='d443' class='colors'> +coral4</div> +<div id='d444' class='colors'> +tomato4</div> +<div id='d445' class='colors'> +tomato</div> +<div id='d446' class='colors'> +tomato1</div> +<div id='d447' class='colors'> +tomato2</div> +<div id='d448' class='colors'> +tomato3</div> +<div id='d449' class='colors'> +MistyRose4</div> +<div id='d450' class='colors'> +MistyRose2</div> +<div id='d451' class='colors'> +MistyRose</div> +<div id='d452' class='colors'> +MistyRose1</div> +<div id='d453' class='colors'> +salmon</div> +<div id='d454' class='colors'> +MistyRose3</div> +<div id='d455' class='colors'> +white</div> +<div id='d456' class='colors'> +gray100</div> +<div id='d457' class='colors'> +grey100</div> +<div id='d458' class='colors'> +grey100</div> +<div id='d459' class='colors'> +gray99</div> +<div id='d460' class='colors'> +grey99</div> +<div id='d461' class='colors'> +gray98</div> +<div id='d462' class='colors'> +grey98</div> +<div id='d463' class='colors'> +gray97</div> +<div id='d464' class='colors'> +grey97</div> +<div id='d465' class='colors'> +gray96</div> +<div id='d466' class='colors'> +grey96</div> +<div id='d467' class='colors'> +WhiteSmoke</div> +<div id='d468' class='colors'> +gray95</div> +<div id='d469' class='colors'> +grey95</div> +<div id='d470' class='colors'> +gray94</div> +<div id='d471' class='colors'> +grey94</div> +<div id='d472' class='colors'> +gray93</div> +<div id='d473' class='colors'> +grey93</div> +<div id='d474' class='colors'> +gray92</div> +<div id='d475' class='colors'> +grey92</div> +<div id='d476' class='colors'> +gray91</div> +<div id='d477' class='colors'> +grey91</div> +<div id='d478' class='colors'> +gray90</div> +<div id='d479' class='colors'> +grey90</div> +<div id='d480' class='colors'> +gray89</div> +<div id='d481' class='colors'> +grey89</div> +<div id='d482' class='colors'> +gray88</div> +<div id='d483' class='colors'> +grey88</div> +<div id='d484' class='colors'> +gray87</div> +<div id='d485' class='colors'> +grey87</div> +<div id='d486' class='colors'> +gainsboro</div> +<div id='d487' class='colors'> +gray86</div> +<div id='d488' class='colors'> +grey86</div> +<div id='d489' class='colors'> +gray85</div> +<div id='d490' class='colors'> +grey85</div> +<div id='d491' class='colors'> +gray84</div> +<div id='d492' class='colors'> +grey84</div> +<div id='d493' class='colors'> +gray83</div> +<div id='d494' class='colors'> +grey83</div> +<div id='d495' class='colors'> +LightGray</div> +<div id='d496' class='colors'> +LightGrey</div> +<div id='d497' class='colors'> +gray82</div> +<div id='d498' class='colors'> +grey82</div> +<div id='d499' class='colors'> +gray81</div> +<div id='d500' class='colors'> +grey81</div> +<div id='d501' class='colors'> +gray80</div> +<div id='d502' class='colors'> +grey80</div> +<div id='d503' class='colors'> +gray79</div> +<div id='d504' class='colors'> +grey79</div> +<div id='d505' class='colors'> +gray78</div> +<div id='d506' class='colors'> +grey78</div> +<div id='d507' class='colors'> +gray77</div> +<div id='d508' class='colors'> +grey77</div> +<div id='d509' class='colors'> +gray76</div> +<div id='d510' class='colors'> +grey76</div> +<div id='d511' class='colors'> +silver</div> +<div id='d512' class='colors'> +gray75</div> +<div id='d513' class='colors'> +grey75</div> +<div id='d514' class='colors'> +gray74</div> +<div id='d515' class='colors'> +grey74</div> +<div id='d516' class='colors'> +gray73</div> +<div id='d517' class='colors'> +grey73</div> +<div id='d518' class='colors'> +gray72</div> +<div id='d519' class='colors'> +grey72</div> +<div id='d520' class='colors'> +gray71</div> +<div id='d521' class='colors'> +grey71</div> +<div id='d522' class='colors'> +gray70</div> +<div id='d523' class='colors'> +grey70</div> +<div id='d524' class='colors'> +gray69</div> +<div id='d525' class='colors'> +grey69</div> +<div id='d526' class='colors'> +gray68</div> +<div id='d527' class='colors'> +grey68</div> +<div id='d528' class='colors'> +gray67</div> +<div id='d529' class='colors'> +grey67</div> +<div id='d530' class='colors'> +DarkGray</div> +<div id='d531' class='colors'> +DarkGrey</div> +<div id='d532' class='colors'> +gray66</div> +<div id='d533' class='colors'> +grey66</div> +<div id='d534' class='colors'> +gray65</div> +<div id='d535' class='colors'> +grey65</div> +<div id='d536' class='colors'> +gray64</div> +<div id='d537' class='colors'> +grey64</div> +<div id='d538' class='colors'> +gray63</div> +<div id='d539' class='colors'> +grey63</div> +<div id='d540' class='colors'> +gray62</div> +<div id='d541' class='colors'> +grey62</div> +<div id='d542' class='colors'> +gray61</div> +<div id='d543' class='colors'> +grey61</div> +<div id='d544' class='colors'> +gray60</div> +<div id='d545' class='colors'> +grey60</div> +<div id='d546' class='colors'> +gray59</div> +<div id='d547' class='colors'> +grey59</div> +<div id='d548' class='colors'> +gray58</div> +<div id='d549' class='colors'> +grey58</div> +<div id='d550' class='colors'> +gray57</div> +<div id='d551' class='colors'> +grey57</div> +<div id='d552' class='colors'> +gray56</div> +<div id='d553' class='colors'> +grey56</div> +<div id='d554' class='colors'> +gray55</div> +<div id='d555' class='colors'> +grey55</div> +<div id='d556' class='colors'> +gray54</div> +<div id='d557' class='colors'> +grey54</div> +<div id='d558' class='colors'> +gray53</div> +<div id='d559' class='colors'> +grey53</div> +<div id='d560' class='colors'> +gray52</div> +<div id='d561' class='colors'> +grey52</div> +<div id='d562' class='colors'> +gray51</div> +<div id='d563' class='colors'> +grey51</div> +<div id='d564' class='colors'> +fractal</div> +<div id='d565' class='colors'> +gray50</div> +<div id='d566' class='colors'> +grey50</div> +<div id='d567' class='colors'> +gray</div> +<div id='d568' class='colors'> +gray49</div> +<div id='d569' class='colors'> +grey49</div> +<div id='d570' class='colors'> +gray48</div> +<div id='d571' class='colors'> +grey48</div> +<div id='d572' class='colors'> +gray47</div> +<div id='d573' class='colors'> +grey47</div> +<div id='d574' class='colors'> +gray46</div> +<div id='d575' class='colors'> +grey46</div> +<div id='d576' class='colors'> +gray45</div> +<div id='d577' class='colors'> +grey45</div> +<div id='d578' class='colors'> +gray44</div> +<div id='d579' class='colors'> +grey44</div> +<div id='d580' class='colors'> +gray43</div> +<div id='d581' class='colors'> +grey43</div> +<div id='d582' class='colors'> +gray42</div> +<div id='d583' class='colors'> +grey42</div> +<div id='d584' class='colors'> +DimGray</div> +<div id='d585' class='colors'> +DimGrey</div> +<div id='d586' class='colors'> +gray41</div> +<div id='d587' class='colors'> +grey41</div> +<div id='d588' class='colors'> +gray40</div> +<div id='d589' class='colors'> +grey40</div> +<div id='d590' class='colors'> +gray39</div> +<div id='d591' class='colors'> +grey39</div> +<div id='d592' class='colors'> +gray38</div> +<div id='d593' class='colors'> +grey38</div> +<div id='d594' class='colors'> +gray37</div> +<div id='d595' class='colors'> +grey37</div> +<div id='d596' class='colors'> +gray36</div> +<div id='d597' class='colors'> +grey36</div> +<div id='d598' class='colors'> +gray35</div> +<div id='d599' class='colors'> +grey35</div> +<div id='d600' class='colors'> +gray34</div> +<div id='d601' class='colors'> +grey34</div> +<div id='d602' class='colors'> +gray33</div> +<div id='d603' class='colors'> +grey33</div> +<div id='d604' class='colors'> +gray32</div> +<div id='d605' class='colors'> +grey32</div> +<div id='d606' class='colors'> +gray31</div> +<div id='d607' class='colors'> +grey31</div> +<div id='d608' class='colors'> +gray30</div> +<div id='d609' class='colors'> +grey30</div> +<div id='d610' class='colors'> +gray29</div> +<div id='d611' class='colors'> +grey29</div> +<div id='d612' class='colors'> +gray28</div> +<div id='d613' class='colors'> +grey28</div> +<div id='d614' class='colors'> +gray27</div> +<div id='d615' class='colors'> +grey27</div> +<div id='d616' class='colors'> +gray26</div> +<div id='d617' class='colors'> +grey26</div> +<div id='d618' class='colors'> +gray25</div> +<div id='d619' class='colors'> +grey25</div> +<div id='d620' class='colors'> +gray24</div> +<div id='d621' class='colors'> +grey24</div> +<div id='d622' class='colors'> +gray23</div> +<div id='d623' class='colors'> +grey23</div> +<div id='d624' class='colors'> +gray22</div> +<div id='d625' class='colors'> +grey22</div> +<div id='d626' class='colors'> +gray21</div> +<div id='d627' class='colors'> +grey21</div> +<div id='d628' class='colors'> +gray20</div> +<div id='d629' class='colors'> +grey20</div> +<div id='d630' class='colors'> +gray19</div> +<div id='d631' class='colors'> +grey19</div> +<div id='d632' class='colors'> +gray18</div> +<div id='d633' class='colors'> +grey18</div> +<div id='d634' class='colors'> +gray17</div> +<div id='d635' class='colors'> +grey17</div> +<div id='d636' class='colors'> +gray16</div> +<div id='d637' class='colors'> +grey16</div> +<div id='d638' class='colors'> +gray15</div> +<div id='d639' class='colors'> +grey15</div> +<div id='d640' class='colors'> +gray14</div> +<div id='d641' class='colors'> +grey14</div> +<div id='d642' class='colors'> +gray13</div> +<div id='d643' class='colors'> +grey13</div> +<div id='d644' class='colors'> +gray12</div> +<div id='d645' class='colors'> +grey12</div> +<div id='d646' class='colors'> +gray11</div> +<div id='d647' class='colors'> +grey11</div> +<div id='d648' class='colors'> +gray10</div> +<div id='d649' class='colors'> +grey10</div> +<div id='d650' class='colors'> +gray9</div> +<div id='d651' class='colors'> +grey9</div> +<div id='d652' class='colors'> +gray8</div> +<div id='d653' class='colors'> +grey8</div> +<div id='d654' class='colors'> +gray7</div> +<div id='d655' class='colors'> +grey7</div> +<div id='d656' class='colors'> +gray6</div> +<div id='d657' class='colors'> +grey6</div> +<div id='d658' class='colors'> +gray5</div> +<div id='d659' class='colors'> +grey5</div> +<div id='d660' class='colors'> +gray4</div> +<div id='d661' class='colors'> +grey4</div> +<div id='d662' class='colors'> +gray3</div> +<div id='d663' class='colors'> +grey3</div> +<div id='d664' class='colors'> +gray2</div> +<div id='d665' class='colors'> +grey2</div> +<div id='d666' class='colors'> +gray1</div> +<div id='d667' class='colors'> +grey1</div> +<div id='d668' class='colors'> +black</div> +<div id='d669' class='colors'> +gray0</div> +<div id='d670' class='colors'> +grey0</div> +<div id='d671' class='colors'> +opaque</div> +<div id='d672' class='colors'> +none</div> +<div id='d673' class='colors'> +transparent</div> +</div> + +<div id='colornames'> +WHERE THE COLORNAMES WILL GO +</div> + +<div id='hexswitch'>CLICK TO SHOW HEXES</div> +<div id='infoswitch'>CLICK TO SHOW INFO</div> +<input id='namespace' type='text'></input> +<script type='text/javascript' src='js/jquery-1.6.4.min.js'></script> +<script type='text/javascript' src='js/colordict.js'></script> + +<script type='text/javascript'> +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newwidth = goldenize(result) + widthval = newwidth.toString()+'px' + $(idandselectr).css('width', widthval) + } +makegolden('.colors', 'height') + +//threewayselector for what goes in the divs +infostate = 1 +function switchinfo() + { + if(infostate == 0) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(divtoname[divlist[i]]) + }; + infostate = 1 + } + else if(infostate == 1) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html("") + }; + infostate = 2 + } + else if(infostate == 2) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(nametohex[divtoname[divlist[i]]]) + }; + infostate = 0 + } + } + +$('#infoswitch').click(function(){switchinfo()}) + +//takes a div name and returns a colorname + +function showcolorname(divstr) + + { + colorname = divtoname['#'+divstr] + hex = nametohex[colorname] + imname = hextoname[hex] + if (hexes == true) + { + imname = hex + } + return imname + } +function bigname(divstr) + { + colorname = showcolorname(divstr) + $('#colornames').html(colorname) + } +function writeit(text) + { + $('#colornames').append(text) + } +function makebig(divstr) + { + firstheight = $('#'+divstr).height() + newheight = goldenize(goldenize(firstheight)) + $('#'+divstr).height(newheight) + } +function makesmall(divstr) + { + oldheight = $('.colors').height() + $('#'+divstr).height(oldheight) + } +var choice; +$('.colors').hover(function() { + bigname(this.id); +// makebig(this.id); +// makegolden('#'+this.id, 'height')}, +//function(){ +// makesmall(this.id); +// makegolden('#'+this.id, 'height') +}); +$('.colors').mouseover(function(){ + if(this.id != 'd0'){ + makebig(this.id); + makegolden('#'+this.id, 'height') + }}) +$('.colors').mouseout(function(){ + makesmall(this.id); + makegolden('#'+this.id,'height'); + }) +$(".colors").hover(function(){ +$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); + }); +$('body').css('background-color', 'black') +$('.colors').css('margin-top', '2px') +var hexes = false +function hexswitch() + { + if(hexes == false) + { + $('#hexswitch').html('CLICK TO SHOW COLOR NAMES') + hexes = true; + } + + else + { + $('#hexswitch').html('CLICK TO SHOW HEX NAMES') + hexes = false; + } + } +$('#hexswitch').click(function(){hexswitch()}) + +$('.colors').click(function(){ + putitin() + }) + +function putitin() + { + $('#namespace').val($('#colornames').html()) + } + +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/junk/divlist.js b/frontend/imgrid/colors/junk/divlist.js new file mode 100755 index 0000000..49ee990 --- /dev/null +++ b/frontend/imgrid/colors/junk/divlist.js @@ -0,0 +1,2 @@ +var divlist = ['#d0', '#d1', '#d2', '#d3', '#d4', '#d5', '#d6', '#d7', '#d8', '#d9', '#d10', '#d11', '#d12', '#d13', '#d14', '#d15', '#d16', '#d17', '#d18', '#d19', '#d20', '#d21', '#d22', '#d23', '#d24', '#d25', '#d26', '#d27', '#d28', '#d29', '#d30', '#d31', '#d32', '#d33', '#d34', '#d35', '#d36', '#d37', '#d38', '#d39', '#d40', '#d41', '#d42', '#d43', '#d44', '#d45', '#d46', '#d47', '#d48', '#d49', '#d50', '#d51', '#d52', '#d53', '#d54', '#d55', '#d56', '#d57', '#d58', '#d59', '#d60', '#d61', '#d62', '#d63', '#d64', '#d65', '#d66', '#d67', '#d68', '#d69', '#d70', '#d71', '#d72', '#d73', '#d74', '#d75', '#d76', '#d77', '#d78', '#d79', '#d80', '#d81', '#d82', '#d83', '#d84', '#d85', '#d86', '#d87', '#d88', '#d89', '#d90', '#d91', '#d92', '#d93', '#d94', '#d95', '#d96', '#d97', '#d98', '#d99', '#d100', '#d101', '#d102', '#d103', '#d104', '#d105', '#d106', '#d107', '#d108', '#d109', '#d110', '#d111', '#d112', '#d113', '#d114', '#d115', '#d116', '#d117', '#d118', '#d119', '#d120', '#d121', '#d122', '#d123', '#d124', '#d125', '#d126', '#d127', '#d128', '#d129', '#d130', '#d131', '#d132', '#d133', '#d134', '#d135', '#d136', '#d137', '#d138', '#d139', '#d140', '#d141', '#d142', '#d143', '#d144', '#d145', '#d146', '#d147', '#d148', '#d149', '#d150', '#d151', '#d152', '#d153', '#d154', '#d155', '#d156', '#d157', '#d158', '#d159', '#d160', '#d161', '#d162', '#d163', '#d164', '#d165', '#d166', '#d167', '#d168', '#d169', '#d170', '#d171', '#d172', '#d173', '#d174', '#d175', '#d176', '#d177', '#d178', '#d179', '#d180', '#d181', '#d182', '#d183', '#d184', '#d185', '#d186', '#d187', '#d188', '#d189', '#d190', '#d191', '#d192', '#d193', '#d194', '#d195', '#d196', '#d197', '#d198', '#d199', '#d200', '#d201', '#d202', '#d203', '#d204', '#d205', '#d206', '#d207', '#d208', '#d209', '#d210', '#d211', '#d212', '#d213', '#d214', '#d215', '#d216', '#d217', '#d218', '#d219', '#d220', '#d221', '#d222', '#d223', '#d224', '#d225', '#d226', '#d227', '#d228', '#d229', '#d230', '#d231', '#d232', '#d233', '#d234', '#d235', '#d236', '#d237', '#d238', '#d239', '#d240', '#d241', '#d242', '#d243', '#d244', '#d245', '#d246', '#d247', '#d248', '#d249', '#d250', '#d251', '#d252', '#d253', '#d254', '#d255', '#d256', '#d257', '#d258', '#d259', '#d260', '#d261', '#d262', '#d263', '#d264', '#d265', '#d266', '#d267', '#d268', '#d269', '#d270', '#d271', '#d272', '#d273', '#d274', '#d275', '#d276', '#d277', '#d278', '#d279', '#d280', '#d281', '#d282', '#d283', '#d284', '#d285', '#d286', '#d287', '#d288', '#d289', '#d290', '#d291', '#d292', '#d293', '#d294', '#d295', '#d296', '#d297', '#d298', '#d299', '#d300', '#d301', '#d302', '#d303', '#d304', '#d305', '#d306', '#d307', '#d308', '#d309', '#d310', '#d311', '#d312', '#d313', '#d314', '#d315', '#d316', '#d317', '#d318', '#d319', '#d320', '#d321', '#d322', '#d323', '#d324', '#d325', '#d326', '#d327', '#d328', '#d329', '#d330', '#d331', '#d332', '#d333', '#d334', '#d335', '#d336', '#d337', '#d338', '#d339', '#d340', '#d341', '#d342', '#d343', '#d344', '#d345', '#d346', '#d347', '#d348', '#d349', '#d350', '#d351', '#d352', '#d353', '#d354', '#d355', '#d356', '#d357', '#d358', '#d359', '#d360', '#d361', '#d362', '#d363', '#d364', '#d365', '#d366', '#d367', '#d368', '#d369', '#d370', '#d371', '#d372', '#d373', '#d374', '#d375', '#d376', '#d377', '#d378', '#d379', '#d380', '#d381', '#d382', '#d383', '#d384', '#d385', '#d386', '#d387', '#d388', '#d389', '#d390', '#d391', '#d392', '#d393', '#d394', '#d395', '#d396', '#d397', '#d398', '#d399', '#d400', '#d401', '#d402', '#d403', '#d404', '#d405', '#d406', '#d407', '#d408', '#d409', '#d410', '#d411', '#d412', '#d413', '#d414', '#d415', '#d416', '#d417', '#d418', '#d419', '#d420', '#d421', '#d422', '#d423', '#d424', '#d425', '#d426', '#d427', '#d428', '#d429', '#d430', '#d431', '#d432', '#d433', '#d434', '#d435', '#d436', '#d437', '#d438', '#d439', '#d440', '#d441', '#d442', '#d443', '#d444', '#d445', '#d446', '#d447', '#d448', '#d449', '#d450', '#d451', '#d452', '#d453', '#d454', '#d455', '#d456', '#d457', '#d458', '#d459', '#d460', '#d461', '#d462', '#d463', '#d464', '#d465', '#d466', '#d467', '#d468', '#d469', '#d470', '#d471', '#d472', '#d473', '#d474', '#d475', '#d476', '#d477', '#d478', '#d479', '#d480', '#d481', '#d482', '#d483', '#d484', '#d485', '#d486', '#d487', '#d488', '#d489', '#d490', '#d491', '#d492', '#d493', '#d494', '#d495', '#d496', '#d497', '#d498', '#d499', '#d500', '#d501', '#d502', '#d503', '#d504', '#d505', '#d506', '#d507', '#d508', '#d509', '#d510', '#d511', '#d512', '#d513', '#d514', '#d515', '#d516', '#d517', '#d518', '#d519', '#d520', '#d521', '#d522', '#d523', '#d524', '#d525', '#d526', '#d527', '#d528', '#d529', '#d530', '#d531', '#d532', '#d533', '#d534', '#d535', '#d536', '#d537', '#d538', '#d539', '#d540', '#d541', '#d542', '#d543', '#d544', '#d545', '#d546', '#d547', '#d548', '#d549', '#d550', '#d551', '#d552', '#d553', '#d554', '#d555', '#d556', '#d557', '#d558', '#d559', '#d560', '#d561', '#d562', '#d563', '#d564', '#d565', '#d566', '#d567', '#d568', '#d569', '#d570', '#d571', '#d572', '#d573', '#d574', '#d575', '#d576', '#d577', '#d578', '#d579', '#d580', '#d581', '#d582', '#d583', '#d584', '#d585', '#d586', '#d587', '#d588', '#d589', '#d590', '#d591', '#d592', '#d593', '#d594', '#d595', '#d596', '#d597', '#d598', '#d599', '#d600', '#d601', '#d602', '#d603', '#d604', '#d605', '#d606', '#d607', '#d608', '#d609', '#d610', '#d611', '#d612', '#d613', '#d614', '#d615', '#d616', '#d617', '#d618', '#d619', '#d620', '#d621', '#d622', '#d623', '#d624', '#d625', '#d626', '#d627', '#d628', '#d629', '#d630', '#d631', '#d632', '#d633', '#d634', '#d635', '#d636', '#d637', '#d638', '#d639', '#d640', '#d641', '#d642', '#d643', '#d644', '#d645', '#d646', '#d647', '#d648', '#d649', '#d650', '#d651', '#d652', '#d653', '#d654', '#d655', '#d656', '#d657', '#d658', '#d659', '#d660', '#d661', '#d662', '#d663', '#d664', '#d665', '#d666', '#d667', '#d668', '#d669', '#d670', '#d671', '#d672', '#d673'] +var divtoname = {'#d322': 'khaki4', '#d600': 'gray34', '#d118': 'MediumPurple1', '#d119': 'MediumPurple2', '#d114': 'purple3', '#d115': 'purple4', '#d116': 'purple1', '#d117': 'MediumPurple', '#d110': 'purple', '#d111': 'indigo', '#d112': 'BlueViolet', '#d113': 'purple2', '#d529': 'grey67', '#d231': 'DarkSlateGray', '#d339': 'LightGoldenrod3', '#d233': 'MediumTurquoise', '#d232': 'DarkSlateGrey', '#d235': 'turquoise', '#d234': 'LightSeaGreen', '#d237': 'aquamarine', '#d236': 'aquamarine4', '#d239': 'aquamarine2', '#d238': 'aquamarine1', '#d332': 'gold1', '#d333': 'gold2', '#d334': 'gold3', '#d335': 'gold4', '#d336': 'LightGoldenrod', '#d337': 'LightGoldenrod4', '#d424': 'LightSalmon3', '#d425': 'LightSalmon', '#d426': 'LightSalmon1', '#d427': 'LightSalmon4', '#d420': 'sienna', '#d421': 'sienna1', '#d422': 'sienna2', '#d423': 'sienna3', '#d587': 'grey41', '#d586': 'gray41', '#d585': 'DimGrey', '#d584': 'DimGray', '#d428': 'LightSalmon2', '#d429': 'coral', '#d581': 'grey43', '#d580': 'gray43', '#d89': 'thistle4', '#d88': 'plum3', '#d349': 'goldenrod4', '#d348': 'goldenrod3', '#d81': 'thistle2', '#d80': 'thistle1', '#d83': 'plum2', '#d82': 'plum1', '#d85': 'thistle3', '#d84': 'thistle', '#d87': 'violet', '#d86': 'plum', '#d601': 'grey34', '#d67': 'DeepPink3', '#d66': 'DeepPink2', '#d65': 'DeepPink1', '#d64': 'DeepPink', '#d63': 'HotPink', '#d62': 'HotPink4', '#d61': 'HotPink1', '#d60': 'HotPink2', '#d69': 'maroon1', '#d68': 'DeepPink4', '#d510': 'grey76', '#d511': 'silver', '#d512': 'gray75', '#d513': 'grey75', '#d514': 'gray74', '#d515': 'grey74', '#d516': 'gray73', '#d517': 'grey73', '#d518': 'gray72', '#d519': 'grey72', '#d150': 'LightSteelBlue2', '#d151': 'LightSteelBlue3', '#d152': 'LightSteelBlue4', '#d153': 'SlateGray4', '#d154': 'SlateGray1', '#d155': 'SlateGray2', '#d156': 'SlateGray3', '#d157': 'LightSlateGray', '#d158': 'LightSlateGrey', '#d159': 'SlateGray', '#d565': 'gray50', '#d564': 'fractal', '#d567': 'gray', '#d566': 'grey50', '#d561': 'grey52', '#d560': 'gray52', '#d563': 'grey51', '#d562': 'gray51', '#d604': 'gray32', '#d605': 'grey32', '#d606': 'gray31', '#d607': 'grey31', '#d569': 'grey49', '#d568': 'gray49', '#d602': 'gray33', '#d603': 'grey33', '#d125': 'SlateBlue', '#d124': 'MediumSlateBlue', '#d127': 'SlateBlue2', '#d126': 'SlateBlue1', '#d121': 'MediumPurple4', '#d120': 'MediumPurple3', '#d123': 'LightSlateBlue', '#d122': 'DarkSlateBlue', '#d359': 'wheat1', '#d129': 'SlateBlue4', '#d128': 'SlateBlue3', '#d301': 'LightYellow', '#d300': 'ivory1', '#d303': 'beige', '#d302': 'LightYellow1', '#d305': 'LightGoldenrodYellow', '#d304': 'ivory2', '#d307': 'ivory3', '#d306': 'LightYellow2', '#d309': 'ivory4', '#d308': 'LightYellow3', '#d462': 'grey98', '#d351': 'DarkGoldenrod1', '#d464': 'grey97', '#d465': 'gray96', '#d466': 'grey96', '#d467': 'WhiteSmoke', '#d463': 'gray97', '#d268': 'PaleGreen3', '#d269': 'honeydew4', '#d266': 'DarkSeaGreen3', '#d267': 'DarkSeaGreen', '#d264': 'LightGreen', '#d265': 'PaleGreen2', '#d262': 'PaleGreen', '#d263': 'honeydew3', '#d260': 'DarkSeaGreen2', '#d261': 'PaleGreen1', '#d598': 'gray35', '#d29': 'firebrick4', '#d28': 'brown4', '#d23': 'red2', '#d22': 'firebrick3', '#d21': 'RosyBrown4', '#d20': 'red1', '#d27': 'IndianRed4', '#d26': 'red3', '#d25': 'brown', '#d24': 'firebrick', '#d599': 'grey35', '#d338': 'LightGoldenrod1', '#d419': 'sienna4', '#d418': 'seashell1', '#d230': 'teal', '#d415': 'chocolate4', '#d414': 'chocolate3', '#d417': 'seashell', '#d416': 'SaddleBrown', '#d411': 'chocolate', '#d410': 'seashell3', '#d413': 'chocolate2', '#d412': 'chocolate1', '#d398': 'tan1', '#d399': 'tan2', '#d392': 'DarkOrange1', '#d393': 'linen', '#d390': 'bisque1', '#d391': 'bisque3', '#d396': 'DarkOrange4', '#d397': 'peru', '#d394': 'DarkOrange2', '#d395': 'DarkOrange3', '#d194': 'CadetBlue2', '#d195': 'CadetBlue3', '#d196': 'CadetBlue4', '#d197': 'turquoise1', '#d190': 'LightBlue', '#d191': 'LightBlue4', '#d192': 'PowderBlue', '#d193': 'CadetBlue1', '#d198': 'turquoise2', '#d199': 'turquoise3', '#d330': 'cornsilk4', '#d331': 'gold', '#d640': 'gray14', '#d641': 'grey14', '#d642': 'gray13', '#d643': 'grey13', '#d644': 'gray12', '#d645': 'grey12', '#d646': 'gray11', '#d647': 'grey11', '#d648': 'gray10', '#d649': 'grey10', '#d668': 'black', '#d486': 'gainsboro', '#d487': 'gray86', '#d484': 'gray87', '#d485': 'grey87', '#d482': 'gray88', '#d483': 'grey88', '#d480': 'gray89', '#d481': 'grey89', '#d521': 'grey71', '#d520': 'gray71', '#d523': 'grey70', '#d522': 'gray70', '#d525': 'grey69', '#d524': 'gray69', '#d488': 'grey86', '#d489': 'gray85', '#d430': 'OrangeRed', '#d660': 'gray4', '#d169': 'SteelBlue1', '#d168': 'SteelBlue', '#d661': 'grey4', '#d161': 'DodgerBlue', '#d160': 'SlateGrey', '#d163': 'DodgerBlue2', '#d162': 'DodgerBlue1', '#d165': 'DodgerBlue3', '#d164': 'DodgerBlue4', '#d167': 'SteelBlue4', '#d166': 'AliceBlue', '#d635': 'grey17', '#d634': 'gray17', '#d637': 'grey16', '#d636': 'gray16', '#d631': 'grey19', '#d630': 'gray19', '#d633': 'grey18', '#d632': 'gray18', '#d639': 'grey15', '#d638': 'gray15', '#d368': 'PapayaWhip', '#d222': 'cyan', '#d223': 'cyan1', '#d220': 'LightCyan4', '#d221': 'aqua', '#d226': 'DarkSlateGray4', '#d227': 'cyan3', '#d224': 'PaleTurquoise4', '#d225': 'cyan2', '#d228': 'cyan4', '#d229': 'DarkCyan', '#d590': 'gray39', '#d538': 'gray63', '#d539': 'grey63', '#d591': 'grey39', '#d451': 'MistyRose', '#d450': 'MistyRose2', '#d453': 'salmon', '#d452': 'MistyRose1', '#d455': 'white', '#d454': 'MistyRose3', '#d457': 'grey100', '#d456': 'gray100', '#d459': 'gray99', '#d458': 'grey100', '#d592': 'gray38', '#d593': 'grey38', '#d594': 'gray37', '#d595': 'grey37', '#d596': 'gray36', '#d597': 'grey36', '#d297': 'YellowGreen', '#d296': 'OliveDrab3', '#d295': 'OliveDrab2', '#d294': 'OliveDrab1', '#d293': 'OliveDrab', '#d292': 'DarkOliveGreen', '#d291': 'DarkOliveGreen4', '#d290': 'DarkOliveGreen2', '#d356': 'wheat2', '#d357': 'OldLace', '#d354': 'DarkGoldenrod4', '#d355': 'FloralWhite', '#d352': 'DarkGoldenrod2', '#d353': 'DarkGoldenrod3', '#d299': 'ivory', '#d298': 'OliveDrab4', '#d468': 'gray95', '#d534': 'gray65', '#d535': 'grey65', '#d52': 'LavenderBlush2', '#d53': 'LavenderBlush4', '#d50': 'LavenderBlush1', '#d51': 'LavenderBlush3', '#d56': 'VioletRed3', '#d57': 'VioletRed1', '#d54': 'maroon', '#d55': 'HotPink3', '#d58': 'VioletRed2', '#d59': 'VioletRed4', '#d469': 'grey95', '#d558': 'gray53', '#d559': 'grey53', '#d576': 'gray45', '#d577': 'grey45', '#d574': 'gray46', '#d575': 'grey46', '#d572': 'gray47', '#d573': 'grey47', '#d570': 'gray48', '#d571': 'grey48', '#d671': 'opaque', '#d670': 'grey0', '#d673': 'transparent', '#d672': 'none', '#d578': 'gray44', '#d579': 'grey44', '#d589': 'grey40', '#d588': 'gray40', '#d4': 'RosyBrown2', '#d5': 'snow3', '#d6': 'LightCoral', '#d7': 'IndianRed1', '#d0': 'snow', '#d1': 'snow1', '#d2': 'snow2', '#d3': 'RosyBrown1', '#d8': 'RosyBrown3', '#d9': 'IndianRed2', '#d136': 'MediumBlue', '#d137': 'blue4', '#d134': 'blue2', '#d135': 'blue3', '#d132': 'blue', '#d133': 'blue1', '#d130': 'GhostWhite', '#d131': 'lavender', '#d583': 'grey42', '#d138': 'DarkBlue', '#d139': 'MidnightBlue', '#d312': 'yellow1', '#d313': 'yellow2', '#d310': 'LightYellow4', '#d311': 'yellow', '#d316': 'olive', '#d317': 'DarkKhaki', '#d314': 'yellow3', '#d315': 'yellow4', '#d318': 'khaki2', '#d319': 'LemonChiffon4', '#d259': 'DarkSeaGreen1', '#d258': 'honeydew2', '#d253': 'SeaGreen4', '#d252': 'SeaGreen1', '#d251': 'SeaGreen3', '#d250': 'SeaGreen', '#d257': 'honeydew1', '#d256': 'honeydew', '#d255': 'MediumForestGreen', '#d254': 'SeaGreen2', '#d345': 'goldenrod', '#d344': 'cornsilk1', '#d612': 'gray28', '#d347': 'goldenrod2', '#d461': 'gray98', '#d346': 'goldenrod1', '#d479': 'grey90', '#d341': 'cornsilk3', '#d478': 'gray90', '#d340': 'LightGoldenrod2', '#d343': 'cornsilk', '#d342': 'cornsilk2', '#d528': 'gray67', '#d408': 'seashell4', '#d409': 'seashell2', '#d406': 'PeachPuff3', '#d407': 'SandyBrown', '#d404': 'PeachPuff4', '#d405': 'PeachPuff2', '#d402': 'PeachPuff', '#d403': 'PeachPuff1', '#d400': 'tan3', '#d401': 'tan4', '#d552': 'gray56', '#d460': 'grey99', '#d16': 'firebrick2', '#d17': 'snow4', '#d14': 'IndianRed', '#d15': 'IndianRed3', '#d12': 'firebrick1', '#d13': 'brown2', '#d10': 'RosyBrown', '#d11': 'brown1', '#d532': 'gray66', '#d533': 'grey66', '#d530': 'DarkGray', '#d531': 'DarkGrey', '#d536': 'gray64', '#d537': 'grey64', '#d18': 'brown3', '#d19': 'red', '#d329': 'MediumGoldenRod', '#d328': 'LemonChiffon2', '#d178': 'LightSkyBlue1', '#d179': 'LightSkyBlue2', '#d172': 'SkyBlue4', '#d173': 'SkyBlue1', '#d170': 'SteelBlue2', '#d171': 'SteelBlue3', '#d176': 'LightSkyBlue', '#d177': 'LightSkyBlue4', '#d174': 'SkyBlue2', '#d175': 'SkyBlue3', '#d626': 'gray21', '#d627': 'grey21', '#d624': 'gray22', '#d625': 'grey22', '#d622': 'gray23', '#d623': 'grey23', '#d620': 'gray24', '#d621': 'grey24', '#d628': 'gray20', '#d629': 'grey20', '#d219': 'azure4', '#d218': 'DarkSlateGray3', '#d217': 'PaleTurquoise3', '#d216': 'DarkSlateGray2', '#d215': 'LightCyan3', '#d214': 'azure3', '#d213': 'DarkSlateGray1', '#d212': 'PaleTurquoise2', '#d211': 'PaleTurquoise', '#d210': 'PaleTurquoise1', '#d669': 'gray0', '#d582': 'gray42', '#d442': 'coral3', '#d443': 'coral4', '#d440': 'coral1', '#d441': 'coral2', '#d446': 'tomato1', '#d447': 'tomato2', '#d444': 'tomato4', '#d445': 'tomato', '#d448': 'tomato3', '#d449': 'MistyRose4', '#d280': 'DarkGreen', '#d281': 'LawnGreen', '#d282': 'chartreuse', '#d283': 'chartreuse1', '#d284': 'chartreuse2', '#d285': 'chartreuse3', '#d286': 'chartreuse4', '#d287': 'GreenYellow', '#d288': 'DarkOliveGreen3', '#d289': 'DarkOliveGreen1', '#d361': 'orange', '#d360': 'wheat3', '#d367': 'moccasin', '#d366': 'wheat4', '#d365': 'orange4', '#d364': 'orange3', '#d49': 'LavenderBlush', '#d48': 'PaleVioletRed3', '#d45': 'PaleVioletRed', '#d44': 'PaleVioletRed4', '#d47': 'PaleVioletRed1', '#d46': 'PaleVioletRed2', '#d41': 'pink2', '#d40': 'pink1', '#d43': 'pink4', '#d42': 'pink3', '#d358': 'wheat', '#d527': 'grey68', '#d526': 'gray68', '#d614': 'gray27', '#d543': 'grey61', '#d542': 'gray61', '#d541': 'grey62', '#d540': 'gray62', '#d547': 'grey59', '#d546': 'gray59', '#d545': 'grey60', '#d544': 'gray60', '#d662': 'gray3', '#d663': 'grey3', '#d549': 'grey58', '#d548': 'gray58', '#d666': 'gray1', '#d667': 'grey1', '#d664': 'gray2', '#d665': 'grey2', '#d103': 'MediumOrchid4', '#d102': 'MediumOrchid3', '#d101': 'MediumOrchid2', '#d100': 'MediumOrchid1', '#d107': 'DarkOrchid3', '#d106': 'DarkOrchid1', '#d105': 'DarkOrchid', '#d104': 'DarkViolet', '#d109': 'DarkOrchid4', '#d108': 'DarkOrchid2', '#d244': 'SpringGreen', '#d245': 'SpringGreen1', '#d246': 'SpringGreen2', '#d247': 'SpringGreen3', '#d240': 'aquamarine3', '#d241': 'MediumAquamarine', '#d242': 'MediumSpringGreen', '#d243': 'MintCream', '#d327': 'LemonChiffon3', '#d326': 'khaki', '#d325': 'LemonChiffon1', '#d324': 'LemonChiffon', '#d248': 'SpringGreen4', '#d249': 'MediumSeaGreen', '#d321': 'khaki3', '#d320': 'khaki1', '#d350': 'DarkGoldenrod', '#d439': 'salmon4', '#d438': 'salmon3', '#d98': 'purple', '#d99': 'MediumOrchid', '#d96': 'DarkMagenta', '#d97': 'magenta4', '#d94': 'magenta2', '#d95': 'magenta3', '#d92': 'magenta1', '#d93': 'plum4', '#d90': 'fuchsia', '#d91': 'magenta', '#d433': 'OrangeRed3', '#d432': 'OrangeRed2', '#d431': 'OrangeRed1', '#d74': 'VioletRed', '#d75': 'orchid2', '#d76': 'orchid', '#d77': 'orchid1', '#d70': 'maroon2', '#d71': 'maroon3', '#d72': 'maroon4', '#d73': 'MediumVioletRed', '#d437': 'salmon2', '#d78': 'orchid3', '#d79': 'orchid4', '#d436': 'salmon1', '#d435': 'DarkSalmon', '#d434': 'OrangeRed4', '#d507': 'gray77', '#d506': 'grey78', '#d505': 'gray78', '#d504': 'grey79', '#d503': 'gray79', '#d502': 'grey80', '#d501': 'gray80', '#d500': 'grey81', '#d509': 'gray76', '#d508': 'grey77', '#d473': 'grey93', '#d369': 'NavajoWhite3', '#d147': 'CornflowerBlue', '#d146': 'RoyalBlue4', '#d145': 'RoyalBlue3', '#d144': 'RoyalBlue2', '#d143': 'RoyalBlue1', '#d142': 'RoyalBlue', '#d141': 'NavyBlue', '#d140': 'navy', '#d149': 'LightSteelBlue1', '#d148': 'LightSteelBlue', '#d472': 'gray93', '#d613': 'grey28', '#d363': 'orange2', '#d611': 'grey29', '#d610': 'gray29', '#d617': 'grey26', '#d616': 'gray26', '#d615': 'grey27', '#d362': 'orange1', '#d619': 'grey25', '#d618': 'gray25', '#d208': 'azure2', '#d209': 'LightCyan2', '#d200': 'turquoise4', '#d201': 'cadet blue', '#d202': 'CadetBlue', '#d203': 'DarkTurquoise', '#d204': 'azure', '#d205': 'azure1', '#d206': 'LightCyan', '#d207': 'LightCyan1', '#d608': 'gray30', '#d609': 'grey30', '#d374': 'NavajoWhite4', '#d375': 'AntiqueWhite4', '#d376': 'AntiqueWhite', '#d377': 'tan', '#d370': 'BlanchedAlmond', '#d371': 'NavajoWhite', '#d372': 'NavajoWhite1', '#d373': 'NavajoWhite2', '#d477': 'grey91', '#d476': 'gray91', '#d475': 'grey92', '#d474': 'gray92', '#d378': 'bisque4', '#d379': 'burlywood', '#d471': 'grey94', '#d470': 'gray94', '#d279': 'green', '#d278': 'green4', '#d275': 'PaleGreen4', '#d274': 'green2', '#d277': 'ForestGreen', '#d276': 'green3', '#d271': 'lime', '#d270': 'green1', '#d273': 'DarkSeaGreen4', '#d272': 'LimeGreen', '#d38': 'pink', '#d39': 'crimson', '#d30': 'DarkRed', '#d31': 'red4', '#d32': 'maroon', '#d33': 'LightPink1', '#d34': 'LightPink3', '#d35': 'LightPink4', '#d36': 'LightPink2', '#d37': 'LightPink', '#d658': 'gray5', '#d389': 'bisque', '#d388': 'bisque2', '#d381': 'burlywood1', '#d380': 'AntiqueWhite2', '#d383': 'burlywood2', '#d382': 'burlywood3', '#d385': 'burlywood4', '#d384': 'AntiqueWhite1', '#d387': 'DarkOrange', '#d386': 'AntiqueWhite3', '#d189': 'LightBlue2', '#d188': 'LightBlue1', '#d183': 'DeepSkyBlue', '#d182': 'LightBlue3', '#d181': 'SkyBlue', '#d180': 'LightSkyBlue3', '#d187': 'DeepSkyBlue3', '#d186': 'DeepSkyBlue4', '#d185': 'DeepSkyBlue2', '#d184': 'DeepSkyBlue1', '#d657': 'grey6', '#d656': 'gray6', '#d655': 'grey7', '#d654': 'gray7', '#d653': 'grey8', '#d652': 'gray8', '#d651': 'grey9', '#d650': 'gray9', '#d550': 'gray57', '#d659': 'grey5', '#d551': 'grey57', '#d495': 'LightGray', '#d494': 'grey83', '#d497': 'gray82', '#d496': 'LightGrey', '#d491': 'gray84', '#d490': 'grey85', '#d493': 'gray83', '#d492': 'grey84', '#d554': 'gray55', '#d555': 'grey55', '#d556': 'gray54', '#d557': 'grey54', '#d499': 'gray81', '#d498': 'grey82', '#d323': 'PaleGoldenrod', '#d553': 'grey56'}
\ No newline at end of file diff --git a/frontend/imgrid/colors/junk/divlistmaker b/frontend/imgrid/colors/junk/divlistmaker new file mode 100755 index 0000000..b461bc9 --- /dev/null +++ b/frontend/imgrid/colors/junk/divlistmaker @@ -0,0 +1,32 @@ +#!/usr/bin/python2.7 + + + +divlist = [] +for x in range(674): + divlist.append("#d"+str(x)) + +print str(divlist) + +f = open('colordict.js', 'a') + +f.write("var divlist = ") +f.write(str(divlist)) +f.close() + +f = open('colors.html', 'r') +lines = f.readlines() +colornames = [] +for line in lines: + if 'right' in line and 'td' in line: + colornames.append(line[22:-6]) + +divtoname = {} +for i in divlist: + divtoname[i] = colornames[divlist.index(i)] + +print divtoname +f = open('colordict.js', 'a') +f.write("\nvar divtoname = ") +f.write(str(divtoname)) + diff --git a/frontend/imgrid/colors/junk/mapmaker.html b/frontend/imgrid/colors/junk/mapmaker.html new file mode 100755 index 0000000..05ca832 --- /dev/null +++ b/frontend/imgrid/colors/junk/mapmaker.html @@ -0,0 +1,3586 @@ +<html> +<head> + +<style type='text/css'> + +body +{ +max-width:100%; +max-height:100%; +font-family:helvetica; +font-size:2px; +} + + +#container div +{ +display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +height: 4px; +zoom: 1; +*display: inline; +} + +#container +{ +margin:0 auto; +width:30px; +padding-top:60px; +padding-bottom:50px; +padding-left:10px; +padding-right:10px; +text-align:center; +} + +#colornames +{ +color:white; +position:fixed; +font-size:50px; +top:50px; +right:60%; +width:400px; +} + +#hexswitch + { + position:fixed; + top:20px; + right:10%; + height:100px; + width:300px; + font-size:20px + border-style: groove; + border-width: 4px; + background-color:goldenrod; + text-align:center; + } +#infoswitch + { + position:fixed; + top: 60px; + right:5%; + font-size:20px + background-color:gray; + text-align:center; + } +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{ +height:30px; +width:10px; +} +</style></head><body> +<div id='container'> +<div id='d0' class='colors'> +snow</div> +<div id='d1' class='colors'> +snow1</div> +<div id='d2' class='colors'> +snow2</div> +<div id='d3' class='colors'> +RosyBrown1</div> +<div id='d4' class='colors'> +RosyBrown2</div> +<div id='d5' class='colors'> +snow3</div> +<div id='d6' class='colors'> +LightCoral</div> +<div id='d7' class='colors'> +IndianRed1</div> +<div id='d8' class='colors'> +RosyBrown3</div> +<div id='d9' class='colors'> +IndianRed2</div> +<div id='d10' class='colors'> +RosyBrown</div> +<div id='d11' class='colors'> +brown1</div> +<div id='d12' class='colors'> +firebrick1</div> +<div id='d13' class='colors'> +brown2</div> +<div id='d14' class='colors'> +IndianRed</div> +<div id='d15' class='colors'> +IndianRed3</div> +<div id='d16' class='colors'> +firebrick2</div> +<div id='d17' class='colors'> +snow4</div> +<div id='d18' class='colors'> +brown3</div> +<div id='d19' class='colors'> +red</div> +<div id='d20' class='colors'> +red1</div> +<div id='d21' class='colors'> +RosyBrown4</div> +<div id='d22' class='colors'> +firebrick3</div> +<div id='d23' class='colors'> +red2</div> +<div id='d24' class='colors'> +firebrick</div> +<div id='d25' class='colors'> +brown</div> +<div id='d26' class='colors'> +red3</div> +<div id='d27' class='colors'> +IndianRed4</div> +<div id='d28' class='colors'> +brown4</div> +<div id='d29' class='colors'> +firebrick4</div> +<div id='d30' class='colors'> +DarkRed</div> +<div id='d31' class='colors'> +red4</div> +<div id='d32' class='colors'> +maroon</div> +<div id='d33' class='colors'> +LightPink1</div> +<div id='d34' class='colors'> +LightPink3</div> +<div id='d35' class='colors'> +LightPink4</div> +<div id='d36' class='colors'> +LightPink2</div> +<div id='d37' class='colors'> +LightPink</div> +<div id='d38' class='colors'> +pink</div> +<div id='d39' class='colors'> +crimson</div> +<div id='d40' class='colors'> +pink1</div> +<div id='d41' class='colors'> +pink2</div> +<div id='d42' class='colors'> +pink3</div> +<div id='d43' class='colors'> +pink4</div> +<div id='d44' class='colors'> +PaleVioletRed4</div> +<div id='d45' class='colors'> +PaleVioletRed</div> +<div id='d46' class='colors'> +PaleVioletRed2</div> +<div id='d47' class='colors'> +PaleVioletRed1</div> +<div id='d48' class='colors'> +PaleVioletRed3</div> +<div id='d49' class='colors'> +LavenderBlush</div> +<div id='d50' class='colors'> +LavenderBlush1</div> +<div id='d51' class='colors'> +LavenderBlush3</div> +<div id='d52' class='colors'> +LavenderBlush2</div> +<div id='d53' class='colors'> +LavenderBlush4</div> +<div id='d54' class='colors'> +maroon</div> +<div id='d55' class='colors'> +HotPink3</div> +<div id='d56' class='colors'> +VioletRed3</div> +<div id='d57' class='colors'> +VioletRed1</div> +<div id='d58' class='colors'> +VioletRed2</div> +<div id='d59' class='colors'> +VioletRed4</div> +<div id='d60' class='colors'> +HotPink2</div> +<div id='d61' class='colors'> +HotPink1</div> +<div id='d62' class='colors'> +HotPink4</div> +<div id='d63' class='colors'> +HotPink</div> +<div id='d64' class='colors'> +DeepPink</div> +<div id='d65' class='colors'> +DeepPink1</div> +<div id='d66' class='colors'> +DeepPink2</div> +<div id='d67' class='colors'> +DeepPink3</div> +<div id='d68' class='colors'> +DeepPink4</div> +<div id='d69' class='colors'> +maroon1</div> +<div id='d70' class='colors'> +maroon2</div> +<div id='d71' class='colors'> +maroon3</div> +<div id='d72' class='colors'> +maroon4</div> +<div id='d73' class='colors'> +MediumVioletRed</div> +<div id='d74' class='colors'> +VioletRed</div> +<div id='d75' class='colors'> +orchid2</div> +<div id='d76' class='colors'> +orchid</div> +<div id='d77' class='colors'> +orchid1</div> +<div id='d78' class='colors'> +orchid3</div> +<div id='d79' class='colors'> +orchid4</div> +<div id='d80' class='colors'> +thistle1</div> +<div id='d81' class='colors'> +thistle2</div> +<div id='d82' class='colors'> +plum1</div> +<div id='d83' class='colors'> +plum2</div> +<div id='d84' class='colors'> +thistle</div> +<div id='d85' class='colors'> +thistle3</div> +<div id='d86' class='colors'> +plum</div> +<div id='d87' class='colors'> +violet</div> +<div id='d88' class='colors'> +plum3</div> +<div id='d89' class='colors'> +thistle4</div> +<div id='d90' class='colors'> +fuchsia</div> +<div id='d91' class='colors'> +magenta</div> +<div id='d92' class='colors'> +magenta1</div> +<div id='d93' class='colors'> +plum4</div> +<div id='d94' class='colors'> +magenta2</div> +<div id='d95' class='colors'> +magenta3</div> +<div id='d96' class='colors'> +DarkMagenta</div> +<div id='d97' class='colors'> +magenta4</div> +<div id='d98' class='colors'> +purple</div> +<div id='d99' class='colors'> +MediumOrchid</div> +<div id='d100' class='colors'> +MediumOrchid1</div> +<div id='d101' class='colors'> +MediumOrchid2</div> +<div id='d102' class='colors'> +MediumOrchid3</div> +<div id='d103' class='colors'> +MediumOrchid4</div> +<div id='d104' class='colors'> +DarkViolet</div> +<div id='d105' class='colors'> +DarkOrchid</div> +<div id='d106' class='colors'> +DarkOrchid1</div> +<div id='d107' class='colors'> +DarkOrchid3</div> +<div id='d108' class='colors'> +DarkOrchid2</div> +<div id='d109' class='colors'> +DarkOrchid4</div> +<div id='d110' class='colors'> +purple</div> +<div id='d111' class='colors'> +indigo</div> +<div id='d112' class='colors'> +BlueViolet</div> +<div id='d113' class='colors'> +purple2</div> +<div id='d114' class='colors'> +purple3</div> +<div id='d115' class='colors'> +purple4</div> +<div id='d116' class='colors'> +purple1</div> +<div id='d117' class='colors'> +MediumPurple</div> +<div id='d118' class='colors'> +MediumPurple1</div> +<div id='d119' class='colors'> +MediumPurple2</div> +<div id='d120' class='colors'> +MediumPurple3</div> +<div id='d121' class='colors'> +MediumPurple4</div> +<div id='d122' class='colors'> +DarkSlateBlue</div> +<div id='d123' class='colors'> +LightSlateBlue</div> +<div id='d124' class='colors'> +MediumSlateBlue</div> +<div id='d125' class='colors'> +SlateBlue</div> +<div id='d126' class='colors'> +SlateBlue1</div> +<div id='d127' class='colors'> +SlateBlue2</div> +<div id='d128' class='colors'> +SlateBlue3</div> +<div id='d129' class='colors'> +SlateBlue4</div> +<div id='d130' class='colors'> +GhostWhite</div> +<div id='d131' class='colors'> +lavender</div> +<div id='d132' class='colors'> +blue</div> +<div id='d133' class='colors'> +blue1</div> +<div id='d134' class='colors'> +blue2</div> +<div id='d135' class='colors'> +blue3</div> +<div id='d136' class='colors'> +MediumBlue</div> +<div id='d137' class='colors'> +blue4</div> +<div id='d138' class='colors'> +DarkBlue</div> +<div id='d139' class='colors'> +MidnightBlue</div> +<div id='d140' class='colors'> +navy</div> +<div id='d141' class='colors'> +NavyBlue</div> +<div id='d142' class='colors'> +RoyalBlue</div> +<div id='d143' class='colors'> +RoyalBlue1</div> +<div id='d144' class='colors'> +RoyalBlue2</div> +<div id='d145' class='colors'> +RoyalBlue3</div> +<div id='d146' class='colors'> +RoyalBlue4</div> +<div id='d147' class='colors'> +CornflowerBlue</div> +<div id='d148' class='colors'> +LightSteelBlue</div> +<div id='d149' class='colors'> +LightSteelBlue1</div> +<div id='d150' class='colors'> +LightSteelBlue2</div> +<div id='d151' class='colors'> +LightSteelBlue3</div> +<div id='d152' class='colors'> +LightSteelBlue4</div> +<div id='d153' class='colors'> +SlateGray4</div> +<div id='d154' class='colors'> +SlateGray1</div> +<div id='d155' class='colors'> +SlateGray2</div> +<div id='d156' class='colors'> +SlateGray3</div> +<div id='d157' class='colors'> +LightSlateGray</div> +<div id='d158' class='colors'> +LightSlateGrey</div> +<div id='d159' class='colors'> +SlateGray</div> +<div id='d160' class='colors'> +SlateGrey</div> +<div id='d161' class='colors'> +DodgerBlue</div> +<div id='d162' class='colors'> +DodgerBlue1</div> +<div id='d163' class='colors'> +DodgerBlue2</div> +<div id='d164' class='colors'> +DodgerBlue4</div> +<div id='d165' class='colors'> +DodgerBlue3</div> +<div id='d166' class='colors'> +AliceBlue</div> +<div id='d167' class='colors'> +SteelBlue4</div> +<div id='d168' class='colors'> +SteelBlue</div> +<div id='d169' class='colors'> +SteelBlue1</div> +<div id='d170' class='colors'> +SteelBlue2</div> +<div id='d171' class='colors'> +SteelBlue3</div> +<div id='d172' class='colors'> +SkyBlue4</div> +<div id='d173' class='colors'> +SkyBlue1</div> +<div id='d174' class='colors'> +SkyBlue2</div> +<div id='d175' class='colors'> +SkyBlue3</div> +<div id='d176' class='colors'> +LightSkyBlue</div> +<div id='d177' class='colors'> +LightSkyBlue4</div> +<div id='d178' class='colors'> +LightSkyBlue1</div> +<div id='d179' class='colors'> +LightSkyBlue2</div> +<div id='d180' class='colors'> +LightSkyBlue3</div> +<div id='d181' class='colors'> +SkyBlue</div> +<div id='d182' class='colors'> +LightBlue3</div> +<div id='d183' class='colors'> +DeepSkyBlue</div> +<div id='d184' class='colors'> +DeepSkyBlue1</div> +<div id='d185' class='colors'> +DeepSkyBlue2</div> +<div id='d186' class='colors'> +DeepSkyBlue4</div> +<div id='d187' class='colors'> +DeepSkyBlue3</div> +<div id='d188' class='colors'> +LightBlue1</div> +<div id='d189' class='colors'> +LightBlue2</div> +<div id='d190' class='colors'> +LightBlue</div> +<div id='d191' class='colors'> +LightBlue4</div> +<div id='d192' class='colors'> +PowderBlue</div> +<div id='d193' class='colors'> +CadetBlue1</div> +<div id='d194' class='colors'> +CadetBlue2</div> +<div id='d195' class='colors'> +CadetBlue3</div> +<div id='d196' class='colors'> +CadetBlue4</div> +<div id='d197' class='colors'> +turquoise1</div> +<div id='d198' class='colors'> +turquoise2</div> +<div id='d199' class='colors'> +turquoise3</div> +<div id='d200' class='colors'> +turquoise4</div> +<div id='d201' class='colors'> +cadet blue</div> +<div id='d202' class='colors'> +CadetBlue</div> +<div id='d203' class='colors'> +DarkTurquoise</div> +<div id='d204' class='colors'> +azure</div> +<div id='d205' class='colors'> +azure1</div> +<div id='d206' class='colors'> +LightCyan</div> +<div id='d207' class='colors'> +LightCyan1</div> +<div id='d208' class='colors'> +azure2</div> +<div id='d209' class='colors'> +LightCyan2</div> +<div id='d210' class='colors'> +PaleTurquoise1</div> +<div id='d211' class='colors'> +PaleTurquoise</div> +<div id='d212' class='colors'> +PaleTurquoise2</div> +<div id='d213' class='colors'> +DarkSlateGray1</div> +<div id='d214' class='colors'> +azure3</div> +<div id='d215' class='colors'> +LightCyan3</div> +<div id='d216' class='colors'> +DarkSlateGray2</div> +<div id='d217' class='colors'> +PaleTurquoise3</div> +<div id='d218' class='colors'> +DarkSlateGray3</div> +<div id='d219' class='colors'> +azure4</div> +<div id='d220' class='colors'> +LightCyan4</div> +<div id='d221' class='colors'> +aqua</div> +<div id='d222' class='colors'> +cyan</div> +<div id='d223' class='colors'> +cyan1</div> +<div id='d224' class='colors'> +PaleTurquoise4</div> +<div id='d225' class='colors'> +cyan2</div> +<div id='d226' class='colors'> +DarkSlateGray4</div> +<div id='d227' class='colors'> +cyan3</div> +<div id='d228' class='colors'> +cyan4</div> +<div id='d229' class='colors'> +DarkCyan</div> +<div id='d230' class='colors'> +teal</div> +<div id='d231' class='colors'> +DarkSlateGray</div> +<div id='d232' class='colors'> +DarkSlateGrey</div> +<div id='d233' class='colors'> +MediumTurquoise</div> +<div id='d234' class='colors'> +LightSeaGreen</div> +<div id='d235' class='colors'> +turquoise</div> +<div id='d236' class='colors'> +aquamarine4</div> +<div id='d237' class='colors'> +aquamarine</div> +<div id='d238' class='colors'> +aquamarine1</div> +<div id='d239' class='colors'> +aquamarine2</div> +<div id='d240' class='colors'> +aquamarine3</div> +<div id='d241' class='colors'> +MediumAquamarine</div> +<div id='d242' class='colors'> +MediumSpringGreen</div> +<div id='d243' class='colors'> +MintCream</div> +<div id='d244' class='colors'> +SpringGreen</div> +<div id='d245' class='colors'> +SpringGreen1</div> +<div id='d246' class='colors'> +SpringGreen2</div> +<div id='d247' class='colors'> +SpringGreen3</div> +<div id='d248' class='colors'> +SpringGreen4</div> +<div id='d249' class='colors'> +MediumSeaGreen</div> +<div id='d250' class='colors'> +SeaGreen</div> +<div id='d251' class='colors'> +SeaGreen3</div> +<div id='d252' class='colors'> +SeaGreen1</div> +<div id='d253' class='colors'> +SeaGreen4</div> +<div id='d254' class='colors'> +SeaGreen2</div> +<div id='d255' class='colors'> +MediumForestGreen</div> +<div id='d256' class='colors'> +honeydew</div> +<div id='d257' class='colors'> +honeydew1</div> +<div id='d258' class='colors'> +honeydew2</div> +<div id='d259' class='colors'> +DarkSeaGreen1</div> +<div id='d260' class='colors'> +DarkSeaGreen2</div> +<div id='d261' class='colors'> +PaleGreen1</div> +<div id='d262' class='colors'> +PaleGreen</div> +<div id='d263' class='colors'> +honeydew3</div> +<div id='d264' class='colors'> +LightGreen</div> +<div id='d265' class='colors'> +PaleGreen2</div> +<div id='d266' class='colors'> +DarkSeaGreen3</div> +<div id='d267' class='colors'> +DarkSeaGreen</div> +<div id='d268' class='colors'> +PaleGreen3</div> +<div id='d269' class='colors'> +honeydew4</div> +<div id='d270' class='colors'> +green1</div> +<div id='d271' class='colors'> +lime</div> +<div id='d272' class='colors'> +LimeGreen</div> +<div id='d273' class='colors'> +DarkSeaGreen4</div> +<div id='d274' class='colors'> +green2</div> +<div id='d275' class='colors'> +PaleGreen4</div> +<div id='d276' class='colors'> +green3</div> +<div id='d277' class='colors'> +ForestGreen</div> +<div id='d278' class='colors'> +green4</div> +<div id='d279' class='colors'> +green</div> +<div id='d280' class='colors'> +DarkGreen</div> +<div id='d281' class='colors'> +LawnGreen</div> +<div id='d282' class='colors'> +chartreuse</div> +<div id='d283' class='colors'> +chartreuse1</div> +<div id='d284' class='colors'> +chartreuse2</div> +<div id='d285' class='colors'> +chartreuse3</div> +<div id='d286' class='colors'> +chartreuse4</div> +<div id='d287' class='colors'> +GreenYellow</div> +<div id='d288' class='colors'> +DarkOliveGreen3</div> +<div id='d289' class='colors'> +DarkOliveGreen1</div> +<div id='d290' class='colors'> +DarkOliveGreen2</div> +<div id='d291' class='colors'> +DarkOliveGreen4</div> +<div id='d292' class='colors'> +DarkOliveGreen</div> +<div id='d293' class='colors'> +OliveDrab</div> +<div id='d294' class='colors'> +OliveDrab1</div> +<div id='d295' class='colors'> +OliveDrab2</div> +<div id='d296' class='colors'> +OliveDrab3</div> +<div id='d297' class='colors'> +YellowGreen</div> +<div id='d298' class='colors'> +OliveDrab4</div> +<div id='d299' class='colors'> +ivory</div> +<div id='d300' class='colors'> +ivory1</div> +<div id='d301' class='colors'> +LightYellow</div> +<div id='d302' class='colors'> +LightYellow1</div> +<div id='d303' class='colors'> +beige</div> +<div id='d304' class='colors'> +ivory2</div> +<div id='d305' class='colors'> +LightGoldenrodYellow</div> +<div id='d306' class='colors'> +LightYellow2</div> +<div id='d307' class='colors'> +ivory3</div> +<div id='d308' class='colors'> +LightYellow3</div> +<div id='d309' class='colors'> +ivory4</div> +<div id='d310' class='colors'> +LightYellow4</div> +<div id='d311' class='colors'> +yellow</div> +<div id='d312' class='colors'> +yellow1</div> +<div id='d313' class='colors'> +yellow2</div> +<div id='d314' class='colors'> +yellow3</div> +<div id='d315' class='colors'> +yellow4</div> +<div id='d316' class='colors'> +olive</div> +<div id='d317' class='colors'> +DarkKhaki</div> +<div id='d318' class='colors'> +khaki2</div> +<div id='d319' class='colors'> +LemonChiffon4</div> +<div id='d320' class='colors'> +khaki1</div> +<div id='d321' class='colors'> +khaki3</div> +<div id='d322' class='colors'> +khaki4</div> +<div id='d323' class='colors'> +PaleGoldenrod</div> +<div id='d324' class='colors'> +LemonChiffon</div> +<div id='d325' class='colors'> +LemonChiffon1</div> +<div id='d326' class='colors'> +khaki</div> +<div id='d327' class='colors'> +LemonChiffon3</div> +<div id='d328' class='colors'> +LemonChiffon2</div> +<div id='d329' class='colors'> +MediumGoldenRod</div> +<div id='d330' class='colors'> +cornsilk4</div> +<div id='d331' class='colors'> +gold</div> +<div id='d332' class='colors'> +gold1</div> +<div id='d333' class='colors'> +gold2</div> +<div id='d334' class='colors'> +gold3</div> +<div id='d335' class='colors'> +gold4</div> +<div id='d336' class='colors'> +LightGoldenrod</div> +<div id='d337' class='colors'> +LightGoldenrod4</div> +<div id='d338' class='colors'> +LightGoldenrod1</div> +<div id='d339' class='colors'> +LightGoldenrod3</div> +<div id='d340' class='colors'> +LightGoldenrod2</div> +<div id='d341' class='colors'> +cornsilk3</div> +<div id='d342' class='colors'> +cornsilk2</div> +<div id='d343' class='colors'> +cornsilk</div> +<div id='d344' class='colors'> +cornsilk1</div> +<div id='d345' class='colors'> +goldenrod</div> +<div id='d346' class='colors'> +goldenrod1</div> +<div id='d347' class='colors'> +goldenrod2</div> +<div id='d348' class='colors'> +goldenrod3</div> +<div id='d349' class='colors'> +goldenrod4</div> +<div id='d350' class='colors'> +DarkGoldenrod</div> +<div id='d351' class='colors'> +DarkGoldenrod1</div> +<div id='d352' class='colors'> +DarkGoldenrod2</div> +<div id='d353' class='colors'> +DarkGoldenrod3</div> +<div id='d354' class='colors'> +DarkGoldenrod4</div> +<div id='d355' class='colors'> +FloralWhite</div> +<div id='d356' class='colors'> +wheat2</div> +<div id='d357' class='colors'> +OldLace</div> +<div id='d358' class='colors'> +wheat</div> +<div id='d359' class='colors'> +wheat1</div> +<div id='d360' class='colors'> +wheat3</div> +<div id='d361' class='colors'> +orange</div> +<div id='d362' class='colors'> +orange1</div> +<div id='d363' class='colors'> +orange2</div> +<div id='d364' class='colors'> +orange3</div> +<div id='d365' class='colors'> +orange4</div> +<div id='d366' class='colors'> +wheat4</div> +<div id='d367' class='colors'> +moccasin</div> +<div id='d368' class='colors'> +PapayaWhip</div> +<div id='d369' class='colors'> +NavajoWhite3</div> +<div id='d370' class='colors'> +BlanchedAlmond</div> +<div id='d371' class='colors'> +NavajoWhite</div> +<div id='d372' class='colors'> +NavajoWhite1</div> +<div id='d373' class='colors'> +NavajoWhite2</div> +<div id='d374' class='colors'> +NavajoWhite4</div> +<div id='d375' class='colors'> +AntiqueWhite4</div> +<div id='d376' class='colors'> +AntiqueWhite</div> +<div id='d377' class='colors'> +tan</div> +<div id='d378' class='colors'> +bisque4</div> +<div id='d379' class='colors'> +burlywood</div> +<div id='d380' class='colors'> +AntiqueWhite2</div> +<div id='d381' class='colors'> +burlywood1</div> +<div id='d382' class='colors'> +burlywood3</div> +<div id='d383' class='colors'> +burlywood2</div> +<div id='d384' class='colors'> +AntiqueWhite1</div> +<div id='d385' class='colors'> +burlywood4</div> +<div id='d386' class='colors'> +AntiqueWhite3</div> +<div id='d387' class='colors'> +DarkOrange</div> +<div id='d388' class='colors'> +bisque2</div> +<div id='d389' class='colors'> +bisque</div> +<div id='d390' class='colors'> +bisque1</div> +<div id='d391' class='colors'> +bisque3</div> +<div id='d392' class='colors'> +DarkOrange1</div> +<div id='d393' class='colors'> +linen</div> +<div id='d394' class='colors'> +DarkOrange2</div> +<div id='d395' class='colors'> +DarkOrange3</div> +<div id='d396' class='colors'> +DarkOrange4</div> +<div id='d397' class='colors'> +peru</div> +<div id='d398' class='colors'> +tan1</div> +<div id='d399' class='colors'> +tan2</div> +<div id='d400' class='colors'> +tan3</div> +<div id='d401' class='colors'> +tan4</div> +<div id='d402' class='colors'> +PeachPuff</div> +<div id='d403' class='colors'> +PeachPuff1</div> +<div id='d404' class='colors'> +PeachPuff4</div> +<div id='d405' class='colors'> +PeachPuff2</div> +<div id='d406' class='colors'> +PeachPuff3</div> +<div id='d407' class='colors'> +SandyBrown</div> +<div id='d408' class='colors'> +seashell4</div> +<div id='d409' class='colors'> +seashell2</div> +<div id='d410' class='colors'> +seashell3</div> +<div id='d411' class='colors'> +chocolate</div> +<div id='d412' class='colors'> +chocolate1</div> +<div id='d413' class='colors'> +chocolate2</div> +<div id='d414' class='colors'> +chocolate3</div> +<div id='d415' class='colors'> +chocolate4</div> +<div id='d416' class='colors'> +SaddleBrown</div> +<div id='d417' class='colors'> +seashell</div> +<div id='d418' class='colors'> +seashell1</div> +<div id='d419' class='colors'> +sienna4</div> +<div id='d420' class='colors'> +sienna</div> +<div id='d421' class='colors'> +sienna1</div> +<div id='d422' class='colors'> +sienna2</div> +<div id='d423' class='colors'> +sienna3</div> +<div id='d424' class='colors'> +LightSalmon3</div> +<div id='d425' class='colors'> +LightSalmon</div> +<div id='d426' class='colors'> +LightSalmon1</div> +<div id='d427' class='colors'> +LightSalmon4</div> +<div id='d428' class='colors'> +LightSalmon2</div> +<div id='d429' class='colors'> +coral</div> +<div id='d430' class='colors'> +OrangeRed</div> +<div id='d431' class='colors'> +OrangeRed1</div> +<div id='d432' class='colors'> +OrangeRed2</div> +<div id='d433' class='colors'> +OrangeRed3</div> +<div id='d434' class='colors'> +OrangeRed4</div> +<div id='d435' class='colors'> +DarkSalmon</div> +<div id='d436' class='colors'> +salmon1</div> +<div id='d437' class='colors'> +salmon2</div> +<div id='d438' class='colors'> +salmon3</div> +<div id='d439' class='colors'> +salmon4</div> +<div id='d440' class='colors'> +coral1</div> +<div id='d441' class='colors'> +coral2</div> +<div id='d442' class='colors'> +coral3</div> +<div id='d443' class='colors'> +coral4</div> +<div id='d444' class='colors'> +tomato4</div> +<div id='d445' class='colors'> +tomato</div> +<div id='d446' class='colors'> +tomato1</div> +<div id='d447' class='colors'> +tomato2</div> +<div id='d448' class='colors'> +tomato3</div> +<div id='d449' class='colors'> +MistyRose4</div> +<div id='d450' class='colors'> +MistyRose2</div> +<div id='d451' class='colors'> +MistyRose</div> +<div id='d452' class='colors'> +MistyRose1</div> +<div id='d453' class='colors'> +salmon</div> +<div id='d454' class='colors'> +MistyRose3</div> +<div id='d455' class='colors'> +white</div> +<div id='d456' class='colors'> +gray100</div> +<div id='d457' class='colors'> +grey100</div> +<div id='d458' class='colors'> +grey100</div> +<div id='d459' class='colors'> +gray99</div> +<div id='d460' class='colors'> +grey99</div> +<div id='d461' class='colors'> +gray98</div> +<div id='d462' class='colors'> +grey98</div> +<div id='d463' class='colors'> +gray97</div> +<div id='d464' class='colors'> +grey97</div> +<div id='d465' class='colors'> +gray96</div> +<div id='d466' class='colors'> +grey96</div> +<div id='d467' class='colors'> +WhiteSmoke</div> +<div id='d468' class='colors'> +gray95</div> +<div id='d469' class='colors'> +grey95</div> +<div id='d470' class='colors'> +gray94</div> +<div id='d471' class='colors'> +grey94</div> +<div id='d472' class='colors'> +gray93</div> +<div id='d473' class='colors'> +grey93</div> +<div id='d474' class='colors'> +gray92</div> +<div id='d475' class='colors'> +grey92</div> +<div id='d476' class='colors'> +gray91</div> +<div id='d477' class='colors'> +grey91</div> +<div id='d478' class='colors'> +gray90</div> +<div id='d479' class='colors'> +grey90</div> +<div id='d480' class='colors'> +gray89</div> +<div id='d481' class='colors'> +grey89</div> +<div id='d482' class='colors'> +gray88</div> +<div id='d483' class='colors'> +grey88</div> +<div id='d484' class='colors'> +gray87</div> +<div id='d485' class='colors'> +grey87</div> +<div id='d486' class='colors'> +gainsboro</div> +<div id='d487' class='colors'> +gray86</div> +<div id='d488' class='colors'> +grey86</div> +<div id='d489' class='colors'> +gray85</div> +<div id='d490' class='colors'> +grey85</div> +<div id='d491' class='colors'> +gray84</div> +<div id='d492' class='colors'> +grey84</div> +<div id='d493' class='colors'> +gray83</div> +<div id='d494' class='colors'> +grey83</div> +<div id='d495' class='colors'> +LightGray</div> +<div id='d496' class='colors'> +LightGrey</div> +<div id='d497' class='colors'> +gray82</div> +<div id='d498' class='colors'> +grey82</div> +<div id='d499' class='colors'> +gray81</div> +<div id='d500' class='colors'> +grey81</div> +<div id='d501' class='colors'> +gray80</div> +<div id='d502' class='colors'> +grey80</div> +<div id='d503' class='colors'> +gray79</div> +<div id='d504' class='colors'> +grey79</div> +<div id='d505' class='colors'> +gray78</div> +<div id='d506' class='colors'> +grey78</div> +<div id='d507' class='colors'> +gray77</div> +<div id='d508' class='colors'> +grey77</div> +<div id='d509' class='colors'> +gray76</div> +<div id='d510' class='colors'> +grey76</div> +<div id='d511' class='colors'> +silver</div> +<div id='d512' class='colors'> +gray75</div> +<div id='d513' class='colors'> +grey75</div> +<div id='d514' class='colors'> +gray74</div> +<div id='d515' class='colors'> +grey74</div> +<div id='d516' class='colors'> +gray73</div> +<div id='d517' class='colors'> +grey73</div> +<div id='d518' class='colors'> +gray72</div> +<div id='d519' class='colors'> +grey72</div> +<div id='d520' class='colors'> +gray71</div> +<div id='d521' class='colors'> +grey71</div> +<div id='d522' class='colors'> +gray70</div> +<div id='d523' class='colors'> +grey70</div> +<div id='d524' class='colors'> +gray69</div> +<div id='d525' class='colors'> +grey69</div> +<div id='d526' class='colors'> +gray68</div> +<div id='d527' class='colors'> +grey68</div> +<div id='d528' class='colors'> +gray67</div> +<div id='d529' class='colors'> +grey67</div> +<div id='d530' class='colors'> +DarkGray</div> +<div id='d531' class='colors'> +DarkGrey</div> +<div id='d532' class='colors'> +gray66</div> +<div id='d533' class='colors'> +grey66</div> +<div id='d534' class='colors'> +gray65</div> +<div id='d535' class='colors'> +grey65</div> +<div id='d536' class='colors'> +gray64</div> +<div id='d537' class='colors'> +grey64</div> +<div id='d538' class='colors'> +gray63</div> +<div id='d539' class='colors'> +grey63</div> +<div id='d540' class='colors'> +gray62</div> +<div id='d541' class='colors'> +grey62</div> +<div id='d542' class='colors'> +gray61</div> +<div id='d543' class='colors'> +grey61</div> +<div id='d544' class='colors'> +gray60</div> +<div id='d545' class='colors'> +grey60</div> +<div id='d546' class='colors'> +gray59</div> +<div id='d547' class='colors'> +grey59</div> +<div id='d548' class='colors'> +gray58</div> +<div id='d549' class='colors'> +grey58</div> +<div id='d550' class='colors'> +gray57</div> +<div id='d551' class='colors'> +grey57</div> +<div id='d552' class='colors'> +gray56</div> +<div id='d553' class='colors'> +grey56</div> +<div id='d554' class='colors'> +gray55</div> +<div id='d555' class='colors'> +grey55</div> +<div id='d556' class='colors'> +gray54</div> +<div id='d557' class='colors'> +grey54</div> +<div id='d558' class='colors'> +gray53</div> +<div id='d559' class='colors'> +grey53</div> +<div id='d560' class='colors'> +gray52</div> +<div id='d561' class='colors'> +grey52</div> +<div id='d562' class='colors'> +gray51</div> +<div id='d563' class='colors'> +grey51</div> +<div id='d564' class='colors'> +fractal</div> +<div id='d565' class='colors'> +gray50</div> +<div id='d566' class='colors'> +grey50</div> +<div id='d567' class='colors'> +gray</div> +<div id='d568' class='colors'> +gray49</div> +<div id='d569' class='colors'> +grey49</div> +<div id='d570' class='colors'> +gray48</div> +<div id='d571' class='colors'> +grey48</div> +<div id='d572' class='colors'> +gray47</div> +<div id='d573' class='colors'> +grey47</div> +<div id='d574' class='colors'> +gray46</div> +<div id='d575' class='colors'> +grey46</div> +<div id='d576' class='colors'> +gray45</div> +<div id='d577' class='colors'> +grey45</div> +<div id='d578' class='colors'> +gray44</div> +<div id='d579' class='colors'> +grey44</div> +<div id='d580' class='colors'> +gray43</div> +<div id='d581' class='colors'> +grey43</div> +<div id='d582' class='colors'> +gray42</div> +<div id='d583' class='colors'> +grey42</div> +<div id='d584' class='colors'> +DimGray</div> +<div id='d585' class='colors'> +DimGrey</div> +<div id='d586' class='colors'> +gray41</div> +<div id='d587' class='colors'> +grey41</div> +<div id='d588' class='colors'> +gray40</div> +<div id='d589' class='colors'> +grey40</div> +<div id='d590' class='colors'> +gray39</div> +<div id='d591' class='colors'> +grey39</div> +<div id='d592' class='colors'> +gray38</div> +<div id='d593' class='colors'> +grey38</div> +<div id='d594' class='colors'> +gray37</div> +<div id='d595' class='colors'> +grey37</div> +<div id='d596' class='colors'> +gray36</div> +<div id='d597' class='colors'> +grey36</div> +<div id='d598' class='colors'> +gray35</div> +<div id='d599' class='colors'> +grey35</div> +<div id='d600' class='colors'> +gray34</div> +<div id='d601' class='colors'> +grey34</div> +<div id='d602' class='colors'> +gray33</div> +<div id='d603' class='colors'> +grey33</div> +<div id='d604' class='colors'> +gray32</div> +<div id='d605' class='colors'> +grey32</div> +<div id='d606' class='colors'> +gray31</div> +<div id='d607' class='colors'> +grey31</div> +<div id='d608' class='colors'> +gray30</div> +<div id='d609' class='colors'> +grey30</div> +<div id='d610' class='colors'> +gray29</div> +<div id='d611' class='colors'> +grey29</div> +<div id='d612' class='colors'> +gray28</div> +<div id='d613' class='colors'> +grey28</div> +<div id='d614' class='colors'> +gray27</div> +<div id='d615' class='colors'> +grey27</div> +<div id='d616' class='colors'> +gray26</div> +<div id='d617' class='colors'> +grey26</div> +<div id='d618' class='colors'> +gray25</div> +<div id='d619' class='colors'> +grey25</div> +<div id='d620' class='colors'> +gray24</div> +<div id='d621' class='colors'> +grey24</div> +<div id='d622' class='colors'> +gray23</div> +<div id='d623' class='colors'> +grey23</div> +<div id='d624' class='colors'> +gray22</div> +<div id='d625' class='colors'> +grey22</div> +<div id='d626' class='colors'> +gray21</div> +<div id='d627' class='colors'> +grey21</div> +<div id='d628' class='colors'> +gray20</div> +<div id='d629' class='colors'> +grey20</div> +<div id='d630' class='colors'> +gray19</div> +<div id='d631' class='colors'> +grey19</div> +<div id='d632' class='colors'> +gray18</div> +<div id='d633' class='colors'> +grey18</div> +<div id='d634' class='colors'> +gray17</div> +<div id='d635' class='colors'> +grey17</div> +<div id='d636' class='colors'> +gray16</div> +<div id='d637' class='colors'> +grey16</div> +<div id='d638' class='colors'> +gray15</div> +<div id='d639' class='colors'> +grey15</div> +<div id='d640' class='colors'> +gray14</div> +<div id='d641' class='colors'> +grey14</div> +<div id='d642' class='colors'> +gray13</div> +<div id='d643' class='colors'> +grey13</div> +<div id='d644' class='colors'> +gray12</div> +<div id='d645' class='colors'> +grey12</div> +<div id='d646' class='colors'> +gray11</div> +<div id='d647' class='colors'> +grey11</div> +<div id='d648' class='colors'> +gray10</div> +<div id='d649' class='colors'> +grey10</div> +<div id='d650' class='colors'> +gray9</div> +<div id='d651' class='colors'> +grey9</div> +<div id='d652' class='colors'> +gray8</div> +<div id='d653' class='colors'> +grey8</div> +<div id='d654' class='colors'> +gray7</div> +<div id='d655' class='colors'> +grey7</div> +<div id='d656' class='colors'> +gray6</div> +<div id='d657' class='colors'> +grey6</div> +<div id='d658' class='colors'> +gray5</div> +<div id='d659' class='colors'> +grey5</div> +<div id='d660' class='colors'> +gray4</div> +<div id='d661' class='colors'> +grey4</div> +<div id='d662' class='colors'> +gray3</div> +<div id='d663' class='colors'> +grey3</div> +<div id='d664' class='colors'> +gray2</div> +<div id='d665' class='colors'> +grey2</div> +<div id='d666' class='colors'> +gray1</div> +<div id='d667' class='colors'> +grey1</div> +<div id='d668' class='colors'> +black</div> +<div id='d669' class='colors'> +gray0</div> +<div id='d670' class='colors'> +grey0</div> +<div id='d671' class='colors'> +opaque</div> +<div id='d672' class='colors'> +none</div> +<div id='d673' class='colors'> +transparent</div> +</div> + +<div id='colornames'> +WHERE THE COLORNAMES WILL GO +</div> + +<div id='hexswitch'>CLICK TO SHOW HEXES</div> +<div id='infoswitch'>CLICK TO SHOW INFO</div> +<script type='text/javascript' src='jquery-1.6.4.min.js'></script><script type='text/javascript' src='colordict.js'></script> +<script type='text/javascript'> +$('.colors').html("") +$('body').css('background-color','white') + +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newwidth = goldenize(result) + widthval = newwidth.toString()+'px' + $(idandselectr).css('width', widthval) + } +makegolden('.colors', 'height') + + +//remove content this function takes the name out of the divs +infoswitch = false; +function removecontent() + { + if(infoswitch == false) + { + $('#infoswitch').click(function() + { + infoswitch = true + if(infoswitch == true){ + $('.colors').html("") + } + }) + } + if(infoswitch == true) + { + $('#infoswitch').click(function() + { + infoswitch = false + }) + } + } +removecontent() + +function colorToHex(color) +{ + if (color.substr(0, 1) === '#') { + return color; + } + var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); + + var red = parseInt(digits[2]); + var green = parseInt(digits[3]); + var blue = parseInt(digits[4]); + + var rgb = blue | (green << 8) | (red << 16); + return digits[1] + '#' + rgb.toString(16); +}; + +//takes a div name and returns a colorname + +function showcolorname(divstr) + + { + bgcolor = $('#'+divstr).css('background-color') + lowercasehex = colorToHex(bgcolor) + hex = lowercasehex.toUpperCase() + imname = hextoname[hex] + if (hexes == true) + { + imname = hex + } + return imname + } +function bigname(divstr) + { + colorname = showcolorname(divstr) + $('#colornames').html(colorname) + } +function writeit(text) + { + $('#colornames').append(text) + } +function makebig(divstr) + { + firstheight = $('#'+divstr).height() + newheight = goldenize(firstheight) + $('#'+divstr).height(newheight) + } +function makesmall(divstr) + { + oldheight = $('.colors').height() + $('#'+divstr).height(oldheight) + } +$('.colors').hover(function() { + bigname(this.id); + makebig(this.id); + makegolden('#'+this.id, 'height')}, +function(){ + makesmall(this.id); + makegolden('#'+this.id, 'height') +}); +$(".colors").hover(function(){ +$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); +}); +$('body').css('background-color', 'white') +$('.colors').css('margin-top', '2px') +var hexes = false +function hexswitch() + { + if(hexes == false) + { + $('#hexswitch').html('CLICK TO SHOW COLOR NAMES') + hexes = true; + } + + else + { + $('#hexswitch').html('CLICK TO SHOW HEX NAMES') + hexes = false; + } + } +$('#hexswitch').click(function(){hexswitch()}) +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/junk/picker.js b/frontend/imgrid/colors/junk/picker.js new file mode 100755 index 0000000..04a49f1 --- /dev/null +++ b/frontend/imgrid/colors/junk/picker.js @@ -0,0 +1,15 @@ +var colorpicker = "<div id='main'>"+"<div id='d0' class='colors'>"+"snow</div>"+"<div id='d1' class='colors'>"+"snow1</div>"+"<div id='d2' class='colors'>"+"snow2</div>"+"<div id='d3' class='colors'>"+"RosyBrown1</div>"+"<div id='d4' class='colors'>"+"RosyBrown2</div>"+"<div id='d5' class='colors'>"+"snow3</div>"+"<div id='d6' class='colors'>"+"LightCoral</div>"+"<div id='d7' class='colors'>"+"IndianRed1</div>"+"<div id='d8' class='colors'>"+"RosyBrown3</div>"+"<div id='d9' class='colors'>"+"IndianRed2</div>"+"<div id='d10' class='colors'>"+"RosyBrown</div>"+"<div id='d11' class='colors'>"+"brown1</div>"+"<div id='d12' class='colors'>"+"firebrick1</div>"+"<div id='d13' class='colors'>"+"brown2</div>"+"<div id='d14' class='colors'>"+"IndianRed</div>"+"<div id='d15' class='colors'>"+"IndianRed3</div>"+"<div id='d16' class='colors'>"+"firebrick2</div>"+"<div id='d17' class='colors'>"+"snow4</div>"+"<div id='d18' class='colors'>"+"brown3</div>"+"<div id='d19' class='colors'>"+"red</div>"+"<div id='d20' class='colors'>"+"red1</div>"+"<div id='d21' class='colors'>"+"RosyBrown4</div>"+"<div id='d22' class='colors'>"+"firebrick3</div>"+"<div id='d23' class='colors'>"+"red2</div>"+"<div id='d24' class='colors'>"+"firebrick</div>"+"<div id='d25' class='colors'>"+"brown</div>"+"<div id='d26' class='colors'>"+"red3</div>"+"<div id='d27' class='colors'>"+"IndianRed4</div>"+"<div id='d28' class='colors'>"+"brown4</div>"+"<div id='d29' class='colors'>"+"firebrick4</div>"+"<div id='d30' class='colors'>"+"DarkRed</div>"+"<div id='d31' class='colors'>"+"red4</div>"+"<div id='d32' class='colors'>"+"maroon</div>"+"<div id='d33' class='colors'>"+"LightPink1</div>"+"<div id='d34' class='colors'>"+"LightPink3</div>"+"<div id='d35' class='colors'>"+"LightPink4</div>"+"<div id='d36' class='colors'>"+"LightPink2</div>"+"<div id='d37' class='colors'>"+"LightPink</div>"+"<div id='d38' class='colors'>"+"pink</div>"+"<div id='d39' class='colors'>"+"crimson</div>"+"<div id='d40' class='colors'>"+"pink1</div>"+"<div id='d41' class='colors'>"+"pink2</div>"+"<div id='d42' class='colors'>"+"pink3</div>"+"<div id='d43' class='colors'>"+"pink4</div>"+"<div id='d44' class='colors'>"+"PaleVioletRed4</div>"+"<div id='d45' class='colors'>"+"PaleVioletRed</div>"+"<div id='d46' class='colors'>"+"PaleVioletRed2</div>"+"<div id='d47' class='colors'>"+"PaleVioletRed1</div>"+"<div id='d48' class='colors'>"+"PaleVioletRed3</div>"+"<div id='d49' class='colors'>"+"LavenderBlush</div>"+"<div id='d50' class='colors'>"+"LavenderBlush1</div>"+"<div id='d51' class='colors'>"+"LavenderBlush3</div>"+"<div id='d52' class='colors'>"+"LavenderBlush2</div>"+"<div id='d53' class='colors'>"+"LavenderBlush4</div>"+"<div id='d54' class='colors'>"+"maroon</div>"+"<div id='d55' class='colors'>"+"HotPink3</div>"+"<div id='d56' class='colors'>"+"VioletRed3</div>"+"<div id='d57' class='colors'>"+"VioletRed1</div>"+"<div id='d58' class='colors'>"+"VioletRed2</div>"+"<div id='d59' class='colors'>"+"VioletRed4</div>"+"<div id='d60' class='colors'>"+"HotPink2</div>"+"<div id='d61' class='colors'>"+"HotPink1</div>"+"<div id='d62' class='colors'>"+"HotPink4</div>"+"<div id='d63' class='colors'>"+"HotPink</div>"+"<div id='d64' class='colors'>"+"DeepPink</div>"+"<div id='d65' class='colors'>"+"DeepPink1</div>"+"<div id='d66' class='colors'>"+"DeepPink2</div>"+"<div id='d67' class='colors'>"+"DeepPink3</div>"+"<div id='d68' class='colors'>"+"DeepPink4</div>"+"<div id='d69' class='colors'>"+"maroon1</div>"+"<div id='d70' class='colors'>"+"maroon2</div>"+"<div id='d71' class='colors'>"+"maroon3</div>"+"<div id='d72' class='colors'>"+"maroon4</div>"+"<div id='d73' class='colors'>"+"MediumVioletRed</div>"+"<div id='d74' class='colors'>"+"VioletRed</div>"+"<div id='d75' class='colors'>"+"orchid2</div>"+"<div id='d76' class='colors'>"+"orchid</div>"+"<div id='d77' class='colors'>"+"orchid1</div>"+"<div id='d78' class='colors'>"+"orchid3</div>"+"<div id='d79' class='colors'>"+"orchid4</div>"+"<div id='d80' class='colors'>"+"thistle1</div>"+"<div id='d81' class='colors'>"+"thistle2</div>"+"<div id='d82' class='colors'>"+"plum1</div>"+"<div id='d83' class='colors'>"+"plum2</div>"+"<div id='d84' class='colors'>"+"thistle</div>"+"<div id='d85' class='colors'>"+"thistle3</div>"+"<div id='d86' class='colors'>"+"plum</div>"+"<div id='d87' class='colors'>"+"violet</div>"+"<div id='d88' class='colors'>"+"plum3</div>"+"<div id='d89' class='colors'>"+"thistle4</div>"+"<div id='d90' class='colors'>"+"fuchsia</div>"+"<div id='d91' class='colors'>"+"magenta</div>"+"<div id='d92' class='colors'>"+"magenta1</div>"+"<div id='d93' class='colors'>"+"plum4</div>"+"<div id='d94' class='colors'>"+"magenta2</div>"+"<div id='d95' class='colors'>"+"magenta3</div>"+"<div id='d96' class='colors'>"+"DarkMagenta</div>"+"<div id='d97' class='colors'>"+"magenta4</div>"+"<div id='d98' class='colors'>"+"purple</div>"+"<div id='d99' class='colors'>"+"MediumOrchid</div>"+"<div id='d100' class='colors'>"+"MediumOrchid1</div>"+"<div id='d101' class='colors'>"+"MediumOrchid2</div>"+"<div id='d102' class='colors'>"+"MediumOrchid3</div>"+"<div id='d103' class='colors'>"+"MediumOrchid4</div>"+"<div id='d104' class='colors'>"+"DarkViolet</div>"+"<div id='d105' class='colors'>"+"DarkOrchid</div>"+"<div id='d106' class='colors'>"+"DarkOrchid1</div>"+"<div id='d107' class='colors'>"+"DarkOrchid3</div>"+"<div id='d108' class='colors'>"+"DarkOrchid2</div>"+"<div id='d109' class='colors'>"+"DarkOrchid4</div>"+"<div id='d110' class='colors'>"+"purple</div>"+"<div id='d111' class='colors'>"+"indigo</div>"+"<div id='d112' class='colors'>"+"BlueViolet</div>"+"<div id='d113' class='colors'>"+"purple2</div>"+"<div id='d114' class='colors'>"+"purple3</div>"+"<div id='d115' class='colors'>"+"purple4</div>"+"<div id='d116' class='colors'>"+"purple1</div>"+"<div id='d117' class='colors'>"+"MediumPurple</div>"+"<div id='d118' class='colors'>"+"MediumPurple1</div>"+"<div id='d119' class='colors'>"+"MediumPurple2</div>"+"<div id='d120' class='colors'>"+"MediumPurple3</div>"+"<div id='d121' class='colors'>"+"MediumPurple4</div>"+"<div id='d122' class='colors'>"+"DarkSlateBlue</div>"+"<div id='d123' class='colors'>"+"LightSlateBlue</div>"+"<div id='d124' class='colors'>"+"MediumSlateBlue</div>"+"<div id='d125' class='colors'>"+"SlateBlue</div>"+"<div id='d126' class='colors'>"+"SlateBlue1</div>"+"<div id='d127' class='colors'>"+"SlateBlue2</div>"+"<div id='d128' class='colors'>"+"SlateBlue3</div>"+"<div id='d129' class='colors'>"+"SlateBlue4</div>"+"<div id='d130' class='colors'>"+"GhostWhite</div>"+"<div id='d131' class='colors'>"+"lavender</div>"+"<div id='d132' class='colors'>"+"blue</div>"+"<div id='d133' class='colors'>"+"blue1</div>"+"<div id='d134' class='colors'>"+"blue2</div>"+"<div id='d135' class='colors'>"+"blue3</div>"+"<div id='d136' class='colors'>"+"MediumBlue</div>"+"<div id='d137' class='colors'>"+"blue4</div>"+"<div id='d138' class='colors'>"+"DarkBlue</div>"+"<div id='d139' class='colors'>"+"MidnightBlue</div>"+"<div id='d140' class='colors'>"+"navy</div>"+"<div id='d141' class='colors'>"+"NavyBlue</div>"+"<div id='d142' class='colors'>"+"RoyalBlue</div>"+"<div id='d143' class='colors'>"+"RoyalBlue1</div>"+"<div id='d144' class='colors'>"+"RoyalBlue2</div>"+"<div id='d145' class='colors'>"+"RoyalBlue3</div>"+"<div id='d146' class='colors'>"+"RoyalBlue4</div>"+"<div id='d147' class='colors'>"+"CornflowerBlue</div>"+"<div id='d148' class='colors'>"+"LightSteelBlue</div>"+"<div id='d149' class='colors'>"+"LightSteelBlue1</div>"+"<div id='d150' class='colors'>"+"LightSteelBlue2</div>"+"<div id='d151' class='colors'>"+"LightSteelBlue3</div>"+"<div id='d152' class='colors'>"+"LightSteelBlue4</div>"+"<div id='d153' class='colors'>"+"SlateGray4</div>"+"<div id='d154' class='colors'>"+"SlateGray1</div>"+"<div id='d155' class='colors'>"+"SlateGray2</div>"+"<div id='d156' class='colors'>"+"SlateGray3</div>"+"<div id='d157' class='colors'>"+"LightSlateGray</div>"+"<div id='d158' class='colors'>"+"LightSlateGrey</div>"+"<div id='d159' class='colors'>"+"SlateGray</div>"+"<div id='d160' class='colors'>"+"SlateGrey</div>"+"<div id='d161' class='colors'>"+"DodgerBlue</div>"+"<div id='d162' class='colors'>"+"DodgerBlue1</div>"+"<div id='d163' class='colors'>"+"DodgerBlue2</div>"+"<div id='d164' class='colors'>"+"DodgerBlue4</div>"+"<div id='d165' class='colors'>"+"DodgerBlue3</div>"+"<div id='d166' class='colors'>"+"AliceBlue</div>"+"<div id='d167' class='colors'>"+"SteelBlue4</div>"+"<div id='d168' class='colors'>"+"SteelBlue</div>"+"<div id='d169' class='colors'>"+"SteelBlue1</div>"+"<div id='d170' class='colors'>"+"SteelBlue2</div>"+"<div id='d171' class='colors'>"+"SteelBlue3</div>"+"<div id='d172' class='colors'>"+"SkyBlue4</div>"+"<div id='d173' class='colors'>"+"SkyBlue1</div>"+"<div id='d174' class='colors'>"+"SkyBlue2</div>"+"<div id='d175' class='colors'>"+"SkyBlue3</div>"+"<div id='d176' class='colors'>"+"LightSkyBlue</div>"+"<div id='d177' class='colors'>"+"LightSkyBlue4</div>"+"<div id='d178' class='colors'>"+"LightSkyBlue1</div>"+"<div id='d179' class='colors'>"+"LightSkyBlue2</div>"+"<div id='d180' class='colors'>"+"LightSkyBlue3</div>"+"<div id='d181' class='colors'>"+"SkyBlue</div>"+"<div id='d182' class='colors'>"+"LightBlue3</div>"+"<div id='d183' class='colors'>"+"DeepSkyBlue</div>"+"<div id='d184' class='colors'>"+"DeepSkyBlue1</div>"+"<div id='d185' class='colors'>"+"DeepSkyBlue2</div>"+"<div id='d186' class='colors'>"+"DeepSkyBlue4</div>"+"<div id='d187' class='colors'>"+"DeepSkyBlue3</div>"+"<div id='d188' class='colors'>"+"LightBlue1</div>"+"<div id='d189' class='colors'>"+"LightBlue2</div>"+"<div id='d190' class='colors'>"+"LightBlue</div>"+"<div id='d191' class='colors'>"+"LightBlue4</div>"+"<div id='d192' class='colors'>"+"PowderBlue</div>"+"<div id='d193' class='colors'>"+"CadetBlue1</div>"+"<div id='d194' class='colors'>"+"CadetBlue2</div>"+"<div id='d195' class='colors'>"+"CadetBlue3</div>"+"<div id='d196' class='colors'>"+"CadetBlue4</div>"+"<div id='d197' class='colors'>"+"turquoise1</div>"+"<div id='d198' class='colors'>"+"turquoise2</div>"+"<div id='d199' class='colors'>"+"turquoise3</div>"+"<div id='d200' class='colors'>"+"turquoise4</div>"+"<div id='d201' class='colors'>"+"cadet blue</div>"+"<div id='d202' class='colors'>"+"CadetBlue</div>"+"<div id='d203' class='colors'>"+"DarkTurquoise</div>"+"<div id='d204' class='colors'>"+"azure</div>"+"<div id='d205' class='colors'>"+"azure1</div>"+"<div id='d206' class='colors'>"+"LightCyan</div>"+"<div id='d207' class='colors'>"+"LightCyan1</div>"+"<div id='d208' class='colors'>"+"azure2</div>"+"<div id='d209' class='colors'>"+"LightCyan2</div>"+"<div id='d210' class='colors'>"+"PaleTurquoise1</div>"+"<div id='d211' class='colors'>"+"PaleTurquoise</div>"+"<div id='d212' class='colors'>"+"PaleTurquoise2</div>"+"<div id='d213' class='colors'>"+"DarkSlateGray1</div>"+"<div id='d214' class='colors'>"+"azure3</div>"+"<div id='d215' class='colors'>"+"LightCyan3</div>"+"<div id='d216' class='colors'>"+"DarkSlateGray2</div>"+"<div id='d217' class='colors'>"+"PaleTurquoise3</div>"+"<div id='d218' class='colors'>"+"DarkSlateGray3</div>"+"<div id='d219' class='colors'>"+"azure4</div>"+"<div id='d220' class='colors'>"+"LightCyan4</div>"+"<div id='d221' class='colors'>"+"aqua</div>"+"<div id='d222' class='colors'>"+"cyan</div>"+"<div id='d223' class='colors'>"+"cyan1</div>"+"<div id='d224' class='colors'>"+"PaleTurquoise4</div>"+"<div id='d225' class='colors'>"+"cyan2</div>"+"<div id='d226' class='colors'>"+"DarkSlateGray4</div>"+"<div id='d227' class='colors'>"+"cyan3</div>"+"<div id='d228' class='colors'>"+"cyan4</div>"+"<div id='d229' class='colors'>"+"DarkCyan</div>"+"<div id='d230' class='colors'>"+"teal</div>"+"<div id='d231' class='colors'>"+"DarkSlateGray</div>"+"<div id='d232' class='colors'>"+"DarkSlateGrey</div>"+"<div id='d233' class='colors'>"+"MediumTurquoise</div>"+"<div id='d234' class='colors'>"+"LightSeaGreen</div>"+"<div id='d235' class='colors'>"+"turquoise</div>"+"<div id='d236' class='colors'>"+"aquamarine4</div>"+"<div id='d237' class='colors'>"+"aquamarine</div>"+"<div id='d238' class='colors'>"+"aquamarine1</div>"+"<div id='d239' class='colors'>"+"aquamarine2</div>"+"<div id='d240' class='colors'>"+"aquamarine3</div>"+"<div id='d241' class='colors'>"+"MediumAquamarine</div>"+"<div id='d242' class='colors'>"+"MediumSpringGreen</div>"+"<div id='d243' class='colors'>"+"MintCream</div>"+"<div id='d244' class='colors'>"+"SpringGreen</div>"+"<div id='d245' class='colors'>"+"SpringGreen1</div>"+"<div id='d246' class='colors'>"+"SpringGreen2</div>"+"<div id='d247' class='colors'>"+"SpringGreen3</div>"+"<div id='d248' class='colors'>"+"SpringGreen4</div>"+"<div id='d249' class='colors'>"+"MediumSeaGreen</div>"+"<div id='d250' class='colors'>"+"SeaGreen</div>"+"<div id='d251' class='colors'>"+"SeaGreen3</div>"+"<div id='d252' class='colors'>"+"SeaGreen1</div>"+"<div id='d253' class='colors'>"+"SeaGreen4</div>"+"<div id='d254' class='colors'>"+"SeaGreen2</div>"+"<div id='d255' class='colors'>"+"MediumForestGreen</div>"+"<div id='d256' class='colors'>"+"honeydew</div>"+"<div id='d257' class='colors'>"+"honeydew1</div>"+"<div id='d258' class='colors'>"+"honeydew2</div>"+"<div id='d259' class='colors'>"+"DarkSeaGreen1</div>"+"<div id='d260' class='colors'>"+"DarkSeaGreen2</div>"+"<div id='d261' class='colors'>"+"PaleGreen1</div>"+"<div id='d262' class='colors'>"+"PaleGreen</div>"+"<div id='d263' class='colors'>"+"honeydew3</div>"+"<div id='d264' class='colors'>"+"LightGreen</div>"+"<div id='d265' class='colors'>"+"PaleGreen2</div>"+"<div id='d266' class='colors'>"+"DarkSeaGreen3</div>"+"<div id='d267' class='colors'>"+"DarkSeaGreen</div>"+"<div id='d268' class='colors'>"+"PaleGreen3</div>"+"<div id='d269' class='colors'>"+"honeydew4</div>"+"<div id='d270' class='colors'>"+"green1</div>"+"<div id='d271' class='colors'>"+"lime</div>"+"<div id='d272' class='colors'>"+"LimeGreen</div>"+"<div id='d273' class='colors'>"+"DarkSeaGreen4</div>"+"<div id='d274' class='colors'>"+"green2</div>"+"<div id='d275' class='colors'>"+"PaleGreen4</div>"+"<div id='d276' class='colors'>"+"green3</div>"+"<div id='d277' class='colors'>"+"ForestGreen</div>"+"<div id='d278' class='colors'>"+"green4</div>"+"<div id='d279' class='colors'>"+"green</div>"+"<div id='d280' class='colors'>"+"DarkGreen</div>"+"<div id='d281' class='colors'>"+"LawnGreen</div>"+"<div id='d282' class='colors'>"+"chartreuse</div>"+"<div id='d283' class='colors'>"+"chartreuse1</div>"+"<div id='d284' class='colors'>"+"chartreuse2</div>"+"<div id='d285' class='colors'>"+"chartreuse3</div>"+"<div id='d286' class='colors'>"+"chartreuse4</div>"+"<div id='d287' class='colors'>"+"GreenYellow</div>"+"<div id='d288' class='colors'>"+"DarkOliveGreen3</div>"+"<div id='d289' class='colors'>"+"DarkOliveGreen1</div>"+"<div id='d290' class='colors'>"+"DarkOliveGreen2</div>"+"<div id='d291' class='colors'>"+"DarkOliveGreen4</div>"+"<div id='d292' class='colors'>"+"DarkOliveGreen</div>"+"<div id='d293' class='colors'>"+"OliveDrab</div>"+"<div id='d294' class='colors'>"+"OliveDrab1</div>"+"<div id='d295' class='colors'>"+"OliveDrab2</div>"+"<div id='d296' class='colors'>"+"OliveDrab3</div>"+"<div id='d297' class='colors'>"+"YellowGreen</div>"+"<div id='d298' class='colors'>"+"OliveDrab4</div>"+"<div id='d299' class='colors'>"+"ivory</div>"+"<div id='d300' class='colors'>"+"ivory1</div>"+"<div id='d301' class='colors'>"+"LightYellow</div>"+"<div id='d302' class='colors'>"+"LightYellow1</div>"+"<div id='d303' class='colors'>"+"beige</div>"+"<div id='d304' class='colors'>"+"ivory2</div>"+"<div id='d305' class='colors'>"+"LightGoldenrodYellow</div>"+"<div id='d306' class='colors'>"+"LightYellow2</div>"+"<div id='d307' class='colors'>"+"ivory3</div>"+"<div id='d308' class='colors'>"+"LightYellow3</div>"+"<div id='d309' class='colors'>"+"ivory4</div>"+"<div id='d310' class='colors'>"+"LightYellow4</div>"+"<div id='d311' class='colors'>"+"yellow</div>"+"<div id='d312' class='colors'>"+"yellow1</div>"+"<div id='d313' class='colors'>"+"yellow2</div>"+"<div id='d314' class='colors'>"+"yellow3</div>"+"<div id='d315' class='colors'>"+"yellow4</div>"+"<div id='d316' class='colors'>"+"olive</div>"+"<div id='d317' class='colors'>"+"DarkKhaki</div>"+"<div id='d318' class='colors'>"+"khaki2</div>"+"<div id='d319' class='colors'>"+"LemonChiffon4</div>"+"<div id='d320' class='colors'>"+"khaki1</div>"+"<div id='d321' class='colors'>"+"khaki3</div>"+"<div id='d322' class='colors'>"+"khaki4</div>"+"<div id='d323' class='colors'>"+"PaleGoldenrod</div>"+"<div id='d324' class='colors'>"+"LemonChiffon</div>"+"<div id='d325' class='colors'>"+"LemonChiffon1</div>"+"<div id='d326' class='colors'>"+"khaki</div>"+"<div id='d327' class='colors'>"+"LemonChiffon3</div>"+"<div id='d328' class='colors'>"+"LemonChiffon2</div>"+"<div id='d329' class='colors'>"+"MediumGoldenRod</div>"+"<div id='d330' class='colors'>"+"cornsilk4</div>"+"<div id='d331' class='colors'>"+"gold</div>"+"<div id='d332' class='colors'>"+"gold1</div>"+"<div id='d333' class='colors'>"+"gold2</div>"+"<div id='d334' class='colors'>"+"gold3</div>"+"<div id='d335' class='colors'>"+"gold4</div>"+"<div id='d336' class='colors'>"+"LightGoldenrod</div>"+"<div id='d337' class='colors'>"+"LightGoldenrod4</div>"+"<div id='d338' class='colors'>"+"LightGoldenrod1</div>"+"<div id='d339' class='colors'>"+"LightGoldenrod3</div>"+"<div id='d340' class='colors'>"+"LightGoldenrod2</div>"+"<div id='d341' class='colors'>"+"cornsilk3</div>"+"<div id='d342' class='colors'>"+"cornsilk2</div>"+"<div id='d343' class='colors'>"+"cornsilk</div>"+"<div id='d344' class='colors'>"+"cornsilk1</div>"+"<div id='d345' class='colors'>"+"goldenrod</div>"+"<div id='d346' class='colors'>"+"goldenrod1</div>"+"<div id='d347' class='colors'>"+"goldenrod2</div>"+"<div id='d348' class='colors'>"+"goldenrod3</div>"+"<div id='d349' class='colors'>"+"goldenrod4</div>"+"<div id='d350' class='colors'>"+"DarkGoldenrod</div>"+"<div id='d351' class='colors'>"+"DarkGoldenrod1</div>"+"<div id='d352' class='colors'>"+"DarkGoldenrod2</div>"+"<div id='d353' class='colors'>"+"DarkGoldenrod3</div>"+"<div id='d354' class='colors'>"+"DarkGoldenrod4</div>"+"<div id='d355' class='colors'>"+"FloralWhite</div>"+"<div id='d356' class='colors'>"+"wheat2</div>"+"<div id='d357' class='colors'>"+"OldLace</div>"+"<div id='d358' class='colors'>"+"wheat</div>"+"<div id='d359' class='colors'>"+"wheat1</div>"+"<div id='d360' class='colors'>"+"wheat3</div>"+"<div id='d361' class='colors'>"+"orange</div>"+"<div id='d362' class='colors'>"+"orange1</div>"+"<div id='d363' class='colors'>"+"orange2</div>"+"<div id='d364' class='colors'>"+"orange3</div>"+"<div id='d365' class='colors'>"+"orange4</div>"+"<div id='d366' class='colors'>"+"wheat4</div>"+"<div id='d367' class='colors'>"+"moccasin</div>"+"<div id='d368' class='colors'>"+"PapayaWhip</div>"+"<div id='d369' class='colors'>"+"NavajoWhite3</div>"+"<div id='d370' class='colors'>"+"BlanchedAlmond</div>"+"<div id='d371' class='colors'>"+"NavajoWhite</div>"+"<div id='d372' class='colors'>"+"NavajoWhite1</div>"+"<div id='d373' class='colors'>"+"NavajoWhite2</div>"+"<div id='d374' class='colors'>"+"NavajoWhite4</div>"+"<div id='d375' class='colors'>"+"AntiqueWhite4</div>"+"<div id='d376' class='colors'>"+"AntiqueWhite</div>"+"<div id='d377' class='colors'>"+"tan</div>"+"<div id='d378' class='colors'>"+"bisque4</div>"+"<div id='d379' class='colors'>"+"burlywood</div>"+"<div id='d380' class='colors'>"+"AntiqueWhite2</div>"+"<div id='d381' class='colors'>"+"burlywood1</div>"+"<div id='d382' class='colors'>"+"burlywood3</div>"+"<div id='d383' class='colors'>"+"burlywood2</div>"+"<div id='d384' class='colors'>"+"AntiqueWhite1</div>"+"<div id='d385' class='colors'>"+"burlywood4</div>"+"<div id='d386' class='colors'>"+"AntiqueWhite3</div>"+"<div id='d387' class='colors'>"+"DarkOrange</div>"+"<div id='d388' class='colors'>"+"bisque2</div>"+"<div id='d389' class='colors'>"+"bisque</div>"+"<div id='d390' class='colors'>"+"bisque1</div>"+"<div id='d391' class='colors'>"+"bisque3</div>"+"<div id='d392' class='colors'>"+"DarkOrange1</div>"+"<div id='d393' class='colors'>"+"linen</div>"+"<div id='d394' class='colors'>"+"DarkOrange2</div>"+"<div id='d395' class='colors'>"+"DarkOrange3</div>"+"<div id='d396' class='colors'>"+"DarkOrange4</div>"+"<div id='d397' class='colors'>"+"peru</div>"+"<div id='d398' class='colors'>"+"tan1</div>"+"<div id='d399' class='colors'>"+"tan2</div>"+"<div id='d400' class='colors'>"+"tan3</div>"+"<div id='d401' class='colors'>"+"tan4</div>"+"<div id='d402' class='colors'>"+"PeachPuff</div>"+"<div id='d403' class='colors'>"+"PeachPuff1</div>"+"<div id='d404' class='colors'>"+"PeachPuff4</div>"+"<div id='d405' class='colors'>"+"PeachPuff2</div>"+"<div id='d406' class='colors'>"+"PeachPuff3</div>"+"<div id='d407' class='colors'>"+"SandyBrown</div>"+"<div id='d408' class='colors'>"+"seashell4</div>"+"<div id='d409' class='colors'>"+"seashell2</div>"+"<div id='d410' class='colors'>"+"seashell3</div>"+"<div id='d411' class='colors'>"+"chocolate</div>"+"<div id='d412' class='colors'>"+"chocolate1</div>"+"<div id='d413' class='colors'>"+"chocolate2</div>"+"<div id='d414' class='colors'>"+"chocolate3</div>"+"<div id='d415' class='colors'>"+"chocolate4</div>"+"<div id='d416' class='colors'>"+"SaddleBrown</div>"+"<div id='d417' class='colors'>"+"seashell</div>"+"<div id='d418' class='colors'>"+"seashell1</div>"+"<div id='d419' class='colors'>"+"sienna4</div>"+"<div id='d420' class='colors'>"+"sienna</div>"+"<div id='d421' class='colors'>"+"sienna1</div>"+"<div id='d422' class='colors'>"+"sienna2</div>"+"<div id='d423' class='colors'>"+"sienna3</div>"+"<div id='d424' class='colors'>"+"LightSalmon3</div>"+"<div id='d425' class='colors'>"+"LightSalmon</div>"+"<div id='d426' class='colors'>"+"LightSalmon1</div>"+"<div id='d427' class='colors'>"+"LightSalmon4</div>"+"<div id='d428' class='colors'>"+"LightSalmon2</div>"+"<div id='d429' class='colors'>"+"coral</div>"+"<div id='d430' class='colors'>"+"OrangeRed</div>"+"<div id='d431' class='colors'>"+"OrangeRed1</div>"+"<div id='d432' class='colors'>"+"OrangeRed2</div>"+"<div id='d433' class='colors'>"+"OrangeRed3</div>"+"<div id='d434' class='colors'>"+"OrangeRed4</div>"+"<div id='d435' class='colors'>"+"DarkSalmon</div>"+"<div id='d436' class='colors'>"+"salmon1</div>"+"<div id='d437' class='colors'>"+"salmon2</div>"+"<div id='d438' class='colors'>"+"salmon3</div>"+"<div id='d439' class='colors'>"+"salmon4</div>"+"<div id='d440' class='colors'>"+"coral1</div>"+"<div id='d441' class='colors'>"+"coral2</div>"+"<div id='d442' class='colors'>"+"coral3</div>"+"<div id='d443' class='colors'>"+"coral4</div>"+"<div id='d444' class='colors'>"+"tomato4</div>"+"<div id='d445' class='colors'>"+"tomato</div>"+"<div id='d446' class='colors'>"+"tomato1</div>"+"<div id='d447' class='colors'>"+"tomato2</div>"+"<div id='d448' class='colors'>"+"tomato3</div>"+"<div id='d449' class='colors'>"+"MistyRose4</div>"+"<div id='d450' class='colors'>"+"MistyRose2</div>"+"<div id='d451' class='colors'>"+"MistyRose</div>"+"<div id='d452' class='colors'>"+"MistyRose1</div>"+"<div id='d453' class='colors'>"+"salmon</div>"+"<div id='d454' class='colors'>"+"MistyRose3</div>"+"<div id='d455' class='colors'>"+"white</div>"+"<div id='d456' class='colors'>"+"gray100</div>"+"<div id='d457' class='colors'>"+"grey100</div>"+"<div id='d458' class='colors'>"+"grey100</div>"+"<div id='d459' class='colors'>"+"gray99</div>"+"<div id='d460' class='colors'>"+"grey99</div>"+"<div id='d461' class='colors'>"+"gray98</div>"+"<div id='d462' class='colors'>"+"grey98</div>"+"<div id='d463' class='colors'>"+"gray97</div>"+"<div id='d464' class='colors'>"+"grey97</div>"+"<div id='d465' class='colors'>"+"gray96</div>"+"<div id='d466' class='colors'>"+"grey96</div>"+"<div id='d467' class='colors'>"+"WhiteSmoke</div>"+"<div id='d468' class='colors'>"+"gray95</div>"+"<div id='d469' class='colors'>"+"grey95</div>"+"<div id='d470' class='colors'>"+"gray94</div>"+"<div id='d471' class='colors'>"+"grey94</div>"+"<div id='d472' class='colors'>"+"gray93</div>"+"<div id='d473' class='colors'>"+"grey93</div>"+"<div id='d474' class='colors'>"+"gray92</div>"+"<div id='d475' class='colors'>"+"grey92</div>"+"<div id='d476' class='colors'>"+"gray91</div>"+"<div id='d477' class='colors'>"+"grey91</div>"+"<div id='d478' class='colors'>"+"gray90</div>"+"<div id='d479' class='colors'>"+"grey90</div>"+"<div id='d480' class='colors'>"+"gray89</div>"+"<div id='d481' class='colors'>"+"grey89</div>"+"<div id='d482' class='colors'>"+"gray88</div>"+"<div id='d483' class='colors'>"+"grey88</div>"+"<div id='d484' class='colors'>"+"gray87</div>"+"<div id='d485' class='colors'>"+"grey87</div>"+"<div id='d486' class='colors'>"+"gainsboro</div>"+"<div id='d487' class='colors'>"+"gray86</div>"+"<div id='d488' class='colors'>"+"grey86</div>"+"<div id='d489' class='colors'>"+"gray85</div>"+"<div id='d490' class='colors'>"+"grey85</div>"+"<div id='d491' class='colors'>"+"gray84</div>"+"<div id='d492' class='colors'>"+"grey84</div>"+"<div id='d493' class='colors'>"+"gray83</div>"+"<div id='d494' class='colors'>"+"grey83</div>"+"<div id='d495' class='colors'>"+"LightGray</div>"+"<div id='d496' class='colors'>"+"LightGrey</div>"+"<div id='d497' class='colors'>"+"gray82</div>"+"<div id='d498' class='colors'>"+"grey82</div>"+"<div id='d499' class='colors'>"+"gray81</div>"+"<div id='d500' class='colors'>"+"grey81</div>"+"<div id='d501' class='colors'>"+"gray80</div>"+"<div id='d502' class='colors'>"+"grey80</div>"+"<div id='d503' class='colors'>"+"gray79</div>"+"<div id='d504' class='colors'>"+"grey79</div>"+"<div id='d505' class='colors'>"+"gray78</div>"+"<div id='d506' class='colors'>"+"grey78</div>"+"<div id='d507' class='colors'>"+"gray77</div>"+"<div id='d508' class='colors'>"+"grey77</div>"+"<div id='d509' class='colors'>"+"gray76</div>"+"<div id='d510' class='colors'>"+"grey76</div>"+"<div id='d511' class='colors'>"+"silver</div>"+"<div id='d512' class='colors'>"+"gray75</div>"+"<div id='d513' class='colors'>"+"grey75</div>"+"<div id='d514' class='colors'>"+"gray74</div>"+"<div id='d515' class='colors'>"+"grey74</div>"+"<div id='d516' class='colors'>"+"gray73</div>"+"<div id='d517' class='colors'>"+"grey73</div>"+"<div id='d518' class='colors'>"+"gray72</div>"+"<div id='d519' class='colors'>"+"grey72</div>"+"<div id='d520' class='colors'>"+"gray71</div>"+"<div id='d521' class='colors'>"+"grey71</div>"+"<div id='d522' class='colors'>"+"gray70</div>"+"<div id='d523' class='colors'>"+"grey70</div>"+"<div id='d524' class='colors'>"+"gray69</div>"+"<div id='d525' class='colors'>"+"grey69</div>"+"<div id='d526' class='colors'>"+"gray68</div>"+"<div id='d527' class='colors'>"+"grey68</div>"+"<div id='d528' class='colors'>"+"gray67</div>"+"<div id='d529' class='colors'>"+"grey67</div>"+"<div id='d530' class='colors'>"+"DarkGray</div>"+"<div id='d531' class='colors'>"+"DarkGrey</div>"+"<div id='d532' class='colors'>"+"gray66</div>"+"<div id='d533' class='colors'>"+"grey66</div>"+"<div id='d534' class='colors'>"+"gray65</div>"+"<div id='d535' class='colors'>"+"grey65</div>"+"<div id='d536' class='colors'>"+"gray64</div>"+"<div id='d537' class='colors'>"+"grey64</div>"+"<div id='d538' class='colors'>"+"gray63</div>"+"<div id='d539' class='colors'>"+"grey63</div>"+"<div id='d540' class='colors'>"+"gray62</div>"+"<div id='d541' class='colors'>"+"grey62</div>"+"<div id='d542' class='colors'>"+"gray61</div>"+"<div id='d543' class='colors'>"+"grey61</div>"+"<div id='d544' class='colors'>"+"gray60</div>"+"<div id='d545' class='colors'>"+"grey60</div>"+"<div id='d546' class='colors'>"+"gray59</div>"+"<div id='d547' class='colors'>"+"grey59</div>"+"<div id='d548' class='colors'>"+"gray58</div>"+"<div id='d549' class='colors'>"+"grey58</div>"+"<div id='d550' class='colors'>"+"gray57</div>"+"<div id='d551' class='colors'>"+"grey57</div>"+"<div id='d552' class='colors'>"+"gray56</div>"+"<div id='d553' class='colors'>"+"grey56</div>"+"<div id='d554' class='colors'>"+"gray55</div>"+"<div id='d555' class='colors'>"+"grey55</div>"+"<div id='d556' class='colors'>"+"gray54</div>"+"<div id='d557' class='colors'>"+"grey54</div>"+"<div id='d558' class='colors'>"+"gray53</div>"+"<div id='d559' class='colors'>"+"grey53</div>"+"<div id='d560' class='colors'>"+"gray52</div>"+"<div id='d561' class='colors'>"+"grey52</div>"+"<div id='d562' class='colors'>"+"gray51</div>"+"<div id='d563' class='colors'>"+"grey51</div>"+"<div id='d564' class='colors'>"+"fractal</div>"+"<div id='d565' class='colors'>"+"gray50</div>"+"<div id='d566' class='colors'>"+"grey50</div>"+"<div id='d567' class='colors'>"+"gray</div>"+"<div id='d568' class='colors'>"+"gray49</div>"+"<div id='d569' class='colors'>"+"grey49</div>"+"<div id='d570' class='colors'>"+"gray48</div>"+"<div id='d571' class='colors'>"+"grey48</div>"+"<div id='d572' class='colors'>"+"gray47</div>"+"<div id='d573' class='colors'>"+"grey47</div>"+"<div id='d574' class='colors'>"+"gray46</div>"+"<div id='d575' class='colors'>"+"grey46</div>"+"<div id='d576' class='colors'>"+"gray45</div>"+"<div id='d577' class='colors'>"+"grey45</div>"+"<div id='d578' class='colors'>"+"gray44</div>"+"<div id='d579' class='colors'>"+"grey44</div>"+"<div id='d580' class='colors'>"+"gray43</div>"+"<div id='d581' class='colors'>"+"grey43</div>"+"<div id='d582' class='colors'>"+"gray42</div>"+"<div id='d583' class='colors'>"+"grey42</div>"+"<div id='d584' class='colors'>"+"DimGray</div>"+"<div id='d585' class='colors'>"+"DimGrey</div>"+"<div id='d586' class='colors'>"+"gray41</div>"+"<div id='d587' class='colors'>"+"grey41</div>"+"<div id='d588' class='colors'>"+"gray40</div>"+"<div id='d589' class='colors'>"+"grey40</div>"+"<div id='d590' class='colors'>"+"gray39</div>"+"<div id='d591' class='colors'>"+"grey39</div>"+"<div id='d592' class='colors'>"+"gray38</div>"+"<div id='d593' class='colors'>"+"grey38</div>"+"<div id='d594' class='colors'>"+"gray37</div>"+"<div id='d595' class='colors'>"+"grey37</div>"+"<div id='d596' class='colors'>"+"gray36</div>"+"<div id='d597' class='colors'>"+"grey36</div>"+"<div id='d598' class='colors'>"+"gray35</div>"+"<div id='d599' class='colors'>"+"grey35</div>"+"<div id='d600' class='colors'>"+"gray34</div>"+"<div id='d601' class='colors'>"+"grey34</div>"+"<div id='d602' class='colors'>"+"gray33</div>"+"<div id='d603' class='colors'>"+"grey33</div>"+"<div id='d604' class='colors'>"+"gray32</div>"+"<div id='d605' class='colors'>"+"grey32</div>"+"<div id='d606' class='colors'>"+"gray31</div>"+"<div id='d607' class='colors'>"+"grey31</div>"+"<div id='d608' class='colors'>"+"gray30</div>"+"<div id='d609' class='colors'>"+"grey30</div>"+"<div id='d610' class='colors'>"+"gray29</div>"+"<div id='d611' class='colors'>"+"grey29</div>"+"<div id='d612' class='colors'>"+"gray28</div>"+"<div id='d613' class='colors'>"+"grey28</div>"+"<div id='d614' class='colors'>"+"gray27</div>"+"<div id='d615' class='colors'>"+"grey27</div>"+"<div id='d616' class='colors'>"+"gray26</div>"+"<div id='d617' class='colors'>"+"grey26</div>"+"<div id='d618' class='colors'>"+"gray25</div>"+"<div id='d619' class='colors'>"+"grey25</div>"+"<div id='d620' class='colors'>"+"gray24</div>"+"<div id='d621' class='colors'>"+"grey24</div>"+"<div id='d622' class='colors'>"+"gray23</div>"+"<div id='d623' class='colors'>"+"grey23</div>"+"<div id='d624' class='colors'>"+"gray22</div>"+"<div id='d625' class='colors'>"+"grey22</div>"+"<div id='d626' class='colors'>"+"gray21</div>"+"<div id='d627' class='colors'>"+"grey21</div>"+"<div id='d628' class='colors'>"+"gray20</div>"+"<div id='d629' class='colors'>"+"grey20</div>"+"<div id='d630' class='colors'>"+"gray19</div>"+"<div id='d631' class='colors'>"+"grey19</div>"+"<div id='d632' class='colors'>"+"gray18</div>"+"<div id='d633' class='colors'>"+"grey18</div>"+"<div id='d634' class='colors'>"+"gray17</div>"+"<div id='d635' class='colors'>"+"grey17</div>"+"<div id='d636' class='colors'>"+"gray16</div>"+"<div id='d637' class='colors'>"+"grey16</div>"+"<div id='d638' class='colors'>"+"gray15</div>"+"<div id='d639' class='colors'>"+"grey15</div>"+"<div id='d640' class='colors'>"+"gray14</div>"+"<div id='d641' class='colors'>"+"grey14</div>"+"<div id='d642' class='colors'>"+"gray13</div>"+"<div id='d643' class='colors'>"+"grey13</div>"+"<div id='d644' class='colors'>"+"gray12</div>"+"<div id='d645' class='colors'>"+"grey12</div>"+"<div id='d646' class='colors'>"+"gray11</div>"+"<div id='d647' class='colors'>"+"grey11</div>"+"<div id='d648' class='colors'>"+"gray10</div>"+"<div id='d649' class='colors'>"+"grey10</div>"+"<div id='d650' class='colors'>"+"gray9</div>"+"<div id='d651' class='colors'>"+"grey9</div>"+"<div id='d652' class='colors'>"+"gray8</div>"+"<div id='d653' class='colors'>"+"grey8</div>"+"<div id='d654' class='colors'>"+"gray7</div>"+"<div id='d655' class='colors'>"+"grey7</div>"+"<div id='d656' class='colors'>"+"gray6</div>"+"<div id='d657' class='colors'>"+"grey6</div>"+"<div id='d658' class='colors'>"+"gray5</div>"+"<div id='d659' class='colors'>"+"grey5</div>"+"<div id='d660' class='colors'>"+"gray4</div>"+"<div id='d661' class='colors'>"+"grey4</div>"+"<div id='d662' class='colors'>"+"gray3</div>"+"<div id='d663' class='colors'>"+"grey3</div>"+"<div id='d664' class='colors'>"+"gray2</div>"+"<div id='d665' class='colors'>"+"grey2</div>"+"<div id='d666' class='colors'>"+"gray1</div>"+"<div id='d667' class='colors'>"+"grey1</div>"+"<div id='d668' class='colors'>"+"black</div>"+"<div id='d669' class='colors'>"+"gray0</div>"+"<div id='d670' class='colors'>"+"grey0</div>"+"<div id='d671' class='colors'>"+"opaque</div>"+"<div id='d672' class='colors'>"+"none</div>"+"<div id='d673' class='colors'>"+"transparent</div>"+"</div>"+"<div id='colornames'>WHERE THE COLORNAMES WILL GO</div>"+"<script type='text/javascript' src='colordict.js'></script>"+"<script type='text/javascript' src='colorpixx.js'></script>" + + +function showpicker() + { + $('#popupContact').html(colorpicker); + $('#swingleft').append("whos the dadd addad"); + $('#popupContact').css('height', '1500px') + } + +$('#colorlist').click(function(){showpicker()}) + + + + diff --git a/frontend/imgrid/colors/junk/scrollio.html b/frontend/imgrid/colors/junk/scrollio.html new file mode 100755 index 0000000..e1443c3 --- /dev/null +++ b/frontend/imgrid/colors/junk/scrollio.html @@ -0,0 +1,3850 @@ +<html> +<head> +<link rel="stylesheet" type="text/css" href="ScrollEffect.css" /> +<script type="text/javascript" src="ScrollEffect.js"></script> + +<style type='text/css'> + +body +{ +margin:0; +} + +#colorpicker +{ +position:absolute; +width:100%; +font-family:helvetica; +font-size:10px; +//background-color: gray; +//background-image: url("http://asdf.us/im/6f/gradient_bgdither_1321255670_pepper.gif"); +background-color: black; +background-image: url("http://dump.fm/static/img/bg.dither.gif") + +} + +#container div +{ +text-align:left; +display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +min-height: 30px; +zoom: 1; +word-wrap: break-word; +*display: inline; +cursor:pointer; +} + +#container +{ +margin:0 auto; +width:31%; +padding-bottom:0px; +padding-right:10px; +padding-left:10px; +text-align:center; +position:absolute; +height:850px; +} + +#viewarea +{ +position: relative; +top: 10%; +width: 31%; +height: 820px; +overflow: hidden; +margin:0 auto; +padding-top:10px; +padding-right:10px; +padding-left:10px; +text-align:center; +border-style:outset; +border-width:10px; +} + +#colornames +{ +color:white; +position:fixed; +font-size:50px; +top:50px; +left:2%; +width:400px; +} + +#switches + { + position:fixed; + top:20px; + right:1%; + height:400px; + width:300px; + font-size:20px; + border-style: groove; + border-width: 4px; + background-color:gray; + padding:2px; + box-shadow: 10px 10px 5px #141414; + } + +#infoswitch, #hexswitch, #backgroundswitch + { + background-image:url(http://asdf.us/im/58/gradient_whitegray80_1321305183_1321305241_pepper.jpg); + cursor:pointer; + } +#preview + { + height:150px; + } + + +#holder + { + float:bottom; + } + +#transparent + { + font-size:12px; + } +#namespace + { + width:inherit; + } +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{ +height:30; +width:10px; +} +</style></head><body> +<div id='colorpicker'> +<div id='viewarea' class="panorama"> +<div id='container'> +<div id='d0' class='colors'> +snow</div> +<div id='d1' class='colors'> +snow1</div> +<div id='d2' class='colors'> +snow2</div> +<div id='d3' class='colors'> +RosyBrown1</div> +<div id='d4' class='colors'> +RosyBrown2</div> +<div id='d5' class='colors'> +snow3</div> +<div id='d6' class='colors'> +LightCoral</div> +<div id='d7' class='colors'> +IndianRed1</div> +<div id='d8' class='colors'> +RosyBrown3</div> +<div id='d9' class='colors'> +IndianRed2</div> +<div id='d10' class='colors'> +RosyBrown</div> +<div id='d11' class='colors'> +brown1</div> +<div id='d12' class='colors'> +firebrick1</div> +<div id='d13' class='colors'> +brown2</div> +<div id='d14' class='colors'> +IndianRed</div> +<div id='d15' class='colors'> +IndianRed3</div> +<div id='d16' class='colors'> +firebrick2</div> +<div id='d17' class='colors'> +snow4</div> +<div id='d18' class='colors'> +brown3</div> +<div id='d19' class='colors'> +red</div> +<div id='d20' class='colors'> +red1</div> +<div id='d21' class='colors'> +RosyBrown4</div> +<div id='d22' class='colors'> +firebrick3</div> +<div id='d23' class='colors'> +red2</div> +<div id='d24' class='colors'> +firebrick</div> +<div id='d25' class='colors'> +brown</div> +<div id='d26' class='colors'> +red3</div> +<div id='d27' class='colors'> +IndianRed4</div> +<div id='d28' class='colors'> +brown4</div> +<div id='d29' class='colors'> +firebrick4</div> +<div id='d30' class='colors'> +DarkRed</div> +<div id='d31' class='colors'> +red4</div> +<div id='d32' class='colors'> +maroon</div> +<div id='d33' class='colors'> +LightPink1</div> +<div id='d34' class='colors'> +LightPink3</div> +<div id='d35' class='colors'> +LightPink4</div> +<div id='d36' class='colors'> +LightPink2</div> +<div id='d37' class='colors'> +LightPink</div> +<div id='d38' class='colors'> +pink</div> +<div id='d39' class='colors'> +crimson</div> +<div id='d40' class='colors'> +pink1</div> +<div id='d41' class='colors'> +pink2</div> +<div id='d42' class='colors'> +pink3</div> +<div id='d43' class='colors'> +pink4</div> +<div id='d44' class='colors'> +PaleVioletRed4</div> +<div id='d45' class='colors'> +PaleVioletRed</div> +<div id='d46' class='colors'> +PaleVioletRed2</div> +<div id='d47' class='colors'> +PaleVioletRed1</div> +<div id='d48' class='colors'> +PaleVioletRed3</div> +<div id='d49' class='colors'> +LavenderBlush</div> +<div id='d50' class='colors'> +LavenderBlush1</div> +<div id='d51' class='colors'> +LavenderBlush3</div> +<div id='d52' class='colors'> +LavenderBlush2</div> +<div id='d53' class='colors'> +LavenderBlush4</div> +<div id='d54' class='colors'> +maroon</div> +<div id='d55' class='colors'> +HotPink3</div> +<div id='d56' class='colors'> +VioletRed3</div> +<div id='d57' class='colors'> +VioletRed1</div> +<div id='d58' class='colors'> +VioletRed2</div> +<div id='d59' class='colors'> +VioletRed4</div> +<div id='d60' class='colors'> +HotPink2</div> +<div id='d61' class='colors'> +HotPink1</div> +<div id='d62' class='colors'> +HotPink4</div> +<div id='d63' class='colors'> +HotPink</div> +<div id='d64' class='colors'> +DeepPink</div> +<div id='d65' class='colors'> +DeepPink1</div> +<div id='d66' class='colors'> +DeepPink2</div> +<div id='d67' class='colors'> +DeepPink3</div> +<div id='d68' class='colors'> +DeepPink4</div> +<div id='d69' class='colors'> +maroon1</div> +<div id='d70' class='colors'> +maroon2</div> +<div id='d71' class='colors'> +maroon3</div> +<div id='d72' class='colors'> +maroon4</div> +<div id='d73' class='colors'> +MediumVioletRed</div> +<div id='d74' class='colors'> +VioletRed</div> +<div id='d75' class='colors'> +orchid2</div> +<div id='d76' class='colors'> +orchid</div> +<div id='d77' class='colors'> +orchid1</div> +<div id='d78' class='colors'> +orchid3</div> +<div id='d79' class='colors'> +orchid4</div> +<div id='d80' class='colors'> +thistle1</div> +<div id='d81' class='colors'> +thistle2</div> +<div id='d82' class='colors'> +plum1</div> +<div id='d83' class='colors'> +plum2</div> +<div id='d84' class='colors'> +thistle</div> +<div id='d85' class='colors'> +thistle3</div> +<div id='d86' class='colors'> +plum</div> +<div id='d87' class='colors'> +violet</div> +<div id='d88' class='colors'> +plum3</div> +<div id='d89' class='colors'> +thistle4</div> +<div id='d90' class='colors'> +fuchsia</div> +<div id='d91' class='colors'> +magenta</div> +<div id='d92' class='colors'> +magenta1</div> +<div id='d93' class='colors'> +plum4</div> +<div id='d94' class='colors'> +magenta2</div> +<div id='d95' class='colors'> +magenta3</div> +<div id='d96' class='colors'> +DarkMagenta</div> +<div id='d97' class='colors'> +magenta4</div> +<div id='d98' class='colors'> +purple</div> +<div id='d99' class='colors'> +MediumOrchid</div> +<div id='d100' class='colors'> +MediumOrchid1</div> +<div id='d101' class='colors'> +MediumOrchid2</div> +<div id='d102' class='colors'> +MediumOrchid3</div> +<div id='d103' class='colors'> +MediumOrchid4</div> +<div id='d104' class='colors'> +DarkViolet</div> +<div id='d105' class='colors'> +DarkOrchid</div> +<div id='d106' class='colors'> +DarkOrchid1</div> +<div id='d107' class='colors'> +DarkOrchid3</div> +<div id='d108' class='colors'> +DarkOrchid2</div> +<div id='d109' class='colors'> +DarkOrchid4</div> +<div id='d110' class='colors'> +purple</div> +<div id='d111' class='colors'> +indigo</div> +<div id='d112' class='colors'> +BlueViolet</div> +<div id='d113' class='colors'> +purple2</div> +<div id='d114' class='colors'> +purple3</div> +<div id='d115' class='colors'> +purple4</div> +<div id='d116' class='colors'> +purple1</div> +<div id='d117' class='colors'> +MediumPurple</div> +<div id='d118' class='colors'> +MediumPurple1</div> +<div id='d119' class='colors'> +MediumPurple2</div> +<div id='d120' class='colors'> +MediumPurple3</div> +<div id='d121' class='colors'> +MediumPurple4</div> +<div id='d122' class='colors'> +DarkSlateBlue</div> +<div id='d123' class='colors'> +LightSlateBlue</div> +<div id='d124' class='colors'> +MediumSlateBlue</div> +<div id='d125' class='colors'> +SlateBlue</div> +<div id='d126' class='colors'> +SlateBlue1</div> +<div id='d127' class='colors'> +SlateBlue2</div> +<div id='d128' class='colors'> +SlateBlue3</div> +<div id='d129' class='colors'> +SlateBlue4</div> +<div id='d130' class='colors'> +GhostWhite</div> +<div id='d131' class='colors'> +lavender</div> +<div id='d132' class='colors'> +blue</div> +<div id='d133' class='colors'> +blue1</div> +<div id='d134' class='colors'> +blue2</div> +<div id='d135' class='colors'> +blue3</div> +<div id='d136' class='colors'> +MediumBlue</div> +<div id='d137' class='colors'> +blue4</div> +<div id='d138' class='colors'> +DarkBlue</div> +<div id='d139' class='colors'> +MidnightBlue</div> +<div id='d140' class='colors'> +navy</div> +<div id='d141' class='colors'> +NavyBlue</div> +<div id='d142' class='colors'> +RoyalBlue</div> +<div id='d143' class='colors'> +RoyalBlue1</div> +<div id='d144' class='colors'> +RoyalBlue2</div> +<div id='d145' class='colors'> +RoyalBlue3</div> +<div id='d146' class='colors'> +RoyalBlue4</div> +<div id='d147' class='colors'> +CornflowerBlue</div> +<div id='d148' class='colors'> +LightSteelBlue</div> +<div id='d149' class='colors'> +LightSteelBlue1</div> +<div id='d150' class='colors'> +LightSteelBlue2</div> +<div id='d151' class='colors'> +LightSteelBlue3</div> +<div id='d152' class='colors'> +LightSteelBlue4</div> +<div id='d153' class='colors'> +SlateGray4</div> +<div id='d154' class='colors'> +SlateGray1</div> +<div id='d155' class='colors'> +SlateGray2</div> +<div id='d156' class='colors'> +SlateGray3</div> +<div id='d157' class='colors'> +LightSlateGray</div> +<div id='d158' class='colors'> +LightSlateGrey</div> +<div id='d159' class='colors'> +SlateGray</div> +<div id='d160' class='colors'> +SlateGrey</div> +<div id='d161' class='colors'> +DodgerBlue</div> +<div id='d162' class='colors'> +DodgerBlue1</div> +<div id='d163' class='colors'> +DodgerBlue2</div> +<div id='d164' class='colors'> +DodgerBlue4</div> +<div id='d165' class='colors'> +DodgerBlue3</div> +<div id='d166' class='colors'> +AliceBlue</div> +<div id='d167' class='colors'> +SteelBlue4</div> +<div id='d168' class='colors'> +SteelBlue</div> +<div id='d169' class='colors'> +SteelBlue1</div> +<div id='d170' class='colors'> +SteelBlue2</div> +<div id='d171' class='colors'> +SteelBlue3</div> +<div id='d172' class='colors'> +SkyBlue4</div> +<div id='d173' class='colors'> +SkyBlue1</div> +<div id='d174' class='colors'> +SkyBlue2</div> +<div id='d175' class='colors'> +SkyBlue3</div> +<div id='d176' class='colors'> +LightSkyBlue</div> +<div id='d177' class='colors'> +LightSkyBlue4</div> +<div id='d178' class='colors'> +LightSkyBlue1</div> +<div id='d179' class='colors'> +LightSkyBlue2</div> +<div id='d180' class='colors'> +LightSkyBlue3</div> +<div id='d181' class='colors'> +SkyBlue</div> +<div id='d182' class='colors'> +LightBlue3</div> +<div id='d183' class='colors'> +DeepSkyBlue</div> +<div id='d184' class='colors'> +DeepSkyBlue1</div> +<div id='d185' class='colors'> +DeepSkyBlue2</div> +<div id='d186' class='colors'> +DeepSkyBlue4</div> +<div id='d187' class='colors'> +DeepSkyBlue3</div> +<div id='d188' class='colors'> +LightBlue1</div> +<div id='d189' class='colors'> +LightBlue2</div> +<div id='d190' class='colors'> +LightBlue</div> +<div id='d191' class='colors'> +LightBlue4</div> +<div id='d192' class='colors'> +PowderBlue</div> +<div id='d193' class='colors'> +CadetBlue1</div> +<div id='d194' class='colors'> +CadetBlue2</div> +<div id='d195' class='colors'> +CadetBlue3</div> +<div id='d196' class='colors'> +CadetBlue4</div> +<div id='d197' class='colors'> +turquoise1</div> +<div id='d198' class='colors'> +turquoise2</div> +<div id='d199' class='colors'> +turquoise3</div> +<div id='d200' class='colors'> +turquoise4</div> +<div id='d201' class='colors'> +cadet blue</div> +<div id='d202' class='colors'> +CadetBlue</div> +<div id='d203' class='colors'> +DarkTurquoise</div> +<div id='d204' class='colors'> +azure</div> +<div id='d205' class='colors'> +azure1</div> +<div id='d206' class='colors'> +LightCyan</div> +<div id='d207' class='colors'> +LightCyan1</div> +<div id='d208' class='colors'> +azure2</div> +<div id='d209' class='colors'> +LightCyan2</div> +<div id='d210' class='colors'> +PaleTurquoise1</div> +<div id='d211' class='colors'> +PaleTurquoise</div> +<div id='d212' class='colors'> +PaleTurquoise2</div> +<div id='d213' class='colors'> +DarkSlateGray1</div> +<div id='d214' class='colors'> +azure3</div> +<div id='d215' class='colors'> +LightCyan3</div> +<div id='d216' class='colors'> +DarkSlateGray2</div> +<div id='d217' class='colors'> +PaleTurquoise3</div> +<div id='d218' class='colors'> +DarkSlateGray3</div> +<div id='d219' class='colors'> +azure4</div> +<div id='d220' class='colors'> +LightCyan4</div> +<div id='d221' class='colors'> +aqua</div> +<div id='d222' class='colors'> +cyan</div> +<div id='d223' class='colors'> +cyan1</div> +<div id='d224' class='colors'> +PaleTurquoise4</div> +<div id='d225' class='colors'> +cyan2</div> +<div id='d226' class='colors'> +DarkSlateGray4</div> +<div id='d227' class='colors'> +cyan3</div> +<div id='d228' class='colors'> +cyan4</div> +<div id='d229' class='colors'> +DarkCyan</div> +<div id='d230' class='colors'> +teal</div> +<div id='d231' class='colors'> +DarkSlateGray</div> +<div id='d232' class='colors'> +DarkSlateGrey</div> +<div id='d233' class='colors'> +MediumTurquoise</div> +<div id='d234' class='colors'> +LightSeaGreen</div> +<div id='d235' class='colors'> +turquoise</div> +<div id='d236' class='colors'> +aquamarine4</div> +<div id='d237' class='colors'> +aquamarine</div> +<div id='d238' class='colors'> +aquamarine1</div> +<div id='d239' class='colors'> +aquamarine2</div> +<div id='d240' class='colors'> +aquamarine3</div> +<div id='d241' class='colors'> +MediumAquamarine</div> +<div id='d242' class='colors'> +MediumSpringGreen</div> +<div id='d243' class='colors'> +MintCream</div> +<div id='d244' class='colors'> +SpringGreen</div> +<div id='d245' class='colors'> +SpringGreen1</div> +<div id='d246' class='colors'> +SpringGreen2</div> +<div id='d247' class='colors'> +SpringGreen3</div> +<div id='d248' class='colors'> +SpringGreen4</div> +<div id='d249' class='colors'> +MediumSeaGreen</div> +<div id='d250' class='colors'> +SeaGreen</div> +<div id='d251' class='colors'> +SeaGreen3</div> +<div id='d252' class='colors'> +SeaGreen1</div> +<div id='d253' class='colors'> +SeaGreen4</div> +<div id='d254' class='colors'> +SeaGreen2</div> +<div id='d255' class='colors'> +MediumForestGreen</div> +<div id='d256' class='colors'> +honeydew</div> +<div id='d257' class='colors'> +honeydew1</div> +<div id='d258' class='colors'> +honeydew2</div> +<div id='d259' class='colors'> +DarkSeaGreen1</div> +<div id='d260' class='colors'> +DarkSeaGreen2</div> +<div id='d261' class='colors'> +PaleGreen1</div> +<div id='d262' class='colors'> +PaleGreen</div> +<div id='d263' class='colors'> +honeydew3</div> +<div id='d264' class='colors'> +LightGreen</div> +<div id='d265' class='colors'> +PaleGreen2</div> +<div id='d266' class='colors'> +DarkSeaGreen3</div> +<div id='d267' class='colors'> +DarkSeaGreen</div> +<div id='d268' class='colors'> +PaleGreen3</div> +<div id='d269' class='colors'> +honeydew4</div> +<div id='d270' class='colors'> +green1</div> +<div id='d271' class='colors'> +lime</div> +<div id='d272' class='colors'> +LimeGreen</div> +<div id='d273' class='colors'> +DarkSeaGreen4</div> +<div id='d274' class='colors'> +green2</div> +<div id='d275' class='colors'> +PaleGreen4</div> +<div id='d276' class='colors'> +green3</div> +<div id='d277' class='colors'> +ForestGreen</div> +<div id='d278' class='colors'> +green4</div> +<div id='d279' class='colors'> +green</div> +<div id='d280' class='colors'> +DarkGreen</div> +<div id='d281' class='colors'> +LawnGreen</div> +<div id='d282' class='colors'> +chartreuse</div> +<div id='d283' class='colors'> +chartreuse1</div> +<div id='d284' class='colors'> +chartreuse2</div> +<div id='d285' class='colors'> +chartreuse3</div> +<div id='d286' class='colors'> +chartreuse4</div> +<div id='d287' class='colors'> +GreenYellow</div> +<div id='d288' class='colors'> +DarkOliveGreen3</div> +<div id='d289' class='colors'> +DarkOliveGreen1</div> +<div id='d290' class='colors'> +DarkOliveGreen2</div> +<div id='d291' class='colors'> +DarkOliveGreen4</div> +<div id='d292' class='colors'> +DarkOliveGreen</div> +<div id='d293' class='colors'> +OliveDrab</div> +<div id='d294' class='colors'> +OliveDrab1</div> +<div id='d295' class='colors'> +OliveDrab2</div> +<div id='d296' class='colors'> +OliveDrab3</div> +<div id='d297' class='colors'> +YellowGreen</div> +<div id='d298' class='colors'> +OliveDrab4</div> +<div id='d299' class='colors'> +ivory</div> +<div id='d300' class='colors'> +ivory1</div> +<div id='d301' class='colors'> +LightYellow</div> +<div id='d302' class='colors'> +LightYellow1</div> +<div id='d303' class='colors'> +beige</div> +<div id='d304' class='colors'> +ivory2</div> +<div id='d305' class='colors'> +LightGoldenrodYellow</div> +<div id='d306' class='colors'> +LightYellow2</div> +<div id='d307' class='colors'> +ivory3</div> +<div id='d308' class='colors'> +LightYellow3</div> +<div id='d309' class='colors'> +ivory4</div> +<div id='d310' class='colors'> +LightYellow4</div> +<div id='d311' class='colors'> +yellow</div> +<div id='d312' class='colors'> +yellow1</div> +<div id='d313' class='colors'> +yellow2</div> +<div id='d314' class='colors'> +yellow3</div> +<div id='d315' class='colors'> +yellow4</div> +<div id='d316' class='colors'> +olive</div> +<div id='d317' class='colors'> +DarkKhaki</div> +<div id='d318' class='colors'> +khaki2</div> +<div id='d319' class='colors'> +LemonChiffon4</div> +<div id='d320' class='colors'> +khaki1</div> +<div id='d321' class='colors'> +khaki3</div> +<div id='d322' class='colors'> +khaki4</div> +<div id='d323' class='colors'> +PaleGoldenrod</div> +<div id='d324' class='colors'> +LemonChiffon</div> +<div id='d325' class='colors'> +LemonChiffon1</div> +<div id='d326' class='colors'> +khaki</div> +<div id='d327' class='colors'> +LemonChiffon3</div> +<div id='d328' class='colors'> +LemonChiffon2</div> +<div id='d329' class='colors'> +MediumGoldenRod</div> +<div id='d330' class='colors'> +cornsilk4</div> +<div id='d331' class='colors'> +gold</div> +<div id='d332' class='colors'> +gold1</div> +<div id='d333' class='colors'> +gold2</div> +<div id='d334' class='colors'> +gold3</div> +<div id='d335' class='colors'> +gold4</div> +<div id='d336' class='colors'> +LightGoldenrod</div> +<div id='d337' class='colors'> +LightGoldenrod4</div> +<div id='d338' class='colors'> +LightGoldenrod1</div> +<div id='d339' class='colors'> +LightGoldenrod3</div> +<div id='d340' class='colors'> +LightGoldenrod2</div> +<div id='d341' class='colors'> +cornsilk3</div> +<div id='d342' class='colors'> +cornsilk2</div> +<div id='d343' class='colors'> +cornsilk</div> +<div id='d344' class='colors'> +cornsilk1</div> +<div id='d345' class='colors'> +goldenrod</div> +<div id='d346' class='colors'> +goldenrod1</div> +<div id='d347' class='colors'> +goldenrod2</div> +<div id='d348' class='colors'> +goldenrod3</div> +<div id='d349' class='colors'> +goldenrod4</div> +<div id='d350' class='colors'> +DarkGoldenrod</div> +<div id='d351' class='colors'> +DarkGoldenrod1</div> +<div id='d352' class='colors'> +DarkGoldenrod2</div> +<div id='d353' class='colors'> +DarkGoldenrod3</div> +<div id='d354' class='colors'> +DarkGoldenrod4</div> +<div id='d355' class='colors'> +FloralWhite</div> +<div id='d356' class='colors'> +wheat2</div> +<div id='d357' class='colors'> +OldLace</div> +<div id='d358' class='colors'> +wheat</div> +<div id='d359' class='colors'> +wheat1</div> +<div id='d360' class='colors'> +wheat3</div> +<div id='d361' class='colors'> +orange</div> +<div id='d362' class='colors'> +orange1</div> +<div id='d363' class='colors'> +orange2</div> +<div id='d364' class='colors'> +orange3</div> +<div id='d365' class='colors'> +orange4</div> +<div id='d366' class='colors'> +wheat4</div> +<div id='d367' class='colors'> +moccasin</div> +<div id='d368' class='colors'> +PapayaWhip</div> +<div id='d369' class='colors'> +NavajoWhite3</div> +<div id='d370' class='colors'> +BlanchedAlmond</div> +<div id='d371' class='colors'> +NavajoWhite</div> +<div id='d372' class='colors'> +NavajoWhite1</div> +<div id='d373' class='colors'> +NavajoWhite2</div> +<div id='d374' class='colors'> +NavajoWhite4</div> +<div id='d375' class='colors'> +AntiqueWhite4</div> +<div id='d376' class='colors'> +AntiqueWhite</div> +<div id='d377' class='colors'> +tan</div> +<div id='d378' class='colors'> +bisque4</div> +<div id='d379' class='colors'> +burlywood</div> +<div id='d380' class='colors'> +AntiqueWhite2</div> +<div id='d381' class='colors'> +burlywood1</div> +<div id='d382' class='colors'> +burlywood3</div> +<div id='d383' class='colors'> +burlywood2</div> +<div id='d384' class='colors'> +AntiqueWhite1</div> +<div id='d385' class='colors'> +burlywood4</div> +<div id='d386' class='colors'> +AntiqueWhite3</div> +<div id='d387' class='colors'> +DarkOrange</div> +<div id='d388' class='colors'> +bisque2</div> +<div id='d389' class='colors'> +bisque</div> +<div id='d390' class='colors'> +bisque1</div> +<div id='d391' class='colors'> +bisque3</div> +<div id='d392' class='colors'> +DarkOrange1</div> +<div id='d393' class='colors'> +linen</div> +<div id='d394' class='colors'> +DarkOrange2</div> +<div id='d395' class='colors'> +DarkOrange3</div> +<div id='d396' class='colors'> +DarkOrange4</div> +<div id='d397' class='colors'> +peru</div> +<div id='d398' class='colors'> +tan1</div> +<div id='d399' class='colors'> +tan2</div> +<div id='d400' class='colors'> +tan3</div> +<div id='d401' class='colors'> +tan4</div> +<div id='d402' class='colors'> +PeachPuff</div> +<div id='d403' class='colors'> +PeachPuff1</div> +<div id='d404' class='colors'> +PeachPuff4</div> +<div id='d405' class='colors'> +PeachPuff2</div> +<div id='d406' class='colors'> +PeachPuff3</div> +<div id='d407' class='colors'> +SandyBrown</div> +<div id='d408' class='colors'> +seashell4</div> +<div id='d409' class='colors'> +seashell2</div> +<div id='d410' class='colors'> +seashell3</div> +<div id='d411' class='colors'> +chocolate</div> +<div id='d412' class='colors'> +chocolate1</div> +<div id='d413' class='colors'> +chocolate2</div> +<div id='d414' class='colors'> +chocolate3</div> +<div id='d415' class='colors'> +chocolate4</div> +<div id='d416' class='colors'> +SaddleBrown</div> +<div id='d417' class='colors'> +seashell</div> +<div id='d418' class='colors'> +seashell1</div> +<div id='d419' class='colors'> +sienna4</div> +<div id='d420' class='colors'> +sienna</div> +<div id='d421' class='colors'> +sienna1</div> +<div id='d422' class='colors'> +sienna2</div> +<div id='d423' class='colors'> +sienna3</div> +<div id='d424' class='colors'> +LightSalmon3</div> +<div id='d425' class='colors'> +LightSalmon</div> +<div id='d426' class='colors'> +LightSalmon1</div> +<div id='d427' class='colors'> +LightSalmon4</div> +<div id='d428' class='colors'> +LightSalmon2</div> +<div id='d429' class='colors'> +coral</div> +<div id='d430' class='colors'> +OrangeRed</div> +<div id='d431' class='colors'> +OrangeRed1</div> +<div id='d432' class='colors'> +OrangeRed2</div> +<div id='d433' class='colors'> +OrangeRed3</div> +<div id='d434' class='colors'> +OrangeRed4</div> +<div id='d435' class='colors'> +DarkSalmon</div> +<div id='d436' class='colors'> +salmon1</div> +<div id='d437' class='colors'> +salmon2</div> +<div id='d438' class='colors'> +salmon3</div> +<div id='d439' class='colors'> +salmon4</div> +<div id='d440' class='colors'> +coral1</div> +<div id='d441' class='colors'> +coral2</div> +<div id='d442' class='colors'> +coral3</div> +<div id='d443' class='colors'> +coral4</div> +<div id='d444' class='colors'> +tomato4</div> +<div id='d445' class='colors'> +tomato</div> +<div id='d446' class='colors'> +tomato1</div> +<div id='d447' class='colors'> +tomato2</div> +<div id='d448' class='colors'> +tomato3</div> +<div id='d449' class='colors'> +MistyRose4</div> +<div id='d450' class='colors'> +MistyRose2</div> +<div id='d451' class='colors'> +MistyRose</div> +<div id='d452' class='colors'> +MistyRose1</div> +<div id='d453' class='colors'> +salmon</div> +<div id='d454' class='colors'> +MistyRose3</div> +<div id='d455' class='colors'> +white</div> +<div id='d456' class='colors'> +gray100</div> +<div id='d457' class='colors'> +grey100</div> +<div id='d458' class='colors'> +grey100</div> +<div id='d459' class='colors'> +gray99</div> +<div id='d460' class='colors'> +grey99</div> +<div id='d461' class='colors'> +gray98</div> +<div id='d462' class='colors'> +grey98</div> +<div id='d463' class='colors'> +gray97</div> +<div id='d464' class='colors'> +grey97</div> +<div id='d465' class='colors'> +gray96</div> +<div id='d466' class='colors'> +grey96</div> +<div id='d467' class='colors'> +WhiteSmoke</div> +<div id='d468' class='colors'> +gray95</div> +<div id='d469' class='colors'> +grey95</div> +<div id='d470' class='colors'> +gray94</div> +<div id='d471' class='colors'> +grey94</div> +<div id='d472' class='colors'> +gray93</div> +<div id='d473' class='colors'> +grey93</div> +<div id='d474' class='colors'> +gray92</div> +<div id='d475' class='colors'> +grey92</div> +<div id='d476' class='colors'> +gray91</div> +<div id='d477' class='colors'> +grey91</div> +<div id='d478' class='colors'> +gray90</div> +<div id='d479' class='colors'> +grey90</div> +<div id='d480' class='colors'> +gray89</div> +<div id='d481' class='colors'> +grey89</div> +<div id='d482' class='colors'> +gray88</div> +<div id='d483' class='colors'> +grey88</div> +<div id='d484' class='colors'> +gray87</div> +<div id='d485' class='colors'> +grey87</div> +<div id='d486' class='colors'> +gainsboro</div> +<div id='d487' class='colors'> +gray86</div> +<div id='d488' class='colors'> +grey86</div> +<div id='d489' class='colors'> +gray85</div> +<div id='d490' class='colors'> +grey85</div> +<div id='d491' class='colors'> +gray84</div> +<div id='d492' class='colors'> +grey84</div> +<div id='d493' class='colors'> +gray83</div> +<div id='d494' class='colors'> +grey83</div> +<div id='d495' class='colors'> +LightGray</div> +<div id='d496' class='colors'> +LightGrey</div> +<div id='d497' class='colors'> +gray82</div> +<div id='d498' class='colors'> +grey82</div> +<div id='d499' class='colors'> +gray81</div> +<div id='d500' class='colors'> +grey81</div> +<div id='d501' class='colors'> +gray80</div> +<div id='d502' class='colors'> +grey80</div> +<div id='d503' class='colors'> +gray79</div> +<div id='d504' class='colors'> +grey79</div> +<div id='d505' class='colors'> +gray78</div> +<div id='d506' class='colors'> +grey78</div> +<div id='d507' class='colors'> +gray77</div> +<div id='d508' class='colors'> +grey77</div> +<div id='d509' class='colors'> +gray76</div> +<div id='d510' class='colors'> +grey76</div> +<div id='d511' class='colors'> +silver</div> +<div id='d512' class='colors'> +gray75</div> +<div id='d513' class='colors'> +grey75</div> +<div id='d514' class='colors'> +gray74</div> +<div id='d515' class='colors'> +grey74</div> +<div id='d516' class='colors'> +gray73</div> +<div id='d517' class='colors'> +grey73</div> +<div id='d518' class='colors'> +gray72</div> +<div id='d519' class='colors'> +grey72</div> +<div id='d520' class='colors'> +gray71</div> +<div id='d521' class='colors'> +grey71</div> +<div id='d522' class='colors'> +gray70</div> +<div id='d523' class='colors'> +grey70</div> +<div id='d524' class='colors'> +gray69</div> +<div id='d525' class='colors'> +grey69</div> +<div id='d526' class='colors'> +gray68</div> +<div id='d527' class='colors'> +grey68</div> +<div id='d528' class='colors'> +gray67</div> +<div id='d529' class='colors'> +grey67</div> +<div id='d530' class='colors'> +DarkGray</div> +<div id='d531' class='colors'> +DarkGrey</div> +<div id='d532' class='colors'> +gray66</div> +<div id='d533' class='colors'> +grey66</div> +<div id='d534' class='colors'> +gray65</div> +<div id='d535' class='colors'> +grey65</div> +<div id='d536' class='colors'> +gray64</div> +<div id='d537' class='colors'> +grey64</div> +<div id='d538' class='colors'> +gray63</div> +<div id='d539' class='colors'> +grey63</div> +<div id='d540' class='colors'> +gray62</div> +<div id='d541' class='colors'> +grey62</div> +<div id='d542' class='colors'> +gray61</div> +<div id='d543' class='colors'> +grey61</div> +<div id='d544' class='colors'> +gray60</div> +<div id='d545' class='colors'> +grey60</div> +<div id='d546' class='colors'> +gray59</div> +<div id='d547' class='colors'> +grey59</div> +<div id='d548' class='colors'> +gray58</div> +<div id='d549' class='colors'> +grey58</div> +<div id='d550' class='colors'> +gray57</div> +<div id='d551' class='colors'> +grey57</div> +<div id='d552' class='colors'> +gray56</div> +<div id='d553' class='colors'> +grey56</div> +<div id='d554' class='colors'> +gray55</div> +<div id='d555' class='colors'> +grey55</div> +<div id='d556' class='colors'> +gray54</div> +<div id='d557' class='colors'> +grey54</div> +<div id='d558' class='colors'> +gray53</div> +<div id='d559' class='colors'> +grey53</div> +<div id='d560' class='colors'> +gray52</div> +<div id='d561' class='colors'> +grey52</div> +<div id='d562' class='colors'> +gray51</div> +<div id='d563' class='colors'> +grey51</div> +<div id='d564' class='colors'> +fractal</div> +<div id='d565' class='colors'> +gray50</div> +<div id='d566' class='colors'> +grey50</div> +<div id='d567' class='colors'> +gray</div> +<div id='d568' class='colors'> +gray49</div> +<div id='d569' class='colors'> +grey49</div> +<div id='d570' class='colors'> +gray48</div> +<div id='d571' class='colors'> +grey48</div> +<div id='d572' class='colors'> +gray47</div> +<div id='d573' class='colors'> +grey47</div> +<div id='d574' class='colors'> +gray46</div> +<div id='d575' class='colors'> +grey46</div> +<div id='d576' class='colors'> +gray45</div> +<div id='d577' class='colors'> +grey45</div> +<div id='d578' class='colors'> +gray44</div> +<div id='d579' class='colors'> +grey44</div> +<div id='d580' class='colors'> +gray43</div> +<div id='d581' class='colors'> +grey43</div> +<div id='d582' class='colors'> +gray42</div> +<div id='d583' class='colors'> +grey42</div> +<div id='d584' class='colors'> +DimGray</div> +<div id='d585' class='colors'> +DimGrey</div> +<div id='d586' class='colors'> +gray41</div> +<div id='d587' class='colors'> +grey41</div> +<div id='d588' class='colors'> +gray40</div> +<div id='d589' class='colors'> +grey40</div> +<div id='d590' class='colors'> +gray39</div> +<div id='d591' class='colors'> +grey39</div> +<div id='d592' class='colors'> +gray38</div> +<div id='d593' class='colors'> +grey38</div> +<div id='d594' class='colors'> +gray37</div> +<div id='d595' class='colors'> +grey37</div> +<div id='d596' class='colors'> +gray36</div> +<div id='d597' class='colors'> +grey36</div> +<div id='d598' class='colors'> +gray35</div> +<div id='d599' class='colors'> +grey35</div> +<div id='d600' class='colors'> +gray34</div> +<div id='d601' class='colors'> +grey34</div> +<div id='d602' class='colors'> +gray33</div> +<div id='d603' class='colors'> +grey33</div> +<div id='d604' class='colors'> +gray32</div> +<div id='d605' class='colors'> +grey32</div> +<div id='d606' class='colors'> +gray31</div> +<div id='d607' class='colors'> +grey31</div> +<div id='d608' class='colors'> +gray30</div> +<div id='d609' class='colors'> +grey30</div> +<div id='d610' class='colors'> +gray29</div> +<div id='d611' class='colors'> +grey29</div> +<div id='d612' class='colors'> +gray28</div> +<div id='d613' class='colors'> +grey28</div> +<div id='d614' class='colors'> +gray27</div> +<div id='d615' class='colors'> +grey27</div> +<div id='d616' class='colors'> +gray26</div> +<div id='d617' class='colors'> +grey26</div> +<div id='d618' class='colors'> +gray25</div> +<div id='d619' class='colors'> +grey25</div> +<div id='d620' class='colors'> +gray24</div> +<div id='d621' class='colors'> +grey24</div> +<div id='d622' class='colors'> +gray23</div> +<div id='d623' class='colors'> +grey23</div> +<div id='d624' class='colors'> +gray22</div> +<div id='d625' class='colors'> +grey22</div> +<div id='d626' class='colors'> +gray21</div> +<div id='d627' class='colors'> +grey21</div> +<div id='d628' class='colors'> +gray20</div> +<div id='d629' class='colors'> +grey20</div> +<div id='d630' class='colors'> +gray19</div> +<div id='d631' class='colors'> +grey19</div> +<div id='d632' class='colors'> +gray18</div> +<div id='d633' class='colors'> +grey18</div> +<div id='d634' class='colors'> +gray17</div> +<div id='d635' class='colors'> +grey17</div> +<div id='d636' class='colors'> +gray16</div> +<div id='d637' class='colors'> +grey16</div> +<div id='d638' class='colors'> +gray15</div> +<div id='d639' class='colors'> +grey15</div> +<div id='d640' class='colors'> +gray14</div> +<div id='d641' class='colors'> +grey14</div> +<div id='d642' class='colors'> +gray13</div> +<div id='d643' class='colors'> +grey13</div> +<div id='d644' class='colors'> +gray12</div> +<div id='d645' class='colors'> +grey12</div> +<div id='d646' class='colors'> +gray11</div> +<div id='d647' class='colors'> +grey11</div> +<div id='d648' class='colors'> +gray10</div> +<div id='d649' class='colors'> +grey10</div> +<div id='d650' class='colors'> +gray9</div> +<div id='d651' class='colors'> +grey9</div> +<div id='d652' class='colors'> +gray8</div> +<div id='d653' class='colors'> +grey8</div> +<div id='d654' class='colors'> +gray7</div> +<div id='d655' class='colors'> +grey7</div> +<div id='d656' class='colors'> +gray6</div> +<div id='d657' class='colors'> +grey6</div> +<div id='d658' class='colors'> +gray5</div> +<div id='d659' class='colors'> +grey5</div> +<div id='d660' class='colors'> +gray4</div> +<div id='d661' class='colors'> +grey4</div> +<div id='d662' class='colors'> +gray3</div> +<div id='d663' class='colors'> +grey3</div> +<div id='d664' class='colors'> +gray2</div> +<div id='d665' class='colors'> +grey2</div> +<div id='d666' class='colors'> +gray1</div> +<div id='d667' class='colors'> +grey1</div> +<div id='d668' class='colors'> +black</div> +<div id='d669' class='colors'> +gray0</div> +<div id='d670' class='colors'> +grey0</div> +<div id='d671' class='colors'> +opaque</div> +<div id='d672' class='colors'> +none</div> +<div id='d673' class='colors'> +transparent</div> +</div> +</div> + +<div id='colornames'> +CLICK TO CHOOSE THE COLOR +</div> + +<div id='switches'> + +<span id='title'>OPTIONS</span> +<div id='hexswitch' class='theswitches'>CLICK TO USE HEX KEYS</div> +<br> +<div id='infoswitch' class='theswitches'>CLICK TO TOGGLE PALATE INFO<span id='infospace'></span></div> +<br> +<div id='backgroundswitch' class='theswitches'>CLICK TO TOGGLE BACKGROUNDS</div> +<br> +<div id='preview'></div> +<div id='nameholder'>YOU WILL CHOOSE:<input id='namespace' type='text'></input></div> +<br> +<span id='transparent'>to choose transparent as a color, click <span id='transbutton'>HERE</span></span> +</div> +</div> +<script type='text/javascript' src='jquery-1.6.4.min.js'></script> +<script type='text/javascript' src='colordict.js'></script> + +<script type='text/javascript'> + + +//setup dimensions +////////////////// + +function regolden(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num/ratio) + return newnum + } +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newval = goldenize(result) + propval = newval.toString()+'px' + if(propertystr == 'height'){ + $(idandselectr).css('width', propval) + } + else if(propertystr == 'width'){ + $(idandselectr).css('height', propval) + } + } +function shrinkwidth(arg){ + for(var i=0; i < 5; i++){ + arg = regolden(arg) + } + division = Math.round(arg) + return division +} + +function makecolorswidth(){ + colorswidth = shrinkwidth(window.innerWidth) + $('.colors').css('width', colorswidth.toString()+'px') +} +function makecolorsheight(){ + result = getproperty('.colors', 'width') + newval = regolden(result) + propval = newval.toString()+'px' + $('.colors').css('height', propval) +} +//the following function sets up the font sizes +//inrelation to the size of the hexswitch font +function setupfonts(){ + var firstfont = getproperty('#hexswitch', 'font-size') + var finalfont = goldenize(firstfont) + $('#namespace').css('font-size', finalfont+'px') + $('#namespace').css('width', $('#switches').css('width')) + var secondfont = getproperty('#namespace', 'font-size') + var finalfont = goldenize(secondfont) + $('#colornames').css('font-size', finalfont+'px') + $('#colornames').css('text-shadow', 'black 1px 2px') + var transfont = regolden(firstfont) + $('#transparent').css('font-size', transfont+'px') +} +function getcontainerwidth(){ + basis = $('.colors').css('width') + basis = parseInt(basis.slice(0,-2)) + secondbasis = '2px' + secondbasis = parseInt(secondbasis.slice(0,-2)) + widthval = (secondbasis*8)+(basis*4)+(goldenize(basis)-basis) + widthval = widthval.toString()+'px' + return widthval +} + +function makecontainerwidth(){ + var containerwidth = getcontainerwidth() + $('#container').css('width',containerwidth) + $('#viewarea').css('width',containerwidth) +} + + +function setupsides() + { + var basis = $('#container').css('width') + basis = parseInt(basis.slice(0,-2)) + remainder = (100-basis)/2 + widths = regolden(basis) + widths = widths.toString()+'px' + lateralbasis = regolden(remainder) + leftside = toString(lateralbasis)+'%' + rightside = toString(100-lateralbasis)+'%' + $('#colornames').css('left', leftside) + $('#switches').css({'width': widths, 'left': rightside}) + } +function previewdimensions(){ + first = $('#switches').css('width') + first = parseInt(first.slice(0,-2)) + width = regolden(first) + height = regolden(width) + width = width.toString()+'px' + height = height.toString()+'px' + $('#preview').css({'width':width, 'height':height}) +} +function setupdimensions(){ +makecolorswidth() +setupfonts() +makecolorsheight() +makecontainerwidth() +setupsides() +makegolden('#switches','width') +previewdimensions() +} +setupdimensions() +$(window).resize(function(){setupdimensions()}) +//$(window).resize()(function(){setupdimensions()}) + +//BEGIN STYLINGS// +////////////////// + + +var old = {}; +function hovercss(sel, uno){ + + var chng = {}; + chng['color'] = 'white'; + chng['text-shadow'] = 'black 1px 2px'; + chng['background-image'] = 'url(http://asdf.us/im/19/gradient_whitegray80_1321305183_1321305241_pepper_1321333403_pepper.jpg)'; + if(uno == 'over'){ + for(var key in chng){ + old[key] = $('#'+sel).css(key) + } + for(var key in chng){ + $('#'+sel).css(key, chng[key]) + } + } + if(uno == 'out'){ + for(var key in old){ + $('#'+sel).css(key, old[key]) + } + } +} +$('.theswitches').hover(function(){hovercss(this.id, 'over')}, function(){hovercss(this.id, 'out')}) + +var transcss = { + 'color':'#141414','box-shadow':'10px 10px 5px #141414', + 'background-color':'#D1D1D1','color':'#141414', + 'border-width':'2px','border-style':'outset','cursor':'pointer'} +$('#transbutton').css(transcss) +var hovertrans = { + 'background-color':'DarkGrey','color':'#383838','box-shadow':'5px 5px 2px #141414' +} +$('#transbutton').hover(function(){$('#transbutton').css(hovertrans)},function(){$('#transbutton').css(transcss)}) +//threewayselector for what goes in the divs +infostate = 1 +function switchinfo() + { + if(infostate == 0) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(divtoname[divlist[i]]) + }; + infostate = 1 + $('#infospace').html('(NAMES)'); + } + else if(infostate == 1) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html("") + }; + infostate = 2 + $('#infospace').html('(NONE)'); + } + else if(infostate == 2) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(nametohex[divtoname[divlist[i]]]) + }; + infostate = 0 + $('#infospace').html('(HEXES)'); + } + } +$('#infoswitch').hover(function(){$('#infospace').show()}, function(){$('#infospace').hide('slow')} ) +$('#infoswitch').click(function(){switchinfo()}) + + +backgroundstate = 2; +function switchbackground() + { + if(backgroundstate == 1) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image','url(http://dump.fm/static/img/bg.dither.gif)') + backgroundstate = 2; + $('#colornames').css('color', 'white') + $('#colornames').css('text-shadow', 'black 1px 2px') + } + else if(backgroundstate == 2) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image', 'none') + backgroundstate = 0 + } + else if(backgroundstate == 0) + { + $('#colorpicker').css('background-color', 'white') + $('#colorpicker').css('background-image', 'none') + $('#colornames').css('color', 'grey') + backgroundstate = 1 + } + } + +$('#backgroundswitch').click(function(){switchbackground()}) + +//takes a div name and returns a colorname + +function showcolorname(divstr) + + { + colorname = divtoname['#'+divstr] + hex = nametohex[colorname] + imname = hextoname[hex] + if (hexes == true) + { + imname = hex + } + + return imname + } +function bigname(divstr) + { + colorname = showcolorname(divstr) + $('#colornames').html(colorname) + + } +function writeit(text) + { + $('#colornames').append(text) + } +function makebig(divstr) + { + firstheight = $('#'+divstr).height() + newheight = goldenize(firstheight) + $('#'+divstr).height(newheight) + } +function makesmall(divstr) + { + oldheight = $('.colors').height() + $('#'+divstr).height(oldheight) + } +var choice; +$('.colors').hover(function() { + bigname(this.id); +// makebig(this.id); +// makegolden('#'+this.id, 'height')}, +//function(){ +// makesmall(this.id); +// makegolden('#'+this.id, 'height') +}); +$('.colors').mouseover(function(){ + if(this.id != 'd0'){ + makebig(this.id); + makegolden('#'+this.id, 'height') + }}) +$('.colors').mouseout(function(){ + makesmall(this.id); + makegolden('#'+this.id,'height'); + }) +$(".colors").hover(function(){ +$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); + }); +$('.colors').css('margin-top', '2px') +var hexes = false +function hexswitch() + { + if(hexes == false) + { + $('#hexswitch').html('CLICK TO USE COLOR NAMES') + hexes = true; + var nameval = $('#namespace').val() + $('#namespace').val(nametohex[nameval]) + } + + else + { + $('#hexswitch').html('CLICK TO USE HEX KEYS') + hexes = false; + var nameval = $('#namespace').val() + $('#namespace').val(hextoname[nameval]) + } + } +$('#hexswitch').click(function(){hexswitch()}) + +$('.colors').click(function(){ + putitin() + }) + +function putitin() + { + thecolor = $('#colornames').html() + $('#namespace').val(thecolor) + if(hexes == false){ + $('#preview').css({'background-color': nametohex[thecolor], 'border-style':'none'}) + } + else{ + $('#preview').css('background-color', thecolor) + } + + } +function transparent() + { + $('#namespace').val('transparent'); + $('#preview').css({'background-color':'transparent','border-style':'dashed','border-width':'2px'}) + } +$('#transbutton').click(function(){transparent()}) + +//$('#switches').bind('mousemove',function(e){ +// $("#colornames").html(" e.pageY: " + e.pageY); +//}); +vt.start("viewarea", "container"); + +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/junk/separate b/frontend/imgrid/colors/junk/separate new file mode 100755 index 0000000..b32bc49 --- /dev/null +++ b/frontend/imgrid/colors/junk/separate @@ -0,0 +1,126 @@ +#!/usr/bin/python2.7 + + +f = open('colors.html', 'r') +lines = f.readlines() +colornames = [] +hexes = [] +for line in lines: + if 'right' in line and 'td' in line: + colornames.append(line[22:-6]) + if '#' in line: + hexes.append(line[21:28]) + if line == lines[len(lines)-1]: + break +print len(hexes) +print len(colornames) +###making a dictionary +hextoname = {} +nametohex = {} +for i in hexes: + hextoname[i] = colornames[hexes.index(i)] +for i in colornames: + nametohex[i] = hexes[colornames.index(i)] +w = open('colordict.js', 'w') +w.write("var hextoname = "+str(hextoname)+"\n") +w.write("var nametohex = "+str(nametohex)+"\n") +w.close() +ds = [] +for x in range(674): + ds.append('d'+str(x)) + +#print hexes +#note last two hex values in lists are wrong for they correspond to none and transparent +w = open('colorsnew.html', 'w') +w.write("""<html>\n<head>\n +<style type='text/css'>\n +body\n{max-width:100%;\nmax-height:100%; \nfont-family:helvetica; \nfont-size:10px; \nword-wrap: break-word;}\n +div\n{display: -moz-inline-stack;\ndisplay:inline-block;\nvertical-align:top;\nmin-height: 30px;\nzoom: 1;\n*display: inline;}\n}\n +#main{width:600px;}\n""") +w.write("#colornames\n{position:fixed;\nfont-size:50px;\ntop:50px;\nright:50%;}") +for x in range(674): + w.write("\n#"+ds[x]+"\n{background-color:"+str(hexes[x])+"}\n") +w.write(".colors\n{height:30px;\nwidth:10px;}\n") +w.write("</style></head>") +w.write("<body>\n<div id='main'>\n") +for x in range(674): + w.write("<div id='"+ds[x]+"' class='colors'>\n"+colornames[x]+"</div>\n") +w.write("</div>\n") +w.write("<div id='colornames'>WHERE THE COLORNAMES WILL GO</div>") +w.write("<script type='text/javascript' src='jquery-1.6.4.min.js'></script>") +w.write("<script type='text/javascript' src='colordict.js'></script>\n") +w.write("\n<script type='text/javascript'>") +w.write("""\nfunction goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idstr, propertystr) + { + grab = $('.'+idstr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idstr, propertystr) + { + result = getproperty(idstr, propertystr) + newwidth = goldenize(result) + widthval = newwidth.toString()+'px' + $('.'+idstr).css('width', widthval) + } +makegolden('colors', 'height') +""") +w.write("""\n +//remove content this function takes the name out of the divs + +function removecontent() + { + $('.colors').html("") + } +removecontent()""") +w.write(""" + +function colorToHex(color) { + if (color.substr(0, 1) === '#') { + return color; + } + var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); + + var red = parseInt(digits[2]); + var green = parseInt(digits[3]); + var blue = parseInt(digits[4]); + + var rgb = blue | (green << 8) | (red << 16); + return digits[1] + '#' + rgb.toString(16); +}; + +//takes a div name and returns a colorname\n +function showcolorname(divstr)\n + {\n + bgcolor = $('#'+divstr).css('background-color') + lowercasehex = colorToHex(bgcolor) + hex = lowercasehex.toUpperCase() + imname = hextoname[hex] +/* if ($('#hexortext:checked').length == 1) + { + imname = hex + }*/ + return imname + } +function bigname(divstr) + { + bebop = showcolorname(toString(divstr)) + $('#colornames').html(bebop) + } +$('.colors').mouseover(function() { + bigname(this.id); +}); + + + +""") +w.write("</script>") +w.write("\n</body>\n</html>") diff --git a/frontend/imgrid/colors/junk/todo.txt b/frontend/imgrid/colors/junk/todo.txt new file mode 100755 index 0000000..ff9ae66 --- /dev/null +++ b/frontend/imgrid/colors/junk/todo.txt @@ -0,0 +1,135 @@ +manyprettygradients: +finish formatting tumblr +put on autoscroll +think about font (minoan) THIS IS WHY WE NEED TEXT BLASTER +turn it to a bot + pre-step: delete everything on there + step 1: gradientscrape longerlogfile + step 2: post those + step 3: make gradientscrape call itself every 30 minutes + step 5: swipe??? + step 4: import the write function from main.py + + + + + + + + + + + + + + + + + + + + + + python 2.6 == /opt/python2.6/bin/python + + + JUANITA = True + #JUANITA = False + + + +from main.py, import * (follow_followers, reblog_posts, post_images) +process_followers() +reblog_posts() +post_images() + +def now (): + return int(time.mktime(time.localtime())) + +def save_seen (ids): + out = open (DUMP_SEEN+".tmp", "w") + for id in ids.keys(): + out.write(id+"\n") + out.close() + system(["/bin/mv", DUMP_SEEN+".tmp", DUMP_SEEN]) + +def slurp (file): + input = open (file, "r") + lines = input.readlines() + input.close() + return lines + +def new_dump (dumps, seen): + id = random.choice(dumps.keys()) + while id in seen: + id = random.choice(dumps.keys()) + thedump = dumps[id] + seen[id] = True + save_seen(seen) + if JUANITA: + print thedump + else: + dump.say(thedump) + wait = random.randint(2,28)*30 + random.randint(1,55) + print "sleeping for", str(wait/60) + "m" + str(wait % 60) + "s..." + print + time.sleep(wait) + +def main (): + score_lines = slurp(DUMP_LIST) + dumps = {} + scored = {} + # first pass to work out the top score for each dump + for line in score_lines: + # 0 id 1 score 2 favers 3 urls + partz = line.split("\t") +#skipping over really old stuff + if int(partz[0]) < 3618853: + continue + + urls = partz[3].split(" ") + skip = False + for url in urls: + if "http" not in url: + skip = True + if skip: + continue + # dictionary: urls => (id, score) + if partz[3] in scored and int(partz[1]) > scored[partz[3]][1]: + scored[partz[3]] = (partz[0], int(partz[1])) + else: + scored[partz[3]] = (partz[0], int(partz[1])) + + except KeyError: + continue + except ValueError: + continue + + # second pass to weed out dumps with scores too high/low + for urls in scored.keys(): + if scored[urls][1] > 0 and scored[urls][1] < 6: + # dictionary: id => urls + dumps[scored[urls][0]] = urls.strip() + + seen_lines = slurp(DUMP_SEEN) + seen = {} + for line in seen_lines: + l = line.strip() + if len(l): + seen[l] = True + + print len(dumps), "dumps in queue" + print len(seen_lines), "dumped already" + + if JUANITA: + for i in xrange(10): + new_dump (dumps, seen) + else: + while (1): + new_dump (dumps, seen) + else: + print "TURNED OFF, sleeping for half an hour..." + time.sleep (30*60) + +main () + diff --git a/frontend/imgrid/colors/junk/withscroller.html b/frontend/imgrid/colors/junk/withscroller.html new file mode 100755 index 0000000..e1443c3 --- /dev/null +++ b/frontend/imgrid/colors/junk/withscroller.html @@ -0,0 +1,3850 @@ +<html> +<head> +<link rel="stylesheet" type="text/css" href="ScrollEffect.css" /> +<script type="text/javascript" src="ScrollEffect.js"></script> + +<style type='text/css'> + +body +{ +margin:0; +} + +#colorpicker +{ +position:absolute; +width:100%; +font-family:helvetica; +font-size:10px; +//background-color: gray; +//background-image: url("http://asdf.us/im/6f/gradient_bgdither_1321255670_pepper.gif"); +background-color: black; +background-image: url("http://dump.fm/static/img/bg.dither.gif") + +} + +#container div +{ +text-align:left; +display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +min-height: 30px; +zoom: 1; +word-wrap: break-word; +*display: inline; +cursor:pointer; +} + +#container +{ +margin:0 auto; +width:31%; +padding-bottom:0px; +padding-right:10px; +padding-left:10px; +text-align:center; +position:absolute; +height:850px; +} + +#viewarea +{ +position: relative; +top: 10%; +width: 31%; +height: 820px; +overflow: hidden; +margin:0 auto; +padding-top:10px; +padding-right:10px; +padding-left:10px; +text-align:center; +border-style:outset; +border-width:10px; +} + +#colornames +{ +color:white; +position:fixed; +font-size:50px; +top:50px; +left:2%; +width:400px; +} + +#switches + { + position:fixed; + top:20px; + right:1%; + height:400px; + width:300px; + font-size:20px; + border-style: groove; + border-width: 4px; + background-color:gray; + padding:2px; + box-shadow: 10px 10px 5px #141414; + } + +#infoswitch, #hexswitch, #backgroundswitch + { + background-image:url(http://asdf.us/im/58/gradient_whitegray80_1321305183_1321305241_pepper.jpg); + cursor:pointer; + } +#preview + { + height:150px; + } + + +#holder + { + float:bottom; + } + +#transparent + { + font-size:12px; + } +#namespace + { + width:inherit; + } +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{ +height:30; +width:10px; +} +</style></head><body> +<div id='colorpicker'> +<div id='viewarea' class="panorama"> +<div id='container'> +<div id='d0' class='colors'> +snow</div> +<div id='d1' class='colors'> +snow1</div> +<div id='d2' class='colors'> +snow2</div> +<div id='d3' class='colors'> +RosyBrown1</div> +<div id='d4' class='colors'> +RosyBrown2</div> +<div id='d5' class='colors'> +snow3</div> +<div id='d6' class='colors'> +LightCoral</div> +<div id='d7' class='colors'> +IndianRed1</div> +<div id='d8' class='colors'> +RosyBrown3</div> +<div id='d9' class='colors'> +IndianRed2</div> +<div id='d10' class='colors'> +RosyBrown</div> +<div id='d11' class='colors'> +brown1</div> +<div id='d12' class='colors'> +firebrick1</div> +<div id='d13' class='colors'> +brown2</div> +<div id='d14' class='colors'> +IndianRed</div> +<div id='d15' class='colors'> +IndianRed3</div> +<div id='d16' class='colors'> +firebrick2</div> +<div id='d17' class='colors'> +snow4</div> +<div id='d18' class='colors'> +brown3</div> +<div id='d19' class='colors'> +red</div> +<div id='d20' class='colors'> +red1</div> +<div id='d21' class='colors'> +RosyBrown4</div> +<div id='d22' class='colors'> +firebrick3</div> +<div id='d23' class='colors'> +red2</div> +<div id='d24' class='colors'> +firebrick</div> +<div id='d25' class='colors'> +brown</div> +<div id='d26' class='colors'> +red3</div> +<div id='d27' class='colors'> +IndianRed4</div> +<div id='d28' class='colors'> +brown4</div> +<div id='d29' class='colors'> +firebrick4</div> +<div id='d30' class='colors'> +DarkRed</div> +<div id='d31' class='colors'> +red4</div> +<div id='d32' class='colors'> +maroon</div> +<div id='d33' class='colors'> +LightPink1</div> +<div id='d34' class='colors'> +LightPink3</div> +<div id='d35' class='colors'> +LightPink4</div> +<div id='d36' class='colors'> +LightPink2</div> +<div id='d37' class='colors'> +LightPink</div> +<div id='d38' class='colors'> +pink</div> +<div id='d39' class='colors'> +crimson</div> +<div id='d40' class='colors'> +pink1</div> +<div id='d41' class='colors'> +pink2</div> +<div id='d42' class='colors'> +pink3</div> +<div id='d43' class='colors'> +pink4</div> +<div id='d44' class='colors'> +PaleVioletRed4</div> +<div id='d45' class='colors'> +PaleVioletRed</div> +<div id='d46' class='colors'> +PaleVioletRed2</div> +<div id='d47' class='colors'> +PaleVioletRed1</div> +<div id='d48' class='colors'> +PaleVioletRed3</div> +<div id='d49' class='colors'> +LavenderBlush</div> +<div id='d50' class='colors'> +LavenderBlush1</div> +<div id='d51' class='colors'> +LavenderBlush3</div> +<div id='d52' class='colors'> +LavenderBlush2</div> +<div id='d53' class='colors'> +LavenderBlush4</div> +<div id='d54' class='colors'> +maroon</div> +<div id='d55' class='colors'> +HotPink3</div> +<div id='d56' class='colors'> +VioletRed3</div> +<div id='d57' class='colors'> +VioletRed1</div> +<div id='d58' class='colors'> +VioletRed2</div> +<div id='d59' class='colors'> +VioletRed4</div> +<div id='d60' class='colors'> +HotPink2</div> +<div id='d61' class='colors'> +HotPink1</div> +<div id='d62' class='colors'> +HotPink4</div> +<div id='d63' class='colors'> +HotPink</div> +<div id='d64' class='colors'> +DeepPink</div> +<div id='d65' class='colors'> +DeepPink1</div> +<div id='d66' class='colors'> +DeepPink2</div> +<div id='d67' class='colors'> +DeepPink3</div> +<div id='d68' class='colors'> +DeepPink4</div> +<div id='d69' class='colors'> +maroon1</div> +<div id='d70' class='colors'> +maroon2</div> +<div id='d71' class='colors'> +maroon3</div> +<div id='d72' class='colors'> +maroon4</div> +<div id='d73' class='colors'> +MediumVioletRed</div> +<div id='d74' class='colors'> +VioletRed</div> +<div id='d75' class='colors'> +orchid2</div> +<div id='d76' class='colors'> +orchid</div> +<div id='d77' class='colors'> +orchid1</div> +<div id='d78' class='colors'> +orchid3</div> +<div id='d79' class='colors'> +orchid4</div> +<div id='d80' class='colors'> +thistle1</div> +<div id='d81' class='colors'> +thistle2</div> +<div id='d82' class='colors'> +plum1</div> +<div id='d83' class='colors'> +plum2</div> +<div id='d84' class='colors'> +thistle</div> +<div id='d85' class='colors'> +thistle3</div> +<div id='d86' class='colors'> +plum</div> +<div id='d87' class='colors'> +violet</div> +<div id='d88' class='colors'> +plum3</div> +<div id='d89' class='colors'> +thistle4</div> +<div id='d90' class='colors'> +fuchsia</div> +<div id='d91' class='colors'> +magenta</div> +<div id='d92' class='colors'> +magenta1</div> +<div id='d93' class='colors'> +plum4</div> +<div id='d94' class='colors'> +magenta2</div> +<div id='d95' class='colors'> +magenta3</div> +<div id='d96' class='colors'> +DarkMagenta</div> +<div id='d97' class='colors'> +magenta4</div> +<div id='d98' class='colors'> +purple</div> +<div id='d99' class='colors'> +MediumOrchid</div> +<div id='d100' class='colors'> +MediumOrchid1</div> +<div id='d101' class='colors'> +MediumOrchid2</div> +<div id='d102' class='colors'> +MediumOrchid3</div> +<div id='d103' class='colors'> +MediumOrchid4</div> +<div id='d104' class='colors'> +DarkViolet</div> +<div id='d105' class='colors'> +DarkOrchid</div> +<div id='d106' class='colors'> +DarkOrchid1</div> +<div id='d107' class='colors'> +DarkOrchid3</div> +<div id='d108' class='colors'> +DarkOrchid2</div> +<div id='d109' class='colors'> +DarkOrchid4</div> +<div id='d110' class='colors'> +purple</div> +<div id='d111' class='colors'> +indigo</div> +<div id='d112' class='colors'> +BlueViolet</div> +<div id='d113' class='colors'> +purple2</div> +<div id='d114' class='colors'> +purple3</div> +<div id='d115' class='colors'> +purple4</div> +<div id='d116' class='colors'> +purple1</div> +<div id='d117' class='colors'> +MediumPurple</div> +<div id='d118' class='colors'> +MediumPurple1</div> +<div id='d119' class='colors'> +MediumPurple2</div> +<div id='d120' class='colors'> +MediumPurple3</div> +<div id='d121' class='colors'> +MediumPurple4</div> +<div id='d122' class='colors'> +DarkSlateBlue</div> +<div id='d123' class='colors'> +LightSlateBlue</div> +<div id='d124' class='colors'> +MediumSlateBlue</div> +<div id='d125' class='colors'> +SlateBlue</div> +<div id='d126' class='colors'> +SlateBlue1</div> +<div id='d127' class='colors'> +SlateBlue2</div> +<div id='d128' class='colors'> +SlateBlue3</div> +<div id='d129' class='colors'> +SlateBlue4</div> +<div id='d130' class='colors'> +GhostWhite</div> +<div id='d131' class='colors'> +lavender</div> +<div id='d132' class='colors'> +blue</div> +<div id='d133' class='colors'> +blue1</div> +<div id='d134' class='colors'> +blue2</div> +<div id='d135' class='colors'> +blue3</div> +<div id='d136' class='colors'> +MediumBlue</div> +<div id='d137' class='colors'> +blue4</div> +<div id='d138' class='colors'> +DarkBlue</div> +<div id='d139' class='colors'> +MidnightBlue</div> +<div id='d140' class='colors'> +navy</div> +<div id='d141' class='colors'> +NavyBlue</div> +<div id='d142' class='colors'> +RoyalBlue</div> +<div id='d143' class='colors'> +RoyalBlue1</div> +<div id='d144' class='colors'> +RoyalBlue2</div> +<div id='d145' class='colors'> +RoyalBlue3</div> +<div id='d146' class='colors'> +RoyalBlue4</div> +<div id='d147' class='colors'> +CornflowerBlue</div> +<div id='d148' class='colors'> +LightSteelBlue</div> +<div id='d149' class='colors'> +LightSteelBlue1</div> +<div id='d150' class='colors'> +LightSteelBlue2</div> +<div id='d151' class='colors'> +LightSteelBlue3</div> +<div id='d152' class='colors'> +LightSteelBlue4</div> +<div id='d153' class='colors'> +SlateGray4</div> +<div id='d154' class='colors'> +SlateGray1</div> +<div id='d155' class='colors'> +SlateGray2</div> +<div id='d156' class='colors'> +SlateGray3</div> +<div id='d157' class='colors'> +LightSlateGray</div> +<div id='d158' class='colors'> +LightSlateGrey</div> +<div id='d159' class='colors'> +SlateGray</div> +<div id='d160' class='colors'> +SlateGrey</div> +<div id='d161' class='colors'> +DodgerBlue</div> +<div id='d162' class='colors'> +DodgerBlue1</div> +<div id='d163' class='colors'> +DodgerBlue2</div> +<div id='d164' class='colors'> +DodgerBlue4</div> +<div id='d165' class='colors'> +DodgerBlue3</div> +<div id='d166' class='colors'> +AliceBlue</div> +<div id='d167' class='colors'> +SteelBlue4</div> +<div id='d168' class='colors'> +SteelBlue</div> +<div id='d169' class='colors'> +SteelBlue1</div> +<div id='d170' class='colors'> +SteelBlue2</div> +<div id='d171' class='colors'> +SteelBlue3</div> +<div id='d172' class='colors'> +SkyBlue4</div> +<div id='d173' class='colors'> +SkyBlue1</div> +<div id='d174' class='colors'> +SkyBlue2</div> +<div id='d175' class='colors'> +SkyBlue3</div> +<div id='d176' class='colors'> +LightSkyBlue</div> +<div id='d177' class='colors'> +LightSkyBlue4</div> +<div id='d178' class='colors'> +LightSkyBlue1</div> +<div id='d179' class='colors'> +LightSkyBlue2</div> +<div id='d180' class='colors'> +LightSkyBlue3</div> +<div id='d181' class='colors'> +SkyBlue</div> +<div id='d182' class='colors'> +LightBlue3</div> +<div id='d183' class='colors'> +DeepSkyBlue</div> +<div id='d184' class='colors'> +DeepSkyBlue1</div> +<div id='d185' class='colors'> +DeepSkyBlue2</div> +<div id='d186' class='colors'> +DeepSkyBlue4</div> +<div id='d187' class='colors'> +DeepSkyBlue3</div> +<div id='d188' class='colors'> +LightBlue1</div> +<div id='d189' class='colors'> +LightBlue2</div> +<div id='d190' class='colors'> +LightBlue</div> +<div id='d191' class='colors'> +LightBlue4</div> +<div id='d192' class='colors'> +PowderBlue</div> +<div id='d193' class='colors'> +CadetBlue1</div> +<div id='d194' class='colors'> +CadetBlue2</div> +<div id='d195' class='colors'> +CadetBlue3</div> +<div id='d196' class='colors'> +CadetBlue4</div> +<div id='d197' class='colors'> +turquoise1</div> +<div id='d198' class='colors'> +turquoise2</div> +<div id='d199' class='colors'> +turquoise3</div> +<div id='d200' class='colors'> +turquoise4</div> +<div id='d201' class='colors'> +cadet blue</div> +<div id='d202' class='colors'> +CadetBlue</div> +<div id='d203' class='colors'> +DarkTurquoise</div> +<div id='d204' class='colors'> +azure</div> +<div id='d205' class='colors'> +azure1</div> +<div id='d206' class='colors'> +LightCyan</div> +<div id='d207' class='colors'> +LightCyan1</div> +<div id='d208' class='colors'> +azure2</div> +<div id='d209' class='colors'> +LightCyan2</div> +<div id='d210' class='colors'> +PaleTurquoise1</div> +<div id='d211' class='colors'> +PaleTurquoise</div> +<div id='d212' class='colors'> +PaleTurquoise2</div> +<div id='d213' class='colors'> +DarkSlateGray1</div> +<div id='d214' class='colors'> +azure3</div> +<div id='d215' class='colors'> +LightCyan3</div> +<div id='d216' class='colors'> +DarkSlateGray2</div> +<div id='d217' class='colors'> +PaleTurquoise3</div> +<div id='d218' class='colors'> +DarkSlateGray3</div> +<div id='d219' class='colors'> +azure4</div> +<div id='d220' class='colors'> +LightCyan4</div> +<div id='d221' class='colors'> +aqua</div> +<div id='d222' class='colors'> +cyan</div> +<div id='d223' class='colors'> +cyan1</div> +<div id='d224' class='colors'> +PaleTurquoise4</div> +<div id='d225' class='colors'> +cyan2</div> +<div id='d226' class='colors'> +DarkSlateGray4</div> +<div id='d227' class='colors'> +cyan3</div> +<div id='d228' class='colors'> +cyan4</div> +<div id='d229' class='colors'> +DarkCyan</div> +<div id='d230' class='colors'> +teal</div> +<div id='d231' class='colors'> +DarkSlateGray</div> +<div id='d232' class='colors'> +DarkSlateGrey</div> +<div id='d233' class='colors'> +MediumTurquoise</div> +<div id='d234' class='colors'> +LightSeaGreen</div> +<div id='d235' class='colors'> +turquoise</div> +<div id='d236' class='colors'> +aquamarine4</div> +<div id='d237' class='colors'> +aquamarine</div> +<div id='d238' class='colors'> +aquamarine1</div> +<div id='d239' class='colors'> +aquamarine2</div> +<div id='d240' class='colors'> +aquamarine3</div> +<div id='d241' class='colors'> +MediumAquamarine</div> +<div id='d242' class='colors'> +MediumSpringGreen</div> +<div id='d243' class='colors'> +MintCream</div> +<div id='d244' class='colors'> +SpringGreen</div> +<div id='d245' class='colors'> +SpringGreen1</div> +<div id='d246' class='colors'> +SpringGreen2</div> +<div id='d247' class='colors'> +SpringGreen3</div> +<div id='d248' class='colors'> +SpringGreen4</div> +<div id='d249' class='colors'> +MediumSeaGreen</div> +<div id='d250' class='colors'> +SeaGreen</div> +<div id='d251' class='colors'> +SeaGreen3</div> +<div id='d252' class='colors'> +SeaGreen1</div> +<div id='d253' class='colors'> +SeaGreen4</div> +<div id='d254' class='colors'> +SeaGreen2</div> +<div id='d255' class='colors'> +MediumForestGreen</div> +<div id='d256' class='colors'> +honeydew</div> +<div id='d257' class='colors'> +honeydew1</div> +<div id='d258' class='colors'> +honeydew2</div> +<div id='d259' class='colors'> +DarkSeaGreen1</div> +<div id='d260' class='colors'> +DarkSeaGreen2</div> +<div id='d261' class='colors'> +PaleGreen1</div> +<div id='d262' class='colors'> +PaleGreen</div> +<div id='d263' class='colors'> +honeydew3</div> +<div id='d264' class='colors'> +LightGreen</div> +<div id='d265' class='colors'> +PaleGreen2</div> +<div id='d266' class='colors'> +DarkSeaGreen3</div> +<div id='d267' class='colors'> +DarkSeaGreen</div> +<div id='d268' class='colors'> +PaleGreen3</div> +<div id='d269' class='colors'> +honeydew4</div> +<div id='d270' class='colors'> +green1</div> +<div id='d271' class='colors'> +lime</div> +<div id='d272' class='colors'> +LimeGreen</div> +<div id='d273' class='colors'> +DarkSeaGreen4</div> +<div id='d274' class='colors'> +green2</div> +<div id='d275' class='colors'> +PaleGreen4</div> +<div id='d276' class='colors'> +green3</div> +<div id='d277' class='colors'> +ForestGreen</div> +<div id='d278' class='colors'> +green4</div> +<div id='d279' class='colors'> +green</div> +<div id='d280' class='colors'> +DarkGreen</div> +<div id='d281' class='colors'> +LawnGreen</div> +<div id='d282' class='colors'> +chartreuse</div> +<div id='d283' class='colors'> +chartreuse1</div> +<div id='d284' class='colors'> +chartreuse2</div> +<div id='d285' class='colors'> +chartreuse3</div> +<div id='d286' class='colors'> +chartreuse4</div> +<div id='d287' class='colors'> +GreenYellow</div> +<div id='d288' class='colors'> +DarkOliveGreen3</div> +<div id='d289' class='colors'> +DarkOliveGreen1</div> +<div id='d290' class='colors'> +DarkOliveGreen2</div> +<div id='d291' class='colors'> +DarkOliveGreen4</div> +<div id='d292' class='colors'> +DarkOliveGreen</div> +<div id='d293' class='colors'> +OliveDrab</div> +<div id='d294' class='colors'> +OliveDrab1</div> +<div id='d295' class='colors'> +OliveDrab2</div> +<div id='d296' class='colors'> +OliveDrab3</div> +<div id='d297' class='colors'> +YellowGreen</div> +<div id='d298' class='colors'> +OliveDrab4</div> +<div id='d299' class='colors'> +ivory</div> +<div id='d300' class='colors'> +ivory1</div> +<div id='d301' class='colors'> +LightYellow</div> +<div id='d302' class='colors'> +LightYellow1</div> +<div id='d303' class='colors'> +beige</div> +<div id='d304' class='colors'> +ivory2</div> +<div id='d305' class='colors'> +LightGoldenrodYellow</div> +<div id='d306' class='colors'> +LightYellow2</div> +<div id='d307' class='colors'> +ivory3</div> +<div id='d308' class='colors'> +LightYellow3</div> +<div id='d309' class='colors'> +ivory4</div> +<div id='d310' class='colors'> +LightYellow4</div> +<div id='d311' class='colors'> +yellow</div> +<div id='d312' class='colors'> +yellow1</div> +<div id='d313' class='colors'> +yellow2</div> +<div id='d314' class='colors'> +yellow3</div> +<div id='d315' class='colors'> +yellow4</div> +<div id='d316' class='colors'> +olive</div> +<div id='d317' class='colors'> +DarkKhaki</div> +<div id='d318' class='colors'> +khaki2</div> +<div id='d319' class='colors'> +LemonChiffon4</div> +<div id='d320' class='colors'> +khaki1</div> +<div id='d321' class='colors'> +khaki3</div> +<div id='d322' class='colors'> +khaki4</div> +<div id='d323' class='colors'> +PaleGoldenrod</div> +<div id='d324' class='colors'> +LemonChiffon</div> +<div id='d325' class='colors'> +LemonChiffon1</div> +<div id='d326' class='colors'> +khaki</div> +<div id='d327' class='colors'> +LemonChiffon3</div> +<div id='d328' class='colors'> +LemonChiffon2</div> +<div id='d329' class='colors'> +MediumGoldenRod</div> +<div id='d330' class='colors'> +cornsilk4</div> +<div id='d331' class='colors'> +gold</div> +<div id='d332' class='colors'> +gold1</div> +<div id='d333' class='colors'> +gold2</div> +<div id='d334' class='colors'> +gold3</div> +<div id='d335' class='colors'> +gold4</div> +<div id='d336' class='colors'> +LightGoldenrod</div> +<div id='d337' class='colors'> +LightGoldenrod4</div> +<div id='d338' class='colors'> +LightGoldenrod1</div> +<div id='d339' class='colors'> +LightGoldenrod3</div> +<div id='d340' class='colors'> +LightGoldenrod2</div> +<div id='d341' class='colors'> +cornsilk3</div> +<div id='d342' class='colors'> +cornsilk2</div> +<div id='d343' class='colors'> +cornsilk</div> +<div id='d344' class='colors'> +cornsilk1</div> +<div id='d345' class='colors'> +goldenrod</div> +<div id='d346' class='colors'> +goldenrod1</div> +<div id='d347' class='colors'> +goldenrod2</div> +<div id='d348' class='colors'> +goldenrod3</div> +<div id='d349' class='colors'> +goldenrod4</div> +<div id='d350' class='colors'> +DarkGoldenrod</div> +<div id='d351' class='colors'> +DarkGoldenrod1</div> +<div id='d352' class='colors'> +DarkGoldenrod2</div> +<div id='d353' class='colors'> +DarkGoldenrod3</div> +<div id='d354' class='colors'> +DarkGoldenrod4</div> +<div id='d355' class='colors'> +FloralWhite</div> +<div id='d356' class='colors'> +wheat2</div> +<div id='d357' class='colors'> +OldLace</div> +<div id='d358' class='colors'> +wheat</div> +<div id='d359' class='colors'> +wheat1</div> +<div id='d360' class='colors'> +wheat3</div> +<div id='d361' class='colors'> +orange</div> +<div id='d362' class='colors'> +orange1</div> +<div id='d363' class='colors'> +orange2</div> +<div id='d364' class='colors'> +orange3</div> +<div id='d365' class='colors'> +orange4</div> +<div id='d366' class='colors'> +wheat4</div> +<div id='d367' class='colors'> +moccasin</div> +<div id='d368' class='colors'> +PapayaWhip</div> +<div id='d369' class='colors'> +NavajoWhite3</div> +<div id='d370' class='colors'> +BlanchedAlmond</div> +<div id='d371' class='colors'> +NavajoWhite</div> +<div id='d372' class='colors'> +NavajoWhite1</div> +<div id='d373' class='colors'> +NavajoWhite2</div> +<div id='d374' class='colors'> +NavajoWhite4</div> +<div id='d375' class='colors'> +AntiqueWhite4</div> +<div id='d376' class='colors'> +AntiqueWhite</div> +<div id='d377' class='colors'> +tan</div> +<div id='d378' class='colors'> +bisque4</div> +<div id='d379' class='colors'> +burlywood</div> +<div id='d380' class='colors'> +AntiqueWhite2</div> +<div id='d381' class='colors'> +burlywood1</div> +<div id='d382' class='colors'> +burlywood3</div> +<div id='d383' class='colors'> +burlywood2</div> +<div id='d384' class='colors'> +AntiqueWhite1</div> +<div id='d385' class='colors'> +burlywood4</div> +<div id='d386' class='colors'> +AntiqueWhite3</div> +<div id='d387' class='colors'> +DarkOrange</div> +<div id='d388' class='colors'> +bisque2</div> +<div id='d389' class='colors'> +bisque</div> +<div id='d390' class='colors'> +bisque1</div> +<div id='d391' class='colors'> +bisque3</div> +<div id='d392' class='colors'> +DarkOrange1</div> +<div id='d393' class='colors'> +linen</div> +<div id='d394' class='colors'> +DarkOrange2</div> +<div id='d395' class='colors'> +DarkOrange3</div> +<div id='d396' class='colors'> +DarkOrange4</div> +<div id='d397' class='colors'> +peru</div> +<div id='d398' class='colors'> +tan1</div> +<div id='d399' class='colors'> +tan2</div> +<div id='d400' class='colors'> +tan3</div> +<div id='d401' class='colors'> +tan4</div> +<div id='d402' class='colors'> +PeachPuff</div> +<div id='d403' class='colors'> +PeachPuff1</div> +<div id='d404' class='colors'> +PeachPuff4</div> +<div id='d405' class='colors'> +PeachPuff2</div> +<div id='d406' class='colors'> +PeachPuff3</div> +<div id='d407' class='colors'> +SandyBrown</div> +<div id='d408' class='colors'> +seashell4</div> +<div id='d409' class='colors'> +seashell2</div> +<div id='d410' class='colors'> +seashell3</div> +<div id='d411' class='colors'> +chocolate</div> +<div id='d412' class='colors'> +chocolate1</div> +<div id='d413' class='colors'> +chocolate2</div> +<div id='d414' class='colors'> +chocolate3</div> +<div id='d415' class='colors'> +chocolate4</div> +<div id='d416' class='colors'> +SaddleBrown</div> +<div id='d417' class='colors'> +seashell</div> +<div id='d418' class='colors'> +seashell1</div> +<div id='d419' class='colors'> +sienna4</div> +<div id='d420' class='colors'> +sienna</div> +<div id='d421' class='colors'> +sienna1</div> +<div id='d422' class='colors'> +sienna2</div> +<div id='d423' class='colors'> +sienna3</div> +<div id='d424' class='colors'> +LightSalmon3</div> +<div id='d425' class='colors'> +LightSalmon</div> +<div id='d426' class='colors'> +LightSalmon1</div> +<div id='d427' class='colors'> +LightSalmon4</div> +<div id='d428' class='colors'> +LightSalmon2</div> +<div id='d429' class='colors'> +coral</div> +<div id='d430' class='colors'> +OrangeRed</div> +<div id='d431' class='colors'> +OrangeRed1</div> +<div id='d432' class='colors'> +OrangeRed2</div> +<div id='d433' class='colors'> +OrangeRed3</div> +<div id='d434' class='colors'> +OrangeRed4</div> +<div id='d435' class='colors'> +DarkSalmon</div> +<div id='d436' class='colors'> +salmon1</div> +<div id='d437' class='colors'> +salmon2</div> +<div id='d438' class='colors'> +salmon3</div> +<div id='d439' class='colors'> +salmon4</div> +<div id='d440' class='colors'> +coral1</div> +<div id='d441' class='colors'> +coral2</div> +<div id='d442' class='colors'> +coral3</div> +<div id='d443' class='colors'> +coral4</div> +<div id='d444' class='colors'> +tomato4</div> +<div id='d445' class='colors'> +tomato</div> +<div id='d446' class='colors'> +tomato1</div> +<div id='d447' class='colors'> +tomato2</div> +<div id='d448' class='colors'> +tomato3</div> +<div id='d449' class='colors'> +MistyRose4</div> +<div id='d450' class='colors'> +MistyRose2</div> +<div id='d451' class='colors'> +MistyRose</div> +<div id='d452' class='colors'> +MistyRose1</div> +<div id='d453' class='colors'> +salmon</div> +<div id='d454' class='colors'> +MistyRose3</div> +<div id='d455' class='colors'> +white</div> +<div id='d456' class='colors'> +gray100</div> +<div id='d457' class='colors'> +grey100</div> +<div id='d458' class='colors'> +grey100</div> +<div id='d459' class='colors'> +gray99</div> +<div id='d460' class='colors'> +grey99</div> +<div id='d461' class='colors'> +gray98</div> +<div id='d462' class='colors'> +grey98</div> +<div id='d463' class='colors'> +gray97</div> +<div id='d464' class='colors'> +grey97</div> +<div id='d465' class='colors'> +gray96</div> +<div id='d466' class='colors'> +grey96</div> +<div id='d467' class='colors'> +WhiteSmoke</div> +<div id='d468' class='colors'> +gray95</div> +<div id='d469' class='colors'> +grey95</div> +<div id='d470' class='colors'> +gray94</div> +<div id='d471' class='colors'> +grey94</div> +<div id='d472' class='colors'> +gray93</div> +<div id='d473' class='colors'> +grey93</div> +<div id='d474' class='colors'> +gray92</div> +<div id='d475' class='colors'> +grey92</div> +<div id='d476' class='colors'> +gray91</div> +<div id='d477' class='colors'> +grey91</div> +<div id='d478' class='colors'> +gray90</div> +<div id='d479' class='colors'> +grey90</div> +<div id='d480' class='colors'> +gray89</div> +<div id='d481' class='colors'> +grey89</div> +<div id='d482' class='colors'> +gray88</div> +<div id='d483' class='colors'> +grey88</div> +<div id='d484' class='colors'> +gray87</div> +<div id='d485' class='colors'> +grey87</div> +<div id='d486' class='colors'> +gainsboro</div> +<div id='d487' class='colors'> +gray86</div> +<div id='d488' class='colors'> +grey86</div> +<div id='d489' class='colors'> +gray85</div> +<div id='d490' class='colors'> +grey85</div> +<div id='d491' class='colors'> +gray84</div> +<div id='d492' class='colors'> +grey84</div> +<div id='d493' class='colors'> +gray83</div> +<div id='d494' class='colors'> +grey83</div> +<div id='d495' class='colors'> +LightGray</div> +<div id='d496' class='colors'> +LightGrey</div> +<div id='d497' class='colors'> +gray82</div> +<div id='d498' class='colors'> +grey82</div> +<div id='d499' class='colors'> +gray81</div> +<div id='d500' class='colors'> +grey81</div> +<div id='d501' class='colors'> +gray80</div> +<div id='d502' class='colors'> +grey80</div> +<div id='d503' class='colors'> +gray79</div> +<div id='d504' class='colors'> +grey79</div> +<div id='d505' class='colors'> +gray78</div> +<div id='d506' class='colors'> +grey78</div> +<div id='d507' class='colors'> +gray77</div> +<div id='d508' class='colors'> +grey77</div> +<div id='d509' class='colors'> +gray76</div> +<div id='d510' class='colors'> +grey76</div> +<div id='d511' class='colors'> +silver</div> +<div id='d512' class='colors'> +gray75</div> +<div id='d513' class='colors'> +grey75</div> +<div id='d514' class='colors'> +gray74</div> +<div id='d515' class='colors'> +grey74</div> +<div id='d516' class='colors'> +gray73</div> +<div id='d517' class='colors'> +grey73</div> +<div id='d518' class='colors'> +gray72</div> +<div id='d519' class='colors'> +grey72</div> +<div id='d520' class='colors'> +gray71</div> +<div id='d521' class='colors'> +grey71</div> +<div id='d522' class='colors'> +gray70</div> +<div id='d523' class='colors'> +grey70</div> +<div id='d524' class='colors'> +gray69</div> +<div id='d525' class='colors'> +grey69</div> +<div id='d526' class='colors'> +gray68</div> +<div id='d527' class='colors'> +grey68</div> +<div id='d528' class='colors'> +gray67</div> +<div id='d529' class='colors'> +grey67</div> +<div id='d530' class='colors'> +DarkGray</div> +<div id='d531' class='colors'> +DarkGrey</div> +<div id='d532' class='colors'> +gray66</div> +<div id='d533' class='colors'> +grey66</div> +<div id='d534' class='colors'> +gray65</div> +<div id='d535' class='colors'> +grey65</div> +<div id='d536' class='colors'> +gray64</div> +<div id='d537' class='colors'> +grey64</div> +<div id='d538' class='colors'> +gray63</div> +<div id='d539' class='colors'> +grey63</div> +<div id='d540' class='colors'> +gray62</div> +<div id='d541' class='colors'> +grey62</div> +<div id='d542' class='colors'> +gray61</div> +<div id='d543' class='colors'> +grey61</div> +<div id='d544' class='colors'> +gray60</div> +<div id='d545' class='colors'> +grey60</div> +<div id='d546' class='colors'> +gray59</div> +<div id='d547' class='colors'> +grey59</div> +<div id='d548' class='colors'> +gray58</div> +<div id='d549' class='colors'> +grey58</div> +<div id='d550' class='colors'> +gray57</div> +<div id='d551' class='colors'> +grey57</div> +<div id='d552' class='colors'> +gray56</div> +<div id='d553' class='colors'> +grey56</div> +<div id='d554' class='colors'> +gray55</div> +<div id='d555' class='colors'> +grey55</div> +<div id='d556' class='colors'> +gray54</div> +<div id='d557' class='colors'> +grey54</div> +<div id='d558' class='colors'> +gray53</div> +<div id='d559' class='colors'> +grey53</div> +<div id='d560' class='colors'> +gray52</div> +<div id='d561' class='colors'> +grey52</div> +<div id='d562' class='colors'> +gray51</div> +<div id='d563' class='colors'> +grey51</div> +<div id='d564' class='colors'> +fractal</div> +<div id='d565' class='colors'> +gray50</div> +<div id='d566' class='colors'> +grey50</div> +<div id='d567' class='colors'> +gray</div> +<div id='d568' class='colors'> +gray49</div> +<div id='d569' class='colors'> +grey49</div> +<div id='d570' class='colors'> +gray48</div> +<div id='d571' class='colors'> +grey48</div> +<div id='d572' class='colors'> +gray47</div> +<div id='d573' class='colors'> +grey47</div> +<div id='d574' class='colors'> +gray46</div> +<div id='d575' class='colors'> +grey46</div> +<div id='d576' class='colors'> +gray45</div> +<div id='d577' class='colors'> +grey45</div> +<div id='d578' class='colors'> +gray44</div> +<div id='d579' class='colors'> +grey44</div> +<div id='d580' class='colors'> +gray43</div> +<div id='d581' class='colors'> +grey43</div> +<div id='d582' class='colors'> +gray42</div> +<div id='d583' class='colors'> +grey42</div> +<div id='d584' class='colors'> +DimGray</div> +<div id='d585' class='colors'> +DimGrey</div> +<div id='d586' class='colors'> +gray41</div> +<div id='d587' class='colors'> +grey41</div> +<div id='d588' class='colors'> +gray40</div> +<div id='d589' class='colors'> +grey40</div> +<div id='d590' class='colors'> +gray39</div> +<div id='d591' class='colors'> +grey39</div> +<div id='d592' class='colors'> +gray38</div> +<div id='d593' class='colors'> +grey38</div> +<div id='d594' class='colors'> +gray37</div> +<div id='d595' class='colors'> +grey37</div> +<div id='d596' class='colors'> +gray36</div> +<div id='d597' class='colors'> +grey36</div> +<div id='d598' class='colors'> +gray35</div> +<div id='d599' class='colors'> +grey35</div> +<div id='d600' class='colors'> +gray34</div> +<div id='d601' class='colors'> +grey34</div> +<div id='d602' class='colors'> +gray33</div> +<div id='d603' class='colors'> +grey33</div> +<div id='d604' class='colors'> +gray32</div> +<div id='d605' class='colors'> +grey32</div> +<div id='d606' class='colors'> +gray31</div> +<div id='d607' class='colors'> +grey31</div> +<div id='d608' class='colors'> +gray30</div> +<div id='d609' class='colors'> +grey30</div> +<div id='d610' class='colors'> +gray29</div> +<div id='d611' class='colors'> +grey29</div> +<div id='d612' class='colors'> +gray28</div> +<div id='d613' class='colors'> +grey28</div> +<div id='d614' class='colors'> +gray27</div> +<div id='d615' class='colors'> +grey27</div> +<div id='d616' class='colors'> +gray26</div> +<div id='d617' class='colors'> +grey26</div> +<div id='d618' class='colors'> +gray25</div> +<div id='d619' class='colors'> +grey25</div> +<div id='d620' class='colors'> +gray24</div> +<div id='d621' class='colors'> +grey24</div> +<div id='d622' class='colors'> +gray23</div> +<div id='d623' class='colors'> +grey23</div> +<div id='d624' class='colors'> +gray22</div> +<div id='d625' class='colors'> +grey22</div> +<div id='d626' class='colors'> +gray21</div> +<div id='d627' class='colors'> +grey21</div> +<div id='d628' class='colors'> +gray20</div> +<div id='d629' class='colors'> +grey20</div> +<div id='d630' class='colors'> +gray19</div> +<div id='d631' class='colors'> +grey19</div> +<div id='d632' class='colors'> +gray18</div> +<div id='d633' class='colors'> +grey18</div> +<div id='d634' class='colors'> +gray17</div> +<div id='d635' class='colors'> +grey17</div> +<div id='d636' class='colors'> +gray16</div> +<div id='d637' class='colors'> +grey16</div> +<div id='d638' class='colors'> +gray15</div> +<div id='d639' class='colors'> +grey15</div> +<div id='d640' class='colors'> +gray14</div> +<div id='d641' class='colors'> +grey14</div> +<div id='d642' class='colors'> +gray13</div> +<div id='d643' class='colors'> +grey13</div> +<div id='d644' class='colors'> +gray12</div> +<div id='d645' class='colors'> +grey12</div> +<div id='d646' class='colors'> +gray11</div> +<div id='d647' class='colors'> +grey11</div> +<div id='d648' class='colors'> +gray10</div> +<div id='d649' class='colors'> +grey10</div> +<div id='d650' class='colors'> +gray9</div> +<div id='d651' class='colors'> +grey9</div> +<div id='d652' class='colors'> +gray8</div> +<div id='d653' class='colors'> +grey8</div> +<div id='d654' class='colors'> +gray7</div> +<div id='d655' class='colors'> +grey7</div> +<div id='d656' class='colors'> +gray6</div> +<div id='d657' class='colors'> +grey6</div> +<div id='d658' class='colors'> +gray5</div> +<div id='d659' class='colors'> +grey5</div> +<div id='d660' class='colors'> +gray4</div> +<div id='d661' class='colors'> +grey4</div> +<div id='d662' class='colors'> +gray3</div> +<div id='d663' class='colors'> +grey3</div> +<div id='d664' class='colors'> +gray2</div> +<div id='d665' class='colors'> +grey2</div> +<div id='d666' class='colors'> +gray1</div> +<div id='d667' class='colors'> +grey1</div> +<div id='d668' class='colors'> +black</div> +<div id='d669' class='colors'> +gray0</div> +<div id='d670' class='colors'> +grey0</div> +<div id='d671' class='colors'> +opaque</div> +<div id='d672' class='colors'> +none</div> +<div id='d673' class='colors'> +transparent</div> +</div> +</div> + +<div id='colornames'> +CLICK TO CHOOSE THE COLOR +</div> + +<div id='switches'> + +<span id='title'>OPTIONS</span> +<div id='hexswitch' class='theswitches'>CLICK TO USE HEX KEYS</div> +<br> +<div id='infoswitch' class='theswitches'>CLICK TO TOGGLE PALATE INFO<span id='infospace'></span></div> +<br> +<div id='backgroundswitch' class='theswitches'>CLICK TO TOGGLE BACKGROUNDS</div> +<br> +<div id='preview'></div> +<div id='nameholder'>YOU WILL CHOOSE:<input id='namespace' type='text'></input></div> +<br> +<span id='transparent'>to choose transparent as a color, click <span id='transbutton'>HERE</span></span> +</div> +</div> +<script type='text/javascript' src='jquery-1.6.4.min.js'></script> +<script type='text/javascript' src='colordict.js'></script> + +<script type='text/javascript'> + + +//setup dimensions +////////////////// + +function regolden(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num/ratio) + return newnum + } +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newval = goldenize(result) + propval = newval.toString()+'px' + if(propertystr == 'height'){ + $(idandselectr).css('width', propval) + } + else if(propertystr == 'width'){ + $(idandselectr).css('height', propval) + } + } +function shrinkwidth(arg){ + for(var i=0; i < 5; i++){ + arg = regolden(arg) + } + division = Math.round(arg) + return division +} + +function makecolorswidth(){ + colorswidth = shrinkwidth(window.innerWidth) + $('.colors').css('width', colorswidth.toString()+'px') +} +function makecolorsheight(){ + result = getproperty('.colors', 'width') + newval = regolden(result) + propval = newval.toString()+'px' + $('.colors').css('height', propval) +} +//the following function sets up the font sizes +//inrelation to the size of the hexswitch font +function setupfonts(){ + var firstfont = getproperty('#hexswitch', 'font-size') + var finalfont = goldenize(firstfont) + $('#namespace').css('font-size', finalfont+'px') + $('#namespace').css('width', $('#switches').css('width')) + var secondfont = getproperty('#namespace', 'font-size') + var finalfont = goldenize(secondfont) + $('#colornames').css('font-size', finalfont+'px') + $('#colornames').css('text-shadow', 'black 1px 2px') + var transfont = regolden(firstfont) + $('#transparent').css('font-size', transfont+'px') +} +function getcontainerwidth(){ + basis = $('.colors').css('width') + basis = parseInt(basis.slice(0,-2)) + secondbasis = '2px' + secondbasis = parseInt(secondbasis.slice(0,-2)) + widthval = (secondbasis*8)+(basis*4)+(goldenize(basis)-basis) + widthval = widthval.toString()+'px' + return widthval +} + +function makecontainerwidth(){ + var containerwidth = getcontainerwidth() + $('#container').css('width',containerwidth) + $('#viewarea').css('width',containerwidth) +} + + +function setupsides() + { + var basis = $('#container').css('width') + basis = parseInt(basis.slice(0,-2)) + remainder = (100-basis)/2 + widths = regolden(basis) + widths = widths.toString()+'px' + lateralbasis = regolden(remainder) + leftside = toString(lateralbasis)+'%' + rightside = toString(100-lateralbasis)+'%' + $('#colornames').css('left', leftside) + $('#switches').css({'width': widths, 'left': rightside}) + } +function previewdimensions(){ + first = $('#switches').css('width') + first = parseInt(first.slice(0,-2)) + width = regolden(first) + height = regolden(width) + width = width.toString()+'px' + height = height.toString()+'px' + $('#preview').css({'width':width, 'height':height}) +} +function setupdimensions(){ +makecolorswidth() +setupfonts() +makecolorsheight() +makecontainerwidth() +setupsides() +makegolden('#switches','width') +previewdimensions() +} +setupdimensions() +$(window).resize(function(){setupdimensions()}) +//$(window).resize()(function(){setupdimensions()}) + +//BEGIN STYLINGS// +////////////////// + + +var old = {}; +function hovercss(sel, uno){ + + var chng = {}; + chng['color'] = 'white'; + chng['text-shadow'] = 'black 1px 2px'; + chng['background-image'] = 'url(http://asdf.us/im/19/gradient_whitegray80_1321305183_1321305241_pepper_1321333403_pepper.jpg)'; + if(uno == 'over'){ + for(var key in chng){ + old[key] = $('#'+sel).css(key) + } + for(var key in chng){ + $('#'+sel).css(key, chng[key]) + } + } + if(uno == 'out'){ + for(var key in old){ + $('#'+sel).css(key, old[key]) + } + } +} +$('.theswitches').hover(function(){hovercss(this.id, 'over')}, function(){hovercss(this.id, 'out')}) + +var transcss = { + 'color':'#141414','box-shadow':'10px 10px 5px #141414', + 'background-color':'#D1D1D1','color':'#141414', + 'border-width':'2px','border-style':'outset','cursor':'pointer'} +$('#transbutton').css(transcss) +var hovertrans = { + 'background-color':'DarkGrey','color':'#383838','box-shadow':'5px 5px 2px #141414' +} +$('#transbutton').hover(function(){$('#transbutton').css(hovertrans)},function(){$('#transbutton').css(transcss)}) +//threewayselector for what goes in the divs +infostate = 1 +function switchinfo() + { + if(infostate == 0) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(divtoname[divlist[i]]) + }; + infostate = 1 + $('#infospace').html('(NAMES)'); + } + else if(infostate == 1) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html("") + }; + infostate = 2 + $('#infospace').html('(NONE)'); + } + else if(infostate == 2) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(nametohex[divtoname[divlist[i]]]) + }; + infostate = 0 + $('#infospace').html('(HEXES)'); + } + } +$('#infoswitch').hover(function(){$('#infospace').show()}, function(){$('#infospace').hide('slow')} ) +$('#infoswitch').click(function(){switchinfo()}) + + +backgroundstate = 2; +function switchbackground() + { + if(backgroundstate == 1) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image','url(http://dump.fm/static/img/bg.dither.gif)') + backgroundstate = 2; + $('#colornames').css('color', 'white') + $('#colornames').css('text-shadow', 'black 1px 2px') + } + else if(backgroundstate == 2) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image', 'none') + backgroundstate = 0 + } + else if(backgroundstate == 0) + { + $('#colorpicker').css('background-color', 'white') + $('#colorpicker').css('background-image', 'none') + $('#colornames').css('color', 'grey') + backgroundstate = 1 + } + } + +$('#backgroundswitch').click(function(){switchbackground()}) + +//takes a div name and returns a colorname + +function showcolorname(divstr) + + { + colorname = divtoname['#'+divstr] + hex = nametohex[colorname] + imname = hextoname[hex] + if (hexes == true) + { + imname = hex + } + + return imname + } +function bigname(divstr) + { + colorname = showcolorname(divstr) + $('#colornames').html(colorname) + + } +function writeit(text) + { + $('#colornames').append(text) + } +function makebig(divstr) + { + firstheight = $('#'+divstr).height() + newheight = goldenize(firstheight) + $('#'+divstr).height(newheight) + } +function makesmall(divstr) + { + oldheight = $('.colors').height() + $('#'+divstr).height(oldheight) + } +var choice; +$('.colors').hover(function() { + bigname(this.id); +// makebig(this.id); +// makegolden('#'+this.id, 'height')}, +//function(){ +// makesmall(this.id); +// makegolden('#'+this.id, 'height') +}); +$('.colors').mouseover(function(){ + if(this.id != 'd0'){ + makebig(this.id); + makegolden('#'+this.id, 'height') + }}) +$('.colors').mouseout(function(){ + makesmall(this.id); + makegolden('#'+this.id,'height'); + }) +$(".colors").hover(function(){ +$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); + }); +$('.colors').css('margin-top', '2px') +var hexes = false +function hexswitch() + { + if(hexes == false) + { + $('#hexswitch').html('CLICK TO USE COLOR NAMES') + hexes = true; + var nameval = $('#namespace').val() + $('#namespace').val(nametohex[nameval]) + } + + else + { + $('#hexswitch').html('CLICK TO USE HEX KEYS') + hexes = false; + var nameval = $('#namespace').val() + $('#namespace').val(hextoname[nameval]) + } + } +$('#hexswitch').click(function(){hexswitch()}) + +$('.colors').click(function(){ + putitin() + }) + +function putitin() + { + thecolor = $('#colornames').html() + $('#namespace').val(thecolor) + if(hexes == false){ + $('#preview').css({'background-color': nametohex[thecolor], 'border-style':'none'}) + } + else{ + $('#preview').css('background-color', thecolor) + } + + } +function transparent() + { + $('#namespace').val('transparent'); + $('#preview').css({'background-color':'transparent','border-style':'dashed','border-width':'2px'}) + } +$('#transbutton').click(function(){transparent()}) + +//$('#switches').bind('mousemove',function(e){ +// $("#colornames").html(" e.pageY: " + e.pageY); +//}); +vt.start("viewarea", "container"); + +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/minimap.html b/frontend/imgrid/colors/minimap.html new file mode 100755 index 0000000..5a5291e --- /dev/null +++ b/frontend/imgrid/colors/minimap.html @@ -0,0 +1,3891 @@ +<html> +<head> + +<style type='text/css'> + +body +{ +margin:0; +} + +#colorpicker +{ + +width:100%; +font-family:helvetica; +font-size:10px; +//background-color: gray; +//background-image: url("http://asdf.us/im/6f/gradient_bgdither_1321255670_pepper.gif"); +background-color: black; +background-image: url("http://dump.fm/static/img/bg.dither.gif") + +} + +#container div +{ +text-align:left; +display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +min-height: 30px; +zoom: 1; +word-wrap: break-word; +*display: inline; +cursor:pointer; +} + +#container +{ +margin:0 auto; +width:31%; +padding-top:100px; +padding-right:10px; +padding-left:10px; +text-align:center; +overflow:auto; +height:1000px; +} + +#colornames +{ +color:white; +position:fixed; +font-size:50px; +top:50px; +left:2%; +width:400px; +} + +#switches + { + position:fixed; + top:20px; + right:1%; + height:400px; + width:300px; + font-size:20px; + border-style: groove; + border-width: 4px; + background-color:gray; + padding:2px; + box-shadow: 10px 10px 5px #141414; + } + +#infoswitch, #hexswitch, #backgroundswitch + { + background-image:url(http://asdf.us/im/58/gradient_whitegray80_1321305183_1321305241_pepper.jpg); + cursor:pointer; + } +#preview + { + height:150px; + } + + +#holder + { + float:bottom; + } + +#transparent + { + font-size:12px; + } +#namespace + { + width:inherit; + } +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{ +height:30; +width:10px; +} +</style></head><body> +<div id='colorpicker'> +<div id='container'> +<div id='d0' class='colors'> +snow</div> +<div id='d1' class='colors'> +snow1</div> +<div id='d2' class='colors'> +snow2</div> +<div id='d3' class='colors'> +RosyBrown1</div> +<div id='d4' class='colors'> +RosyBrown2</div> +<div id='d5' class='colors'> +snow3</div> +<div id='d6' class='colors'> +LightCoral</div> +<div id='d7' class='colors'> +IndianRed1</div> +<div id='d8' class='colors'> +RosyBrown3</div> +<div id='d9' class='colors'> +IndianRed2</div> +<div id='d10' class='colors'> +RosyBrown</div> +<div id='d11' class='colors'> +brown1</div> +<div id='d12' class='colors'> +firebrick1</div> +<div id='d13' class='colors'> +brown2</div> +<div id='d14' class='colors'> +IndianRed</div> +<div id='d15' class='colors'> +IndianRed3</div> +<div id='d16' class='colors'> +firebrick2</div> +<div id='d17' class='colors'> +snow4</div> +<div id='d18' class='colors'> +brown3</div> +<div id='d19' class='colors'> +red</div> +<div id='d20' class='colors'> +red1</div> +<div id='d21' class='colors'> +RosyBrown4</div> +<div id='d22' class='colors'> +firebrick3</div> +<div id='d23' class='colors'> +red2</div> +<div id='d24' class='colors'> +firebrick</div> +<div id='d25' class='colors'> +brown</div> +<div id='d26' class='colors'> +red3</div> +<div id='d27' class='colors'> +IndianRed4</div> +<div id='d28' class='colors'> +brown4</div> +<div id='d29' class='colors'> +firebrick4</div> +<div id='d30' class='colors'> +DarkRed</div> +<div id='d31' class='colors'> +red4</div> +<div id='d32' class='colors'> +maroon</div> +<div id='d33' class='colors'> +LightPink1</div> +<div id='d34' class='colors'> +LightPink3</div> +<div id='d35' class='colors'> +LightPink4</div> +<div id='d36' class='colors'> +LightPink2</div> +<div id='d37' class='colors'> +LightPink</div> +<div id='d38' class='colors'> +pink</div> +<div id='d39' class='colors'> +crimson</div> +<div id='d40' class='colors'> +pink1</div> +<div id='d41' class='colors'> +pink2</div> +<div id='d42' class='colors'> +pink3</div> +<div id='d43' class='colors'> +pink4</div> +<div id='d44' class='colors'> +PaleVioletRed4</div> +<div id='d45' class='colors'> +PaleVioletRed</div> +<div id='d46' class='colors'> +PaleVioletRed2</div> +<div id='d47' class='colors'> +PaleVioletRed1</div> +<div id='d48' class='colors'> +PaleVioletRed3</div> +<div id='d49' class='colors'> +LavenderBlush</div> +<div id='d50' class='colors'> +LavenderBlush1</div> +<div id='d51' class='colors'> +LavenderBlush3</div> +<div id='d52' class='colors'> +LavenderBlush2</div> +<div id='d53' class='colors'> +LavenderBlush4</div> +<div id='d54' class='colors'> +maroon</div> +<div id='d55' class='colors'> +HotPink3</div> +<div id='d56' class='colors'> +VioletRed3</div> +<div id='d57' class='colors'> +VioletRed1</div> +<div id='d58' class='colors'> +VioletRed2</div> +<div id='d59' class='colors'> +VioletRed4</div> +<div id='d60' class='colors'> +HotPink2</div> +<div id='d61' class='colors'> +HotPink1</div> +<div id='d62' class='colors'> +HotPink4</div> +<div id='d63' class='colors'> +HotPink</div> +<div id='d64' class='colors'> +DeepPink</div> +<div id='d65' class='colors'> +DeepPink1</div> +<div id='d66' class='colors'> +DeepPink2</div> +<div id='d67' class='colors'> +DeepPink3</div> +<div id='d68' class='colors'> +DeepPink4</div> +<div id='d69' class='colors'> +maroon1</div> +<div id='d70' class='colors'> +maroon2</div> +<div id='d71' class='colors'> +maroon3</div> +<div id='d72' class='colors'> +maroon4</div> +<div id='d73' class='colors'> +MediumVioletRed</div> +<div id='d74' class='colors'> +VioletRed</div> +<div id='d75' class='colors'> +orchid2</div> +<div id='d76' class='colors'> +orchid</div> +<div id='d77' class='colors'> +orchid1</div> +<div id='d78' class='colors'> +orchid3</div> +<div id='d79' class='colors'> +orchid4</div> +<div id='d80' class='colors'> +thistle1</div> +<div id='d81' class='colors'> +thistle2</div> +<div id='d82' class='colors'> +plum1</div> +<div id='d83' class='colors'> +plum2</div> +<div id='d84' class='colors'> +thistle</div> +<div id='d85' class='colors'> +thistle3</div> +<div id='d86' class='colors'> +plum</div> +<div id='d87' class='colors'> +violet</div> +<div id='d88' class='colors'> +plum3</div> +<div id='d89' class='colors'> +thistle4</div> +<div id='d90' class='colors'> +fuchsia</div> +<div id='d91' class='colors'> +magenta</div> +<div id='d92' class='colors'> +magenta1</div> +<div id='d93' class='colors'> +plum4</div> +<div id='d94' class='colors'> +magenta2</div> +<div id='d95' class='colors'> +magenta3</div> +<div id='d96' class='colors'> +DarkMagenta</div> +<div id='d97' class='colors'> +magenta4</div> +<div id='d98' class='colors'> +purple</div> +<div id='d99' class='colors'> +MediumOrchid</div> +<div id='d100' class='colors'> +MediumOrchid1</div> +<div id='d101' class='colors'> +MediumOrchid2</div> +<div id='d102' class='colors'> +MediumOrchid3</div> +<div id='d103' class='colors'> +MediumOrchid4</div> +<div id='d104' class='colors'> +DarkViolet</div> +<div id='d105' class='colors'> +DarkOrchid</div> +<div id='d106' class='colors'> +DarkOrchid1</div> +<div id='d107' class='colors'> +DarkOrchid3</div> +<div id='d108' class='colors'> +DarkOrchid2</div> +<div id='d109' class='colors'> +DarkOrchid4</div> +<div id='d110' class='colors'> +purple</div> +<div id='d111' class='colors'> +indigo</div> +<div id='d112' class='colors'> +BlueViolet</div> +<div id='d113' class='colors'> +purple2</div> +<div id='d114' class='colors'> +purple3</div> +<div id='d115' class='colors'> +purple4</div> +<div id='d116' class='colors'> +purple1</div> +<div id='d117' class='colors'> +MediumPurple</div> +<div id='d118' class='colors'> +MediumPurple1</div> +<div id='d119' class='colors'> +MediumPurple2</div> +<div id='d120' class='colors'> +MediumPurple3</div> +<div id='d121' class='colors'> +MediumPurple4</div> +<div id='d122' class='colors'> +DarkSlateBlue</div> +<div id='d123' class='colors'> +LightSlateBlue</div> +<div id='d124' class='colors'> +MediumSlateBlue</div> +<div id='d125' class='colors'> +SlateBlue</div> +<div id='d126' class='colors'> +SlateBlue1</div> +<div id='d127' class='colors'> +SlateBlue2</div> +<div id='d128' class='colors'> +SlateBlue3</div> +<div id='d129' class='colors'> +SlateBlue4</div> +<div id='d130' class='colors'> +GhostWhite</div> +<div id='d131' class='colors'> +lavender</div> +<div id='d132' class='colors'> +blue</div> +<div id='d133' class='colors'> +blue1</div> +<div id='d134' class='colors'> +blue2</div> +<div id='d135' class='colors'> +blue3</div> +<div id='d136' class='colors'> +MediumBlue</div> +<div id='d137' class='colors'> +blue4</div> +<div id='d138' class='colors'> +DarkBlue</div> +<div id='d139' class='colors'> +MidnightBlue</div> +<div id='d140' class='colors'> +navy</div> +<div id='d141' class='colors'> +NavyBlue</div> +<div id='d142' class='colors'> +RoyalBlue</div> +<div id='d143' class='colors'> +RoyalBlue1</div> +<div id='d144' class='colors'> +RoyalBlue2</div> +<div id='d145' class='colors'> +RoyalBlue3</div> +<div id='d146' class='colors'> +RoyalBlue4</div> +<div id='d147' class='colors'> +CornflowerBlue</div> +<div id='d148' class='colors'> +LightSteelBlue</div> +<div id='d149' class='colors'> +LightSteelBlue1</div> +<div id='d150' class='colors'> +LightSteelBlue2</div> +<div id='d151' class='colors'> +LightSteelBlue3</div> +<div id='d152' class='colors'> +LightSteelBlue4</div> +<div id='d153' class='colors'> +SlateGray4</div> +<div id='d154' class='colors'> +SlateGray1</div> +<div id='d155' class='colors'> +SlateGray2</div> +<div id='d156' class='colors'> +SlateGray3</div> +<div id='d157' class='colors'> +LightSlateGray</div> +<div id='d158' class='colors'> +LightSlateGrey</div> +<div id='d159' class='colors'> +SlateGray</div> +<div id='d160' class='colors'> +SlateGrey</div> +<div id='d161' class='colors'> +DodgerBlue</div> +<div id='d162' class='colors'> +DodgerBlue1</div> +<div id='d163' class='colors'> +DodgerBlue2</div> +<div id='d164' class='colors'> +DodgerBlue4</div> +<div id='d165' class='colors'> +DodgerBlue3</div> +<div id='d166' class='colors'> +AliceBlue</div> +<div id='d167' class='colors'> +SteelBlue4</div> +<div id='d168' class='colors'> +SteelBlue</div> +<div id='d169' class='colors'> +SteelBlue1</div> +<div id='d170' class='colors'> +SteelBlue2</div> +<div id='d171' class='colors'> +SteelBlue3</div> +<div id='d172' class='colors'> +SkyBlue4</div> +<div id='d173' class='colors'> +SkyBlue1</div> +<div id='d174' class='colors'> +SkyBlue2</div> +<div id='d175' class='colors'> +SkyBlue3</div> +<div id='d176' class='colors'> +LightSkyBlue</div> +<div id='d177' class='colors'> +LightSkyBlue4</div> +<div id='d178' class='colors'> +LightSkyBlue1</div> +<div id='d179' class='colors'> +LightSkyBlue2</div> +<div id='d180' class='colors'> +LightSkyBlue3</div> +<div id='d181' class='colors'> +SkyBlue</div> +<div id='d182' class='colors'> +LightBlue3</div> +<div id='d183' class='colors'> +DeepSkyBlue</div> +<div id='d184' class='colors'> +DeepSkyBlue1</div> +<div id='d185' class='colors'> +DeepSkyBlue2</div> +<div id='d186' class='colors'> +DeepSkyBlue4</div> +<div id='d187' class='colors'> +DeepSkyBlue3</div> +<div id='d188' class='colors'> +LightBlue1</div> +<div id='d189' class='colors'> +LightBlue2</div> +<div id='d190' class='colors'> +LightBlue</div> +<div id='d191' class='colors'> +LightBlue4</div> +<div id='d192' class='colors'> +PowderBlue</div> +<div id='d193' class='colors'> +CadetBlue1</div> +<div id='d194' class='colors'> +CadetBlue2</div> +<div id='d195' class='colors'> +CadetBlue3</div> +<div id='d196' class='colors'> +CadetBlue4</div> +<div id='d197' class='colors'> +turquoise1</div> +<div id='d198' class='colors'> +turquoise2</div> +<div id='d199' class='colors'> +turquoise3</div> +<div id='d200' class='colors'> +turquoise4</div> +<div id='d201' class='colors'> +cadet blue</div> +<div id='d202' class='colors'> +CadetBlue</div> +<div id='d203' class='colors'> +DarkTurquoise</div> +<div id='d204' class='colors'> +azure</div> +<div id='d205' class='colors'> +azure1</div> +<div id='d206' class='colors'> +LightCyan</div> +<div id='d207' class='colors'> +LightCyan1</div> +<div id='d208' class='colors'> +azure2</div> +<div id='d209' class='colors'> +LightCyan2</div> +<div id='d210' class='colors'> +PaleTurquoise1</div> +<div id='d211' class='colors'> +PaleTurquoise</div> +<div id='d212' class='colors'> +PaleTurquoise2</div> +<div id='d213' class='colors'> +DarkSlateGray1</div> +<div id='d214' class='colors'> +azure3</div> +<div id='d215' class='colors'> +LightCyan3</div> +<div id='d216' class='colors'> +DarkSlateGray2</div> +<div id='d217' class='colors'> +PaleTurquoise3</div> +<div id='d218' class='colors'> +DarkSlateGray3</div> +<div id='d219' class='colors'> +azure4</div> +<div id='d220' class='colors'> +LightCyan4</div> +<div id='d221' class='colors'> +aqua</div> +<div id='d222' class='colors'> +cyan</div> +<div id='d223' class='colors'> +cyan1</div> +<div id='d224' class='colors'> +PaleTurquoise4</div> +<div id='d225' class='colors'> +cyan2</div> +<div id='d226' class='colors'> +DarkSlateGray4</div> +<div id='d227' class='colors'> +cyan3</div> +<div id='d228' class='colors'> +cyan4</div> +<div id='d229' class='colors'> +DarkCyan</div> +<div id='d230' class='colors'> +teal</div> +<div id='d231' class='colors'> +DarkSlateGray</div> +<div id='d232' class='colors'> +DarkSlateGrey</div> +<div id='d233' class='colors'> +MediumTurquoise</div> +<div id='d234' class='colors'> +LightSeaGreen</div> +<div id='d235' class='colors'> +turquoise</div> +<div id='d236' class='colors'> +aquamarine4</div> +<div id='d237' class='colors'> +aquamarine</div> +<div id='d238' class='colors'> +aquamarine1</div> +<div id='d239' class='colors'> +aquamarine2</div> +<div id='d240' class='colors'> +aquamarine3</div> +<div id='d241' class='colors'> +MediumAquamarine</div> +<div id='d242' class='colors'> +MediumSpringGreen</div> +<div id='d243' class='colors'> +MintCream</div> +<div id='d244' class='colors'> +SpringGreen</div> +<div id='d245' class='colors'> +SpringGreen1</div> +<div id='d246' class='colors'> +SpringGreen2</div> +<div id='d247' class='colors'> +SpringGreen3</div> +<div id='d248' class='colors'> +SpringGreen4</div> +<div id='d249' class='colors'> +MediumSeaGreen</div> +<div id='d250' class='colors'> +SeaGreen</div> +<div id='d251' class='colors'> +SeaGreen3</div> +<div id='d252' class='colors'> +SeaGreen1</div> +<div id='d253' class='colors'> +SeaGreen4</div> +<div id='d254' class='colors'> +SeaGreen2</div> +<div id='d255' class='colors'> +MediumForestGreen</div> +<div id='d256' class='colors'> +honeydew</div> +<div id='d257' class='colors'> +honeydew1</div> +<div id='d258' class='colors'> +honeydew2</div> +<div id='d259' class='colors'> +DarkSeaGreen1</div> +<div id='d260' class='colors'> +DarkSeaGreen2</div> +<div id='d261' class='colors'> +PaleGreen1</div> +<div id='d262' class='colors'> +PaleGreen</div> +<div id='d263' class='colors'> +honeydew3</div> +<div id='d264' class='colors'> +LightGreen</div> +<div id='d265' class='colors'> +PaleGreen2</div> +<div id='d266' class='colors'> +DarkSeaGreen3</div> +<div id='d267' class='colors'> +DarkSeaGreen</div> +<div id='d268' class='colors'> +PaleGreen3</div> +<div id='d269' class='colors'> +honeydew4</div> +<div id='d270' class='colors'> +green1</div> +<div id='d271' class='colors'> +lime</div> +<div id='d272' class='colors'> +LimeGreen</div> +<div id='d273' class='colors'> +DarkSeaGreen4</div> +<div id='d274' class='colors'> +green2</div> +<div id='d275' class='colors'> +PaleGreen4</div> +<div id='d276' class='colors'> +green3</div> +<div id='d277' class='colors'> +ForestGreen</div> +<div id='d278' class='colors'> +green4</div> +<div id='d279' class='colors'> +green</div> +<div id='d280' class='colors'> +DarkGreen</div> +<div id='d281' class='colors'> +LawnGreen</div> +<div id='d282' class='colors'> +chartreuse</div> +<div id='d283' class='colors'> +chartreuse1</div> +<div id='d284' class='colors'> +chartreuse2</div> +<div id='d285' class='colors'> +chartreuse3</div> +<div id='d286' class='colors'> +chartreuse4</div> +<div id='d287' class='colors'> +GreenYellow</div> +<div id='d288' class='colors'> +DarkOliveGreen3</div> +<div id='d289' class='colors'> +DarkOliveGreen1</div> +<div id='d290' class='colors'> +DarkOliveGreen2</div> +<div id='d291' class='colors'> +DarkOliveGreen4</div> +<div id='d292' class='colors'> +DarkOliveGreen</div> +<div id='d293' class='colors'> +OliveDrab</div> +<div id='d294' class='colors'> +OliveDrab1</div> +<div id='d295' class='colors'> +OliveDrab2</div> +<div id='d296' class='colors'> +OliveDrab3</div> +<div id='d297' class='colors'> +YellowGreen</div> +<div id='d298' class='colors'> +OliveDrab4</div> +<div id='d299' class='colors'> +ivory</div> +<div id='d300' class='colors'> +ivory1</div> +<div id='d301' class='colors'> +LightYellow</div> +<div id='d302' class='colors'> +LightYellow1</div> +<div id='d303' class='colors'> +beige</div> +<div id='d304' class='colors'> +ivory2</div> +<div id='d305' class='colors'> +LightGoldenrodYellow</div> +<div id='d306' class='colors'> +LightYellow2</div> +<div id='d307' class='colors'> +ivory3</div> +<div id='d308' class='colors'> +LightYellow3</div> +<div id='d309' class='colors'> +ivory4</div> +<div id='d310' class='colors'> +LightYellow4</div> +<div id='d311' class='colors'> +yellow</div> +<div id='d312' class='colors'> +yellow1</div> +<div id='d313' class='colors'> +yellow2</div> +<div id='d314' class='colors'> +yellow3</div> +<div id='d315' class='colors'> +yellow4</div> +<div id='d316' class='colors'> +olive</div> +<div id='d317' class='colors'> +DarkKhaki</div> +<div id='d318' class='colors'> +khaki2</div> +<div id='d319' class='colors'> +LemonChiffon4</div> +<div id='d320' class='colors'> +khaki1</div> +<div id='d321' class='colors'> +khaki3</div> +<div id='d322' class='colors'> +khaki4</div> +<div id='d323' class='colors'> +PaleGoldenrod</div> +<div id='d324' class='colors'> +LemonChiffon</div> +<div id='d325' class='colors'> +LemonChiffon1</div> +<div id='d326' class='colors'> +khaki</div> +<div id='d327' class='colors'> +LemonChiffon3</div> +<div id='d328' class='colors'> +LemonChiffon2</div> +<div id='d329' class='colors'> +MediumGoldenRod</div> +<div id='d330' class='colors'> +cornsilk4</div> +<div id='d331' class='colors'> +gold</div> +<div id='d332' class='colors'> +gold1</div> +<div id='d333' class='colors'> +gold2</div> +<div id='d334' class='colors'> +gold3</div> +<div id='d335' class='colors'> +gold4</div> +<div id='d336' class='colors'> +LightGoldenrod</div> +<div id='d337' class='colors'> +LightGoldenrod4</div> +<div id='d338' class='colors'> +LightGoldenrod1</div> +<div id='d339' class='colors'> +LightGoldenrod3</div> +<div id='d340' class='colors'> +LightGoldenrod2</div> +<div id='d341' class='colors'> +cornsilk3</div> +<div id='d342' class='colors'> +cornsilk2</div> +<div id='d343' class='colors'> +cornsilk</div> +<div id='d344' class='colors'> +cornsilk1</div> +<div id='d345' class='colors'> +goldenrod</div> +<div id='d346' class='colors'> +goldenrod1</div> +<div id='d347' class='colors'> +goldenrod2</div> +<div id='d348' class='colors'> +goldenrod3</div> +<div id='d349' class='colors'> +goldenrod4</div> +<div id='d350' class='colors'> +DarkGoldenrod</div> +<div id='d351' class='colors'> +DarkGoldenrod1</div> +<div id='d352' class='colors'> +DarkGoldenrod2</div> +<div id='d353' class='colors'> +DarkGoldenrod3</div> +<div id='d354' class='colors'> +DarkGoldenrod4</div> +<div id='d355' class='colors'> +FloralWhite</div> +<div id='d356' class='colors'> +wheat2</div> +<div id='d357' class='colors'> +OldLace</div> +<div id='d358' class='colors'> +wheat</div> +<div id='d359' class='colors'> +wheat1</div> +<div id='d360' class='colors'> +wheat3</div> +<div id='d361' class='colors'> +orange</div> +<div id='d362' class='colors'> +orange1</div> +<div id='d363' class='colors'> +orange2</div> +<div id='d364' class='colors'> +orange3</div> +<div id='d365' class='colors'> +orange4</div> +<div id='d366' class='colors'> +wheat4</div> +<div id='d367' class='colors'> +moccasin</div> +<div id='d368' class='colors'> +PapayaWhip</div> +<div id='d369' class='colors'> +NavajoWhite3</div> +<div id='d370' class='colors'> +BlanchedAlmond</div> +<div id='d371' class='colors'> +NavajoWhite</div> +<div id='d372' class='colors'> +NavajoWhite1</div> +<div id='d373' class='colors'> +NavajoWhite2</div> +<div id='d374' class='colors'> +NavajoWhite4</div> +<div id='d375' class='colors'> +AntiqueWhite4</div> +<div id='d376' class='colors'> +AntiqueWhite</div> +<div id='d377' class='colors'> +tan</div> +<div id='d378' class='colors'> +bisque4</div> +<div id='d379' class='colors'> +burlywood</div> +<div id='d380' class='colors'> +AntiqueWhite2</div> +<div id='d381' class='colors'> +burlywood1</div> +<div id='d382' class='colors'> +burlywood3</div> +<div id='d383' class='colors'> +burlywood2</div> +<div id='d384' class='colors'> +AntiqueWhite1</div> +<div id='d385' class='colors'> +burlywood4</div> +<div id='d386' class='colors'> +AntiqueWhite3</div> +<div id='d387' class='colors'> +DarkOrange</div> +<div id='d388' class='colors'> +bisque2</div> +<div id='d389' class='colors'> +bisque</div> +<div id='d390' class='colors'> +bisque1</div> +<div id='d391' class='colors'> +bisque3</div> +<div id='d392' class='colors'> +DarkOrange1</div> +<div id='d393' class='colors'> +linen</div> +<div id='d394' class='colors'> +DarkOrange2</div> +<div id='d395' class='colors'> +DarkOrange3</div> +<div id='d396' class='colors'> +DarkOrange4</div> +<div id='d397' class='colors'> +peru</div> +<div id='d398' class='colors'> +tan1</div> +<div id='d399' class='colors'> +tan2</div> +<div id='d400' class='colors'> +tan3</div> +<div id='d401' class='colors'> +tan4</div> +<div id='d402' class='colors'> +PeachPuff</div> +<div id='d403' class='colors'> +PeachPuff1</div> +<div id='d404' class='colors'> +PeachPuff4</div> +<div id='d405' class='colors'> +PeachPuff2</div> +<div id='d406' class='colors'> +PeachPuff3</div> +<div id='d407' class='colors'> +SandyBrown</div> +<div id='d408' class='colors'> +seashell4</div> +<div id='d409' class='colors'> +seashell2</div> +<div id='d410' class='colors'> +seashell3</div> +<div id='d411' class='colors'> +chocolate</div> +<div id='d412' class='colors'> +chocolate1</div> +<div id='d413' class='colors'> +chocolate2</div> +<div id='d414' class='colors'> +chocolate3</div> +<div id='d415' class='colors'> +chocolate4</div> +<div id='d416' class='colors'> +SaddleBrown</div> +<div id='d417' class='colors'> +seashell</div> +<div id='d418' class='colors'> +seashell1</div> +<div id='d419' class='colors'> +sienna4</div> +<div id='d420' class='colors'> +sienna</div> +<div id='d421' class='colors'> +sienna1</div> +<div id='d422' class='colors'> +sienna2</div> +<div id='d423' class='colors'> +sienna3</div> +<div id='d424' class='colors'> +LightSalmon3</div> +<div id='d425' class='colors'> +LightSalmon</div> +<div id='d426' class='colors'> +LightSalmon1</div> +<div id='d427' class='colors'> +LightSalmon4</div> +<div id='d428' class='colors'> +LightSalmon2</div> +<div id='d429' class='colors'> +coral</div> +<div id='d430' class='colors'> +OrangeRed</div> +<div id='d431' class='colors'> +OrangeRed1</div> +<div id='d432' class='colors'> +OrangeRed2</div> +<div id='d433' class='colors'> +OrangeRed3</div> +<div id='d434' class='colors'> +OrangeRed4</div> +<div id='d435' class='colors'> +DarkSalmon</div> +<div id='d436' class='colors'> +salmon1</div> +<div id='d437' class='colors'> +salmon2</div> +<div id='d438' class='colors'> +salmon3</div> +<div id='d439' class='colors'> +salmon4</div> +<div id='d440' class='colors'> +coral1</div> +<div id='d441' class='colors'> +coral2</div> +<div id='d442' class='colors'> +coral3</div> +<div id='d443' class='colors'> +coral4</div> +<div id='d444' class='colors'> +tomato4</div> +<div id='d445' class='colors'> +tomato</div> +<div id='d446' class='colors'> +tomato1</div> +<div id='d447' class='colors'> +tomato2</div> +<div id='d448' class='colors'> +tomato3</div> +<div id='d449' class='colors'> +MistyRose4</div> +<div id='d450' class='colors'> +MistyRose2</div> +<div id='d451' class='colors'> +MistyRose</div> +<div id='d452' class='colors'> +MistyRose1</div> +<div id='d453' class='colors'> +salmon</div> +<div id='d454' class='colors'> +MistyRose3</div> +<div id='d455' class='colors'> +white</div> +<div id='d456' class='colors'> +gray100</div> +<div id='d457' class='colors'> +grey100</div> +<div id='d458' class='colors'> +grey100</div> +<div id='d459' class='colors'> +gray99</div> +<div id='d460' class='colors'> +grey99</div> +<div id='d461' class='colors'> +gray98</div> +<div id='d462' class='colors'> +grey98</div> +<div id='d463' class='colors'> +gray97</div> +<div id='d464' class='colors'> +grey97</div> +<div id='d465' class='colors'> +gray96</div> +<div id='d466' class='colors'> +grey96</div> +<div id='d467' class='colors'> +WhiteSmoke</div> +<div id='d468' class='colors'> +gray95</div> +<div id='d469' class='colors'> +grey95</div> +<div id='d470' class='colors'> +gray94</div> +<div id='d471' class='colors'> +grey94</div> +<div id='d472' class='colors'> +gray93</div> +<div id='d473' class='colors'> +grey93</div> +<div id='d474' class='colors'> +gray92</div> +<div id='d475' class='colors'> +grey92</div> +<div id='d476' class='colors'> +gray91</div> +<div id='d477' class='colors'> +grey91</div> +<div id='d478' class='colors'> +gray90</div> +<div id='d479' class='colors'> +grey90</div> +<div id='d480' class='colors'> +gray89</div> +<div id='d481' class='colors'> +grey89</div> +<div id='d482' class='colors'> +gray88</div> +<div id='d483' class='colors'> +grey88</div> +<div id='d484' class='colors'> +gray87</div> +<div id='d485' class='colors'> +grey87</div> +<div id='d486' class='colors'> +gainsboro</div> +<div id='d487' class='colors'> +gray86</div> +<div id='d488' class='colors'> +grey86</div> +<div id='d489' class='colors'> +gray85</div> +<div id='d490' class='colors'> +grey85</div> +<div id='d491' class='colors'> +gray84</div> +<div id='d492' class='colors'> +grey84</div> +<div id='d493' class='colors'> +gray83</div> +<div id='d494' class='colors'> +grey83</div> +<div id='d495' class='colors'> +LightGray</div> +<div id='d496' class='colors'> +LightGrey</div> +<div id='d497' class='colors'> +gray82</div> +<div id='d498' class='colors'> +grey82</div> +<div id='d499' class='colors'> +gray81</div> +<div id='d500' class='colors'> +grey81</div> +<div id='d501' class='colors'> +gray80</div> +<div id='d502' class='colors'> +grey80</div> +<div id='d503' class='colors'> +gray79</div> +<div id='d504' class='colors'> +grey79</div> +<div id='d505' class='colors'> +gray78</div> +<div id='d506' class='colors'> +grey78</div> +<div id='d507' class='colors'> +gray77</div> +<div id='d508' class='colors'> +grey77</div> +<div id='d509' class='colors'> +gray76</div> +<div id='d510' class='colors'> +grey76</div> +<div id='d511' class='colors'> +silver</div> +<div id='d512' class='colors'> +gray75</div> +<div id='d513' class='colors'> +grey75</div> +<div id='d514' class='colors'> +gray74</div> +<div id='d515' class='colors'> +grey74</div> +<div id='d516' class='colors'> +gray73</div> +<div id='d517' class='colors'> +grey73</div> +<div id='d518' class='colors'> +gray72</div> +<div id='d519' class='colors'> +grey72</div> +<div id='d520' class='colors'> +gray71</div> +<div id='d521' class='colors'> +grey71</div> +<div id='d522' class='colors'> +gray70</div> +<div id='d523' class='colors'> +grey70</div> +<div id='d524' class='colors'> +gray69</div> +<div id='d525' class='colors'> +grey69</div> +<div id='d526' class='colors'> +gray68</div> +<div id='d527' class='colors'> +grey68</div> +<div id='d528' class='colors'> +gray67</div> +<div id='d529' class='colors'> +grey67</div> +<div id='d530' class='colors'> +DarkGray</div> +<div id='d531' class='colors'> +DarkGrey</div> +<div id='d532' class='colors'> +gray66</div> +<div id='d533' class='colors'> +grey66</div> +<div id='d534' class='colors'> +gray65</div> +<div id='d535' class='colors'> +grey65</div> +<div id='d536' class='colors'> +gray64</div> +<div id='d537' class='colors'> +grey64</div> +<div id='d538' class='colors'> +gray63</div> +<div id='d539' class='colors'> +grey63</div> +<div id='d540' class='colors'> +gray62</div> +<div id='d541' class='colors'> +grey62</div> +<div id='d542' class='colors'> +gray61</div> +<div id='d543' class='colors'> +grey61</div> +<div id='d544' class='colors'> +gray60</div> +<div id='d545' class='colors'> +grey60</div> +<div id='d546' class='colors'> +gray59</div> +<div id='d547' class='colors'> +grey59</div> +<div id='d548' class='colors'> +gray58</div> +<div id='d549' class='colors'> +grey58</div> +<div id='d550' class='colors'> +gray57</div> +<div id='d551' class='colors'> +grey57</div> +<div id='d552' class='colors'> +gray56</div> +<div id='d553' class='colors'> +grey56</div> +<div id='d554' class='colors'> +gray55</div> +<div id='d555' class='colors'> +grey55</div> +<div id='d556' class='colors'> +gray54</div> +<div id='d557' class='colors'> +grey54</div> +<div id='d558' class='colors'> +gray53</div> +<div id='d559' class='colors'> +grey53</div> +<div id='d560' class='colors'> +gray52</div> +<div id='d561' class='colors'> +grey52</div> +<div id='d562' class='colors'> +gray51</div> +<div id='d563' class='colors'> +grey51</div> +<div id='d564' class='colors'> +fractal</div> +<div id='d565' class='colors'> +gray50</div> +<div id='d566' class='colors'> +grey50</div> +<div id='d567' class='colors'> +gray</div> +<div id='d568' class='colors'> +gray49</div> +<div id='d569' class='colors'> +grey49</div> +<div id='d570' class='colors'> +gray48</div> +<div id='d571' class='colors'> +grey48</div> +<div id='d572' class='colors'> +gray47</div> +<div id='d573' class='colors'> +grey47</div> +<div id='d574' class='colors'> +gray46</div> +<div id='d575' class='colors'> +grey46</div> +<div id='d576' class='colors'> +gray45</div> +<div id='d577' class='colors'> +grey45</div> +<div id='d578' class='colors'> +gray44</div> +<div id='d579' class='colors'> +grey44</div> +<div id='d580' class='colors'> +gray43</div> +<div id='d581' class='colors'> +grey43</div> +<div id='d582' class='colors'> +gray42</div> +<div id='d583' class='colors'> +grey42</div> +<div id='d584' class='colors'> +DimGray</div> +<div id='d585' class='colors'> +DimGrey</div> +<div id='d586' class='colors'> +gray41</div> +<div id='d587' class='colors'> +grey41</div> +<div id='d588' class='colors'> +gray40</div> +<div id='d589' class='colors'> +grey40</div> +<div id='d590' class='colors'> +gray39</div> +<div id='d591' class='colors'> +grey39</div> +<div id='d592' class='colors'> +gray38</div> +<div id='d593' class='colors'> +grey38</div> +<div id='d594' class='colors'> +gray37</div> +<div id='d595' class='colors'> +grey37</div> +<div id='d596' class='colors'> +gray36</div> +<div id='d597' class='colors'> +grey36</div> +<div id='d598' class='colors'> +gray35</div> +<div id='d599' class='colors'> +grey35</div> +<div id='d600' class='colors'> +gray34</div> +<div id='d601' class='colors'> +grey34</div> +<div id='d602' class='colors'> +gray33</div> +<div id='d603' class='colors'> +grey33</div> +<div id='d604' class='colors'> +gray32</div> +<div id='d605' class='colors'> +grey32</div> +<div id='d606' class='colors'> +gray31</div> +<div id='d607' class='colors'> +grey31</div> +<div id='d608' class='colors'> +gray30</div> +<div id='d609' class='colors'> +grey30</div> +<div id='d610' class='colors'> +gray29</div> +<div id='d611' class='colors'> +grey29</div> +<div id='d612' class='colors'> +gray28</div> +<div id='d613' class='colors'> +grey28</div> +<div id='d614' class='colors'> +gray27</div> +<div id='d615' class='colors'> +grey27</div> +<div id='d616' class='colors'> +gray26</div> +<div id='d617' class='colors'> +grey26</div> +<div id='d618' class='colors'> +gray25</div> +<div id='d619' class='colors'> +grey25</div> +<div id='d620' class='colors'> +gray24</div> +<div id='d621' class='colors'> +grey24</div> +<div id='d622' class='colors'> +gray23</div> +<div id='d623' class='colors'> +grey23</div> +<div id='d624' class='colors'> +gray22</div> +<div id='d625' class='colors'> +grey22</div> +<div id='d626' class='colors'> +gray21</div> +<div id='d627' class='colors'> +grey21</div> +<div id='d628' class='colors'> +gray20</div> +<div id='d629' class='colors'> +grey20</div> +<div id='d630' class='colors'> +gray19</div> +<div id='d631' class='colors'> +grey19</div> +<div id='d632' class='colors'> +gray18</div> +<div id='d633' class='colors'> +grey18</div> +<div id='d634' class='colors'> +gray17</div> +<div id='d635' class='colors'> +grey17</div> +<div id='d636' class='colors'> +gray16</div> +<div id='d637' class='colors'> +grey16</div> +<div id='d638' class='colors'> +gray15</div> +<div id='d639' class='colors'> +grey15</div> +<div id='d640' class='colors'> +gray14</div> +<div id='d641' class='colors'> +grey14</div> +<div id='d642' class='colors'> +gray13</div> +<div id='d643' class='colors'> +grey13</div> +<div id='d644' class='colors'> +gray12</div> +<div id='d645' class='colors'> +grey12</div> +<div id='d646' class='colors'> +gray11</div> +<div id='d647' class='colors'> +grey11</div> +<div id='d648' class='colors'> +gray10</div> +<div id='d649' class='colors'> +grey10</div> +<div id='d650' class='colors'> +gray9</div> +<div id='d651' class='colors'> +grey9</div> +<div id='d652' class='colors'> +gray8</div> +<div id='d653' class='colors'> +grey8</div> +<div id='d654' class='colors'> +gray7</div> +<div id='d655' class='colors'> +grey7</div> +<div id='d656' class='colors'> +gray6</div> +<div id='d657' class='colors'> +grey6</div> +<div id='d658' class='colors'> +gray5</div> +<div id='d659' class='colors'> +grey5</div> +<div id='d660' class='colors'> +gray4</div> +<div id='d661' class='colors'> +grey4</div> +<div id='d662' class='colors'> +gray3</div> +<div id='d663' class='colors'> +grey3</div> +<div id='d664' class='colors'> +gray2</div> +<div id='d665' class='colors'> +grey2</div> +<div id='d666' class='colors'> +gray1</div> +<div id='d667' class='colors'> +grey1</div> +<div id='d668' class='colors'> +black</div> +<div id='d669' class='colors'> +gray0</div> +<div id='d670' class='colors'> +grey0</div> +<div id='d671' class='colors'> +opaque</div> +<div id='d672' class='colors'> +none</div> +<div id='d673' class='colors'> +transparent</div> +</div> + +<div id='colornames'> +CLICK TO CHOOSE THE COLOR +</div> + +<div id='switches'> + +<span id='title'>OPTIONS</span> +<div id='hexswitch' class='theswitches'>CLICK TO USE HEX KEYS</div> +<br> +<div id='infoswitch' class='theswitches'>CLICK TO TOGGLE PALATE INFO<span id='infospace'></span></div> +<br> +<div id='backgroundswitch' class='theswitches'>CLICK TO TOGGLE BACKGROUNDS</div> +<br> +<div id='preview'></div> +<div id='nameholder'>YOU WILL CHOOSE:<br><input id='namespace' style='width:inherit' type='text'></input></div> +<br> +<span id='transparent'>to choose transparent as a color, click <span id='transbutton'>HERE</span></span> +</div> +</div> +<script type='text/javascript' src='js/jquery-1.6.4.min.js'></script> +<script type='text/javascript' src='js/colordict.js'></script> + +<script type='text/javascript'> + + +//setup dimensions +////////////////// + + +function regolden(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num/ratio) + return newnum + } +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newval = goldenize(result) + propval = newval.toString()+'px' + if(propertystr == 'height'){ + $(idandselectr).css('width', propval) + } + else if(propertystr == 'width'){ + $(idandselectr).css('height', propval) + } + } +function shrinkwidth(arg){ + for(var i=0; i < 5; i++){ + arg = regolden(arg) + } + division = Math.round(arg) + return division +} + +function makecolorswidth(){ + colorswidth = shrinkwidth(window.innerWidth) + $('.colors').css('width', colorswidth.toString()+'px') +} +function makecolorsheight(){ + result = getproperty('.colors', 'width') + newval = regolden(result) + propval = newval.toString()+'px' + $('.colors').css('height', propval) +} +//the following function sets up the font sizes +//inrelation to the size of the hexswitch font +function setupfonts(){ + var firstfont = getproperty('#hexswitch', 'font-size') + var finalfont = goldenize(firstfont) + $('#namespace').css('font-size', finalfont+'px') + $('#namespace').css('width', $('#switches').css('width')) + var secondfont = getproperty('#namespace', 'font-size') + var finalfont = goldenize(secondfont) + $('#colornames').css('font-size', finalfont+'px') + $('#colornames').css('text-shadow', 'black 1px 2px') + var transfont = regolden(firstfont) + $('#transparent').css('font-size', transfont+'px') +} +function getcontainerwidth(){ + basis = $('.colors').css('width') + basis = parseInt(basis.slice(0,-2)) + secondbasis = '2px' + secondbasis = parseInt(secondbasis.slice(0,-2)) + widthval = (secondbasis*8)+(basis*4)+(goldenize(basis)-basis) + widthval = widthval.toString()+'px' + return widthval +} + +function makecontainerwidth(){ + var containerwidth = getcontainerwidth() + $('#container').css('width',containerwidth) +} + + +function setupsides() + { + var basis = $('#container').css('width') + basis = parseInt(basis.slice(0,-2)) + remainder = (100-basis)/2 + widths = regolden(basis) + widths = widths.toString()+'px' + lateralbasis = regolden(remainder) + leftside = toString(lateralbasis)+'%' + rightside = toString(100-lateralbasis)+'%' + $('#colornames').css('left', leftside) + $('#switches').css({'width': widths, 'left': rightside, 'overflow':'auto'}) + } +function previewdimensions(){ + first = $('#switches').css('width') + first = parseInt(first.slice(0,-2)) + width = regolden(first) + height = regolden(width) + width = width.toString()+'px' + height = height.toString()+'px' + $('#preview').css({'width':width, 'height':height}) +} +function setupdimensions(){ +makecolorswidth() +setupfonts() +makecolorsheight() +makecontainerwidth() +setupsides() +makegolden('#switches','width') +previewdimensions() +$('#namespace').css('width', 'inherit') +$('#nameholder').css('width', 'inherit') +$('#transparent').css({'float':'bottom','width':'inherit'}) +} +setupdimensions() +$(window).resize(function(){setupdimensions()}) + +//BEGIN STYLINGS// +////////////////// + + +var old = {}; +function hovercss(sel, uno){ + + var chng = {}; + chng['color'] = 'white'; + chng['text-shadow'] = 'black 1px 2px'; + chng['background-image'] = 'url(http://asdf.us/im/19/gradient_whitegray80_1321305183_1321305241_pepper_1321333403_pepper.jpg)'; + if(uno == 'over'){ + for(var key in chng){ + old[key] = $('#'+sel).css(key) + } + for(var key in chng){ + $('#'+sel).css(key, chng[key]) + } + } + if(uno == 'out'){ + for(var key in old){ + $('#'+sel).css(key, old[key]) + } + } +} +$('.theswitches').hover(function(){hovercss(this.id, 'over')}, function(){hovercss(this.id, 'out')}) + +var transcss = { + 'color':'#141414','box-shadow':'10px 10px 5px #141414', + 'background-color':'#D1D1D1','color':'#141414', + 'border-width':'2px','border-style':'outset','cursor':'pointer'} +$('#transbutton').css(transcss) +var hovertrans = { + 'background-color':'DarkGrey','color':'#383838','box-shadow':'5px 5px 2px #141414' +} +$('#transbutton').hover(function(){$('#transbutton').css(hovertrans)},function(){$('#transbutton').css(transcss)}) +//threewayselector for what goes in the divs +var infostate = 1 +function switchinfo() + { + if(infostate == 0) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(divtoname[divlist[i]]) + }; + infostate = 1 + $('#infospace').html('(NAMES)'); + } + else if(infostate == 1) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html("") + }; + infostate = 2 + $('#infospace').html('(NONE)'); + } + else if(infostate == 2) + { + for(var i=0; i < divlist.length; i++) + { + $(divlist[i]).html(nametohex[divtoname[divlist[i]]]) + }; + infostate = 0 + $('#infospace').html('(HEXES)'); + } + } +$('#infoswitch').hover(function(){$('#infospace').show()}, function(){$('#infospace').hide('slow')} ) +$('#infoswitch').click(function(){switchinfo()}) + + +backgroundstate = 2; +function switchbackground() + { + if(backgroundstate == 1) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image','url(http://dump.fm/static/img/bg.dither.gif)') + backgroundstate = 2; + $('#colornames').css('color', 'white') + $('#colornames').css('text-shadow', 'black 1px 2px') + } + else if(backgroundstate == 2) + { + $('#colorpicker').css('background-color','black') + $('#colorpicker').css('background-image', 'none') + backgroundstate = 0 + } + else if(backgroundstate == 0) + { + $('#colorpicker').css('background-color', 'white') + $('#colorpicker').css('background-image', 'none') + $('#colornames').css('color', 'grey') + backgroundstate = 1 + } + } + +$('#backgroundswitch').click(function(){switchbackground()}) + +//takes a div name and returns a colorname + +function showcolorname(divstr) + + { + colorname = divtoname['#'+divstr] + hex = nametohex[colorname] + imname = hextoname[hex] + if (hexes == true) + { + imname = hex + } + + return imname + } +function bigname(divstr) + { + colorname = showcolorname(divstr) + $('#colornames').html(colorname) + + } +function writeit(text) + { + $('#colornames').append(text) + } +function makebig(divstr) + { + firstheight = $('#'+divstr).height() + newheight = goldenize(firstheight) + $('#'+divstr).height(newheight) + } +function makesmall(divstr) + { + oldheight = $('.colors').height() + $('#'+divstr).height(oldheight) + } +var choice; +$('.colors').hover(function() { + bigname(this.id); +// makebig(this.id); +// makegolden('#'+this.id, 'height')}, +//function(){ +// makesmall(this.id); +// makegolden('#'+this.id, 'height') +}); +$('.colors').mouseover(function(){ + if(this.id != 'd0'){ + makebig(this.id); + makegolden('#'+this.id, 'height') + }}) +$('.colors').mouseout(function(){ + makesmall(this.id); + makegolden('#'+this.id,'height'); + }) +$(".colors").hover(function(){ +$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); + }); +$('.colors').css('margin-top', '2px') +var hexes = false +function hexswitch() + { + if(hexes == false) + { + $('#hexswitch').html('CLICK TO USE COLOR NAMES') + hexes = true; + var nameval = $('#namespace').val() + $('#namespace').val(nametohex[nameval]) + } + + else + { + $('#hexswitch').html('CLICK TO USE HEX KEYS') + hexes = false; + var nameval = $('#namespace').val() + $('#namespace').val(hextoname[nameval]) + } + } +$('#hexswitch').click(function(){hexswitch()}) + +$('.colors').click(function(){ + putitin() + }) + +function putitin() + { + thecolor = $('#colornames').html() + $('#namespace').val(thecolor) + if(hexes == false){ + $('#preview').css({'background-color': nametohex[thecolor], 'border-style':'none'}) + } + else{ + $('#preview').css('background-color', thecolor) + } + + } +function transparent() + { + $('#namespace').val('transparent'); + $('#preview').css({'background-color':'transparent','border-style':'dashed','border-width':'2px'}) + } +$('#transbutton').click(function(){transparent()}) + + +function bakecookie() + { + var colormemory = $('#preview').css('background-color') + var preferences = {} + preferences['infostate'] = infostate; + preferences['hexes'] = hexes; + preferences['backgroundstate'] = backgroundstate; + preferences['colormemory'] = colormemory; + document.cookie = "preferences=infostate_"+infostate+"_hexes_"+hexes+"_backgroundstate_"+backgroundstate+";path=/;domain=.asdf.us;max-age=1086400"; + } + +bakecookie() +function eatcookie() + { + if (document.cookie) + { + var cookies = document.cookie.split(";") + for(i in cookies){ + $('#preview').append(cookies[i]) + } + /* for (i in cookies) + { + var cookie = cookies[i].split("=") + $('#preview').append(cookie) + } + + //infostate = parseInt(preferences['infostate']) + //hexes = preferences['hexes'] + //backgroundstate = preferences['backgroundstate']} + if (cookie[0].indexOf("imname") !== -1|cookie[0].indexOf("imname") !== -2) + { + $('#preview').append(cookie[0].indexOf('imname')) + if (cookie[1] !== 'false' && cookie[1] !== 'undefined' && cookie[1].length) + { + return cookie[1] + $('#preview').append('what the hell????') + } + } + else if(cookie[0].indexOf('username') !== -1) + { + $('#preview').append('what the fuck') + } + else{$('#preview').append('this was the index'+cookie[0].indexOf('imname').toString())} + } + //return "" + } + }*/ + + } + } +$(document).ready(function(){eatcookie();switchinfo()}) + + + + + + + + + + + + +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/minoan.gif b/frontend/imgrid/colors/minoan.gif Binary files differnew file mode 100755 index 0000000..4ceb804 --- /dev/null +++ b/frontend/imgrid/colors/minoan.gif diff --git a/frontend/imgrid/colors/savior.html b/frontend/imgrid/colors/savior.html new file mode 100755 index 0000000..72395fd --- /dev/null +++ b/frontend/imgrid/colors/savior.html @@ -0,0 +1,3582 @@ +<html> +<head> + +<style type='text/css'> + +body +{ +max-width:100%; +max-height:100%; +font-family:helvetica; +font-size:2px; +} + + +#container div +{ +display: -moz-inline-stack; +display:inline-block; +vertical-align:bottom; +height: 15px; +zoom: 1; +*display: inline; +} + +#container +{ +margin:0 auto; +width:500px; +padding-top:100px; +text-align:center; +} + +#colornames +{ +color:white; +position:fixed; +font-size:50px; +top:50px; +right:60%; +width:400px; +} + +#hexswitch + { + position:fixed; + top:20px; + right:10%; + height:100px; + width:300px; + font-size:20px + border-style: groove; + border-width: 4px; + background-color:goldenrod; + text-align:center; + } +#infoswitch + { + position:fixed; + top: 60px; + right:5%; + font-size:20px + background-color:gray; + text-align:center; + } +#d0 +{background-color:#FFFAFA} + +#d1 +{background-color:#FFFAFA} + +#d2 +{background-color:#EEE9E9} + +#d3 +{background-color:#FFC1C1} + +#d4 +{background-color:#EEB4B4} + +#d5 +{background-color:#CDC9C9} + +#d6 +{background-color:#F08080} + +#d7 +{background-color:#FF6A6A} + +#d8 +{background-color:#CD9B9B} + +#d9 +{background-color:#EE6363} + +#d10 +{background-color:#BC8F8F} + +#d11 +{background-color:#FF4040} + +#d12 +{background-color:#FF3030} + +#d13 +{background-color:#EE3B3B} + +#d14 +{background-color:#CD5C5C} + +#d15 +{background-color:#CD5555} + +#d16 +{background-color:#EE2C2C} + +#d17 +{background-color:#8B8989} + +#d18 +{background-color:#CD3333} + +#d19 +{background-color:#FF0000} + +#d20 +{background-color:#FF0000} + +#d21 +{background-color:#8B6969} + +#d22 +{background-color:#CD2626} + +#d23 +{background-color:#EE0000} + +#d24 +{background-color:#B22222} + +#d25 +{background-color:#A52A2A} + +#d26 +{background-color:#CD0000} + +#d27 +{background-color:#8B3A3A} + +#d28 +{background-color:#8B2323} + +#d29 +{background-color:#8B1A1A} + +#d30 +{background-color:#8B0000} + +#d31 +{background-color:#8B0000} + +#d32 +{background-color:#800000} + +#d33 +{background-color:#FFAEB9} + +#d34 +{background-color:#CD8C95} + +#d35 +{background-color:#8B5F65} + +#d36 +{background-color:#EEA2AD} + +#d37 +{background-color:#FFB6C1} + +#d38 +{background-color:#FFC0CB} + +#d39 +{background-color:#DC143C} + +#d40 +{background-color:#FFB5C5} + +#d41 +{background-color:#EEA9B8} + +#d42 +{background-color:#CD919E} + +#d43 +{background-color:#8B636C} + +#d44 +{background-color:#8B475D} + +#d45 +{background-color:#DB7093} + +#d46 +{background-color:#EE799F} + +#d47 +{background-color:#FF82AB} + +#d48 +{background-color:#CD6889} + +#d49 +{background-color:#FFF0F5} + +#d50 +{background-color:#FFF0F5} + +#d51 +{background-color:#CDC1C5} + +#d52 +{background-color:#EEE0E5} + +#d53 +{background-color:#8B8386} + +#d54 +{background-color:#B03060} + +#d55 +{background-color:#CD6090} + +#d56 +{background-color:#CD3278} + +#d57 +{background-color:#FF3E96} + +#d58 +{background-color:#EE3A8C} + +#d59 +{background-color:#8B2252} + +#d60 +{background-color:#EE6AA7} + +#d61 +{background-color:#FF6EB4} + +#d62 +{background-color:#8B3A62} + +#d63 +{background-color:#FF69B4} + +#d64 +{background-color:#FF1493} + +#d65 +{background-color:#FF1493} + +#d66 +{background-color:#EE1289} + +#d67 +{background-color:#CD1076} + +#d68 +{background-color:#8B0A50} + +#d69 +{background-color:#FF34B3} + +#d70 +{background-color:#EE30A7} + +#d71 +{background-color:#CD2990} + +#d72 +{background-color:#8B1C62} + +#d73 +{background-color:#C71585} + +#d74 +{background-color:#D02090} + +#d75 +{background-color:#EE7AE9} + +#d76 +{background-color:#DA70D6} + +#d77 +{background-color:#FF83FA} + +#d78 +{background-color:#CD69C9} + +#d79 +{background-color:#8B4789} + +#d80 +{background-color:#FFE1FF} + +#d81 +{background-color:#EED2EE} + +#d82 +{background-color:#FFBBFF} + +#d83 +{background-color:#EEAEEE} + +#d84 +{background-color:#D8BFD8} + +#d85 +{background-color:#CDB5CD} + +#d86 +{background-color:#DDA0DD} + +#d87 +{background-color:#EE82EE} + +#d88 +{background-color:#CD96CD} + +#d89 +{background-color:#8B7B8B} + +#d90 +{background-color:#FF00FF} + +#d91 +{background-color:#FF00FF} + +#d92 +{background-color:#FF00FF} + +#d93 +{background-color:#8B668B} + +#d94 +{background-color:#EE00EE} + +#d95 +{background-color:#CD00CD} + +#d96 +{background-color:#8B008B} + +#d97 +{background-color:#8B008B} + +#d98 +{background-color:#800080} + +#d99 +{background-color:#BA55D3} + +#d100 +{background-color:#E066FF} + +#d101 +{background-color:#D15FEE} + +#d102 +{background-color:#B452CD} + +#d103 +{background-color:#7A378B} + +#d104 +{background-color:#9400D3} + +#d105 +{background-color:#9932CC} + +#d106 +{background-color:#BF3EFF} + +#d107 +{background-color:#9A32CD} + +#d108 +{background-color:#B23AEE} + +#d109 +{background-color:#68228B} + +#d110 +{background-color:#A020F0} + +#d111 +{background-color:#4B0082} + +#d112 +{background-color:#8A2BE2} + +#d113 +{background-color:#912CEE} + +#d114 +{background-color:#7D26CD} + +#d115 +{background-color:#551A8B} + +#d116 +{background-color:#9B30FF} + +#d117 +{background-color:#9370DB} + +#d118 +{background-color:#AB82FF} + +#d119 +{background-color:#9F79EE} + +#d120 +{background-color:#8968CD} + +#d121 +{background-color:#5D478B} + +#d122 +{background-color:#483D8B} + +#d123 +{background-color:#8470FF} + +#d124 +{background-color:#7B68EE} + +#d125 +{background-color:#6A5ACD} + +#d126 +{background-color:#836FFF} + +#d127 +{background-color:#7A67EE} + +#d128 +{background-color:#6959CD} + +#d129 +{background-color:#473C8B} + +#d130 +{background-color:#F8F8FF} + +#d131 +{background-color:#E6E6FA} + +#d132 +{background-color:#0000FF} + +#d133 +{background-color:#0000FF} + +#d134 +{background-color:#0000EE} + +#d135 +{background-color:#0000CD} + +#d136 +{background-color:#0000CD} + +#d137 +{background-color:#00008B} + +#d138 +{background-color:#00008B} + +#d139 +{background-color:#191970} + +#d140 +{background-color:#000080} + +#d141 +{background-color:#000080} + +#d142 +{background-color:#4169E1} + +#d143 +{background-color:#4876FF} + +#d144 +{background-color:#436EEE} + +#d145 +{background-color:#3A5FCD} + +#d146 +{background-color:#27408B} + +#d147 +{background-color:#6495ED} + +#d148 +{background-color:#B0C4DE} + +#d149 +{background-color:#CAE1FF} + +#d150 +{background-color:#BCD2EE} + +#d151 +{background-color:#A2B5CD} + +#d152 +{background-color:#6E7B8B} + +#d153 +{background-color:#6C7B8B} + +#d154 +{background-color:#C6E2FF} + +#d155 +{background-color:#B9D3EE} + +#d156 +{background-color:#9FB6CD} + +#d157 +{background-color:#778899} + +#d158 +{background-color:#778899} + +#d159 +{background-color:#708090} + +#d160 +{background-color:#708090} + +#d161 +{background-color:#1E90FF} + +#d162 +{background-color:#1E90FF} + +#d163 +{background-color:#1C86EE} + +#d164 +{background-color:#104E8B} + +#d165 +{background-color:#1874CD} + +#d166 +{background-color:#F0F8FF} + +#d167 +{background-color:#36648B} + +#d168 +{background-color:#4682B4} + +#d169 +{background-color:#63B8FF} + +#d170 +{background-color:#5CACEE} + +#d171 +{background-color:#4F94CD} + +#d172 +{background-color:#4A708B} + +#d173 +{background-color:#87CEFF} + +#d174 +{background-color:#7EC0EE} + +#d175 +{background-color:#6CA6CD} + +#d176 +{background-color:#87CEFA} + +#d177 +{background-color:#607B8B} + +#d178 +{background-color:#B0E2FF} + +#d179 +{background-color:#A4D3EE} + +#d180 +{background-color:#8DB6CD} + +#d181 +{background-color:#87CEEB} + +#d182 +{background-color:#9AC0CD} + +#d183 +{background-color:#00BFFF} + +#d184 +{background-color:#00BFFF} + +#d185 +{background-color:#00B2EE} + +#d186 +{background-color:#00688B} + +#d187 +{background-color:#009ACD} + +#d188 +{background-color:#BFEFFF} + +#d189 +{background-color:#B2DFEE} + +#d190 +{background-color:#ADD8E6} + +#d191 +{background-color:#68838B} + +#d192 +{background-color:#B0E0E6} + +#d193 +{background-color:#98F5FF} + +#d194 +{background-color:#8EE5EE} + +#d195 +{background-color:#7AC5CD} + +#d196 +{background-color:#53868B} + +#d197 +{background-color:#00F5FF} + +#d198 +{background-color:#00E5EE} + +#d199 +{background-color:#00C5CD} + +#d200 +{background-color:#00868B} + +#d201 +{background-color:#5F9EA0} + +#d202 +{background-color:#5F9EA0} + +#d203 +{background-color:#00CED1} + +#d204 +{background-color:#F0FFFF} + +#d205 +{background-color:#F0FFFF} + +#d206 +{background-color:#E0FFFF} + +#d207 +{background-color:#E0FFFF} + +#d208 +{background-color:#E0EEEE} + +#d209 +{background-color:#D1EEEE} + +#d210 +{background-color:#BBFFFF} + +#d211 +{background-color:#AFEEEE} + +#d212 +{background-color:#AEEEEE} + +#d213 +{background-color:#97FFFF} + +#d214 +{background-color:#C1CDCD} + +#d215 +{background-color:#B4CDCD} + +#d216 +{background-color:#8DEEEE} + +#d217 +{background-color:#96CDCD} + +#d218 +{background-color:#79CDCD} + +#d219 +{background-color:#838B8B} + +#d220 +{background-color:#7A8B8B} + +#d221 +{background-color:#00FFFF} + +#d222 +{background-color:#00FFFF} + +#d223 +{background-color:#00FFFF} + +#d224 +{background-color:#668B8B} + +#d225 +{background-color:#00EEEE} + +#d226 +{background-color:#528B8B} + +#d227 +{background-color:#00CDCD} + +#d228 +{background-color:#008B8B} + +#d229 +{background-color:#008B8B} + +#d230 +{background-color:#008080} + +#d231 +{background-color:#2F4F4F} + +#d232 +{background-color:#2F4F4F} + +#d233 +{background-color:#48D1CC} + +#d234 +{background-color:#20B2AA} + +#d235 +{background-color:#40E0D0} + +#d236 +{background-color:#458B74} + +#d237 +{background-color:#7FFFD4} + +#d238 +{background-color:#7FFFD4} + +#d239 +{background-color:#76EEC6} + +#d240 +{background-color:#66CDAA} + +#d241 +{background-color:#66CDAA} + +#d242 +{background-color:#00FA9A} + +#d243 +{background-color:#F5FFFA} + +#d244 +{background-color:#00FF7F} + +#d245 +{background-color:#00FF7F} + +#d246 +{background-color:#00EE76} + +#d247 +{background-color:#00CD66} + +#d248 +{background-color:#008B45} + +#d249 +{background-color:#3CB371} + +#d250 +{background-color:#2E8B57} + +#d251 +{background-color:#43CD80} + +#d252 +{background-color:#54FF9F} + +#d253 +{background-color:#2E8B57} + +#d254 +{background-color:#4EEE94} + +#d255 +{background-color:#32814B} + +#d256 +{background-color:#F0FFF0} + +#d257 +{background-color:#F0FFF0} + +#d258 +{background-color:#E0EEE0} + +#d259 +{background-color:#C1FFC1} + +#d260 +{background-color:#B4EEB4} + +#d261 +{background-color:#9AFF9A} + +#d262 +{background-color:#98FB98} + +#d263 +{background-color:#C1CDC1} + +#d264 +{background-color:#90EE90} + +#d265 +{background-color:#90EE90} + +#d266 +{background-color:#9BCD9B} + +#d267 +{background-color:#8FBC8F} + +#d268 +{background-color:#7CCD7C} + +#d269 +{background-color:#838B83} + +#d270 +{background-color:#00FF00} + +#d271 +{background-color:#00FF00} + +#d272 +{background-color:#32CD32} + +#d273 +{background-color:#698B69} + +#d274 +{background-color:#00EE00} + +#d275 +{background-color:#548B54} + +#d276 +{background-color:#00CD00} + +#d277 +{background-color:#228B22} + +#d278 +{background-color:#008B00} + +#d279 +{background-color:#008000} + +#d280 +{background-color:#006400} + +#d281 +{background-color:#7CFC00} + +#d282 +{background-color:#7FFF00} + +#d283 +{background-color:#7FFF00} + +#d284 +{background-color:#76EE00} + +#d285 +{background-color:#66CD00} + +#d286 +{background-color:#458B00} + +#d287 +{background-color:#ADFF2F} + +#d288 +{background-color:#A2CD5A} + +#d289 +{background-color:#CAFF70} + +#d290 +{background-color:#BCEE68} + +#d291 +{background-color:#6E8B3D} + +#d292 +{background-color:#556B2F} + +#d293 +{background-color:#6B8E23} + +#d294 +{background-color:#C0FF3E} + +#d295 +{background-color:#B3EE3A} + +#d296 +{background-color:#9ACD32} + +#d297 +{background-color:#9ACD32} + +#d298 +{background-color:#698B22} + +#d299 +{background-color:#FFFFF0} + +#d300 +{background-color:#FFFFF0} + +#d301 +{background-color:#FFFFE0} + +#d302 +{background-color:#FFFFE0} + +#d303 +{background-color:#F5F5DC} + +#d304 +{background-color:#EEEEE0} + +#d305 +{background-color:#FAFAD2} + +#d306 +{background-color:#EEEED1} + +#d307 +{background-color:#CDCDC1} + +#d308 +{background-color:#CDCDB4} + +#d309 +{background-color:#8B8B83} + +#d310 +{background-color:#8B8B7A} + +#d311 +{background-color:#FFFF00} + +#d312 +{background-color:#FFFF00} + +#d313 +{background-color:#EEEE00} + +#d314 +{background-color:#CDCD00} + +#d315 +{background-color:#8B8B00} + +#d316 +{background-color:#808000} + +#d317 +{background-color:#BDB76B} + +#d318 +{background-color:#EEE685} + +#d319 +{background-color:#8B8970} + +#d320 +{background-color:#FFF68F} + +#d321 +{background-color:#CDC673} + +#d322 +{background-color:#8B864E} + +#d323 +{background-color:#EEE8AA} + +#d324 +{background-color:#FFFACD} + +#d325 +{background-color:#FFFACD} + +#d326 +{background-color:#F0E68C} + +#d327 +{background-color:#CDC9A5} + +#d328 +{background-color:#EEE9BF} + +#d329 +{background-color:#D1C166} + +#d330 +{background-color:#8B8878} + +#d331 +{background-color:#FFD700} + +#d332 +{background-color:#FFD700} + +#d333 +{background-color:#EEC900} + +#d334 +{background-color:#CDAD00} + +#d335 +{background-color:#8B7500} + +#d336 +{background-color:#EEDD82} + +#d337 +{background-color:#8B814C} + +#d338 +{background-color:#FFEC8B} + +#d339 +{background-color:#CDBE70} + +#d340 +{background-color:#EEDC82} + +#d341 +{background-color:#CDC8B1} + +#d342 +{background-color:#EEE8CD} + +#d343 +{background-color:#FFF8DC} + +#d344 +{background-color:#FFF8DC} + +#d345 +{background-color:#DAA520} + +#d346 +{background-color:#FFC125} + +#d347 +{background-color:#EEB422} + +#d348 +{background-color:#CD9B1D} + +#d349 +{background-color:#8B6914} + +#d350 +{background-color:#B8860B} + +#d351 +{background-color:#FFB90F} + +#d352 +{background-color:#EEAD0E} + +#d353 +{background-color:#CD950C} + +#d354 +{background-color:#8B6508} + +#d355 +{background-color:#FFFAF0} + +#d356 +{background-color:#EED8AE} + +#d357 +{background-color:#FDF5E6} + +#d358 +{background-color:#F5DEB3} + +#d359 +{background-color:#FFE7BA} + +#d360 +{background-color:#CDBA96} + +#d361 +{background-color:#FFA500} + +#d362 +{background-color:#FFA500} + +#d363 +{background-color:#EE9A00} + +#d364 +{background-color:#CD8500} + +#d365 +{background-color:#8B5A00} + +#d366 +{background-color:#8B7E66} + +#d367 +{background-color:#FFE4B5} + +#d368 +{background-color:#FFEFD5} + +#d369 +{background-color:#CDB38B} + +#d370 +{background-color:#FFEBCD} + +#d371 +{background-color:#FFDEAD} + +#d372 +{background-color:#FFDEAD} + +#d373 +{background-color:#EECFA1} + +#d374 +{background-color:#8B795E} + +#d375 +{background-color:#8B8378} + +#d376 +{background-color:#FAEBD7} + +#d377 +{background-color:#D2B48C} + +#d378 +{background-color:#8B7D6B} + +#d379 +{background-color:#DEB887} + +#d380 +{background-color:#EEDFCC} + +#d381 +{background-color:#FFD39B} + +#d382 +{background-color:#CDAA7D} + +#d383 +{background-color:#EEC591} + +#d384 +{background-color:#FFEFDB} + +#d385 +{background-color:#8B7355} + +#d386 +{background-color:#CDC0B0} + +#d387 +{background-color:#FF8C00} + +#d388 +{background-color:#EED5B7} + +#d389 +{background-color:#FFE4C4} + +#d390 +{background-color:#FFE4C4} + +#d391 +{background-color:#CDB79E} + +#d392 +{background-color:#FF7F00} + +#d393 +{background-color:#FAF0E6} + +#d394 +{background-color:#EE7600} + +#d395 +{background-color:#CD6600} + +#d396 +{background-color:#8B4500} + +#d397 +{background-color:#CD853F} + +#d398 +{background-color:#FFA54F} + +#d399 +{background-color:#EE9A49} + +#d400 +{background-color:#CD853F} + +#d401 +{background-color:#8B5A2B} + +#d402 +{background-color:#FFDAB9} + +#d403 +{background-color:#FFDAB9} + +#d404 +{background-color:#8B7765} + +#d405 +{background-color:#EECBAD} + +#d406 +{background-color:#CDAF95} + +#d407 +{background-color:#F4A460} + +#d408 +{background-color:#8B8682} + +#d409 +{background-color:#EEE5DE} + +#d410 +{background-color:#CDC5BF} + +#d411 +{background-color:#D2691E} + +#d412 +{background-color:#FF7F24} + +#d413 +{background-color:#EE7621} + +#d414 +{background-color:#CD661D} + +#d415 +{background-color:#8B4513} + +#d416 +{background-color:#8B4513} + +#d417 +{background-color:#FFF5EE} + +#d418 +{background-color:#FFF5EE} + +#d419 +{background-color:#8B4726} + +#d420 +{background-color:#A0522D} + +#d421 +{background-color:#FF8247} + +#d422 +{background-color:#EE7942} + +#d423 +{background-color:#CD6839} + +#d424 +{background-color:#CD8162} + +#d425 +{background-color:#FFA07A} + +#d426 +{background-color:#FFA07A} + +#d427 +{background-color:#8B5742} + +#d428 +{background-color:#EE9572} + +#d429 +{background-color:#FF7F50} + +#d430 +{background-color:#FF4500} + +#d431 +{background-color:#FF4500} + +#d432 +{background-color:#EE4000} + +#d433 +{background-color:#CD3700} + +#d434 +{background-color:#8B2500} + +#d435 +{background-color:#E9967A} + +#d436 +{background-color:#FF8C69} + +#d437 +{background-color:#EE8262} + +#d438 +{background-color:#CD7054} + +#d439 +{background-color:#8B4C39} + +#d440 +{background-color:#FF7256} + +#d441 +{background-color:#EE6A50} + +#d442 +{background-color:#CD5B45} + +#d443 +{background-color:#8B3E2F} + +#d444 +{background-color:#8B3626} + +#d445 +{background-color:#FF6347} + +#d446 +{background-color:#FF6347} + +#d447 +{background-color:#EE5C42} + +#d448 +{background-color:#CD4F39} + +#d449 +{background-color:#8B7D7B} + +#d450 +{background-color:#EED5D2} + +#d451 +{background-color:#FFE4E1} + +#d452 +{background-color:#FFE4E1} + +#d453 +{background-color:#FA8072} + +#d454 +{background-color:#CDB7B5} + +#d455 +{background-color:#FFFFFF} + +#d456 +{background-color:#FFFFFF} + +#d457 +{background-color:#FFFFFF} + +#d458 +{background-color:#FFFFFF} + +#d459 +{background-color:#FCFCFC} + +#d460 +{background-color:#FCFCFC} + +#d461 +{background-color:#FAFAFA} + +#d462 +{background-color:#FAFAFA} + +#d463 +{background-color:#F7F7F7} + +#d464 +{background-color:#F7F7F7} + +#d465 +{background-color:#F5F5F5} + +#d466 +{background-color:#F5F5F5} + +#d467 +{background-color:#F5F5F5} + +#d468 +{background-color:#F2F2F2} + +#d469 +{background-color:#F2F2F2} + +#d470 +{background-color:#F0F0F0} + +#d471 +{background-color:#F0F0F0} + +#d472 +{background-color:#EDEDED} + +#d473 +{background-color:#EDEDED} + +#d474 +{background-color:#EBEBEB} + +#d475 +{background-color:#EBEBEB} + +#d476 +{background-color:#E8E8E8} + +#d477 +{background-color:#E8E8E8} + +#d478 +{background-color:#E5E5E5} + +#d479 +{background-color:#E5E5E5} + +#d480 +{background-color:#E3E3E3} + +#d481 +{background-color:#E3E3E3} + +#d482 +{background-color:#E0E0E0} + +#d483 +{background-color:#E0E0E0} + +#d484 +{background-color:#DEDEDE} + +#d485 +{background-color:#DEDEDE} + +#d486 +{background-color:#DCDCDC} + +#d487 +{background-color:#DBDBDB} + +#d488 +{background-color:#DBDBDB} + +#d489 +{background-color:#D9D9D9} + +#d490 +{background-color:#D9D9D9} + +#d491 +{background-color:#D6D6D6} + +#d492 +{background-color:#D6D6D6} + +#d493 +{background-color:#D4D4D4} + +#d494 +{background-color:#D4D4D4} + +#d495 +{background-color:#D3D3D3} + +#d496 +{background-color:#D3D3D3} + +#d497 +{background-color:#D1D1D1} + +#d498 +{background-color:#D1D1D1} + +#d499 +{background-color:#CFCFCF} + +#d500 +{background-color:#CFCFCF} + +#d501 +{background-color:#CCCCCC} + +#d502 +{background-color:#CCCCCC} + +#d503 +{background-color:#C9C9C9} + +#d504 +{background-color:#C9C9C9} + +#d505 +{background-color:#C7C7C7} + +#d506 +{background-color:#C7C7C7} + +#d507 +{background-color:#C4C4C4} + +#d508 +{background-color:#C4C4C4} + +#d509 +{background-color:#C2C2C2} + +#d510 +{background-color:#C2C2C2} + +#d511 +{background-color:#C0C0C0} + +#d512 +{background-color:#BFBFBF} + +#d513 +{background-color:#BFBFBF} + +#d514 +{background-color:#BDBDBD} + +#d515 +{background-color:#BDBDBD} + +#d516 +{background-color:#BABABA} + +#d517 +{background-color:#BABABA} + +#d518 +{background-color:#B8B8B8} + +#d519 +{background-color:#B8B8B8} + +#d520 +{background-color:#B5B5B5} + +#d521 +{background-color:#B5B5B5} + +#d522 +{background-color:#B3B3B3} + +#d523 +{background-color:#B3B3B3} + +#d524 +{background-color:#B0B0B0} + +#d525 +{background-color:#B0B0B0} + +#d526 +{background-color:#ADADAD} + +#d527 +{background-color:#ADADAD} + +#d528 +{background-color:#ABABAB} + +#d529 +{background-color:#ABABAB} + +#d530 +{background-color:#A9A9A9} + +#d531 +{background-color:#A9A9A9} + +#d532 +{background-color:#A8A8A8} + +#d533 +{background-color:#A8A8A8} + +#d534 +{background-color:#A6A6A6} + +#d535 +{background-color:#A6A6A6} + +#d536 +{background-color:#A3A3A3} + +#d537 +{background-color:#A3A3A3} + +#d538 +{background-color:#A1A1A1} + +#d539 +{background-color:#A1A1A1} + +#d540 +{background-color:#9E9E9E} + +#d541 +{background-color:#9E9E9E} + +#d542 +{background-color:#9C9C9C} + +#d543 +{background-color:#9C9C9C} + +#d544 +{background-color:#999999} + +#d545 +{background-color:#999999} + +#d546 +{background-color:#969696} + +#d547 +{background-color:#969696} + +#d548 +{background-color:#949494} + +#d549 +{background-color:#949494} + +#d550 +{background-color:#919191} + +#d551 +{background-color:#919191} + +#d552 +{background-color:#8F8F8F} + +#d553 +{background-color:#8F8F8F} + +#d554 +{background-color:#8C8C8C} + +#d555 +{background-color:#8C8C8C} + +#d556 +{background-color:#8A8A8A} + +#d557 +{background-color:#8A8A8A} + +#d558 +{background-color:#878787} + +#d559 +{background-color:#878787} + +#d560 +{background-color:#858585} + +#d561 +{background-color:#858585} + +#d562 +{background-color:#828282} + +#d563 +{background-color:#828282} + +#d564 +{background-color:#808080} + +#d565 +{background-color:#7F7F7F} + +#d566 +{background-color:#7F7F7F} + +#d567 +{background-color:#7E7E7E} + +#d568 +{background-color:#7D7D7D} + +#d569 +{background-color:#7D7D7D} + +#d570 +{background-color:#7A7A7A} + +#d571 +{background-color:#7A7A7A} + +#d572 +{background-color:#787878} + +#d573 +{background-color:#787878} + +#d574 +{background-color:#757575} + +#d575 +{background-color:#757575} + +#d576 +{background-color:#737373} + +#d577 +{background-color:#737373} + +#d578 +{background-color:#707070} + +#d579 +{background-color:#707070} + +#d580 +{background-color:#6E6E6E} + +#d581 +{background-color:#6E6E6E} + +#d582 +{background-color:#6B6B6B} + +#d583 +{background-color:#6B6B6B} + +#d584 +{background-color:#696969} + +#d585 +{background-color:#696969} + +#d586 +{background-color:#696969} + +#d587 +{background-color:#696969} + +#d588 +{background-color:#666666} + +#d589 +{background-color:#666666} + +#d590 +{background-color:#636363} + +#d591 +{background-color:#636363} + +#d592 +{background-color:#616161} + +#d593 +{background-color:#616161} + +#d594 +{background-color:#5E5E5E} + +#d595 +{background-color:#5E5E5E} + +#d596 +{background-color:#5C5C5C} + +#d597 +{background-color:#5C5C5C} + +#d598 +{background-color:#595959} + +#d599 +{background-color:#595959} + +#d600 +{background-color:#575757} + +#d601 +{background-color:#575757} + +#d602 +{background-color:#545454} + +#d603 +{background-color:#545454} + +#d604 +{background-color:#525252} + +#d605 +{background-color:#525252} + +#d606 +{background-color:#4F4F4F} + +#d607 +{background-color:#4F4F4F} + +#d608 +{background-color:#4D4D4D} + +#d609 +{background-color:#4D4D4D} + +#d610 +{background-color:#4A4A4A} + +#d611 +{background-color:#4A4A4A} + +#d612 +{background-color:#474747} + +#d613 +{background-color:#474747} + +#d614 +{background-color:#454545} + +#d615 +{background-color:#454545} + +#d616 +{background-color:#424242} + +#d617 +{background-color:#424242} + +#d618 +{background-color:#404040} + +#d619 +{background-color:#404040} + +#d620 +{background-color:#3D3D3D} + +#d621 +{background-color:#3D3D3D} + +#d622 +{background-color:#3B3B3B} + +#d623 +{background-color:#3B3B3B} + +#d624 +{background-color:#383838} + +#d625 +{background-color:#383838} + +#d626 +{background-color:#363636} + +#d627 +{background-color:#363636} + +#d628 +{background-color:#333333} + +#d629 +{background-color:#333333} + +#d630 +{background-color:#303030} + +#d631 +{background-color:#303030} + +#d632 +{background-color:#2E2E2E} + +#d633 +{background-color:#2E2E2E} + +#d634 +{background-color:#2B2B2B} + +#d635 +{background-color:#2B2B2B} + +#d636 +{background-color:#292929} + +#d637 +{background-color:#292929} + +#d638 +{background-color:#262626} + +#d639 +{background-color:#262626} + +#d640 +{background-color:#242424} + +#d641 +{background-color:#242424} + +#d642 +{background-color:#212121} + +#d643 +{background-color:#212121} + +#d644 +{background-color:#1F1F1F} + +#d645 +{background-color:#1F1F1F} + +#d646 +{background-color:#1C1C1C} + +#d647 +{background-color:#1C1C1C} + +#d648 +{background-color:#1A1A1A} + +#d649 +{background-color:#1A1A1A} + +#d650 +{background-color:#171717} + +#d651 +{background-color:#171717} + +#d652 +{background-color:#141414} + +#d653 +{background-color:#141414} + +#d654 +{background-color:#121212} + +#d655 +{background-color:#121212} + +#d656 +{background-color:#0F0F0F} + +#d657 +{background-color:#0F0F0F} + +#d658 +{background-color:#0D0D0D} + +#d659 +{background-color:#0D0D0D} + +#d660 +{background-color:#0A0A0A} + +#d661 +{background-color:#0A0A0A} + +#d662 +{background-color:#080808} + +#d663 +{background-color:#080808} + +#d664 +{background-color:#050505} + +#d665 +{background-color:#050505} + +#d666 +{background-color:#030303} + +#d667 +{background-color:#030303} + +#d668 +{background-color:#000000} + +#d669 +{background-color:#000000} + +#d670 +{background-color:#000000} + +#d671 +{background-color:#000000} + +#d672 +{background-color:#000000} + +#d673 +{background-color:#000000} +.colors +{ +height:30px; +width:10px; +} +</style></head><body> +<div id='container'> +<div id='d0' class='colors'> +snow</div> +<div id='d1' class='colors'> +snow1</div> +<div id='d2' class='colors'> +snow2</div> +<div id='d3' class='colors'> +RosyBrown1</div> +<div id='d4' class='colors'> +RosyBrown2</div> +<div id='d5' class='colors'> +snow3</div> +<div id='d6' class='colors'> +LightCoral</div> +<div id='d7' class='colors'> +IndianRed1</div> +<div id='d8' class='colors'> +RosyBrown3</div> +<div id='d9' class='colors'> +IndianRed2</div> +<div id='d10' class='colors'> +RosyBrown</div> +<div id='d11' class='colors'> +brown1</div> +<div id='d12' class='colors'> +firebrick1</div> +<div id='d13' class='colors'> +brown2</div> +<div id='d14' class='colors'> +IndianRed</div> +<div id='d15' class='colors'> +IndianRed3</div> +<div id='d16' class='colors'> +firebrick2</div> +<div id='d17' class='colors'> +snow4</div> +<div id='d18' class='colors'> +brown3</div> +<div id='d19' class='colors'> +red</div> +<div id='d20' class='colors'> +red1</div> +<div id='d21' class='colors'> +RosyBrown4</div> +<div id='d22' class='colors'> +firebrick3</div> +<div id='d23' class='colors'> +red2</div> +<div id='d24' class='colors'> +firebrick</div> +<div id='d25' class='colors'> +brown</div> +<div id='d26' class='colors'> +red3</div> +<div id='d27' class='colors'> +IndianRed4</div> +<div id='d28' class='colors'> +brown4</div> +<div id='d29' class='colors'> +firebrick4</div> +<div id='d30' class='colors'> +DarkRed</div> +<div id='d31' class='colors'> +red4</div> +<div id='d32' class='colors'> +maroon</div> +<div id='d33' class='colors'> +LightPink1</div> +<div id='d34' class='colors'> +LightPink3</div> +<div id='d35' class='colors'> +LightPink4</div> +<div id='d36' class='colors'> +LightPink2</div> +<div id='d37' class='colors'> +LightPink</div> +<div id='d38' class='colors'> +pink</div> +<div id='d39' class='colors'> +crimson</div> +<div id='d40' class='colors'> +pink1</div> +<div id='d41' class='colors'> +pink2</div> +<div id='d42' class='colors'> +pink3</div> +<div id='d43' class='colors'> +pink4</div> +<div id='d44' class='colors'> +PaleVioletRed4</div> +<div id='d45' class='colors'> +PaleVioletRed</div> +<div id='d46' class='colors'> +PaleVioletRed2</div> +<div id='d47' class='colors'> +PaleVioletRed1</div> +<div id='d48' class='colors'> +PaleVioletRed3</div> +<div id='d49' class='colors'> +LavenderBlush</div> +<div id='d50' class='colors'> +LavenderBlush1</div> +<div id='d51' class='colors'> +LavenderBlush3</div> +<div id='d52' class='colors'> +LavenderBlush2</div> +<div id='d53' class='colors'> +LavenderBlush4</div> +<div id='d54' class='colors'> +maroon</div> +<div id='d55' class='colors'> +HotPink3</div> +<div id='d56' class='colors'> +VioletRed3</div> +<div id='d57' class='colors'> +VioletRed1</div> +<div id='d58' class='colors'> +VioletRed2</div> +<div id='d59' class='colors'> +VioletRed4</div> +<div id='d60' class='colors'> +HotPink2</div> +<div id='d61' class='colors'> +HotPink1</div> +<div id='d62' class='colors'> +HotPink4</div> +<div id='d63' class='colors'> +HotPink</div> +<div id='d64' class='colors'> +DeepPink</div> +<div id='d65' class='colors'> +DeepPink1</div> +<div id='d66' class='colors'> +DeepPink2</div> +<div id='d67' class='colors'> +DeepPink3</div> +<div id='d68' class='colors'> +DeepPink4</div> +<div id='d69' class='colors'> +maroon1</div> +<div id='d70' class='colors'> +maroon2</div> +<div id='d71' class='colors'> +maroon3</div> +<div id='d72' class='colors'> +maroon4</div> +<div id='d73' class='colors'> +MediumVioletRed</div> +<div id='d74' class='colors'> +VioletRed</div> +<div id='d75' class='colors'> +orchid2</div> +<div id='d76' class='colors'> +orchid</div> +<div id='d77' class='colors'> +orchid1</div> +<div id='d78' class='colors'> +orchid3</div> +<div id='d79' class='colors'> +orchid4</div> +<div id='d80' class='colors'> +thistle1</div> +<div id='d81' class='colors'> +thistle2</div> +<div id='d82' class='colors'> +plum1</div> +<div id='d83' class='colors'> +plum2</div> +<div id='d84' class='colors'> +thistle</div> +<div id='d85' class='colors'> +thistle3</div> +<div id='d86' class='colors'> +plum</div> +<div id='d87' class='colors'> +violet</div> +<div id='d88' class='colors'> +plum3</div> +<div id='d89' class='colors'> +thistle4</div> +<div id='d90' class='colors'> +fuchsia</div> +<div id='d91' class='colors'> +magenta</div> +<div id='d92' class='colors'> +magenta1</div> +<div id='d93' class='colors'> +plum4</div> +<div id='d94' class='colors'> +magenta2</div> +<div id='d95' class='colors'> +magenta3</div> +<div id='d96' class='colors'> +DarkMagenta</div> +<div id='d97' class='colors'> +magenta4</div> +<div id='d98' class='colors'> +purple</div> +<div id='d99' class='colors'> +MediumOrchid</div> +<div id='d100' class='colors'> +MediumOrchid1</div> +<div id='d101' class='colors'> +MediumOrchid2</div> +<div id='d102' class='colors'> +MediumOrchid3</div> +<div id='d103' class='colors'> +MediumOrchid4</div> +<div id='d104' class='colors'> +DarkViolet</div> +<div id='d105' class='colors'> +DarkOrchid</div> +<div id='d106' class='colors'> +DarkOrchid1</div> +<div id='d107' class='colors'> +DarkOrchid3</div> +<div id='d108' class='colors'> +DarkOrchid2</div> +<div id='d109' class='colors'> +DarkOrchid4</div> +<div id='d110' class='colors'> +purple</div> +<div id='d111' class='colors'> +indigo</div> +<div id='d112' class='colors'> +BlueViolet</div> +<div id='d113' class='colors'> +purple2</div> +<div id='d114' class='colors'> +purple3</div> +<div id='d115' class='colors'> +purple4</div> +<div id='d116' class='colors'> +purple1</div> +<div id='d117' class='colors'> +MediumPurple</div> +<div id='d118' class='colors'> +MediumPurple1</div> +<div id='d119' class='colors'> +MediumPurple2</div> +<div id='d120' class='colors'> +MediumPurple3</div> +<div id='d121' class='colors'> +MediumPurple4</div> +<div id='d122' class='colors'> +DarkSlateBlue</div> +<div id='d123' class='colors'> +LightSlateBlue</div> +<div id='d124' class='colors'> +MediumSlateBlue</div> +<div id='d125' class='colors'> +SlateBlue</div> +<div id='d126' class='colors'> +SlateBlue1</div> +<div id='d127' class='colors'> +SlateBlue2</div> +<div id='d128' class='colors'> +SlateBlue3</div> +<div id='d129' class='colors'> +SlateBlue4</div> +<div id='d130' class='colors'> +GhostWhite</div> +<div id='d131' class='colors'> +lavender</div> +<div id='d132' class='colors'> +blue</div> +<div id='d133' class='colors'> +blue1</div> +<div id='d134' class='colors'> +blue2</div> +<div id='d135' class='colors'> +blue3</div> +<div id='d136' class='colors'> +MediumBlue</div> +<div id='d137' class='colors'> +blue4</div> +<div id='d138' class='colors'> +DarkBlue</div> +<div id='d139' class='colors'> +MidnightBlue</div> +<div id='d140' class='colors'> +navy</div> +<div id='d141' class='colors'> +NavyBlue</div> +<div id='d142' class='colors'> +RoyalBlue</div> +<div id='d143' class='colors'> +RoyalBlue1</div> +<div id='d144' class='colors'> +RoyalBlue2</div> +<div id='d145' class='colors'> +RoyalBlue3</div> +<div id='d146' class='colors'> +RoyalBlue4</div> +<div id='d147' class='colors'> +CornflowerBlue</div> +<div id='d148' class='colors'> +LightSteelBlue</div> +<div id='d149' class='colors'> +LightSteelBlue1</div> +<div id='d150' class='colors'> +LightSteelBlue2</div> +<div id='d151' class='colors'> +LightSteelBlue3</div> +<div id='d152' class='colors'> +LightSteelBlue4</div> +<div id='d153' class='colors'> +SlateGray4</div> +<div id='d154' class='colors'> +SlateGray1</div> +<div id='d155' class='colors'> +SlateGray2</div> +<div id='d156' class='colors'> +SlateGray3</div> +<div id='d157' class='colors'> +LightSlateGray</div> +<div id='d158' class='colors'> +LightSlateGrey</div> +<div id='d159' class='colors'> +SlateGray</div> +<div id='d160' class='colors'> +SlateGrey</div> +<div id='d161' class='colors'> +DodgerBlue</div> +<div id='d162' class='colors'> +DodgerBlue1</div> +<div id='d163' class='colors'> +DodgerBlue2</div> +<div id='d164' class='colors'> +DodgerBlue4</div> +<div id='d165' class='colors'> +DodgerBlue3</div> +<div id='d166' class='colors'> +AliceBlue</div> +<div id='d167' class='colors'> +SteelBlue4</div> +<div id='d168' class='colors'> +SteelBlue</div> +<div id='d169' class='colors'> +SteelBlue1</div> +<div id='d170' class='colors'> +SteelBlue2</div> +<div id='d171' class='colors'> +SteelBlue3</div> +<div id='d172' class='colors'> +SkyBlue4</div> +<div id='d173' class='colors'> +SkyBlue1</div> +<div id='d174' class='colors'> +SkyBlue2</div> +<div id='d175' class='colors'> +SkyBlue3</div> +<div id='d176' class='colors'> +LightSkyBlue</div> +<div id='d177' class='colors'> +LightSkyBlue4</div> +<div id='d178' class='colors'> +LightSkyBlue1</div> +<div id='d179' class='colors'> +LightSkyBlue2</div> +<div id='d180' class='colors'> +LightSkyBlue3</div> +<div id='d181' class='colors'> +SkyBlue</div> +<div id='d182' class='colors'> +LightBlue3</div> +<div id='d183' class='colors'> +DeepSkyBlue</div> +<div id='d184' class='colors'> +DeepSkyBlue1</div> +<div id='d185' class='colors'> +DeepSkyBlue2</div> +<div id='d186' class='colors'> +DeepSkyBlue4</div> +<div id='d187' class='colors'> +DeepSkyBlue3</div> +<div id='d188' class='colors'> +LightBlue1</div> +<div id='d189' class='colors'> +LightBlue2</div> +<div id='d190' class='colors'> +LightBlue</div> +<div id='d191' class='colors'> +LightBlue4</div> +<div id='d192' class='colors'> +PowderBlue</div> +<div id='d193' class='colors'> +CadetBlue1</div> +<div id='d194' class='colors'> +CadetBlue2</div> +<div id='d195' class='colors'> +CadetBlue3</div> +<div id='d196' class='colors'> +CadetBlue4</div> +<div id='d197' class='colors'> +turquoise1</div> +<div id='d198' class='colors'> +turquoise2</div> +<div id='d199' class='colors'> +turquoise3</div> +<div id='d200' class='colors'> +turquoise4</div> +<div id='d201' class='colors'> +cadet blue</div> +<div id='d202' class='colors'> +CadetBlue</div> +<div id='d203' class='colors'> +DarkTurquoise</div> +<div id='d204' class='colors'> +azure</div> +<div id='d205' class='colors'> +azure1</div> +<div id='d206' class='colors'> +LightCyan</div> +<div id='d207' class='colors'> +LightCyan1</div> +<div id='d208' class='colors'> +azure2</div> +<div id='d209' class='colors'> +LightCyan2</div> +<div id='d210' class='colors'> +PaleTurquoise1</div> +<div id='d211' class='colors'> +PaleTurquoise</div> +<div id='d212' class='colors'> +PaleTurquoise2</div> +<div id='d213' class='colors'> +DarkSlateGray1</div> +<div id='d214' class='colors'> +azure3</div> +<div id='d215' class='colors'> +LightCyan3</div> +<div id='d216' class='colors'> +DarkSlateGray2</div> +<div id='d217' class='colors'> +PaleTurquoise3</div> +<div id='d218' class='colors'> +DarkSlateGray3</div> +<div id='d219' class='colors'> +azure4</div> +<div id='d220' class='colors'> +LightCyan4</div> +<div id='d221' class='colors'> +aqua</div> +<div id='d222' class='colors'> +cyan</div> +<div id='d223' class='colors'> +cyan1</div> +<div id='d224' class='colors'> +PaleTurquoise4</div> +<div id='d225' class='colors'> +cyan2</div> +<div id='d226' class='colors'> +DarkSlateGray4</div> +<div id='d227' class='colors'> +cyan3</div> +<div id='d228' class='colors'> +cyan4</div> +<div id='d229' class='colors'> +DarkCyan</div> +<div id='d230' class='colors'> +teal</div> +<div id='d231' class='colors'> +DarkSlateGray</div> +<div id='d232' class='colors'> +DarkSlateGrey</div> +<div id='d233' class='colors'> +MediumTurquoise</div> +<div id='d234' class='colors'> +LightSeaGreen</div> +<div id='d235' class='colors'> +turquoise</div> +<div id='d236' class='colors'> +aquamarine4</div> +<div id='d237' class='colors'> +aquamarine</div> +<div id='d238' class='colors'> +aquamarine1</div> +<div id='d239' class='colors'> +aquamarine2</div> +<div id='d240' class='colors'> +aquamarine3</div> +<div id='d241' class='colors'> +MediumAquamarine</div> +<div id='d242' class='colors'> +MediumSpringGreen</div> +<div id='d243' class='colors'> +MintCream</div> +<div id='d244' class='colors'> +SpringGreen</div> +<div id='d245' class='colors'> +SpringGreen1</div> +<div id='d246' class='colors'> +SpringGreen2</div> +<div id='d247' class='colors'> +SpringGreen3</div> +<div id='d248' class='colors'> +SpringGreen4</div> +<div id='d249' class='colors'> +MediumSeaGreen</div> +<div id='d250' class='colors'> +SeaGreen</div> +<div id='d251' class='colors'> +SeaGreen3</div> +<div id='d252' class='colors'> +SeaGreen1</div> +<div id='d253' class='colors'> +SeaGreen4</div> +<div id='d254' class='colors'> +SeaGreen2</div> +<div id='d255' class='colors'> +MediumForestGreen</div> +<div id='d256' class='colors'> +honeydew</div> +<div id='d257' class='colors'> +honeydew1</div> +<div id='d258' class='colors'> +honeydew2</div> +<div id='d259' class='colors'> +DarkSeaGreen1</div> +<div id='d260' class='colors'> +DarkSeaGreen2</div> +<div id='d261' class='colors'> +PaleGreen1</div> +<div id='d262' class='colors'> +PaleGreen</div> +<div id='d263' class='colors'> +honeydew3</div> +<div id='d264' class='colors'> +LightGreen</div> +<div id='d265' class='colors'> +PaleGreen2</div> +<div id='d266' class='colors'> +DarkSeaGreen3</div> +<div id='d267' class='colors'> +DarkSeaGreen</div> +<div id='d268' class='colors'> +PaleGreen3</div> +<div id='d269' class='colors'> +honeydew4</div> +<div id='d270' class='colors'> +green1</div> +<div id='d271' class='colors'> +lime</div> +<div id='d272' class='colors'> +LimeGreen</div> +<div id='d273' class='colors'> +DarkSeaGreen4</div> +<div id='d274' class='colors'> +green2</div> +<div id='d275' class='colors'> +PaleGreen4</div> +<div id='d276' class='colors'> +green3</div> +<div id='d277' class='colors'> +ForestGreen</div> +<div id='d278' class='colors'> +green4</div> +<div id='d279' class='colors'> +green</div> +<div id='d280' class='colors'> +DarkGreen</div> +<div id='d281' class='colors'> +LawnGreen</div> +<div id='d282' class='colors'> +chartreuse</div> +<div id='d283' class='colors'> +chartreuse1</div> +<div id='d284' class='colors'> +chartreuse2</div> +<div id='d285' class='colors'> +chartreuse3</div> +<div id='d286' class='colors'> +chartreuse4</div> +<div id='d287' class='colors'> +GreenYellow</div> +<div id='d288' class='colors'> +DarkOliveGreen3</div> +<div id='d289' class='colors'> +DarkOliveGreen1</div> +<div id='d290' class='colors'> +DarkOliveGreen2</div> +<div id='d291' class='colors'> +DarkOliveGreen4</div> +<div id='d292' class='colors'> +DarkOliveGreen</div> +<div id='d293' class='colors'> +OliveDrab</div> +<div id='d294' class='colors'> +OliveDrab1</div> +<div id='d295' class='colors'> +OliveDrab2</div> +<div id='d296' class='colors'> +OliveDrab3</div> +<div id='d297' class='colors'> +YellowGreen</div> +<div id='d298' class='colors'> +OliveDrab4</div> +<div id='d299' class='colors'> +ivory</div> +<div id='d300' class='colors'> +ivory1</div> +<div id='d301' class='colors'> +LightYellow</div> +<div id='d302' class='colors'> +LightYellow1</div> +<div id='d303' class='colors'> +beige</div> +<div id='d304' class='colors'> +ivory2</div> +<div id='d305' class='colors'> +LightGoldenrodYellow</div> +<div id='d306' class='colors'> +LightYellow2</div> +<div id='d307' class='colors'> +ivory3</div> +<div id='d308' class='colors'> +LightYellow3</div> +<div id='d309' class='colors'> +ivory4</div> +<div id='d310' class='colors'> +LightYellow4</div> +<div id='d311' class='colors'> +yellow</div> +<div id='d312' class='colors'> +yellow1</div> +<div id='d313' class='colors'> +yellow2</div> +<div id='d314' class='colors'> +yellow3</div> +<div id='d315' class='colors'> +yellow4</div> +<div id='d316' class='colors'> +olive</div> +<div id='d317' class='colors'> +DarkKhaki</div> +<div id='d318' class='colors'> +khaki2</div> +<div id='d319' class='colors'> +LemonChiffon4</div> +<div id='d320' class='colors'> +khaki1</div> +<div id='d321' class='colors'> +khaki3</div> +<div id='d322' class='colors'> +khaki4</div> +<div id='d323' class='colors'> +PaleGoldenrod</div> +<div id='d324' class='colors'> +LemonChiffon</div> +<div id='d325' class='colors'> +LemonChiffon1</div> +<div id='d326' class='colors'> +khaki</div> +<div id='d327' class='colors'> +LemonChiffon3</div> +<div id='d328' class='colors'> +LemonChiffon2</div> +<div id='d329' class='colors'> +MediumGoldenRod</div> +<div id='d330' class='colors'> +cornsilk4</div> +<div id='d331' class='colors'> +gold</div> +<div id='d332' class='colors'> +gold1</div> +<div id='d333' class='colors'> +gold2</div> +<div id='d334' class='colors'> +gold3</div> +<div id='d335' class='colors'> +gold4</div> +<div id='d336' class='colors'> +LightGoldenrod</div> +<div id='d337' class='colors'> +LightGoldenrod4</div> +<div id='d338' class='colors'> +LightGoldenrod1</div> +<div id='d339' class='colors'> +LightGoldenrod3</div> +<div id='d340' class='colors'> +LightGoldenrod2</div> +<div id='d341' class='colors'> +cornsilk3</div> +<div id='d342' class='colors'> +cornsilk2</div> +<div id='d343' class='colors'> +cornsilk</div> +<div id='d344' class='colors'> +cornsilk1</div> +<div id='d345' class='colors'> +goldenrod</div> +<div id='d346' class='colors'> +goldenrod1</div> +<div id='d347' class='colors'> +goldenrod2</div> +<div id='d348' class='colors'> +goldenrod3</div> +<div id='d349' class='colors'> +goldenrod4</div> +<div id='d350' class='colors'> +DarkGoldenrod</div> +<div id='d351' class='colors'> +DarkGoldenrod1</div> +<div id='d352' class='colors'> +DarkGoldenrod2</div> +<div id='d353' class='colors'> +DarkGoldenrod3</div> +<div id='d354' class='colors'> +DarkGoldenrod4</div> +<div id='d355' class='colors'> +FloralWhite</div> +<div id='d356' class='colors'> +wheat2</div> +<div id='d357' class='colors'> +OldLace</div> +<div id='d358' class='colors'> +wheat</div> +<div id='d359' class='colors'> +wheat1</div> +<div id='d360' class='colors'> +wheat3</div> +<div id='d361' class='colors'> +orange</div> +<div id='d362' class='colors'> +orange1</div> +<div id='d363' class='colors'> +orange2</div> +<div id='d364' class='colors'> +orange3</div> +<div id='d365' class='colors'> +orange4</div> +<div id='d366' class='colors'> +wheat4</div> +<div id='d367' class='colors'> +moccasin</div> +<div id='d368' class='colors'> +PapayaWhip</div> +<div id='d369' class='colors'> +NavajoWhite3</div> +<div id='d370' class='colors'> +BlanchedAlmond</div> +<div id='d371' class='colors'> +NavajoWhite</div> +<div id='d372' class='colors'> +NavajoWhite1</div> +<div id='d373' class='colors'> +NavajoWhite2</div> +<div id='d374' class='colors'> +NavajoWhite4</div> +<div id='d375' class='colors'> +AntiqueWhite4</div> +<div id='d376' class='colors'> +AntiqueWhite</div> +<div id='d377' class='colors'> +tan</div> +<div id='d378' class='colors'> +bisque4</div> +<div id='d379' class='colors'> +burlywood</div> +<div id='d380' class='colors'> +AntiqueWhite2</div> +<div id='d381' class='colors'> +burlywood1</div> +<div id='d382' class='colors'> +burlywood3</div> +<div id='d383' class='colors'> +burlywood2</div> +<div id='d384' class='colors'> +AntiqueWhite1</div> +<div id='d385' class='colors'> +burlywood4</div> +<div id='d386' class='colors'> +AntiqueWhite3</div> +<div id='d387' class='colors'> +DarkOrange</div> +<div id='d388' class='colors'> +bisque2</div> +<div id='d389' class='colors'> +bisque</div> +<div id='d390' class='colors'> +bisque1</div> +<div id='d391' class='colors'> +bisque3</div> +<div id='d392' class='colors'> +DarkOrange1</div> +<div id='d393' class='colors'> +linen</div> +<div id='d394' class='colors'> +DarkOrange2</div> +<div id='d395' class='colors'> +DarkOrange3</div> +<div id='d396' class='colors'> +DarkOrange4</div> +<div id='d397' class='colors'> +peru</div> +<div id='d398' class='colors'> +tan1</div> +<div id='d399' class='colors'> +tan2</div> +<div id='d400' class='colors'> +tan3</div> +<div id='d401' class='colors'> +tan4</div> +<div id='d402' class='colors'> +PeachPuff</div> +<div id='d403' class='colors'> +PeachPuff1</div> +<div id='d404' class='colors'> +PeachPuff4</div> +<div id='d405' class='colors'> +PeachPuff2</div> +<div id='d406' class='colors'> +PeachPuff3</div> +<div id='d407' class='colors'> +SandyBrown</div> +<div id='d408' class='colors'> +seashell4</div> +<div id='d409' class='colors'> +seashell2</div> +<div id='d410' class='colors'> +seashell3</div> +<div id='d411' class='colors'> +chocolate</div> +<div id='d412' class='colors'> +chocolate1</div> +<div id='d413' class='colors'> +chocolate2</div> +<div id='d414' class='colors'> +chocolate3</div> +<div id='d415' class='colors'> +chocolate4</div> +<div id='d416' class='colors'> +SaddleBrown</div> +<div id='d417' class='colors'> +seashell</div> +<div id='d418' class='colors'> +seashell1</div> +<div id='d419' class='colors'> +sienna4</div> +<div id='d420' class='colors'> +sienna</div> +<div id='d421' class='colors'> +sienna1</div> +<div id='d422' class='colors'> +sienna2</div> +<div id='d423' class='colors'> +sienna3</div> +<div id='d424' class='colors'> +LightSalmon3</div> +<div id='d425' class='colors'> +LightSalmon</div> +<div id='d426' class='colors'> +LightSalmon1</div> +<div id='d427' class='colors'> +LightSalmon4</div> +<div id='d428' class='colors'> +LightSalmon2</div> +<div id='d429' class='colors'> +coral</div> +<div id='d430' class='colors'> +OrangeRed</div> +<div id='d431' class='colors'> +OrangeRed1</div> +<div id='d432' class='colors'> +OrangeRed2</div> +<div id='d433' class='colors'> +OrangeRed3</div> +<div id='d434' class='colors'> +OrangeRed4</div> +<div id='d435' class='colors'> +DarkSalmon</div> +<div id='d436' class='colors'> +salmon1</div> +<div id='d437' class='colors'> +salmon2</div> +<div id='d438' class='colors'> +salmon3</div> +<div id='d439' class='colors'> +salmon4</div> +<div id='d440' class='colors'> +coral1</div> +<div id='d441' class='colors'> +coral2</div> +<div id='d442' class='colors'> +coral3</div> +<div id='d443' class='colors'> +coral4</div> +<div id='d444' class='colors'> +tomato4</div> +<div id='d445' class='colors'> +tomato</div> +<div id='d446' class='colors'> +tomato1</div> +<div id='d447' class='colors'> +tomato2</div> +<div id='d448' class='colors'> +tomato3</div> +<div id='d449' class='colors'> +MistyRose4</div> +<div id='d450' class='colors'> +MistyRose2</div> +<div id='d451' class='colors'> +MistyRose</div> +<div id='d452' class='colors'> +MistyRose1</div> +<div id='d453' class='colors'> +salmon</div> +<div id='d454' class='colors'> +MistyRose3</div> +<div id='d455' class='colors'> +white</div> +<div id='d456' class='colors'> +gray100</div> +<div id='d457' class='colors'> +grey100</div> +<div id='d458' class='colors'> +grey100</div> +<div id='d459' class='colors'> +gray99</div> +<div id='d460' class='colors'> +grey99</div> +<div id='d461' class='colors'> +gray98</div> +<div id='d462' class='colors'> +grey98</div> +<div id='d463' class='colors'> +gray97</div> +<div id='d464' class='colors'> +grey97</div> +<div id='d465' class='colors'> +gray96</div> +<div id='d466' class='colors'> +grey96</div> +<div id='d467' class='colors'> +WhiteSmoke</div> +<div id='d468' class='colors'> +gray95</div> +<div id='d469' class='colors'> +grey95</div> +<div id='d470' class='colors'> +gray94</div> +<div id='d471' class='colors'> +grey94</div> +<div id='d472' class='colors'> +gray93</div> +<div id='d473' class='colors'> +grey93</div> +<div id='d474' class='colors'> +gray92</div> +<div id='d475' class='colors'> +grey92</div> +<div id='d476' class='colors'> +gray91</div> +<div id='d477' class='colors'> +grey91</div> +<div id='d478' class='colors'> +gray90</div> +<div id='d479' class='colors'> +grey90</div> +<div id='d480' class='colors'> +gray89</div> +<div id='d481' class='colors'> +grey89</div> +<div id='d482' class='colors'> +gray88</div> +<div id='d483' class='colors'> +grey88</div> +<div id='d484' class='colors'> +gray87</div> +<div id='d485' class='colors'> +grey87</div> +<div id='d486' class='colors'> +gainsboro</div> +<div id='d487' class='colors'> +gray86</div> +<div id='d488' class='colors'> +grey86</div> +<div id='d489' class='colors'> +gray85</div> +<div id='d490' class='colors'> +grey85</div> +<div id='d491' class='colors'> +gray84</div> +<div id='d492' class='colors'> +grey84</div> +<div id='d493' class='colors'> +gray83</div> +<div id='d494' class='colors'> +grey83</div> +<div id='d495' class='colors'> +LightGray</div> +<div id='d496' class='colors'> +LightGrey</div> +<div id='d497' class='colors'> +gray82</div> +<div id='d498' class='colors'> +grey82</div> +<div id='d499' class='colors'> +gray81</div> +<div id='d500' class='colors'> +grey81</div> +<div id='d501' class='colors'> +gray80</div> +<div id='d502' class='colors'> +grey80</div> +<div id='d503' class='colors'> +gray79</div> +<div id='d504' class='colors'> +grey79</div> +<div id='d505' class='colors'> +gray78</div> +<div id='d506' class='colors'> +grey78</div> +<div id='d507' class='colors'> +gray77</div> +<div id='d508' class='colors'> +grey77</div> +<div id='d509' class='colors'> +gray76</div> +<div id='d510' class='colors'> +grey76</div> +<div id='d511' class='colors'> +silver</div> +<div id='d512' class='colors'> +gray75</div> +<div id='d513' class='colors'> +grey75</div> +<div id='d514' class='colors'> +gray74</div> +<div id='d515' class='colors'> +grey74</div> +<div id='d516' class='colors'> +gray73</div> +<div id='d517' class='colors'> +grey73</div> +<div id='d518' class='colors'> +gray72</div> +<div id='d519' class='colors'> +grey72</div> +<div id='d520' class='colors'> +gray71</div> +<div id='d521' class='colors'> +grey71</div> +<div id='d522' class='colors'> +gray70</div> +<div id='d523' class='colors'> +grey70</div> +<div id='d524' class='colors'> +gray69</div> +<div id='d525' class='colors'> +grey69</div> +<div id='d526' class='colors'> +gray68</div> +<div id='d527' class='colors'> +grey68</div> +<div id='d528' class='colors'> +gray67</div> +<div id='d529' class='colors'> +grey67</div> +<div id='d530' class='colors'> +DarkGray</div> +<div id='d531' class='colors'> +DarkGrey</div> +<div id='d532' class='colors'> +gray66</div> +<div id='d533' class='colors'> +grey66</div> +<div id='d534' class='colors'> +gray65</div> +<div id='d535' class='colors'> +grey65</div> +<div id='d536' class='colors'> +gray64</div> +<div id='d537' class='colors'> +grey64</div> +<div id='d538' class='colors'> +gray63</div> +<div id='d539' class='colors'> +grey63</div> +<div id='d540' class='colors'> +gray62</div> +<div id='d541' class='colors'> +grey62</div> +<div id='d542' class='colors'> +gray61</div> +<div id='d543' class='colors'> +grey61</div> +<div id='d544' class='colors'> +gray60</div> +<div id='d545' class='colors'> +grey60</div> +<div id='d546' class='colors'> +gray59</div> +<div id='d547' class='colors'> +grey59</div> +<div id='d548' class='colors'> +gray58</div> +<div id='d549' class='colors'> +grey58</div> +<div id='d550' class='colors'> +gray57</div> +<div id='d551' class='colors'> +grey57</div> +<div id='d552' class='colors'> +gray56</div> +<div id='d553' class='colors'> +grey56</div> +<div id='d554' class='colors'> +gray55</div> +<div id='d555' class='colors'> +grey55</div> +<div id='d556' class='colors'> +gray54</div> +<div id='d557' class='colors'> +grey54</div> +<div id='d558' class='colors'> +gray53</div> +<div id='d559' class='colors'> +grey53</div> +<div id='d560' class='colors'> +gray52</div> +<div id='d561' class='colors'> +grey52</div> +<div id='d562' class='colors'> +gray51</div> +<div id='d563' class='colors'> +grey51</div> +<div id='d564' class='colors'> +fractal</div> +<div id='d565' class='colors'> +gray50</div> +<div id='d566' class='colors'> +grey50</div> +<div id='d567' class='colors'> +gray</div> +<div id='d568' class='colors'> +gray49</div> +<div id='d569' class='colors'> +grey49</div> +<div id='d570' class='colors'> +gray48</div> +<div id='d571' class='colors'> +grey48</div> +<div id='d572' class='colors'> +gray47</div> +<div id='d573' class='colors'> +grey47</div> +<div id='d574' class='colors'> +gray46</div> +<div id='d575' class='colors'> +grey46</div> +<div id='d576' class='colors'> +gray45</div> +<div id='d577' class='colors'> +grey45</div> +<div id='d578' class='colors'> +gray44</div> +<div id='d579' class='colors'> +grey44</div> +<div id='d580' class='colors'> +gray43</div> +<div id='d581' class='colors'> +grey43</div> +<div id='d582' class='colors'> +gray42</div> +<div id='d583' class='colors'> +grey42</div> +<div id='d584' class='colors'> +DimGray</div> +<div id='d585' class='colors'> +DimGrey</div> +<div id='d586' class='colors'> +gray41</div> +<div id='d587' class='colors'> +grey41</div> +<div id='d588' class='colors'> +gray40</div> +<div id='d589' class='colors'> +grey40</div> +<div id='d590' class='colors'> +gray39</div> +<div id='d591' class='colors'> +grey39</div> +<div id='d592' class='colors'> +gray38</div> +<div id='d593' class='colors'> +grey38</div> +<div id='d594' class='colors'> +gray37</div> +<div id='d595' class='colors'> +grey37</div> +<div id='d596' class='colors'> +gray36</div> +<div id='d597' class='colors'> +grey36</div> +<div id='d598' class='colors'> +gray35</div> +<div id='d599' class='colors'> +grey35</div> +<div id='d600' class='colors'> +gray34</div> +<div id='d601' class='colors'> +grey34</div> +<div id='d602' class='colors'> +gray33</div> +<div id='d603' class='colors'> +grey33</div> +<div id='d604' class='colors'> +gray32</div> +<div id='d605' class='colors'> +grey32</div> +<div id='d606' class='colors'> +gray31</div> +<div id='d607' class='colors'> +grey31</div> +<div id='d608' class='colors'> +gray30</div> +<div id='d609' class='colors'> +grey30</div> +<div id='d610' class='colors'> +gray29</div> +<div id='d611' class='colors'> +grey29</div> +<div id='d612' class='colors'> +gray28</div> +<div id='d613' class='colors'> +grey28</div> +<div id='d614' class='colors'> +gray27</div> +<div id='d615' class='colors'> +grey27</div> +<div id='d616' class='colors'> +gray26</div> +<div id='d617' class='colors'> +grey26</div> +<div id='d618' class='colors'> +gray25</div> +<div id='d619' class='colors'> +grey25</div> +<div id='d620' class='colors'> +gray24</div> +<div id='d621' class='colors'> +grey24</div> +<div id='d622' class='colors'> +gray23</div> +<div id='d623' class='colors'> +grey23</div> +<div id='d624' class='colors'> +gray22</div> +<div id='d625' class='colors'> +grey22</div> +<div id='d626' class='colors'> +gray21</div> +<div id='d627' class='colors'> +grey21</div> +<div id='d628' class='colors'> +gray20</div> +<div id='d629' class='colors'> +grey20</div> +<div id='d630' class='colors'> +gray19</div> +<div id='d631' class='colors'> +grey19</div> +<div id='d632' class='colors'> +gray18</div> +<div id='d633' class='colors'> +grey18</div> +<div id='d634' class='colors'> +gray17</div> +<div id='d635' class='colors'> +grey17</div> +<div id='d636' class='colors'> +gray16</div> +<div id='d637' class='colors'> +grey16</div> +<div id='d638' class='colors'> +gray15</div> +<div id='d639' class='colors'> +grey15</div> +<div id='d640' class='colors'> +gray14</div> +<div id='d641' class='colors'> +grey14</div> +<div id='d642' class='colors'> +gray13</div> +<div id='d643' class='colors'> +grey13</div> +<div id='d644' class='colors'> +gray12</div> +<div id='d645' class='colors'> +grey12</div> +<div id='d646' class='colors'> +gray11</div> +<div id='d647' class='colors'> +grey11</div> +<div id='d648' class='colors'> +gray10</div> +<div id='d649' class='colors'> +grey10</div> +<div id='d650' class='colors'> +gray9</div> +<div id='d651' class='colors'> +grey9</div> +<div id='d652' class='colors'> +gray8</div> +<div id='d653' class='colors'> +grey8</div> +<div id='d654' class='colors'> +gray7</div> +<div id='d655' class='colors'> +grey7</div> +<div id='d656' class='colors'> +gray6</div> +<div id='d657' class='colors'> +grey6</div> +<div id='d658' class='colors'> +gray5</div> +<div id='d659' class='colors'> +grey5</div> +<div id='d660' class='colors'> +gray4</div> +<div id='d661' class='colors'> +grey4</div> +<div id='d662' class='colors'> +gray3</div> +<div id='d663' class='colors'> +grey3</div> +<div id='d664' class='colors'> +gray2</div> +<div id='d665' class='colors'> +grey2</div> +<div id='d666' class='colors'> +gray1</div> +<div id='d667' class='colors'> +grey1</div> +<div id='d668' class='colors'> +black</div> +<div id='d669' class='colors'> +gray0</div> +<div id='d670' class='colors'> +grey0</div> +<div id='d671' class='colors'> +opaque</div> +<div id='d672' class='colors'> +none</div> +<div id='d673' class='colors'> +transparent</div> +</div> + +<div id='colornames'> +WHERE THE COLORNAMES WILL GO +</div> + +<div id='hexswitch'>CLICK TO SHOW HEXES</div> +<div id='infoswitch'>CLICK TO SHOW INFO</div> +<script type='text/javascript' src='js/jquery-1.6.4.min.js'></script> +<script type='text/javascript' src='js/colordict.js'></script> + +<script type='text/javascript'> +function goldenize(num) + { + ratio = (1+Math.sqrt(5))/2 + newnum = Math.round(num*ratio) + return newnum + } +//turns css property width or height into an integer value +function getproperty(idandselectr, propertystr) + { + grab = $(idandselectr).css(propertystr) + grab = grab.slice(0,-2) + numval = parseInt(grab) + return numval + } +function makegolden(idandselectr, propertystr) + { + result = getproperty(idandselectr, propertystr) + newwidth = goldenize(result) + widthval = newwidth.toString()+'px' + $(idandselectr).css('width', widthval) + } +makegolden('.colors', 'height') + + +//remove content this function takes the name out of the divs +infoswitch = false; +function removecontent() + { + if(infoswitch == false) + { + $('#infoswitch').click(function() + { + infoswitch = true + if(infoswitch == true){ + $('.colors').html("") + } + }) + } + if(infoswitch == true) + { + $('#infoswitch').click(function() + { + infoswitch = false + }) + } + } +removecontent() + +function colorToHex(color) +{ + if (color.substr(0, 1) === '#') { + return color; + } + var digits = /(.*?)rgb\((\d+), (\d+), (\d+)\)/.exec(color); + + var red = parseInt(digits[2]); + var green = parseInt(digits[3]); + var blue = parseInt(digits[4]); + + var rgb = blue | (green << 8) | (red << 16); + return digits[1] + '#' + rgb.toString(16); +}; + +//takes a div name and returns a colorname + +function showcolorname(divstr) + + { + bgcolor = $('#'+divstr).css('background-color') + lowercasehex = colorToHex(bgcolor) + hex = lowercasehex.toUpperCase() + imname = hextoname[hex] + if (hexes == true) + { + imname = hex + } + return imname + } +function bigname(divstr) + { + colorname = showcolorname(divstr) + $('#colornames').html(colorname) + } +function writeit(text) + { + $('#colornames').append(text) + } +function makebig(divstr) + { + firstheight = $('#'+divstr).height() + newheight = goldenize(firstheight) + $('#'+divstr).height(newheight) + } +function makesmall(divstr) + { + oldheight = $('.colors').height() + $('#'+divstr).height(oldheight) + } +$('.colors').hover(function() { + bigname(this.id); + makebig(this.id); + makegolden('#'+this.id, 'height')}, +function(){ + makesmall(this.id); + makegolden('#'+this.id, 'height') +}); +$(".colors").hover(function(){ +$('#colornames').fadeOut(100);$('#colornames').fadeIn(500); +}); +$('body').css('background-color', 'black') +$('.colors').css('margin-top', '2px') +var hexes = false +function hexswitch() + { + if(hexes == false) + { + $('#hexswitch').html('CLICK TO SHOW COLOR NAMES') + hexes = true; + } + + else + { + $('#hexswitch').html('CLICK TO SHOW HEX NAMES') + hexes = false; + } + } +$('#hexswitch').click(function(){hexswitch()}) +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/test.html b/frontend/imgrid/colors/test.html new file mode 100755 index 0000000..1912ebf --- /dev/null +++ b/frontend/imgrid/colors/test.html @@ -0,0 +1,56 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html> +<!--<link rel="stylesheet" href="css/normalize.css">--> +<head> + <style type='text/css'> + #master + { + width:400px; + font-size:0; + } + .slaves + { + width:100px; + background-color:gray; + height:40px; + display:inline-block; + } + </style> + + +</head> +<body> + +<div id='master'> + +<div class='slaves' style='background-color:pink'></div> +<div class='slaves' style='background-color:blue'></div> +<div class='slaves' style='background-color:dodgerblue'></div> +<div class='slaves' style='background-color:red'></div> + +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +<div class='slaves'></div> +</div> +<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> +<!--<script type='text/javascript' src='jquery.js'></script>--> +<script type='text/javascript'> +$('.slaves').mouseover(function() + { + $(this).css('width','120px') + $('#master').css('width','420') + }).mouseout(function() + { + $(this).css({'width':'100px'}) + $('#master').css('width','420') + + }); +</script> +</body> +</html> diff --git a/frontend/imgrid/colors/vase.gif b/frontend/imgrid/colors/vase.gif Binary files differnew file mode 100755 index 0000000..dc1c104 --- /dev/null +++ b/frontend/imgrid/colors/vase.gif diff --git a/frontend/imgrid/colors/vase.png b/frontend/imgrid/colors/vase.png Binary files differnew file mode 100755 index 0000000..153e72b --- /dev/null +++ b/frontend/imgrid/colors/vase.png diff --git a/frontend/imgrid/colors/vaseshim.png b/frontend/imgrid/colors/vaseshim.png Binary files differnew file mode 100755 index 0000000..7dbd352 --- /dev/null +++ b/frontend/imgrid/colors/vaseshim.png diff --git a/frontend/imgrid/colors/whiteshim.png b/frontend/imgrid/colors/whiteshim.png Binary files differnew file mode 100755 index 0000000..6b58334 --- /dev/null +++ b/frontend/imgrid/colors/whiteshim.png diff --git a/frontend/imgrid/css/cssreset.css b/frontend/imgrid/css/cssreset.css new file mode 100755 index 0000000..9329580 --- /dev/null +++ b/frontend/imgrid/css/cssreset.css @@ -0,0 +1,7 @@ +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { + border: 0pt none; + font: inherit; + margin: 0pt; + padding: 0pt; + vertical-align: baseline; +}
\ No newline at end of file diff --git a/frontend/imgrid/css/general.css b/frontend/imgrid/css/general.css new file mode 100755 index 0000000..dc1296a --- /dev/null +++ b/frontend/imgrid/css/general.css @@ -0,0 +1,91 @@ + +dy, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, +font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, +tfoot, thead, tr, th, td { +border:0pt none; +font-family:inherit; +font-size:100%; +font-style:inherit; +font-weight:inherit; +margin:0pt; +padding:0pt; +vertical-align:baseline; +} +body{ +background:#fff none repeat scroll 0%; +line-height:1; +font-size: 12px; +font-family:arial,sans-serif; +margin:0pt; +height:100%; +} +br.both{ +clear:both; +} +table { +border-collapse:separate; +border-spacing:0pt; +} +caption, th, td { +font-weight:normal; +text-align:left; +} +blockquote:before, blockquote:after, q:before, q:after { +content:""; +} +blockquote, q { +quotes:"" ""; +} +a{ +cursor: pointer; +text-decoration:none; +} + +#backgroundPopup{ +display:none; +position:fixed; +_position:absolute; /* hack for internet explorer 6*/ +height:100%; +width:100%; +top:0; +left:0; +background:#000000; +border:1px solid #cecece; +z-index:1; +} +#popupContact{ +display:none; +position:fixed; +_position:absolute; /* hack for internet explorer 6*/ +height:800px; +width:800px; +background:#FFFFFF; +border:2px solid #cecece; +z-index:2; +padding:12px; +font-size:13px; +} +#popupContact h1{ +text-align:left; +color:#6FA5FD; +font-size:22px; +font-weight:700; +border-bottom:1px dotted #D3D3D3; +padding-bottom:2px; +margin-bottom:20px; +} +#popupContactClose{ +font-size:14px; +line-height:14px; +right:6px; +top:4px; +position:absolute; +color:#6fa5fd; +font-weight:700; +display:block; +} +#button{ +text-align:center; +margin:100px; +} + diff --git a/frontend/imgrid/css/jquery-ui-1.8.16.custom.css b/frontend/imgrid/css/jquery-ui-1.8.16.custom.css new file mode 100755 index 0000000..9e3cc66 --- /dev/null +++ b/frontend/imgrid/css/jquery-ui-1.8.16.custom.css @@ -0,0 +1,313 @@ +/* + * jQuery UI CSS Framework 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* + * jQuery UI CSS Framework 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=1px&bgColorHeader=cccccc&bgTextureHeader=07_diagonals_medium.png&bgImgOpacityHeader=75&borderColorHeader=ffffff&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=16_diagonal_maze.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=06_inset_hard.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=05_inset_soft.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=12_gloss_wave.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=12_gloss_wave.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=20px&offsetTopShadow=-90px&offsetLeftShadow=-30px&cornerRadiusShadow=8px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #aaaaaa; color: #DCDCDC; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border: 1px solid #ffffff; background: #cccccc url(images/ui-bg_diagonals-medium_75_cccccc_40x40.png) 50% 50% repeat; color: #DCDCDC; font-weight: bold; } +.ui-widget-header a { color: #DCDCDC; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_inset-hard_55_fbf9ee_1x100.png) 50% bottom repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_inset-soft_95_fef1ec_1x100.png) 50% bottom repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 1px; -webkit-border-top-left-radius: 1px; -khtml-border-top-left-radius: 1px; border-top-left-radius: 1px; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 1px; -webkit-border-top-right-radius: 1px; -khtml-border-top-right-radius: 1px; border-top-right-radius: 1px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 1px; -webkit-border-bottom-left-radius: 1px; -khtml-border-bottom-left-radius: 1px; border-bottom-left-radius: 1px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 1px; -webkit-border-bottom-right-radius: 1px; -khtml-border-bottom-right-radius: 1px; border-bottom-right-radius: 1px; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_gloss-wave_0_aaaaaa_500x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -90px 0 0 -30px; padding: 20px; background: #aaaaaa url(images/ui-bg_gloss-wave_0_aaaaaa_500x100.png) 50% top repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* + * jQuery UI Slider 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; } diff --git a/frontend/imgrid/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/frontend/imgrid/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png Binary files differnew file mode 100755 index 0000000..5b5dab2 --- /dev/null +++ b/frontend/imgrid/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png diff --git a/frontend/imgrid/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/frontend/imgrid/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png Binary files differnew file mode 100755 index 0000000..ac8b229 --- /dev/null +++ b/frontend/imgrid/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png diff --git a/frontend/imgrid/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/frontend/imgrid/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png Binary files differnew file mode 100755 index 0000000..ad3d634 --- /dev/null +++ b/frontend/imgrid/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png diff --git a/frontend/imgrid/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/frontend/imgrid/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png Binary files differnew file mode 100755 index 0000000..42ccba2 --- /dev/null +++ b/frontend/imgrid/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png diff --git a/frontend/imgrid/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png b/frontend/imgrid/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png Binary files differnew file mode 100755 index 0000000..1d43b47 --- /dev/null +++ b/frontend/imgrid/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png diff --git a/frontend/imgrid/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/frontend/imgrid/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png Binary files differnew file mode 100755 index 0000000..86c2baa --- /dev/null +++ b/frontend/imgrid/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png diff --git a/frontend/imgrid/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/frontend/imgrid/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png Binary files differnew file mode 100755 index 0000000..4443fdc --- /dev/null +++ b/frontend/imgrid/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png diff --git a/frontend/imgrid/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/frontend/imgrid/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png Binary files differnew file mode 100755 index 0000000..7c9fa6c --- /dev/null +++ b/frontend/imgrid/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png diff --git a/frontend/imgrid/css/smoothness/images/ui-icons_222222_256x240.png b/frontend/imgrid/css/smoothness/images/ui-icons_222222_256x240.png Binary files differnew file mode 100755 index 0000000..b273ff1 --- /dev/null +++ b/frontend/imgrid/css/smoothness/images/ui-icons_222222_256x240.png diff --git a/frontend/imgrid/css/smoothness/images/ui-icons_2e83ff_256x240.png b/frontend/imgrid/css/smoothness/images/ui-icons_2e83ff_256x240.png Binary files differnew file mode 100755 index 0000000..09d1cdc --- /dev/null +++ b/frontend/imgrid/css/smoothness/images/ui-icons_2e83ff_256x240.png diff --git a/frontend/imgrid/css/smoothness/images/ui-icons_454545_256x240.png b/frontend/imgrid/css/smoothness/images/ui-icons_454545_256x240.png Binary files differnew file mode 100755 index 0000000..59bd45b --- /dev/null +++ b/frontend/imgrid/css/smoothness/images/ui-icons_454545_256x240.png diff --git a/frontend/imgrid/css/smoothness/images/ui-icons_888888_256x240.png b/frontend/imgrid/css/smoothness/images/ui-icons_888888_256x240.png Binary files differnew file mode 100755 index 0000000..6d02426 --- /dev/null +++ b/frontend/imgrid/css/smoothness/images/ui-icons_888888_256x240.png diff --git a/frontend/imgrid/css/smoothness/images/ui-icons_cd0a0a_256x240.png b/frontend/imgrid/css/smoothness/images/ui-icons_cd0a0a_256x240.png Binary files differnew file mode 100755 index 0000000..2ab019b --- /dev/null +++ b/frontend/imgrid/css/smoothness/images/ui-icons_cd0a0a_256x240.png diff --git a/frontend/imgrid/css/smoothness/jquery-ui-1.8.16.custom.css b/frontend/imgrid/css/smoothness/jquery-ui-1.8.16.custom.css new file mode 100755 index 0000000..73951cc --- /dev/null +++ b/frontend/imgrid/css/smoothness/jquery-ui-1.8.16.custom.css @@ -0,0 +1,313 @@ +/* + * jQuery UI CSS Framework 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* + * jQuery UI CSS Framework 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } +.ui-widget-header a { color: #222222; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; font-weight: normal; color: #555555; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; } +.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* + * jQuery UI Slider 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; } diff --git a/frontend/imgrid/dist/3dmap.jar b/frontend/imgrid/dist/3dmap.jar Binary files differnew file mode 100755 index 0000000..0424a46 --- /dev/null +++ b/frontend/imgrid/dist/3dmap.jar diff --git a/frontend/imgrid/dist/3dmap.jnlp b/frontend/imgrid/dist/3dmap.jnlp new file mode 100755 index 0000000..7c2108c --- /dev/null +++ b/frontend/imgrid/dist/3dmap.jnlp @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="utf-8"?> +<jnlp href="3dmap.jnlp"> + <information> + <title>3D Map</title> + <vendor>ScannerJammer</vendor> + <homepage href="http://scannerjammer.com/"/> + <description>3D Map Viewer</description> + <description kind="short">JOGL Applet that can generate a 3D landscape based on 2 images: texture and heightmap.</description> + <offline-allowed/> + </information> + + <resources> + <j2se href="http://java.sun.com/products/autodl/j2se" version="1.4+"/> + <property name="sun.java2d.noddraw" value="true"/> + <jar href="3dmap.jar" main="true"/> + <jar href="http/commons-codec-1.4.jar"/> + <jar href="http/commons-logging-1.1.1.jar"/> + <jar href="http/httpclient-4.1.2.jar"/> + <jar href="http/httpclient-cache-4.1.2.jar"/> + <jar href="http/httpcore-4.1.2.jar"/> + <jar href="http/httpmime-4.1.2.jar"/> + <jar href="http/plugin.jar"/> + <extension name="newt-all-awt" href="deployment/v1/jogl-awt.jnlp" /> + </resources> + + <applet-desc + name="3D Map" + main-class="com.scannerjammer.applet.heightmap.applet.Simple3DLandscapeApplet" + width="800" + height="600"> + <param name="texture" value="http://www.chadvernon.com/blog/wp-content/uploads/2007/07/texture.jpg"/> + <param name="heightmap" value="http://www.chadvernon.com/blog/wp-content/uploads/2007/07/heightmap.jpg"/> + <param name="uploadCGI" value="http://asdf.us/cgi-bin/im/imgrid/upload.cgi"/> + <param name="bgColorRedChannel" value="50"/> + <param name="bgColorGreenChannel" value="50"/> + <param name="bgColorBlueChannel" value="50"/> + </applet-desc> +</jnlp> diff --git a/frontend/imgrid/dist/deployment/v1/gluegen-rt.jnlp b/frontend/imgrid/dist/deployment/v1/gluegen-rt.jnlp new file mode 100755 index 0000000..032fdb6 --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/gluegen-rt.jnlp @@ -0,0 +1,63 @@ +<?xml version="1.0" encoding="utf-8"?> +<jnlp href="gluegen-rt.jnlp"> + <information> + <title>GlueGen Runtime v2</title> + <vendor>JogAmp Community</vendor> + <homepage href="http://jogamp.org/"/> + <description>GlueGen Runtime Library</description> + <description kind="short">Run-time support classes and native code for applications and libraries built using the GlueGen tool.</description> + <offline-allowed/> + </information> + <update check="background" policy="always"/> + <security> + <all-permissions/> + </security> + <resources> + <jar href="jar/gluegen-rt.jar" /> + </resources> + + <resources os="Windows" arch="x86"> + <nativelib href = "jar/gluegen-rt-natives-windows-i586.jar" /> + </resources> + <resources os="Windows" arch="amd64"> + <nativelib href = "jar/gluegen-rt-natives-windows-amd64.jar" /> + </resources> + <resources os="Windows" arch="x86_64"> + <nativelib href = "jar/gluegen-rt-natives-windows-amd64.jar" /> + </resources> + <resources os="SunOS" arch="sparc"> + <nativelib href = "jar/gluegen-rt-natives-solaris-sparc.jar" /> + </resources> + <resources os="SunOS" arch="sparcv9"> + <nativelib href = "jar/gluegen-rt-natives-solaris-sparcv9.jar" /> + </resources> + <resources os="SunOS" arch="x86"> + <nativelib href = "jar/gluegen-rt-natives-solaris-i586.jar" /> + </resources> + <resources os="SunOS" arch="amd64"> + <nativelib href = "jar/gluegen-rt-natives-solaris-amd64.jar" /> + </resources> + <resources os="SunOS" arch="x86_64"> + <nativelib href = "jar/gluegen-rt-natives-solaris-amd64.jar" /> + </resources> + <resources os="Linux" arch="i386"> + <nativelib href = "jar/gluegen-rt-natives-linux-i586.jar" /> + </resources> + <resources os="Linux" arch="x86"> + <nativelib href = "jar/gluegen-rt-natives-linux-i586.jar" /> + </resources> + <resources os="Linux" arch="amd64"> + <nativelib href = "jar/gluegen-rt-natives-linux-amd64.jar" /> + </resources> + <resources os="Linux" arch="x86_64"> + <nativelib href = "jar/gluegen-rt-natives-linux-amd64.jar" /> + </resources> + <resources os="Mac OS X" arch="i386"> + <nativelib href = "jar/gluegen-rt-natives-macosx-universal.jar" /> + </resources> + <resources os="Mac OS X" arch="x86_64"> + <nativelib href = "jar/gluegen-rt-natives-macosx-universal.jar" /> + </resources> + + <component-desc /> +</jnlp> diff --git a/frontend/imgrid/dist/deployment/v1/jar/applet-launcher.jar b/frontend/imgrid/dist/deployment/v1/jar/applet-launcher.jar Binary files differnew file mode 100755 index 0000000..53e0742 --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/applet-launcher.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-amd64.jar b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-amd64.jar Binary files differnew file mode 100755 index 0000000..eaf6bad --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-amd64.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-i586.jar b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-i586.jar Binary files differnew file mode 100755 index 0000000..6c21412 --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-linux-i586.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-ppc.jar b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-ppc.jar Binary files differnew file mode 100755 index 0000000..2144ebf --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-ppc.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-universal.jar b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-universal.jar Binary files differnew file mode 100755 index 0000000..8a5efb4 --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-macosx-universal.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-amd64.jar b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-amd64.jar Binary files differnew file mode 100755 index 0000000..1ad7faa --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-amd64.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-i586.jar b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-i586.jar Binary files differnew file mode 100755 index 0000000..dbadb72 --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-i586.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparc.jar b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparc.jar Binary files differnew file mode 100755 index 0000000..02367c7 --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparc.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparcv9.jar b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparcv9.jar Binary files differnew file mode 100755 index 0000000..da0ff3a --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-solaris-sparcv9.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-amd64.jar b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-amd64.jar Binary files differnew file mode 100755 index 0000000..e9a3ffe --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-amd64.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-i586.jar b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-i586.jar Binary files differnew file mode 100755 index 0000000..bb00056 --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt-natives-windows-i586.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt.jar b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt.jar Binary files differnew file mode 100755 index 0000000..c995b22 --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/gluegen-rt.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-amd64.jar b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-amd64.jar Binary files differnew file mode 100755 index 0000000..64d95a0 --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-amd64.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-i586.jar b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-i586.jar Binary files differnew file mode 100755 index 0000000..9370828 --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-linux-i586.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-ppc.jar b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-ppc.jar Binary files differnew file mode 100755 index 0000000..9495e36 --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-ppc.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-universal.jar b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-universal.jar Binary files differnew file mode 100755 index 0000000..f2186cb --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-macosx-universal.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-amd64.jar b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-amd64.jar Binary files differnew file mode 100755 index 0000000..cd617f9 --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-amd64.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-i586.jar b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-i586.jar Binary files differnew file mode 100755 index 0000000..4209a9d --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-i586.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparc.jar b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparc.jar Binary files differnew file mode 100755 index 0000000..b25fdcd --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparc.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparcv9.jar b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparcv9.jar Binary files differnew file mode 100755 index 0000000..b60e31f --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-solaris-sparcv9.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-amd64.jar b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-amd64.jar Binary files differnew file mode 100755 index 0000000..af8b5f9 --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-amd64.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-i586.jar b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-i586.jar Binary files differnew file mode 100755 index 0000000..81c1cdf --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/jogl-natives-windows-i586.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/jogl.jar b/frontend/imgrid/dist/deployment/v1/jar/jogl.jar Binary files differnew file mode 100755 index 0000000..ef96967 --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/jogl.jar diff --git a/frontend/imgrid/dist/deployment/v1/jar/testKeys b/frontend/imgrid/dist/deployment/v1/jar/testKeys Binary files differnew file mode 100755 index 0000000..7eb9ceb --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jar/testKeys diff --git a/frontend/imgrid/dist/deployment/v1/jogl-awt.jnlp b/frontend/imgrid/dist/deployment/v1/jogl-awt.jnlp new file mode 100755 index 0000000..8c86404 --- /dev/null +++ b/frontend/imgrid/dist/deployment/v1/jogl-awt.jnlp @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="utf-8"?> +<jnlp href="jogl-awt.jnlp"> + <information> + <title>Java(tm) Binding to the OpenGL(r) API (ALL.AWT)</title> + <vendor>JogAmp Community</vendor> + <homepage href="http://jogamp.org/"/> + <description>Java Binding to the OpenGL API - 2.0.0 - ALL.AWT</description> + <description kind="short">Java programming language binding for the OpenGL 3D graphics API - ALL.AWT</description> + <offline-allowed/> + </information> + <update check="background" policy="always"/> + <security> + <all-permissions/> + </security> + <resources> + <jar href="jar/jogl.jar" /> + + <extension name="gluegen-rt" href="gluegen-rt.jnlp" /> + </resources> + + <resources os="Windows" arch="x86"> + <nativelib href = "jar/jogl-natives-windows-i586.jar" /> + </resources> + <resources os="Windows" arch="amd64"> + <nativelib href = "jar/jogl-natives-windows-amd64.jar" /> + </resources> + <resources os="Windows" arch="x86_64"> + <nativelib href = "jar/jogl-natives-windows-amd64.jar" /> + </resources> + <resources os="SunOS" arch="sparc"> + <nativelib href = "jar/jogl-natives-solaris-sparc.jar" /> + </resources> + <resources os="SunOS" arch="sparcv9"> + <nativelib href = "jar/jogl-natives-solaris-sparcv9.jar" /> + </resources> + <resources os="SunOS" arch="x86"> + <nativelib href = "jar/jogl-natives-solaris-i586.jar" /> + </resources> + <resources os="SunOS" arch="amd64"> + <nativelib href = "jar/jogl-natives-solaris-amd64.jar" /> + </resources> + <resources os="SunOS" arch="x86_64"> + <nativelib href = "jar/jogl-natives-solaris-amd64.jar" /> + </resources> + <resources os="Linux" arch="i386"> + <nativelib href = "jar/jogl-natives-linux-i586.jar" /> + </resources> + <resources os="Linux" arch="x86"> + <nativelib href = "jar/jogl-natives-linux-i586.jar" /> + </resources> + <resources os="Linux" arch="amd64"> + <nativelib href = "jar/jogl-natives-linux-amd64.jar" /> + </resources> + <resources os="Linux" arch="x86_64"> + <nativelib href = "jar/jogl-natives-linux-amd64.jar" /> + </resources> + <resources os="Linux" arch="arm"> + <nativelib href = "jar/jogl-natives-linux-armv7.jar" /> + </resources> + <resources os="Linux" arch="armv7"> + <nativelib href = "jar/jogl-natives-linux-armv7.jar" /> + </resources> + <resources os="Mac OS X" arch="i386"> + <nativelib href = "jar/jogl-natives-macosx-universal.jar" /> + </resources> + <resources os="Mac OS X" arch="x86_64"> + <nativelib href = "jar/jogl-natives-macosx-universal.jar" /> + </resources> + + <component-desc /> +</jnlp> diff --git a/frontend/imgrid/dist/http/commons-codec-1.4.jar b/frontend/imgrid/dist/http/commons-codec-1.4.jar Binary files differnew file mode 100755 index 0000000..16cd33a --- /dev/null +++ b/frontend/imgrid/dist/http/commons-codec-1.4.jar diff --git a/frontend/imgrid/dist/http/commons-logging-1.1.1.jar b/frontend/imgrid/dist/http/commons-logging-1.1.1.jar Binary files differnew file mode 100755 index 0000000..1fe7176 --- /dev/null +++ b/frontend/imgrid/dist/http/commons-logging-1.1.1.jar diff --git a/frontend/imgrid/dist/http/httpclient-4.1.2.jar b/frontend/imgrid/dist/http/httpclient-4.1.2.jar Binary files differnew file mode 100755 index 0000000..6a61ea2 --- /dev/null +++ b/frontend/imgrid/dist/http/httpclient-4.1.2.jar diff --git a/frontend/imgrid/dist/http/httpclient-cache-4.1.2.jar b/frontend/imgrid/dist/http/httpclient-cache-4.1.2.jar Binary files differnew file mode 100755 index 0000000..713decb --- /dev/null +++ b/frontend/imgrid/dist/http/httpclient-cache-4.1.2.jar diff --git a/frontend/imgrid/dist/http/httpcore-4.1.2.jar b/frontend/imgrid/dist/http/httpcore-4.1.2.jar Binary files differnew file mode 100755 index 0000000..343e174 --- /dev/null +++ b/frontend/imgrid/dist/http/httpcore-4.1.2.jar diff --git a/frontend/imgrid/dist/http/httpmime-4.1.2.jar b/frontend/imgrid/dist/http/httpmime-4.1.2.jar Binary files differnew file mode 100755 index 0000000..cce60ef --- /dev/null +++ b/frontend/imgrid/dist/http/httpmime-4.1.2.jar diff --git a/frontend/imgrid/dist/http/plugin.jar b/frontend/imgrid/dist/http/plugin.jar Binary files differnew file mode 100755 index 0000000..ee4792a --- /dev/null +++ b/frontend/imgrid/dist/http/plugin.jar diff --git a/frontend/imgrid/dist/index.html b/frontend/imgrid/dist/index.html new file mode 100755 index 0000000..76ed3ab --- /dev/null +++ b/frontend/imgrid/dist/index.html @@ -0,0 +1,24 @@ +<html> +<head> +</head> +<body> +<applet code="org.jdesktop.applet.util.JNLPAppletLauncher" + width=800 + height=600 + archive="deployment/v1/jar/applet-launcher.jar, + deployment/v1/jar/gluegen-rt.jar, + deployment/v1/jar/jogl.all.jar, + 3dmap.jar"> + <param name="codebase_lookup" value="false"> + <param name="subapplet.classname" value="com.scannerjammer.applet.heightmap.applet.Simple3DLandscapeApplet"> + <param name="subapplet.displayname" value="3D Map"> + <param name="noddraw.check" value="true"> + <param name="progressbar" value="true"> + <param name="jnlpNumExtensions" value="1"> + <param name="jnlpExtension1" + value="deployment/v1/jogl-awt.jnlp"> + <param name="java_arguments" value="-Dsun.java2d.noddraw=true"> + <param name="jnlp_href" value="3dmap.jnlp"> +</applet> +</body> +</html>
\ No newline at end of file diff --git a/frontend/imgrid/dist/temp/HeightMap.jpg b/frontend/imgrid/dist/temp/HeightMap.jpg Binary files differnew file mode 100755 index 0000000..ccee392 --- /dev/null +++ b/frontend/imgrid/dist/temp/HeightMap.jpg diff --git a/frontend/imgrid/dist/temp/Texture.jpg b/frontend/imgrid/dist/temp/Texture.jpg Binary files differnew file mode 100755 index 0000000..eef3866 --- /dev/null +++ b/frontend/imgrid/dist/temp/Texture.jpg diff --git a/frontend/imgrid/dist/testKeys b/frontend/imgrid/dist/testKeys Binary files differnew file mode 100755 index 0000000..7eb9ceb --- /dev/null +++ b/frontend/imgrid/dist/testKeys diff --git a/frontend/imgrid/dist_embedded/3DMapAllWin.jar b/frontend/imgrid/dist_embedded/3DMapAllWin.jar Binary files differnew file mode 100755 index 0000000..7ee9c3d --- /dev/null +++ b/frontend/imgrid/dist_embedded/3DMapAllWin.jar diff --git a/frontend/imgrid/dist_embedded/index.html b/frontend/imgrid/dist_embedded/index.html new file mode 100755 index 0000000..828945e --- /dev/null +++ b/frontend/imgrid/dist_embedded/index.html @@ -0,0 +1,16 @@ +<html> + <body bgcolor="#E6E6FA"> + <applet code="com.scannerjammer.applet.heightmap.applet.Embedded3DLandscapeApplet.class" + archive="3DMapAllWin.jar" + name="3D Landscape" + width="800" + height="600"> + <param name="bgColorRedChannel" value="255"> + <param name="texture" value="http://www.chadvernon.com/blog/wp-content/uploads/2007/07/texture.jpg"> + <param name="bgColorBlueChannel" value="255"> + <param name="bgColorGreenChannel" value="255"> + <param name="heightmap" value="http://www.chadvernon.com/blog/wp-content/uploads/2007/07/heightmap.jpg"> + <param name="uploadCGI" value="http://localhost/cgi-bin/upload.cgi"> + </applet> + </body> +</html> diff --git a/frontend/imgrid/favicon.ico b/frontend/imgrid/favicon.ico Binary files differnew file mode 100755 index 0000000..59b9680 --- /dev/null +++ b/frontend/imgrid/favicon.ico diff --git a/frontend/imgrid/greatgrids/blackplant.png b/frontend/imgrid/greatgrids/blackplant.png Binary files differnew file mode 100755 index 0000000..e78b547 --- /dev/null +++ b/frontend/imgrid/greatgrids/blackplant.png diff --git a/frontend/imgrid/greatgrids/copy.html b/frontend/imgrid/greatgrids/copy.html new file mode 100755 index 0000000..9607758 --- /dev/null +++ b/frontend/imgrid/greatgrids/copy.html @@ -0,0 +1,327 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> +<title>the difference - interactive DHTML</title> +<meta http-equiv="imagetoolbar" content="no"> +<link href='http://fonts.googleapis.com/css?family=Tienne:400,700' rel='stylesheet' type='text/css'> +<style type="text/css"> + html { + overflow: hidden; + } + body { + margin: 0px; + padding: 0px; + background: aqua; + position: absolute; + width: 100%; + height: 100%; + } + #screen { + position:absolute; + left: 00%; + top: 0%; + width: 100%; + height: 100%; + background: aqua; + overflow: hidden; + } + #screen img { + position: absolute; + cursor: pointer; + left: -4000px; + filter: fliph flipv; + -ms-interpolation-mode:nearest-neighbor; + } + #screen canvas { + position: absolute; + cursor: pointer; + width: 0px; + border-style:outset; + border-width:8px; + border-color:black; + } + #b1 + { + position:absolute; + width:100%; + height:10%; + background-color:red; + background-image:url(http://ghghgh.us/timb/pepper3.gif); + } + #b2 + { + position:absolute; + top:100px; + width:100%; + font-family: 'Tienne', serif; + color:#8B8B7A; + text-shadow: 0px -15px 0 bisque; + text-shadow: 20px 30px 11px #CDC5BF; + font-size:40px; + padding-top:20px; + padding-bottom:20px; + text-align:center; + height:100px; + background-color:whitesmoke; + bottom:0px; + } + #b3 + { + position:fixed: + top:1000px; + height:1000px; + width:100%; + text-align:center; + font-style:georgia; + font-size:20px; + color:black; + text-transform:uppercase; + background-color:azure; + background-image:url(http://ghghgh.us/timb/pepper2.gif); + } + img + { + background-color:whitesmoke; + } + a {text-decoration: none;color:#333;} + a:hover {text-decoration: none;background:#ff8000;color:#fff;} + a:visited {text-decoration: none;color:#333;} + a:visited:hover {text-decoration: none;background:#ff8000;color:#fff;} +</style> +<!--special thanks to Gerard Ferrandez at http://www.dhteumeuleu.com for his image rolodex script--> + +<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> +<script type="text/javascript"> +var car = { + scr : 0, + img : 0, + xm : 0, + ym : 0, + xmb : 0, + ymb : 0, + drag : false, + cosY : 0, + cosX : 0, + sinY : 0, + sinX : 0, + xd : 0, + yd : -10, +// arr : [], + run : function () { + /* ==== rotation speed ==== */ + var Ay = car.xd / (car.scr.offsetWidth * .2); + var Ax = car.yd / (car.scr.offsetHeight * .2); + /* ==== vertical / horizontal friction ==== */ + if(!car.drag){ + if(Math.abs(car.xd) > Math.abs(car.yd)){ + car.xd *= .99; + car.yd *= .95; + } else { + car.xd *= .95; + car.yd *= .99; + } + } + /* ==== rotation angles ==== */ + car.cosY = Math.cos(Ay); + car.cosX = Math.cos(Ax); + car.sinY = Math.sin(Ay); + car.sinX = Math.sin(Ax); + /* ==== animate images ==== */ + for(var i = 0; i < 8; i++) + { + car.img[i].rotate() + }; + /* ==== loop ==== */ + setTimeout(car.run, 16); + }, + + /* ==== mouse mov ==== */ + mouse : function (e) { + this.xm = e.clientX; + this.ym = -e.clientY; + if(this.drag){ + var homeboy = this.img + this.xd = this.xm - this.xmb; + this.yd = this.ym - this.ymb; + } + this.xmb = this.xm; + this.ymb = this.ym; + }, + + /* ==== dim screen ==== */ + resize : function () { + car.nw = car.scr.offsetWidth; + car.nh = car.scr.offsetHeight; + }, + + /* ==== init script ==== */ + init : function () { + /* ==== window mousemove event ==== */ + document.onmousemove = function (e) { + if (window.event) e = window.event; + car.mouse(e); + // $('#error').append('x'); + } + /* ==== window onresize event ==== */ + onresize = car.resize; + /* ==== init images ==== */ + this.scr = document.getElementById('screen'); + var img = this.scr.getElementsByClassName('images'); + this.img = []; + car.resize(); + var k = 0; + + for(var xi = -1; xi <= 1; xi+=2) { + for(var yi = -1; yi <= 1; yi+=2) { + for(var zi = -1; zi <= 1; zi+=2) { + var o = img[k++] + /* ==== replace images by canvas ==== */ + if (document.createElement("canvas").getContext) { + var src = o; + o = document.createElement("canvas"); + if (k<=8){ + o.id = img[k-1].getAttribute('src')} + o.canvas = true; + /* ==== flip function ==== */ + o.flip = function (fx, fy) { + var context = this.getContext("2d"); + context.translate(fx<0?this.w:0, fy<0?this.h:0); + context.scale(fx, fy); + context.drawImage(this.img, 0, 0, this.w, this.h); + } + o.img = src; + this.scr.appendChild(o); + } + /* ==== HTML Objects ==== */ + this.img.push(o); + o.css = o.style; + o.x3d = xi; + o.y3d = yi; + o.z3d = zi; + o.py = 0; + o.px = 0; + o.onselectstart = function () { return false; } + o.ondrag = function () { return false; } + o.onmousedown = function () { + car.drag = true; + car.xd = 0; + car.yd = 0; + this.css.cursor = "move"; + // if(reference) + // { + // $('#'+reference.toString()).css('border-color','purple'); + // } + $('canvas').css('border-color','black') + document.getElementById('error').innerHTML = this.getAttribute('id').toString() + $(this).css('border-color','red'); + //reference = this.getAttribute('id').toString(); + //$('#error').append(reference); + // car.arr.push(reference) + // var thelast = car.arr[car.arr.length-2] + if (thelast) + { + $('#error').append('#'+thelast) + } + // $('#'+thelast).css('border-color','purple') + $('#error').click(function(){$('#error').html("<img src='"+reference.toString()+"'></img>")}); +// $('#error').click(function(){$('#b2').append("<img src='"+reference+"'></img>")}); + return false; + + } + o.onmouseout = function () {car.drag = false; this.css.cursor = "pointer"; return false; } + o.onmouseup = function () {car.drag = false; this.css.cursor = "pointer"; return false; } + o.rotate = function () { + /* ==== trigo ==== */ + var tz = this.z3d * car.cosY - this.x3d * car.sinY; + this.x3d = this.z3d * car.sinY + this.x3d * car.cosY; + this.z3d = this.y3d * car.sinX + tz * car.cosX; + this.y3d = this.y3d * car.cosX - tz * car.sinX; + var zf = 1 / (this.z3d / 10 + 1); + var x2d = this.x3d * zf * car.nw * .2; + var y2d = this.y3d * zf * car.nh * .2; + var w2d = Math.abs(x2d * 1.6); + var h2d = Math.abs(y2d * 1.6); + if (this.loaded) { + /* ==== HTML animation ==== */ + this.css.left = Math.round(car.nw * .5 - x2d - w2d * .5) + 'px'; + this.css.top = Math.round(car.nh * .5 - y2d - h2d * .5) + 'px'; + this.css.width = Math.round(w2d) + 'px'; + this.css.height = Math.round(h2d) + 'px'; + this.css.zIndex = Math.round(zf * 100); + /* $('body').click(function() + { + // $(this).attr('img'); + bill = 'howdy' + $('#error').html(bill); + });*/ + // $('#error').append(this.img); + /* ==== flipv ==== */ + if ((y2d < 0) != this.py) { + this.py = (y2d < 0); + if (this.canvas) + this.flip(1, -1); + else if (this.filters) + this.filters[1].enabled = (y2d < 0) ? "true" : "false"; + } + /* ==== fliph ==== */ + if ((x2d < 0) != this.px) { + this.px = (x2d < 0); + if (this.canvas) + this.flip(-1, 1); + else if (this.filters) + this.filters[0].enabled = (x2d < 0) ? "true" : "false"; + } + } else { + /* ==== load image ==== */ + if ((this.canvas && this.img.complete) || this.complete) { + this.loaded = true; + if (this.canvas) { + this.w = this.img.width; + this.h = this.img.height; + this.width = this.w; + this.height = this.h; + var context = this.getContext("2d"); + context.drawImage(this.img, 0, 0, this.w, this.h); + } + } + } + } + } + } + } + this.run(); + } +} +</script> +</head> + +<body> + +<div id="screen"> + <div id="b1"></div> + <div id="b2">WELCOME TO THE PHOTOBLASTER GREAT GRIDS GALLERY...THESE ARE RECENT GRIDS CREATED BY PEOPLE USING HTTP://ASDF.US/IMGRID</div> + <div id="b3"> + <br> + </div> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg1.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg2.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg3.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg4.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg5.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg6.png"> + <img class='images' alt="by Pepper" src="images/gg7.png"> + <img class='images' alt="" src="images/gg6.png"> +</div> +<div id='error' style='border-style:solid; border-width:10px; border-color:green; background-color:red; height:100px;width100px;position:fixed;left:100px; top:20px;'>hello</div> +<script type="text/javascript"> + /* ==== start ==== */ + setTimeout(function() { + car.init(); + }, 1000); +</script> + +<script type='text/javascript'> +</script> +</body> +</html> + diff --git a/frontend/imgrid/greatgrids/facebookimage.jpg b/frontend/imgrid/greatgrids/facebookimage.jpg Binary files differnew file mode 100755 index 0000000..175f825 --- /dev/null +++ b/frontend/imgrid/greatgrids/facebookimage.jpg diff --git a/frontend/imgrid/greatgrids/facebookimage.png b/frontend/imgrid/greatgrids/facebookimage.png Binary files differnew file mode 100755 index 0000000..4d75bc0 --- /dev/null +++ b/frontend/imgrid/greatgrids/facebookimage.png diff --git a/frontend/imgrid/greatgrids/gallery.html b/frontend/imgrid/greatgrids/gallery.html new file mode 100755 index 0000000..4489a99 --- /dev/null +++ b/frontend/imgrid/greatgrids/gallery.html @@ -0,0 +1,404 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> +<title>the difference - interactive DHTML</title> +<meta http-equiv="imagetoolbar" content="no"> +<link href='http://fonts.googleapis.com/css?family=Tienne:400,700' rel='stylesheet' type='text/css'> +<style type="text/css"> + html { + overflow: hidden; + } + body { + margin: 0px; + padding: 0px; + background: aqua; + position: absolute; + width: 100%; + height: 100%; + } + #curtain{ + position:fixed; + top:0; + left:0; + height:100%; + width:100%; + background-color:rgba(255,255,255,0.8); + z-index:1500; + display:none; + } + #details + { + position:absolute; + width:800px; + height:60%; + border-style:solid; + border-width:1px; + background-color:white; + margin:0 auto; + border-color:black; + top:0; + left:0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; + -moz-opacity: 1.0; + -khtml-opacity: 1.0; + opacity:1; + + } + #imagedetail + { + position:absolute; + margin:0 auto; + border-style:outset; + border-color:black; + border-width:0px; + display:block; + max-height:900px; + max-width:900px; + opacity:1; + } + #info + { + font-size:40px; + font-family:helvetica; + text-transform:uppercase; + display:block; + padding:5%; + } + #screen { + position:absolute; + left: 00%; + top: 0%; + width: 100%; + height: 100%; + background: aqua; + overflow: hidden; + } + #screen img { + position: absolute; + cursor: pointer; + left: -4000px; + filter: fliph flipv; + -ms-interpolation-mode:nearest-neighbor; + } + #screen canvas { + position: absolute; + cursor: pointer; + width: 0px; + border-style:outset; + border-width:8px; + border-color:black; + } + #b1 + { + position:absolute; + width:100%; + height:10%; + background-color:red; + background-image:url(http://ghghgh.us/timb/pepper3.gif); + } + #b2 + { + position:absolute; + top:100px; + width:100%; + font-family: 'Tienne', serif; + color:#8B8B7A; + text-shadow: 0px -15px 0 bisque; + text-shadow: 20px 30px 11px #CDC5BF; + font-size:40px; + padding-top:20px; + padding-bottom:20px; + text-align:center; + height:100px; + background-color:whitesmoke; + bottom:0px; + } + #b3 + { + position:fixed: + top:1000px; + height:1000px; + width:100%; + text-align:center; + font-style:georgia; + font-size:20px; + color:black; + text-transform:uppercase; + background-color:azure; + background-image:url(http://ghghgh.us/timb/pepper2.gif); + } + a {text-decoration: none;color:#333;} + a:hover {text-decoration: none;background:#ff8000;color:#fff;} + a:visited {text-decoration: none;color:#333;} + a:visited:hover {text-decoration: none;background:#ff8000;color:#fff;} +</style> +<!--special thanks to Gerard Ferrandez at http://www.dhteumeuleu.com for his image rolodex script--> + +<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> +<script type="text/javascript"> +var car = { + scr : 0, + img : 0, + xm : 0, + ym : 0, + xmb : 0, + ymb : 0, + drag : false, + cosY : 0, + cosX : 0, + sinY : 0, + sinX : 0, + xd : 0, + yd : -10, + ref : "", + run : function () { + /* ==== rotation speed ==== */ + var Ay = car.xd / (car.scr.offsetWidth * .2); + var Ax = car.yd / (car.scr.offsetHeight * .2); + /* ==== vertical / horizontal friction ==== */ + if(!car.drag){ + if(Math.abs(car.xd) > Math.abs(car.yd)){ + car.xd *= .99; + car.yd *= .95; + } else { + car.xd *= .95; + car.yd *= .99; + } + } + /* ==== rotation angles ==== */ + car.cosY = Math.cos(Ay); + car.cosX = Math.cos(Ax); + car.sinY = Math.sin(Ay); + car.sinX = Math.sin(Ax); + /* ==== animate images ==== */ + for(var i = 0; i < 8; i++) + { + car.img[i].rotate() + }; + /* ==== loop ==== */ + setTimeout(car.run, 16); + }, + + /* ==== mouse mov ==== */ + mouse : function (e) { + this.xm = e.clientX; + this.ym = -e.clientY; + if(this.drag){ + var homeboy = this.img + this.xd = this.xm - this.xmb; + this.yd = this.ym - this.ymb; + } + this.xmb = this.xm; + this.ymb = this.ym; + }, + + /* ==== dim screen ==== */ + resize : function () { + car.nw = car.scr.offsetWidth; + car.nh = car.scr.offsetHeight; + }, + + /* ==== init script ==== */ + init : function () { + /* ==== window mousemove event ==== */ + document.onmousemove = function (e) { + if (window.event) e = window.event; + car.mouse(e); + } + /* ==== window onresize event ==== */ + onresize = car.resize; + /* ==== init images ==== */ + this.scr = document.getElementById('screen'); + var img = this.scr.getElementsByClassName('images'); + this.img = []; + car.resize(); + var k = 0; + + for(var xi = -1; xi <= 1; xi+=2) { + for(var yi = -1; yi <= 1; yi+=2) { + for(var zi = -1; zi <= 1; zi+=2) { + var o = img[k++] + /* ==== replace images by canvas ==== */ + if (document.createElement("canvas").getContext) { + var src = o; + o = document.createElement("canvas"); + if (k<=8){ + o.id = img[k-1].getAttribute('src')} + o.canvas = true; + /* ==== flip function ==== */ + o.flip = function (fx, fy) { + var context = this.getContext("2d"); + context.translate(fx<0?this.w:0, fy<0?this.h:0); + context.scale(fx, fy); + context.drawImage(this.img, 0, 0, this.w, this.h); + } + o.img = src; + this.scr.appendChild(o); + } + /* ==== HTML Objects ==== */ + this.img.push(o); + o.css = o.style; + o.x3d = xi; + o.y3d = yi; + o.z3d = zi; + o.py = 0; + o.px = 0; + o.onselectstart = function () { return false; } + o.ondrag = function () { return false; } + o.onmousedown = function () { + car.drag = true; + car.xd = 0; + car.yd = 0; + this.css.cursor = "move"; + $('canvas').css('border-color','black') + // document.getElementById('error').innerHTML = this.getAttribute('id').toString() + car.ref = this.getAttribute('id').toString() + $(this).css('border-color','red'); + return false; + + } + o.onmouseout = function () {car.drag = false; this.css.cursor = "pointer"; return false; } + o.onmouseup = function () {car.drag = false; this.css.cursor = "pointer"; return false; } + o.rotate = function () { + /* ==== trigo ==== */ + var tz = this.z3d * car.cosY - this.x3d * car.sinY; + this.x3d = this.z3d * car.sinY + this.x3d * car.cosY; + this.z3d = this.y3d * car.sinX + tz * car.cosX; + this.y3d = this.y3d * car.cosX - tz * car.sinX; + var zf = 1 / (this.z3d / 10 + 1); + var x2d = this.x3d * zf * car.nw * .2; + var y2d = this.y3d * zf * car.nh * .2; + var w2d = Math.abs(x2d * 1.6); + var h2d = Math.abs(y2d * 1.6); + if (this.loaded) { + /* ==== HTML animation ==== */ + this.css.left = Math.round(car.nw * .5 - x2d - w2d * .5) + 'px'; + this.css.top = Math.round(car.nh * .5 - y2d - h2d * .5) + 'px'; + this.css.width = Math.round(w2d) + 'px'; + this.css.height = Math.round(h2d) + 'px'; + this.css.zIndex = Math.round(zf * 100); + /* ==== flipv ==== */ + if ((y2d < 0) != this.py) { + this.py = (y2d < 0); + if (this.canvas) + this.flip(1, -1); + else if (this.filters) + this.filters[1].enabled = (y2d < 0) ? "true" : "false"; + } + /* ==== fliph ==== */ + if ((x2d < 0) != this.px) { + this.px = (x2d < 0); + if (this.canvas) + this.flip(-1, 1); + else if (this.filters) + this.filters[0].enabled = (x2d < 0) ? "true" : "false"; + } + } else { + /* ==== load image ==== */ + if ((this.canvas && this.img.complete) || this.complete) { + this.loaded = true; + if (this.canvas) { + this.w = this.img.width; + this.h = this.img.height; + this.width = this.w; + this.height = this.h; + var context = this.getContext("2d"); + context.drawImage(this.img, 0, 0, this.w, this.h); + } + } + } + } + } + } + } + this.run(); + } +} +</script> +</head> + +<body> + + <div id='curtain'> + <div id='details'> +<span id="info">BLAH BLAH BLAH</span> +<div id="detailwrapper"><img id='imagedetail'></img></div> + </div> +</div> +<div id="screen"> + <div id="b1"></div> + <div id="b2">WELCOME TO THE PHOTOBLASTER GREAT GRIDS GALLERY...THESE ARE RECENT GRIDS CREATED USING <a href='http://asdf.us/imgrid'>HTTP://ASDF.US/IMGRID</a></div> + <div id="b3"> + <br> + </div> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg1.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg2.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg3.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg4.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg5.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg6.png"> + <img class='images' alt="by Pepper" src="images/gg7.png"> + <img class='images' alt="" src="images/gg6.png"> +</div> +<div id='error' style= 'color:red; font-size:40px; height:100px;width100px;position:fixed;left:100px; top:20px;'>CLICK TO ENLARGE</div> +<script type="text/javascript"> + /* ==== start ==== */ + setTimeout(function() { + car.init(); + }, 1000); +</script> + +<script type='text/javascript'> +var imagedict = { + "images/gg1.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg2.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg3.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg4.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg5.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg6.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg7.png":"By Pepper" + } +function centerimage() + { + $('#imagedetail').load(function() + { + refpoint = $('#imagedetail').attr('src') + newrefpoint = imagedict[refpoint] + $('#info').html(newrefpoint) + $('#info').append("<img src='blackplant.png' style='position:fixed; z-index:2000; top:300px; left:50px; height:200px;'></img>") + detailwidth = $('#imagedetail').width() + detailheight = $('#imagedetail').height() + theborder = 2 + centerpointone = parseFloat(detailwidth)/2 + centerpointtwo = parseFloat(detailheight)/2 + leftpos = window.innerWidth/2-centerpointone-theborder + toppos = window.innerHeight/2-centerpointtwo-theborder + wrapperposT = (toppos-20).toString()+'px' + wrapperposL = (leftpos-20).toString()+'px' + wrapperheight = detailheight+40 + wrapperwidth = detailwidth+40 + toppos = toppos.toString()+'px' + leftpos = leftpos.toString()+'px' + $('#imagedetail').css({top:20,left:20}) + $('#detailwrapper').css({'position':'absolute','z-index':'1499','width':wrapperwidth,'height':wrapperheight,'top':wrapperposT,'left':wrapperposL,'background-color':'white','border-style':'solid','border-color':'black','border-width':'1px'}); + // $('#info').append(wrapperposT+'wrapperposT'); + + }) + } +function curtainfunction() + { + centerimage() + $('#curtain').toggle(); + $('#imagedetail').attr('src',car.ref); + } +$('#curtain').click(function(){$('#curtain').toggle("slow")}) + +$('#error').click(function() + { + curtainfunction() + }) +$('canvas').dblclick(function(){curtainfunction()}) +</script> +</body> +</html> + diff --git a/frontend/imgrid/greatgrids/greatgrids.ico b/frontend/imgrid/greatgrids/greatgrids.ico Binary files differnew file mode 100755 index 0000000..02b95bb --- /dev/null +++ b/frontend/imgrid/greatgrids/greatgrids.ico diff --git a/frontend/imgrid/greatgrids/grids.ico b/frontend/imgrid/greatgrids/grids.ico Binary files differnew file mode 100755 index 0000000..e84f586 --- /dev/null +++ b/frontend/imgrid/greatgrids/grids.ico diff --git a/frontend/imgrid/greatgrids/grids.png b/frontend/imgrid/greatgrids/grids.png Binary files differnew file mode 100755 index 0000000..7295042 --- /dev/null +++ b/frontend/imgrid/greatgrids/grids.png diff --git a/frontend/imgrid/greatgrids/hey.html b/frontend/imgrid/greatgrids/hey.html new file mode 100755 index 0000000..8de70fb --- /dev/null +++ b/frontend/imgrid/greatgrids/hey.html @@ -0,0 +1,300 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> +<title>the difference - interactive DHTML</title> +<meta http-equiv="imagetoolbar" content="no"> +<link href='http://fonts.googleapis.com/css?family=Tienne:400,700' rel='stylesheet' type='text/css'> +<style type="text/css"> + html { + overflow: hidden; + } + body { + margin: 0px; + padding: 0px; + background: aqua; + position: absolute; + width: 100%; + height: 100%; + } + #screen { + position:absolute; + left: 00%; + top: 0%; + width: 100%; + height: 100%; + background: aqua; + overflow: hidden; + } + #screen img { + position: absolute; + cursor: pointer; + left: -4000px; + filter: fliph flipv; + -ms-interpolation-mode:nearest-neighbor; + } + #screen canvas { + position: absolute; + cursor: pointer; + width: 0px; + border-style:outset; + border-width:8px; + border-color:black; + } + #b1 + { + position:absolute; + width:100%; + height:10%; + background-color:red; + background-image:url(http://ghghgh.us/timb/pepper3.gif); + } + #b2 + { + position:absolute; + top:100px; + width:100%; + font-family: 'Tienne', serif; + color:#8B8B7A; + text-shadow: 0px -15px 0 bisque; + text-shadow: 20px 30px 11px #CDC5BF; + font-size:40px; + padding-top:20px; + padding-bottom:20px; + text-align:center; + height:100px; + background-color:whitesmoke; + bottom:0px; + } + #b3 + { + position:fixed: + top:1000px; + height:1000px; + width:100%; + text-align:center; + font-style:georgia; + font-size:20px; + color:black; + text-transform:uppercase; + background-color:azure; + background-image:url(http://ghghgh.us/timb/pepper2.gif); + } + img + { + background-color:whitesmoke; + } + a {text-decoration: none;color:#333;} + a:hover {text-decoration: none;background:#ff8000;color:#fff;} + a:visited {text-decoration: none;color:#333;} + a:visited:hover {text-decoration: none;background:#ff8000;color:#fff;} +</style> +<!--special thanks to Gerard Ferrandez at http://www.dhteumeuleu.com for his image rolodex script--> + +<script type="text/javascript"> + +var car = { + scr : 0, + img : 0, + xm : 0, + ym : 0, + xmb : 0, + ymb : 0, + drag : false, + cosY : 0, + cosX : 0, + sinY : 0, + sinX : 0, + xd : 0, + yd : -10, + + run : function () { + /* ==== rotation speed ==== */ + var Ay = car.xd / (car.scr.offsetWidth * .2); + var Ax = car.yd / (car.scr.offsetHeight * .2); + /* ==== vertical / horizontal friction ==== */ + if(!car.drag){ + if(Math.abs(car.xd) > Math.abs(car.yd)){ + car.xd *= .99; + car.yd *= .95; + } else { + car.xd *= .95; + car.yd *= .99; + } + } + /* ==== rotation angles ==== */ + car.cosY = Math.cos(Ay); + car.cosX = Math.cos(Ax); + car.sinY = Math.sin(Ay); + car.sinX = Math.sin(Ax); + /* ==== animate images ==== */ + for(var i = 0; i < 8; i++) car.img[i].rotate(); + /* ==== loop ==== */ + setTimeout(car.run, 16); + }, + + /* ==== mouse mov ==== */ + mouse : function (e) { + this.xm = e.clientX; + this.ym = -e.clientY; + if(this.drag){ + this.xd = this.xm - this.xmb; + this.yd = this.ym - this.ymb; + } + this.xmb = this.xm; + this.ymb = this.ym; + }, + + /* ==== dim screen ==== */ + resize : function () { + car.nw = car.scr.offsetWidth; + car.nh = car.scr.offsetHeight; + }, + + /* ==== init script ==== */ + init : function () { + /* ==== window mousemove event ==== */ + document.onmousemove = function (e) { + if (window.event) e = window.event; + car.mouse(e); + } + /* ==== window onresize event ==== */ + onresize = car.resize; + /* ==== init images ==== */ + this.scr = document.getElementById('screen'); + var img = this.scr.getElementsByTagName('img'); + this.img = []; + car.resize(); + var k = 0; + for(var xi = -1; xi <= 1; xi+=2) { + for(var yi = -1; yi <= 1; yi+=2) { + for(var zi = -1; zi <= 1; zi+=2) { + var o = img[k++]; + /* ==== replace images by canvas ==== */ + if (document.createElement("canvas").getContext) { + var src = o; + o = document.createElement("canvas"); + o.canvas = true; + /* ==== flip function ==== */ + o.flip = function (fx, fy) { + var context = this.getContext("2d"); + context.translate(fx<0?this.w:0, fy<0?this.h:0); + context.scale(fx, fy); + context.drawImage(this.img, 0, 0, this.w, this.h); + } + o.img = src; + this.scr.appendChild(o); + } + /* ==== HTML Objects ==== */ + this.img.push(o); + o.css = o.style; + o.x3d = xi; + o.y3d = yi; + o.z3d = zi; + o.py = 0; + o.px = 0; + o.onselectstart = function () { return false; } + o.ondrag = function () { return false; } + o.onmousedown = function () { + car.drag = true; + car.xd = 0; + car.yd = 0; + this.css.cursor = "move"; + return false; + } + o.onmouseout = function () {car.drag = false; this.css.cursor = "pointer"; return false; } + o.onmouseup = function () {car.drag = false; this.css.cursor = "pointer"; return false; } + o.rotate = function () { + /* ==== trigo ==== */ + var tz = this.z3d * car.cosY - this.x3d * car.sinY; + this.x3d = this.z3d * car.sinY + this.x3d * car.cosY; + this.z3d = this.y3d * car.sinX + tz * car.cosX; + this.y3d = this.y3d * car.cosX - tz * car.sinX; + var zf = 1 / (this.z3d / 10 + 1); + var x2d = this.x3d * zf * car.nw * .2; + var y2d = this.y3d * zf * car.nh * .2; + var w2d = Math.abs(x2d * 1.6); + var h2d = Math.abs(y2d * 1.6); + if (this.loaded) { + /* ==== HTML animation ==== */ + this.css.left = Math.round(car.nw * .5 - x2d - w2d * .5) + 'px'; + this.css.top = Math.round(car.nh * .5 - y2d - h2d * .5) + 'px'; + this.css.width = Math.round(w2d) + 'px'; + this.css.height = Math.round(h2d) + 'px'; + this.css.zIndex = Math.round(zf * 100); + /* ==== flipv ==== */ + if ((y2d < 0) != this.py) { + this.py = (y2d < 0); + if (this.canvas) + this.flip(1, -1); + else if (this.filters) + this.filters[1].enabled = (y2d < 0) ? "true" : "false"; + } + /* ==== fliph ==== */ + if ((x2d < 0) != this.px) { + this.px = (x2d < 0); + if (this.canvas) + this.flip(-1, 1); + else if (this.filters) + this.filters[0].enabled = (x2d < 0) ? "true" : "false"; + } + } else { + /* ==== load image ==== */ + if ((this.canvas && this.img.complete) || this.complete) { + this.loaded = true; + if (this.canvas) { + this.w = this.img.width; + this.h = this.img.height; + this.width = this.w; + this.height = this.h; + var context = this.getContext("2d"); + context.drawImage(this.img, 0, 0, this.w, this.h); + } + } + } + } + } + } + } + this.run(); + } +} + +</script> +</head> + +<body> + +<div id="screen"> + <div id="b1"></div> + <div id="b2">WELCOME TO THE PHOTOBLASTER GREAT GRIDS GALLERY...THESE ARE RECENT GRIDS CREATED BY PEOPLE USING HTTP://ASDF.US/IMGRID</div> + <div id="b3"> + <br> + </div> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg1.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg2.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg3.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg4.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg5.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg6.png"> + <img class='images' alt="by Pepper" src="images/gg7.png"> + <img class='images' alt="" src="images/gg6.png"> +</div> + +<script type="text/javascript"> + /* ==== start ==== */ + setTimeout(function() { + car.init(); + }, 1000); +</script> +<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> + +<script type='text/javascript'> +$(canvas).click(function() + { + // value = $(this).attr('alt'); + $('#b2').html('hey guys'); + }); +</script> +</body> +</html> + diff --git a/frontend/imgrid/greatgrids/images/LaL1S.jpg b/frontend/imgrid/greatgrids/images/LaL1S.jpg Binary files differnew file mode 100755 index 0000000..2eec5e3 --- /dev/null +++ b/frontend/imgrid/greatgrids/images/LaL1S.jpg diff --git a/frontend/imgrid/greatgrids/images/gg1.png b/frontend/imgrid/greatgrids/images/gg1.png Binary files differnew file mode 100755 index 0000000..9d290b6 --- /dev/null +++ b/frontend/imgrid/greatgrids/images/gg1.png diff --git a/frontend/imgrid/greatgrids/images/gg2.png b/frontend/imgrid/greatgrids/images/gg2.png Binary files differnew file mode 100755 index 0000000..92bf7b9 --- /dev/null +++ b/frontend/imgrid/greatgrids/images/gg2.png diff --git a/frontend/imgrid/greatgrids/images/gg3.png b/frontend/imgrid/greatgrids/images/gg3.png Binary files differnew file mode 100755 index 0000000..37c3a14 --- /dev/null +++ b/frontend/imgrid/greatgrids/images/gg3.png diff --git a/frontend/imgrid/greatgrids/images/gg4.png b/frontend/imgrid/greatgrids/images/gg4.png Binary files differnew file mode 100755 index 0000000..dedae31 --- /dev/null +++ b/frontend/imgrid/greatgrids/images/gg4.png diff --git a/frontend/imgrid/greatgrids/images/gg5.png b/frontend/imgrid/greatgrids/images/gg5.png Binary files differnew file mode 100755 index 0000000..1579292 --- /dev/null +++ b/frontend/imgrid/greatgrids/images/gg5.png diff --git a/frontend/imgrid/greatgrids/images/gg6.png b/frontend/imgrid/greatgrids/images/gg6.png Binary files differnew file mode 100755 index 0000000..77e69f3 --- /dev/null +++ b/frontend/imgrid/greatgrids/images/gg6.png diff --git a/frontend/imgrid/greatgrids/images/gg7.png b/frontend/imgrid/greatgrids/images/gg7.png Binary files differnew file mode 100755 index 0000000..788b182 --- /dev/null +++ b/frontend/imgrid/greatgrids/images/gg7.png diff --git a/frontend/imgrid/greatgrids/images/gg8.jpg b/frontend/imgrid/greatgrids/images/gg8.jpg Binary files differnew file mode 100755 index 0000000..2eec5e3 --- /dev/null +++ b/frontend/imgrid/greatgrids/images/gg8.jpg diff --git a/frontend/imgrid/greatgrids/images/gg8.png b/frontend/imgrid/greatgrids/images/gg8.png Binary files differnew file mode 100755 index 0000000..df486e0 --- /dev/null +++ b/frontend/imgrid/greatgrids/images/gg8.png diff --git a/frontend/imgrid/greatgrids/index.html b/frontend/imgrid/greatgrids/index.html new file mode 100755 index 0000000..cb55d1e --- /dev/null +++ b/frontend/imgrid/greatgrids/index.html @@ -0,0 +1,430 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> +<title>GREAT GRIDS GALLERY</title> +<meta http-equiv="imagetoolbar" content="no"> +<meta property="og:image" content="http://asdf.us/imgrid/greatgrids/facebookimage.jpg"/> + <link rel="shortcut icon" href="http://asdf.us/imgrid/greatgrids/grids.ico"> + +<link href='http://fonts.googleapis.com/css?family=Tienne:400,700' rel='stylesheet' type='text/css'> +<style type="text/css"> + html { + overflow: hidden; + } + body { + margin: 0px; + padding: 0px; + background: aqua; + position: absolute; + width: 100%; + height: 100%; + } + #curtain{ + position:fixed; + top:0; + left:0; + height:100%; + width:100%; + background-color:rgba(255,255,255,0.8); + z-index:1500; + display:none; + overflow:auto; + } + #details + { + position:absolute; + width:800px; + height:60%; + border-style:solid; + border-width:1px; + background-color:white; + margin:0 auto; + border-color:black; + top:0; + left:0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; + -moz-opacity: 1.0; + -khtml-opacity: 1.0; + opacity:1; + + } + #imagedetail + { + position:absolute; + margin:0 auto; + border-style:outset; + border-color:black; + border-width:0px; + display:block; + opacity:1; + } + #info + { + font-size:200%; + font-family:helvetica; + text-transform:uppercase; + display:block; + padding:5%; + overflow:auto; + } + #screen { + position:absolute; + left: 00%; + top: 7%; + width: 100%; + height: 100%; + background: aqua; +// overflow: hidden; + } + #screen img { + position: absolute; + cursor: pointer; + left: -4000px; + filter: fliph flipv; + -ms-interpolation-mode:nearest-neighbor; + } + #screen canvas { + position: absolute; + cursor: pointer; + width: 0px; + border-style:outset; + border-width:8px; + border-color:black; + } + #b1 + { + position:fixed; + top:0; + width:100%; + height:10%; + background-color:red; + background-image:url(tinybackground.gif); + } + #b2 + { + position:absolute; + top:100px; + width:100%; + font-family: 'Tienne', serif; + color:#8B8B7A; + text-shadow: 0px -15px 0 bisque; + text-shadow: 20px 30px 11px #CDC5BF; + font-size:250%; + padding-top:20px; + padding-bottom:20px; + text-align:center; + height:100px; + background-color:whitesmoke; + bottom:0px; + } + #b3 + { + position:fixed: + top:1000px; + height:1000px; + width:100%; + text-align:center; + font-style:georgia; + font-size:20px; + color:black; + text-transform:uppercase; + background-color:azure; + background-image:url(tinybackground2.gif); + } + a {text-decoration: none;color:#333;} + a:hover {text-decoration: none;background:#ff8000;color:#fff;} + a:visited {text-decoration: none;color:#333;} + a:visited:hover {text-decoration: none;background:#ff8000;color:#fff;} + #error + { + display:none; + } +</style> +<!--special thanks to Gerard Ferrandez at http://www.dhteumeuleu.com for his image rolodex script--> + +<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> +<script type="text/javascript"> +window.requestAnimFrame = (function(){ + return window.requestAnimationFrame || + window.webkitRequestAnimationFrame || + window.mozRequestAnimationFrame || + window.oRequestAnimationFrame || + window.msRequestAnimationFrame || + function( callback ){ + window.setTimeout(callback, 1000 / 60); + }; +})(); +var car = { + scr : 0, + img : 0, + xm : 0, + ym : 0, + xmb : 0, + ymb : 0, + drag : false, + cosY : 0, + cosX : 0, + sinY : 0, + sinX : 0, + xd : 0, + yd : -10, + ref : "", + run : function () { + /* ==== rotation speed ==== */ + var Ay = car.xd / (car.scr.offsetWidth * .2); + var Ax = car.yd / (car.scr.offsetHeight * .2); + /* ==== vertical / horizontal friction ==== */ + if(!car.drag){ + if(Math.abs(car.xd) > Math.abs(car.yd)){ + car.xd *= .99; + car.yd *= .95; + } else { + car.xd *= .95; + car.yd *= .99; + } + } + /* ==== rotation angles ==== */ + car.cosY = Math.cos(Ay); + car.cosX = Math.cos(Ax); + car.sinY = Math.sin(Ay); + car.sinX = Math.sin(Ax); + /* ==== animate images ==== */ + for(var i = 0; i < 8; i++) + { + car.img[i].rotate() + }; + /* ==== loop ==== */ + + //setTimeout(car.run, 16); + }, + + /* ==== mouse mov ==== */ + mouse : function (e) { + this.xm = e.clientX; + this.ym = -e.clientY; + if(this.drag){ + var homeboy = this.img + this.xd = this.xm - this.xmb; + this.yd = this.ym - this.ymb; + } + this.xmb = this.xm; + this.ymb = this.ym; + }, + + /* ==== dim screen ==== */ + resize : function () { + car.nw = car.scr.offsetWidth; + car.nh = car.scr.offsetHeight; + }, + + /* ==== init script ==== */ + init : function () { + /* ==== window mousemove event ==== */ + document.onmousemove = function (e) { + if (window.event) e = window.event; + car.mouse(e); + } + /* ==== window onresize event ==== */ + onresize = car.resize; + /* ==== init images ==== */ + this.scr = document.getElementById('screen'); + var img = this.scr.getElementsByClassName('images'); + this.img = []; + car.resize(); + var k = 0; + + for(var xi = -1; xi <= 1; xi+=2) { + for(var yi = -1; yi <= 1; yi+=2) { + for(var zi = -1; zi <= 1; zi+=2) { + var o = img[k++] + /* ==== replace images by canvas ==== */ + if (document.createElement("canvas").getContext) { + var src = o; + o = document.createElement("canvas"); + if (k<=8){ + o.id = img[k-1].getAttribute('src')} + o.canvas = true; + /* ==== flip function ==== */ + o.flip = function (fx, fy) { + var context = this.getContext("2d"); + context.translate(fx<0?this.w:0, fy<0?this.h:0); + context.scale(fx, fy); + context.drawImage(this.img, 0, 0, this.w, this.h); + } + o.img = src; + this.scr.appendChild(o); + } + /* ==== HTML Objects ==== */ + this.img.push(o); + o.css = o.style; + o.x3d = xi; + o.y3d = yi; + o.z3d = zi; + o.py = 0; + o.px = 0; + o.onselectstart = function () { return false; } + o.ondrag = function () { return false; } + o.onmousedown = function () { + car.drag = true; + car.xd = 0; + car.yd = 0; + this.css.cursor = "move"; + $('canvas').css('border-color','black') + // document.getElementById('error').innerHTML = this.getAttribute('id').toString() + car.ref = this.getAttribute('id').toString() + $(this).css('border-color','red'); + $('#error').show("fast"); + return false; + + } + o.onmouseout = function () {car.drag = false; this.css.cursor = "pointer"; return false; } + o.onmouseup = function () {car.drag = false; this.css.cursor = "pointer"; return false; } + o.rotate = function () { + /* ==== trigo ==== */ + var tz = this.z3d * car.cosY - this.x3d * car.sinY; + this.x3d = this.z3d * car.sinY + this.x3d * car.cosY; + this.z3d = this.y3d * car.sinX + tz * car.cosX; + this.y3d = this.y3d * car.cosX - tz * car.sinX; + var zf = 1 / (this.z3d / 10 + 1); + var x2d = this.x3d * zf * car.nw * .2; + var y2d = this.y3d * zf * car.nh * .2; + var w2d = Math.abs(x2d * 1.6); + var h2d = Math.abs(y2d * 1.6); + if (this.loaded) { + /* ==== HTML animation ==== */ + this.css.left = Math.round(car.nw * .5 - x2d - w2d * .5) + 'px'; + this.css.top = Math.round(car.nh * .5 - y2d - h2d * .5) + 'px'; + this.css.width = Math.round(w2d) + 'px'; + this.css.height = Math.round(h2d) + 'px'; + this.css.zIndex = Math.round(zf * 100); + /* ==== flipv ==== */ + if ((y2d < 0) != this.py) { + this.py = (y2d < 0); + if (this.canvas) + this.flip(1, -1); + else if (this.filters) + this.filters[1].enabled = (y2d < 0) ? "true" : "false"; + } + /* ==== fliph ==== */ + if ((x2d < 0) != this.px) { + this.px = (x2d < 0); + if (this.canvas) + this.flip(-1, 1); + else if (this.filters) + this.filters[0].enabled = (x2d < 0) ? "true" : "false"; + } + } else { + /* ==== load image ==== */ + if ((this.canvas && this.img.complete) || this.complete) { + this.loaded = true; + if (this.canvas) { + this.w = this.img.width; + this.h = this.img.height; + this.width = this.w; + this.height = this.h; + var context = this.getContext("2d"); + context.drawImage(this.img, 0, 0, this.w, this.h); + } + } + } + } + } + } + } + (function animloop(){ + requestAnimFrame(animloop); + car.run(); +})(); + //this.run(); + } +} +</script> +</head> + +<body> + + <div id='curtain'> + <div id='details'> +<span id="info"></span> +<a href='http://asdf.us/imgrid/index.html'><img src='blackplant.png' style='position:fixed; z-index:2000; top:300px; left:50px; height:25%;'></img></a> +<div id="detailwrapper"><img id='imagedetail'></img></div> + </div> +</div> +<div id="screen"> + <div id="b1"></div> + <div id="b2">WELCOME TO THE PHOTOBLASTER GREAT GRIDS GALLERY...THESE ARE RECENT GRIDS CREATED USING <a href='http://asdf.us/imgrid'>HTTP://ASDF.US/IMGRID</a></div> + <div id="b3"> + <br> + </div> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg1.png"/> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg2.png"/> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg3.png"/> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg4.png"/> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg5.png"/> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg6.png"/> + <img class='images' alt="by Pepper" src="images/gg7.png"/> + <img class='images' alt="by Calla Donofrio" src="images/gg8.png"/> +</div> +<div id='error' style= 'height:6%;position:fixed;left:50px; top:20px;cursor:pointer;opacity:0.8'><img src="http://asdf.us/im/e2/blackkplant_1324724811_pepper_1324724920_pepper.gif" style='height:300%; z-index:100;position:absolute;left:-40px;top:-20px;'></img><img src="http://i.imgur.com/xVHpN.gif" style='height:90%;z-index:104;position:absolute;'></img></div> +<script type="text/javascript"> + /* ==== start ==== */ + setTimeout(function() { + car.init(); + }, 1000); +</script> + +<script type='text/javascript'> +var imagedict = { + "images/gg1.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg2.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg3.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg4.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg5.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg6.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg7.png":"By Pepper", + "images/gg8.png":"By <a href='http://www.facebook.com/CallaDonofrio'>Calla<br>Donofrio</a><br><br><span style='font-size:50%'><a href='http://calladonofrio.tumblr.com'>more by her...</a>"} +function centerimage() + { + $('#imagedetail').load(function() + { + detailwidth = $('#imagedetail').width() + detailheight = $('#imagedetail').height() + theborder = 2 + centerpointone = parseFloat(detailwidth)/2 + centerpointtwo = parseFloat(detailheight)/2 + leftpos = window.innerWidth/2-centerpointone-theborder + toppos = window.innerHeight/2-centerpointtwo-theborder + wrapperposT = (toppos-20).toString()+'px' + wrapperposL = (leftpos-20).toString()+'px' + wrapperheight = detailheight+40 + wrapperwidth = detailwidth+40 + $('#imagedetail').css({top:20,left:20}) + $('#detailwrapper').css({'position':'absolute','z-index':'1499','width':wrapperwidth,'height':wrapperheight,'top':wrapperposT,'left':wrapperposL,'background-color':'white','border-style':'solid','border-color':'black','border-width':'1px'}); + refpoint = $('#imagedetail').attr('src') + newrefpoint = imagedict[refpoint] + $('#info').html(newrefpoint) + + thefont = (leftpos-20)/9 + if (thefont > 38) {thefont = 38} + $('#info').css('font-size',thefont.toString()+'px') + + + }) + } +function curtainfunction() + { + centerimage() + $('#curtain').toggle(); + $('#imagedetail').attr('src',car.ref); + } +$('#curtain').click(function(){$('#curtain').toggle("slow")}) + +$('#error').click(function() + { + curtainfunction() + }) +$('canvas').dblclick(function(){curtainfunction()}) +</script> +</body> +</html> + diff --git a/frontend/imgrid/greatgrids/plain.html b/frontend/imgrid/greatgrids/plain.html new file mode 100755 index 0000000..829b45e --- /dev/null +++ b/frontend/imgrid/greatgrids/plain.html @@ -0,0 +1,28 @@ +<html> +<head> +<title>GREAT GRIDS GALLERY</title> +<style type="text/css"></style> +</head> +<body> +<canvas id="example" width="200" height="200"> +This text is displayed if your browser does not support HTML5 Canvas. +</canvas> +<div id='error'> booji boy</div> +<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> +<script type="text/javascript"> + +var example = document.getElementById('example'); +var context = example.getContext('2d'); +context.fillStyle = "rgb(255,0,0)"; +context.fillRect(30, 30, 50, 50); + +$('canvas').hover(function() + { + var wonka = $(this).attr('id') + $('#error').html(wonka) + }); +</script> + + +</body> +</html> diff --git a/frontend/imgrid/greatgrids/screen.html b/frontend/imgrid/greatgrids/screen.html new file mode 100755 index 0000000..b75f78f --- /dev/null +++ b/frontend/imgrid/greatgrids/screen.html @@ -0,0 +1,400 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +<html> +<head> +<title>the difference - interactive DHTML</title> +<meta http-equiv="imagetoolbar" content="no"> +<link href='http://fonts.googleapis.com/css?family=Tienne:400,700' rel='stylesheet' type='text/css'> +<style type="text/css"> + html { + overflow: hidden; + } + body { + margin: 0px; + padding: 0px; + background: aqua; + position: absolute; + width: 100%; + height: 100%; + } + #curtain{ + position:fixed; + top:0; + left:0; + height:100%; + width:100%; + background-color:rgba(69,69,69,0.8); + z-index:1500; + display:none; + } + #details + { + position:absolute; + width:800px; + height:60%; + border-style:outset; + background-color:SlateGray; + margin:0 auto; + top:0; + left:0; + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; + -moz-opacity: 1.0; + -khtml-opacity: 1.0; + opacity:1; + + } + #imagedetail + { + position:absolute; + left:0px; + margin:0 auto; + left:80px; + top:5px; + border-style:outset; + border-color:#FFFAF0; + border-width:100px; + display:block; + max-height:900px; + max-width:900px; + opacity:1; + } + #info + { + font-size:40px; + font-family:helvetica; + text-transform:uppercase; + display:block; + padding:5%; + } + #screen { + position:absolute; + left: 00%; + top: 0%; + width: 100%; + height: 100%; + background: aqua; + overflow: hidden; + } + #screen img { + position: absolute; + cursor: pointer; + left: -4000px; + filter: fliph flipv; + -ms-interpolation-mode:nearest-neighbor; + } + #screen canvas { + position: absolute; + cursor: pointer; + width: 0px; + border-style:outset; + border-width:8px; + border-color:black; + } + #b1 + { + position:absolute; + width:100%; + height:10%; + background-color:red; + background-image:url(http://ghghgh.us/timb/pepper3.gif); + } + #b2 + { + position:absolute; + top:100px; + width:100%; + font-family: 'Tienne', serif; + color:#8B8B7A; + text-shadow: 0px -15px 0 bisque; + text-shadow: 20px 30px 11px #CDC5BF; + font-size:40px; + padding-top:20px; + padding-bottom:20px; + text-align:center; + height:100px; + background-color:whitesmoke; + bottom:0px; + } + #b3 + { + position:fixed: + top:1000px; + height:1000px; + width:100%; + text-align:center; + font-style:georgia; + font-size:20px; + color:black; + text-transform:uppercase; + background-color:azure; + background-image:url(http://ghghgh.us/timb/pepper2.gif); + } + img + { + background-color:whitesmoke; + } + a {text-decoration: none;color:#333;} + a:hover {text-decoration: none;background:#ff8000;color:#fff;} + a:visited {text-decoration: none;color:#333;} + a:visited:hover {text-decoration: none;background:#ff8000;color:#fff;} +</style> +<!--special thanks to Gerard Ferrandez at http://www.dhteumeuleu.com for his image rolodex script--> + +<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js'></script> +<script type="text/javascript"> +var car = { + scr : 0, + img : 0, + xm : 0, + ym : 0, + xmb : 0, + ymb : 0, + drag : false, + cosY : 0, + cosX : 0, + sinY : 0, + sinX : 0, + xd : 0, + yd : -10, + ref : "", + run : function () { + /* ==== rotation speed ==== */ + var Ay = car.xd / (car.scr.offsetWidth * .2); + var Ax = car.yd / (car.scr.offsetHeight * .2); + /* ==== vertical / horizontal friction ==== */ + if(!car.drag){ + if(Math.abs(car.xd) > Math.abs(car.yd)){ + car.xd *= .99; + car.yd *= .95; + } else { + car.xd *= .95; + car.yd *= .99; + } + } + /* ==== rotation angles ==== */ + car.cosY = Math.cos(Ay); + car.cosX = Math.cos(Ax); + car.sinY = Math.sin(Ay); + car.sinX = Math.sin(Ax); + /* ==== animate images ==== */ + for(var i = 0; i < 8; i++) + { + car.img[i].rotate() + }; + /* ==== loop ==== */ + setTimeout(car.run, 16); + }, + + /* ==== mouse mov ==== */ + mouse : function (e) { + this.xm = e.clientX; + this.ym = -e.clientY; + if(this.drag){ + var homeboy = this.img + this.xd = this.xm - this.xmb; + this.yd = this.ym - this.ymb; + } + this.xmb = this.xm; + this.ymb = this.ym; + }, + + /* ==== dim screen ==== */ + resize : function () { + car.nw = car.scr.offsetWidth; + car.nh = car.scr.offsetHeight; + }, + + /* ==== init script ==== */ + init : function () { + /* ==== window mousemove event ==== */ + document.onmousemove = function (e) { + if (window.event) e = window.event; + car.mouse(e); + } + /* ==== window onresize event ==== */ + onresize = car.resize; + /* ==== init images ==== */ + this.scr = document.getElementById('screen'); + var img = this.scr.getElementsByClassName('images'); + this.img = []; + car.resize(); + var k = 0; + + for(var xi = -1; xi <= 1; xi+=2) { + for(var yi = -1; yi <= 1; yi+=2) { + for(var zi = -1; zi <= 1; zi+=2) { + var o = img[k++] + /* ==== replace images by canvas ==== */ + if (document.createElement("canvas").getContext) { + var src = o; + o = document.createElement("canvas"); + if (k<=8){ + o.id = img[k-1].getAttribute('src')} + o.canvas = true; + /* ==== flip function ==== */ + o.flip = function (fx, fy) { + var context = this.getContext("2d"); + context.translate(fx<0?this.w:0, fy<0?this.h:0); + context.scale(fx, fy); + context.drawImage(this.img, 0, 0, this.w, this.h); + } + o.img = src; + this.scr.appendChild(o); + } + /* ==== HTML Objects ==== */ + this.img.push(o); + o.css = o.style; + o.x3d = xi; + o.y3d = yi; + o.z3d = zi; + o.py = 0; + o.px = 0; + o.onselectstart = function () { return false; } + o.ondrag = function () { return false; } + o.onmousedown = function () { + car.drag = true; + car.xd = 0; + car.yd = 0; + this.css.cursor = "move"; + $('canvas').css('border-color','black') + // document.getElementById('error').innerHTML = this.getAttribute('id').toString() + car.ref = this.getAttribute('id').toString() + $(this).css('border-color','red'); + return false; + + } + o.onmouseout = function () {car.drag = false; this.css.cursor = "pointer"; return false; } + o.onmouseup = function () {car.drag = false; this.css.cursor = "pointer"; return false; } + o.rotate = function () { + /* ==== trigo ==== */ + var tz = this.z3d * car.cosY - this.x3d * car.sinY; + this.x3d = this.z3d * car.sinY + this.x3d * car.cosY; + this.z3d = this.y3d * car.sinX + tz * car.cosX; + this.y3d = this.y3d * car.cosX - tz * car.sinX; + var zf = 1 / (this.z3d / 10 + 1); + var x2d = this.x3d * zf * car.nw * .2; + var y2d = this.y3d * zf * car.nh * .2; + var w2d = Math.abs(x2d * 1.6); + var h2d = Math.abs(y2d * 1.6); + if (this.loaded) { + /* ==== HTML animation ==== */ + this.css.left = Math.round(car.nw * .5 - x2d - w2d * .5) + 'px'; + this.css.top = Math.round(car.nh * .5 - y2d - h2d * .5) + 'px'; + this.css.width = Math.round(w2d) + 'px'; + this.css.height = Math.round(h2d) + 'px'; + this.css.zIndex = Math.round(zf * 100); + /* ==== flipv ==== */ + if ((y2d < 0) != this.py) { + this.py = (y2d < 0); + if (this.canvas) + this.flip(1, -1); + else if (this.filters) + this.filters[1].enabled = (y2d < 0) ? "true" : "false"; + } + /* ==== fliph ==== */ + if ((x2d < 0) != this.px) { + this.px = (x2d < 0); + if (this.canvas) + this.flip(-1, 1); + else if (this.filters) + this.filters[0].enabled = (x2d < 0) ? "true" : "false"; + } + } else { + /* ==== load image ==== */ + if ((this.canvas && this.img.complete) || this.complete) { + this.loaded = true; + if (this.canvas) { + this.w = this.img.width; + this.h = this.img.height; + this.width = this.w; + this.height = this.h; + var context = this.getContext("2d"); + context.drawImage(this.img, 0, 0, this.w, this.h); + } + } + } + } + } + } + } + this.run(); + } +} +</script> +</head> + +<body> + + <div id='curtain'> + <div id='details'> +<span id="info">BLAH BLAH BLAH</span> +<img id='imagedetail'></img> + </div> +</div> +<div id="screen"> + <div id="b1"></div> + <div id="b2">WELCOME TO THE PHOTOBLASTER GREAT GRIDS GALLERY...THESE ARE RECENT GRIDS CREATED BY USING <a href='http://asdf.us/imgrid'>HTTP://ASDF.US/IMGRID</a></div> + <div id="b3"> + <br> + </div> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg1.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg2.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg3.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg4.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg5.png"> + <img class='images' alt="by Jeremy Matthew Daly" src="images/gg6.png"> + <img class='images' alt="by Pepper" src="images/gg7.png"> + <img class='images' alt="" src="images/gg6.png"> +</div> +<div id='error' style= 'color:red; font-size:40px; height:100px;width100px;position:fixed;left:100px; top:20px;'>CLICK TO ENLARGE</div> +<script type="text/javascript"> + /* ==== start ==== */ + setTimeout(function() { + car.init(); + }, 1000); +</script> + +<script type='text/javascript'> +var imagedict = { + "images/gg1.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg2.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg3.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg4.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg5.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg6.png":"By Jeremy<br>Matthew<br>Daly", + "images/gg7.png":"By Pepper" + } +function centerimage() + { + $('#imagedetail').load(function() + { + refpoint = $('#imagedetail').attr('src') + newrefpoint = imagedict[refpoint] + $('#info').html(newrefpoint) + detailwidth = $('#imagedetail').width() + detailheight = $('#imagedetail').height() +// theborder = $('#imagedetail').css('border-width') + theborder = 100 + centerpointone = parseFloat(detailwidth)/2 + centerpointtwo = parseFloat(detailheight)/2 + leftpos = (window.innerWidth/2-centerpointone-theborder).toString()+'px' + toppos = (window.innerHeight/2-centerpointtwo-theborder).toString()+'px' + $('#imagedetail').css({top:toppos,left:leftpos}) + }) + } +function curtainfunction() + { + centerimage() + $('#curtain').toggle(); + $('#imagedetail').attr('src',car.ref); + } +$('#curtain').click(function(){$('#curtain').toggle("slow")}) + +$('#error').click(function() + { + curtainfunction() + }) +$('canvas').dblclick(function(){curtainfunction()}) +</script> +</body> +</html> + diff --git a/frontend/imgrid/greatgrids/tinybackground.gif b/frontend/imgrid/greatgrids/tinybackground.gif Binary files differnew file mode 100755 index 0000000..15c7347 --- /dev/null +++ b/frontend/imgrid/greatgrids/tinybackground.gif diff --git a/frontend/imgrid/greatgrids/tinybackground2.gif b/frontend/imgrid/greatgrids/tinybackground2.gif Binary files differnew file mode 100755 index 0000000..7004d5d --- /dev/null +++ b/frontend/imgrid/greatgrids/tinybackground2.gif diff --git a/frontend/imgrid/img/athenafinal.gif b/frontend/imgrid/img/athenafinal.gif Binary files differnew file mode 100755 index 0000000..19e0d58 --- /dev/null +++ b/frontend/imgrid/img/athenafinal.gif diff --git a/frontend/imgrid/img/background.gif b/frontend/imgrid/img/background.gif Binary files differnew file mode 100755 index 0000000..ac28d8d --- /dev/null +++ b/frontend/imgrid/img/background.gif diff --git a/frontend/imgrid/img/blackplant.png b/frontend/imgrid/img/blackplant.png Binary files differnew file mode 100755 index 0000000..e78b547 --- /dev/null +++ b/frontend/imgrid/img/blackplant.png diff --git a/frontend/imgrid/img/blackplant2.png b/frontend/imgrid/img/blackplant2.png Binary files differnew file mode 100755 index 0000000..e4f8096 --- /dev/null +++ b/frontend/imgrid/img/blackplant2.png diff --git a/frontend/imgrid/img/blackplant3.png b/frontend/imgrid/img/blackplant3.png Binary files differnew file mode 100755 index 0000000..4052e9d --- /dev/null +++ b/frontend/imgrid/img/blackplant3.png diff --git a/frontend/imgrid/img/bros.png b/frontend/imgrid/img/bros.png Binary files differnew file mode 100755 index 0000000..30f48fb --- /dev/null +++ b/frontend/imgrid/img/bros.png diff --git a/frontend/imgrid/img/facebookimage.png b/frontend/imgrid/img/facebookimage.png Binary files differnew file mode 100755 index 0000000..9ba4068 --- /dev/null +++ b/frontend/imgrid/img/facebookimage.png diff --git a/frontend/imgrid/img/generating.gif b/frontend/imgrid/img/generating.gif Binary files differnew file mode 100755 index 0000000..441abe7 --- /dev/null +++ b/frontend/imgrid/img/generating.gif diff --git a/frontend/imgrid/img/harrisbros.png b/frontend/imgrid/img/harrisbros.png Binary files differnew file mode 100755 index 0000000..47366e1 --- /dev/null +++ b/frontend/imgrid/img/harrisbros.png diff --git a/frontend/imgrid/img/imgrid.png b/frontend/imgrid/img/imgrid.png Binary files differnew file mode 100755 index 0000000..cfdae05 --- /dev/null +++ b/frontend/imgrid/img/imgrid.png diff --git a/frontend/imgrid/img/oldathena.gif b/frontend/imgrid/img/oldathena.gif Binary files differnew file mode 100755 index 0000000..b05605c --- /dev/null +++ b/frontend/imgrid/img/oldathena.gif diff --git a/frontend/imgrid/img/test.gif b/frontend/imgrid/img/test.gif Binary files differnew file mode 100755 index 0000000..ebfbdeb --- /dev/null +++ b/frontend/imgrid/img/test.gif diff --git a/frontend/imgrid/img/thatbackground.gif b/frontend/imgrid/img/thatbackground.gif Binary files differnew file mode 100755 index 0000000..e52cfdc --- /dev/null +++ b/frontend/imgrid/img/thatbackground.gif diff --git a/frontend/imgrid/index.html b/frontend/imgrid/index.html new file mode 100755 index 0000000..0507e4f --- /dev/null +++ b/frontend/imgrid/index.html @@ -0,0 +1,484 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> +<html> +<!-- + * pepper * + *** and *** + **** JMD **** + * ****** internet CHAMPIONS ****** * + * *************************************** * + ** * ______*______ * ** + ***** * ______*______ * ***** + ******* ______*______ ******* + *** **** * **** *** + ****** *oo******* *** *******oo* ****** + * *o********* *********o* * + * * * * + * * _ _ * * + * * -_ _- * * + * * -_ _- * * + * * -___- * * + * * + ********************* + * ** ** * + * ** ** * + * _-----_ * + ********* + +--> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta name="description" content="IMGRID - stretch images from the web in 3 dimensions, draw lines and make drop shadows" > + <meta name="keywords" content="photoblaster, 3D" > + <meta name=Author content="Pepper - 2011 www.facebook.com/AAAFFF"> + <link rel="shortcut icon" href="http://asdf.us/imgrid/greatgrids/grids.ico"> + <link rel="image_src" href="http://asdf.us/imgrid/greatgrids/images/gg7.png" > + <html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml"> + <meta property="og:title" content="imgrid" /> + <meta property="og:type" content="website" /> + <meta property="og:site_name" content="IMGRID - stretch images from the web in 3 dimensions, draw lines and make drop shadows" /> + <meta property="og:image" content="http://asdf.us/imgrid/img/facebookimage.png"/> + <meta property="fb:admins" content="100001923956223,1709246"/> + <title>IMGRID - stretch images from the web in 3 dimensions, draw lines and make drop shadows</title> + + <link rel="stylesheet" href="css/general.css" type="text/css" media="screen" /> + <link href='css/jquery-ui-1.8.16.custom.css' rel='stylesheet' type='text/css' /> + <link href='css/cssreset.css' rel='stylesheet' type='text/css'/> + <link href='http://fonts.googleapis.com/css?family=Varela+Round' rel='stylesheet' type='text/css'> + <style type='text/css'> + body + { + font-family: 'Varela Round', sans-serif; + font-size:10pt; + } + h1 + { + font-size:18px; + width:50%; + margin:10px; + padding:10px; + } + #flatcontrols + { + width:40%; + margin:10px; + padding:10px; + } + .gridadj,.background,.dimensions,.links + { + display:none; + } + #thegrid,#thedimensions,#thebackground,#links + { + background-color:whitesmoke; + margin-left:20px; + -moz-box-shadow: 0px 0px 9px 3px #8B7D7B; + -webkit-box-shadow: 0px 0px 9px 3px #8B7D7B; + box-shadow: 0px 0px 9px 3px #8B7D7B; + } + #links + { + line-height:2; + padding:10px; + } + .results + { + display:none; + position:relative; + } + #result + { + position:fixed; + left:50%; + top:20px; + padding-right:15px; + } + #output-img img + { + max-height:70%; + max-width:100%; + } + #output-url + { + width:100%; + } + .slider + { + background-color:#eee5de; + display:inline-block; + width:50%; + } + #opacity-slider, #spacing-slider + { + width:100%; + display:inline-block; + margin-right:0; + margin-left:0; + } + input + { + width:70px; + } + .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default + { + background-color:#555; + } + .urlinput + { + width:60%; + } + a + { + background-color:white; + max-width:100px; + } + a:link + { + color: black; + } + a:visited + { + COLOR: black; + } + a:hover + { + COLOR: black; + } + a:active + { + COLOR: black; + } + table td + { + padding:4px; + } + table tr + { +// border: solid 2px; + } + .gridmore, .backgroundmore, .dimensionsmore, .linksmore + { + cursor:pointer; + } + #gridplug,#backgroundplug,#dimensionsplug,#linksplug + { + font-size:20px; + text-align:center; + } +button { + background: white; + cursor:pointer; + color: #000000; + font-size: 18px; + font-family: Georgia, serif; + text-decoration: none; + vertical-align: middle; + } +.button:hover { + cursor:pointer; + border-top-color: #78e072; + background: #78e072; + color: #000000; + } +table + { + empty-cells:show; + } +.generate + { + position:absolute; + left:320px; + top:240px; + -moz-box-shadow: 0px 0px 9px 3px pink; + -webkit-box-shadow: 0px 0px 9px 3px pink; + box-shadow: 0px 0px 9px 3px pink; + } + </style> +</head> +<body> + <div id='intro' style='position:absolute;top:0px;left:0px;width:100%;height:100%;background-image:url(background.gif);'><div style="background-image:url(background.gif); z-index:1000; height:inherit; width:inherit; position:fixed; left:50%; top:20px"> + <img src="img/athenafinal.gif"></img> + </div></div> + +<a href="http://asdf.us/imgrid/index.html" style:'cursor:pointer'><img src='img/bros.png' style='position:fixed; top:-200px; z-index:-100;'></img> +<div style='font-size:30px;'><img style="width:500px" src="img/imgrid.png"></img></div></a> +<div style="font-size:12px;margin-left:20px;margin-bottom:20px;">IMGRID - stretch images from the web in 3 dimensions, draw lines and make drop shadows +<br> +hit enter or click GENERATE to get your perspective-plane + +<span id='genbutton'><button id='generate'>GENERATE</button></span> +</div> + +<form id='theform'> + <div id="flatcontrols"> +<table> +<tr><td class='dimensionsmore'>DIMENSIONS</td> + + <td> <div id='dimensionsplug' class='dimensionsmore'>+</div></td></tr> + </table> + <div id='thedimensions'> + <table class='dimensions'> + <tr><td>HEIGHT</td> + <td> <input id='img-height' type='text' value='500'><span style="font-size:12px">PX</span></input></td></td> + <tr><td>WIDTH</td> + <td><input id='img-width' type='text' value='700'><span style="font-size:12px">PX</span></input></td></td> + <tr style="line-height:10px"><td> </tr><td> + </table> +<table style="width:100%" class="dimensions"> + <tr><td>SWING <input id='swing' type='text' value='0'></input></td></tr> + <tr id="swingslider" class="slider"></tr> + <tr><td>TILT <input id='tilt' type='text' value='0'></input></td></tr> + <tr id="tiltslider" class="slider"></tr> + <tr><td>ROLL <input id='roll' type='text' value='0'></input></td></tr> + <tr id="rollslider" class="slider"></tr> + <tr><td>ZOOM  (in/out)  <input id='zoom' type='text' value='0'></input></td></tr> + <tr id="zoomslider" class="slider" value='0'></tr> + +</table> +<table class="dimensions"> + <tr><td> </td></tr> + <tr><td>CROP WHITESPACE</td><td><input type="checkbox" id="trim" value="false"></input></td></tr> + <tr><td> </td></tr> + </table> +<table class='dimensions'> + <tr><td>IMAGE FORMAT</td><td> + <select id='format'> + <option selected='selected' value=''></option> + <option value='png'>PNG</option> + <option value='gif'>GIF</option> + <option value='jpg'>JPG</option> + </select></td></tr></table> + </div> +<table> +<tr><td class='gridmore'>GRID AND IMAGE</td> + + <td> <div id='gridplug' class='gridmore'>+</div></td></tr> + </table> + + <div id='thegrid'> +<table class='gridadj'> + <tr><td>USE IMAGE INSTEAD OF GRID</td> + <td><input type="text" class="urlinput" type="text" id="imageinstead" value="">IMG URL eg:http://ww...</input></td> + </tr></table> + <table class='gridadj'> + <tr><td>GRID THICKNESS:</td> + <td><input id='line-thickness' type='text' value='1'></input></td><td>PX</td> + <td style="width:140px; height: .8em; margin:0; padding:0;" class="slider" style="margin:0;padding:0;" id="line-thickness-slider"></td> + </tr> + + <tr class='gridadj'><td>GRID COLOR:</td> + <td><input id='line-color' type='text' class="color_input line-color" value='MISTYROSE4'></input></td> + <td><a href="http://asdf.us/im/colors" class="color_input line-color" target="_blank">COLOR LIST</a></td> + </tr> + + </table> + <table> + <tr class='gridadj'> + <td>GRID OPACITY: </td> + <td><input id='line-opacity' type='text' value='1'></input></td> + <td style="width:140px; height: .8em; margin:0; padding:0;" class="slider" style="margin:0;padding:0;"id="opacity-slider"></td> + </tr> + + <tr class='gridadj'> + <td>GRID SPACING: </td> + <td><input id='line-spacing' type='text' value='0'></input></td> + <td class="slider" style="margin:0;padding:0;" id="spacing-slider"></td></tr> + + <tr class='gridadj'><td>USE ONLY VERTICAL LINES</td><td><input type="checkbox" id="v-lines" value="false"></input></td></tr> + + <tr class='gridadj'><td>USE ONLY HORIZONTAL LINES</td><td><input type="checkbox" id="h-lines" value="false" ></input></td></tr> + </table> +<table class='gridadj'><td>GRID BACKGROUND COLOR <input type="text" class="color_input bg-color" id="bg-color" value="transparent"></td> + <td><a href="http://asdf.us/im/colors" class="color_input bg-color" target="_blank">COLOR LIST</a></input></td> + + </table> + <table class='gridadj'> + <tr><td>OR GRID BACKGROUND IMAGE</td> + <td><input class="urlinput" type="text" id="bg-image" value="">IMG URL eg:http://ww...</input></td></tr> + </table> + +<table class='gridadj'> + <tr><td>GRID-TRANSITION</td> + <td><select id="transition"> + <option selected="selected" value='background'>none</option> + <option value="dither">dithered</option> + <option value="random">noise</option> + <option value="tile">infinite</option> + <option value="edge">extended-edge</option> + </select></td></tr> + +</table> + <table class='gridadj'> + <tr><td>DROP SHADOW</td><td><input type='checkbox' id='shadow' value='false'</input></td></tr> + + +</table> +</div> + + + <table style='width:150px;'> + <tr><td class="backgroundmore">BACKGROUND</td> + <td><div id="backgroundplug" class="backgroundmore">+</div></td> + </tr> + </table> +<div id='thebackground'> + <table class='background'><td>BACKGROUND COLOR</td><td><input type="text" value="transparent" class="color_input planebgcolor" id="planebgcolor"></input></td> + <td><a href="http://asdf.us/im/colors" class="color_input planebgcolor" target="_blank">COLOR LIST</a></td> </table> + <table class="background"> + + <tr><td>OR BACKGROUND IMAGE</td><td><input class='urlinput' type="text" value="" id="planebgimage">IMG URL eg:http://ww...</input></td></tr> + </table> + + <table class='background'><tr><td>SKYCOLOR</td><td><input type="text" class="color_input skycolor" value="none" id="skycolor">for the area above the horizon-line</input></td> + <td><a href="http://asdf.us/im/colors" class="color_input skycolor" target="_blank">COLOR LIST</a></td> + </tr> +</table> + +</div> +<table> + <tr><td> </td></tr> + <tr><td>USERNAME</td><td><input type=text value="" id='username'></input></td><td><div class='linksmore' id='linksplug'>+</div></td> +<td> <div id='links' class='links'> + <a class='links' href="http://asdf.us/im/gallery">PHOTOBLASTER GALLERY</a><br> + <a class='links' href="http://asdf.us/imgrid/greatgrids/">THE GREAT GRIDS GALLERY</a><br> + <a class='links' href="http://asdf.us/im">MAIN PHOTOBLASTER EDITOR</a></br> +<div id="fb-root" style="position:fixed; bottom:10px; right:10px;background-color: transparent;"></div><script src="http://connect.facebook.net/en_US/all.js#appId=236917449658413&xfbml=1"></script><fb:like href="http://asdf.us/im/" send="false" width="347" show_faces="false" colorscheme="light" font="" style="background-color: transparent;"></fb:like> + + </div> + +</td></tr></table> + +<br> + + +</div> + +</div> + +</form> +<div id='result'> + <span id="output-cmd" class='results'> +</span> + <span id="output-img" class='results'></span> + <input id="output-url" class='results'></input> + <div id="output-info" class='results'></div> +</div> + + + + +<span class='copyright' style="position:fixed; bottom:10px; left:10px;">COPYRIGHT 2011 PEPPER</span><a href='http://asdf.us/imgrid/greatgrids/index.html'><img class='copyright' style='display:inline; position:fixed; bottom:10px; left:290px; width:100px' src="img/blackplant.png"></img></a> +<script type="text/javascript" src="js/jquery-1.6.4.min.js"></script> +<script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script> +<script type="text/javascript" src="/im/colors/js/jquery.remember-state.js"></script> +<script type="text/javascript" src="/im/colors/js/jquery.fancybox.js?v=2.1.5"></script> +<link rel="stylesheet" type="text/css" href="/im/colors/css/jquery.fancybox.css?v=2.1.5" media="screen" /> +<script type="text/javascript" src="js/colors_iframe.js"></script> +<script type='text/javascript'> +$(document).ready(function() + { + $('#intro').fadeOut(1000,function() + { + $('#intro').remove() + }) + }); +</script> +<script type="text/javascript" src="js/sliders.js"></script> +<script type="text/javascript" src="js/imgrid-main.js"></script> +<script type='text/javascript'> + linksclicked = 'false'; + $('#linksplug').click(function(){ + $('.links').toggle('300') + + if(linksclicked === 'false'){ + $('#linksplug').html('-') + $('.links').css({'min-width':'275px','word-space':'nowrap','min-height':'100px'}) + linksclicked = 'true' + } + else{ + $('#linksplug').html('+') + $('#links').css('padding','0px'); + linksclicked = 'false' + } + $('.copyright').hide() + $("body,html").scrollTop(5000); + }) + + gridmoreclicked = 'false'; + $('.gridmore').click(function(){ + $('.gridadj').toggle('300') + + if(gridmoreclicked === 'false'){ + $('#gridplug').html('-') + $('#thegrid').css('padding','5px'); + gridmoreclicked = 'true' + $("html,body").scrollTop(1000); + } + else{ + $('#gridplug').html('+') + $('#thegrid').css('padding','0px'); + gridmoreclicked = 'false' + } + $('.copyright').hide() + }) + + + + backgroundmoreclicked = 'false'; + $('#backgroundplug').html('+'); + $('.backgroundmore').click(function(){ + $('.background').toggle('300') + if(backgroundmoreclicked === 'false'){ + $('#thebackground').css('padding','5px'); + $('#backgroundplug').html('-') + $("html,body").scrollTop(1000); + backgroundmoreclicked = 'true' + } + else{ + $('#backgroundplug').html('+') + $('#thebackground').css('padding','0px'); + backgroundmoreclicked = 'false' + } + $('.copyright').hide() + }); + + + dimensionsmoreclicked = 'false'; + $('#dimensionsplug').html('+'); + $('.dimensionsmore').click(function(){ + $('.dimensions').toggle('300') + if(dimensionsmoreclicked === 'false'){ + $('#dimensionsplug').html('-') + $('#thedimensions').css('padding','5px'); + $("html,body").scrollTop(1000); + dimensionsmoreclicked = 'true' + } + else{ + $('#dimensionsplug').html('+') + $('#thedimensions').css('padding','0px'); + dimensionsmoreclicked = 'false' + } + $('.copyright').hide() + }); + + + $('#bg-color').click(function(){ + nonecheck = $('#bg-color').val() + if(nonecheck === 'none') + { + $('#bg-color').val('') + } + }); + function clearbg() + { + $('#planebgcolor').val(""); + } + $('#planebgimage, #planebgcolor').click(function(){clearbg()}); + $('#planebgcolor').click(function(){clearbg}); +$('#line-color, #bg-color, #skycolor').click(function(){ + $(this).val(""); +}) +</script> +<script type="text/javascript" src="http://asdf.us/js/pbembed.js"></script> +</body> +</html> diff --git a/frontend/imgrid/indexOLD.html b/frontend/imgrid/indexOLD.html new file mode 100755 index 0000000..0e72d37 --- /dev/null +++ b/frontend/imgrid/indexOLD.html @@ -0,0 +1,140 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> +<html> +<!-- + __ __ __ __ __ __ __ +/_/\/\ /_/\/\ /_/\/\ /_/\/\ /_/\/\ /_/\/\ /_/\/\ +\_\ / \_\ / \_\ / \_\ / \_\ / \_\ / \_\ / +/_/ \ /_/ \ /_/ \ /_/ \ /_/ \ /_/ \ /_/ \ +\_\/\ \ \_\/\ \ \_\/\ \ \_\/\ \ \_\/\ \ \_\/\ \ \_\/\ \ + \_\/ \_\/ \_\/ \_\/ \_\/ \_\/ \_\/ +--> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta name="description" content="IMGRID A 3D GRID-PLANE GENERATOR" > + <meta name="keywords" content="photoblaster, 3D" > + <meta name=Author content="Pepper Dreamteamer - 2011 www.facebook.com/AAAFFF"> + <link rel="shortcut icon" href="http://asdf.us/imgrid/favicon.ico"> + <link rel="image_src" href="http://vfile.com/public/img/1.png" > + <!--<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">--> + <meta property="og:title" content="imgrid" /> + <meta property="og:type" content="website" /> + <meta property="og:url" content="http://asdf.us/imgrid" /> + <meta property="og:site_name" content="IMGRID - A 3D-GRID-PLANE GENERATOR" /> + <title>IMGRID - a 3D GRID-PLANE GENERATOR</title> + + <link rel="stylesheet" href="general.css" type="text/css" media="screen" /> + <link href="colorpixx.css" rel="stylesheet" type="text/css" /> + <link href='main2.css' rel='stylesheet' type='text/css' /> + <link href='jquery-ui-1.8.16.custom.css' rel='stylesheet' type='text/css' /> + <link href='http://fonts.googleapis.com/css?family=Quicksand' rel='stylesheet' type='text/css'> + <link href='http://fonts.googleapis.com/css?family=Ubuntu+Condensed' rel='stylesheet' type='text/css'> + <link href='http://fonts.googleapis.com/css?family=Terminal+Dosis' rel='stylesheet' type='text/css'> + +</head> +<body> +<!--popupcode--> + <div id="popupContact"> + <a id="popupContactClose">x</a> + <applet code="org.jdesktop.applet.util.JNLPAppletLauncher" + width=800 + height=600 + archive="dist/deployment/v1/jar/applet-launcher.jar, + dist/deployment/v1/jar/gluegen-rt.jar, + dist/deployment/v1/jar/jogl.all.jar, + dist/3dmap.jar"> + <param name="codebase_lookup" value="false"> + <param name="subapplet.classname" value="com.scannerjammer.applet.heightmap.applet.Simple3DLandscapeApplet"> + <param name="subapplet.displayname" value="3D Map"> + <param name="noddraw.check" value="true"> + <param name="progressbar" value="true"> + <param name="jnlpNumExtensions" value="1"> + <param name="jnlpExtension1" + value="dist/deployment/v1/jogl-awt.jnlp"> + <param name="java_arguments" value="-Dsun.java2d.noddraw=true"> + <param name="jnlp_href" value="dist/3dmap.jnlp"> +</applet> + </div> + <div id="backgroundPopup"></div> +<!--endpopup code--> + + +<h1>IMGRID: A 3D-GRID-PLANE GENERATOR FROM PHOTOBLASTER</h1> +<h2 id="use">USE:</h2> +<div id="controls"> +<h2>I. THE FLAT PLANE +<span id="swingleft" >II. THE 3D PLANE<br> CLICK TO OPEN JAVA APPLET</span></h2> +<div id="flatcontrols"> +<h3>CHOOSE AN IMAGE SIZE: HEIGHT<input id='img-height' type='text' value='400'><span style="font-size:12px">PX</span></input>WIDTH<input id='img-width' type='text' value='400'><span style="font-size:12px">PX</span></input></h3> +<h3>CHOOSE THE LINE THICKNESS:<input id='line-thickness' type='text' value='1'><span style="font-size:12px">PX</span></input></h3> +<h3>CHOOSE A LINE COLOR:<input id='line-color' type='text' value='BLACK'><span style="font-size:12px">PX</span></input></h3> + +<h3>ADJUST LINE OPACITY: <input id='line-opacity' type='text' value='1'></input> +<div class="slider" id="opacity-slider"></div></h3> +<h3>ADJUST SPACING: <input id='line-spacing' type='text' value='0'><span style='font-size:12px'>PX</span></input> +<div class="slider" id="spacing-slider"></div></h3> +<h4>USE ONLY VERTICAL LINES<input type="checkbox" id="v-lines" value="false"></input></h4> +<h4>USE ONLY HORIZONTAL LINES<input type="checkbox" id="h-lines" value="false" ></input></h4> +<h4>ADD A SHADOW<input type='checkbox' id='shadow' value='false'</input></h4> +<h3>CHOOSE BACKGROUND OF GRID:</h3> +<h4>TRANSPARENT? (THE DEFAULT)<input type="checkbox" id="bgtransparent" value="true" checked="checked"></input></h4> +<h4>USE AN IMAGE?<input class="urlinput" type="text" id="bg-image" value="">IMG URL eg:http://ww...</input></h4> +<h4>USE A COLOR?<input type="text" id="bg-color" value=""><a href="http://asdf.us/im/colors.html" target="_blank">SEE COLOR LIST</a></input></h4> +<h3>ADJUST WITHIN THE 3D PLANE:</h3> +<h4>USE IMAGE INSTEAD OF GRID<input type="text" class="urlinput" type="text" id="imageinstead" value="">IMG URL eg:http://ww...</input></h4> +<h4>CHOOSE A BACKGROUND COLOR<input type="text" value="transparent" id="planebgcolor"><a href="http://asdf.us/im/colors.html" target="_blank">SEE COLOR LIST</a></input></h4> +<h4>OR USE A BACKGROUND IMAGE</h4><input type="text" value="" id="planebgimage">IMG URL eg:http://ww...</input></h4> +<h4>CHOOSE A SKYCOLOR</h4><input type="text" value="none" id="skycolor">for the area above the horizon-line</input></h4> +<h4>ADD A DITHERED-TRANSITION</h4><input type="checkbox" id="dither"></input></h4> +<h3>SWING<input id='swing' type='text' value='0'></input> +<div id="swingslider" class="slider"></div></h3> +<h3>TILT<input id='tilt' type='text' value='0'></input> +<div id="tiltslider" class="slider"></div></h3> +<h3>ROLL<input id='roll' type='text' value='0'></input> +<div id="rollslider" class="slider"></div></h3> +<h3>ZOOM<input id='zoom' type='text' value='0'></input> +<div id="zoomslider" class="slider" value='0'></div></h3> +<h3>TRIM IT<input type="checkbox" id="trim" value="false"></input></h3> +<h4>ADJUST THE IMAGE FORMAT<select id='format'> + <option selected='selected' value='png'>PNG</option> + <option value='gif'>GIF</option> + <option value='jpg'>JPG</option> +</select></h4> +<h3><input type=text value="" id='username'>← ENTER YOUR NAME if you want </input></h4> +<button id="generate">GENERATE</button> +<input type="reset" value="Reset Form"> +</div> +</div> +<span id="output-cmd" style="background-color:pink; position:absolute; right:70px; top:50px;">click generate or hit enter to get your 2D plane</span> +<span id="output-img" style="background-color:pink; position:absolute; right:300px; top:70px;"></span> +<div id="output-url" style="background-color:pink; position:absolute; right:300px; top:90px;"></div> +<div id="result" style="background-color:pink; position:absolute; right:300px; top:130px;"></div> +<div id="colorlist" style="background-color:red; height:600px; width:300px; position:fixed; top:20px; right:10%; z-index:20px;"></div> +<h5>COPYRIGHT 2011 PEPPER DREAMTEAMER</h5> + + +<div id="intro" style="background-color:white"> +<!--<div id="bg"> + <div><table cellspacing=0 cellpadding=0><tr><td> + <img src="background.gif" /> + </td></tr></table></div> +</div>--> +<div id="athena"><img src="athenafinal.gif"></img></div> +</div> +<script type="text/javascript" src="jquery-1.6.4.min.js"></script> +<script type="text/javascript" src="jquery-ui-1.8.16.custom.min.js"></script> +<script type="text/javascript" src="sliders.js"></script> +<script type="text/javascript">$('#intro').remove();</script> +<!--<script type="text/javascript" src="intro.js">--> +<script type="text/javascript" src="main.js"></script> +<script src="popup.js" type="text/javascript"></script> +<script type="text/javascript" src="picker.js"></script> + + + + + + + +</body> +</html> diff --git a/frontend/imgrid/indexnewold.html b/frontend/imgrid/indexnewold.html new file mode 100755 index 0000000..bcb5cd3 --- /dev/null +++ b/frontend/imgrid/indexnewold.html @@ -0,0 +1,336 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> +<html> +<!-- + * CHICAGO * + *** BULLS *** + **** NBA **** + * ****** CHAMPIONS ****** * + * *************************************** * + ** * ______*______ * ** + ***** * ______*______ * ***** + ******* ______*______ ******* + *** **** * **** *** + ****** *oo******* *** *******oo* ****** + * *o********* *********o* * + * * * * + * * _ _ * * + * * -_ _- * * + * * -_ _- * * + * * -___- * * + * * + ********************* + * ** ** * + * ** ** * + * _-----_ * + ********* + +--> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta name="description" content="IMGRID A 3D GRID-PLANE GENERATOR" > + <meta name="keywords" content="photoblaster, 3D" > + <meta name=Author content="Pepper Dreamteamer - 2011 www.facebook.com/AAAFFF"> + <link rel="shortcut icon" href="http://asdf.us/imgrid/favicon.ico"> + <link rel="image_src" href="http://vfile.com/public/img/1.png" > + <!--FACEBOOK<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">--> + <meta property="og:title" content="imgrid" /> + <meta property="og:type" content="website" /> + <meta property="og:url" content="http://asdf.us/imgrid" /> + <meta property="og:site_name" content="IMGRID - A 3D-GRID-PLANE GENERATOR" /> + <title>IMGRID - a 3D GRID-PLANE GENERATOR</title> + + <link rel="stylesheet" href="general.css" type="text/css" media="screen" /> + <link href="colorpixx.css" rel="stylesheet" type="text/css" /> + <link href='main2.css' rel='stylesheet' type='text/css' /> + <link href='jquery-ui-1.8.16.custom.css' rel='stylesheet' type='text/css' /> + <link href='cssreset.css' rel='stylesheet' type='text/css'/> + <style type='text/css'> + body + { + font-family:georgia, Arial; + font-size:10pt; + } + h1 + { + font-size:18px; + // font-weight:bold; + width:50%; + margin:10px; + padding:10px; +// box-shadow: 0px 0px 9px 4px #8B7D7B; + } + #flatcontrols + { + // background-color:whitesmoke; + // box-shadow: 0px 0px 9px 3px #00EEEE; + width:40%; + margin:10px; + padding:10px; + } + .lineadj{display:none;} + .threedadj{display:none;} + .gridbgadj{display:none;} + .imageoptions{display:none;} + .results + { + display:none; + position:relative; + z-index:100; + } + .slider + { + background-color:#eee5de; + display:inline-block; + width:50%; + } + #opacity-slider + { + width:100%; + display:inline-block; + margin-right:0; + margin-left:0; + } + input + { + width:70px; + } + .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default + { + background-color:#555; + } + #result + { + position:absolute; + right:20px; + top:10px; + } + #output-url + { + width:100%; + } + .urlinput + { + width:60%; + } + a + { + background-color:#8B8B83; + max-width:100px; + border-style:solid; + border-width:1px; + } + a:link + { + color: gold; + } + a:visited + { + COLOR: mediumspringgreen; + } + a:hover + { + COLOR: #FF0000; + } + a:active + { + COLOR: #00FF00; + } + table td + { + padding:4px; +// border:solid 2px; + } + table tr + { +// border: solid 2px; + } + </style> +</head> +<body> +<!--popupcode--> +<!-- <div id="popupContact"> + <a id="popupContactClose">x</a> + <applet code="org.jdesktop.applet.util.JNLPAppletLauncher" + width=800 + height=600 + archive="dist/deployment/v1/jar/applet-launcher.jar, + dist/deployment/v1/jar/gluegen-rt.jar, + dist/deployment/v1/jar/jogl.all.jar, + dist/3dmap.jar"> + <param name="codebase_lookup" value="false"> + <param name="subapplet.classname" value="com.scannerjammer.applet.heightmap.applet.Simple3DLandscapeApplet"> + <param name="subapplet.displayname" value="3D Map"> + <param name="noddraw.check" value="true"> + <param name="progressbar" value="true"> + <param name="jnlpNumExtensions" value="1"> + <param name="jnlpExtension1" + value="dist/deployment/v1/jogl-awt.jnlp"> + <param name="java_arguments" value="-Dsun.java2d.noddraw=true"> + <param name="jnlp_href" value="dist/3dmap.jnlp"> +</applet> + </div> + <div id="backgroundPopup"></div> +endpopup code--> + + +<h1>IMGRID </h1> +<h2 style="font-size:16px;margin:10px;padding:10px;">A 3D-GRID-PLANE GENERATOR FROM PHOTOBLASTER</h2> + +<!--<h2 id="use">USE:</h2> + <div id="controls"> + <h2>I. THE FLAT PLANE + <span id="swingleft" >II. THE 3D PLANE (forthcoming) + <br> CLICK TO OPEN JAVA APPLET</span></h2>--> + + <div id="flatcontrols"> +<table style="width:100%"> + <tr><td>SWING<input id='swing' type='text' value='0'></input></td></tr> + <tr id="swingslider" class="slider"></tr> + <tr><td>TILT<input id='tilt' type='text' value='0'></input></td></tr> + <tr id="tiltslider" class="slider"></tr> + <tr><td>ROLL<input id='roll' type='text' value='0'></input></td></tr> + <tr id="rollslider" class="slider"></tr> + <tr><td>ZOOM<input id='zoom' type='text' value='0'></input></td></tr> + <tr id="zoomslider" class="slider" value='0'></tr></table><table> + +</table> +<br> + +<table> +<tr><td>3D PLANE</td> + + <td> <button id='threedmore'>OPTIONS</button></td></tr> + </table> + <table> + + <tr class='threedadj'><td>GRID THICKNESS:</td> + <td><input id='line-thickness' type='text' value='1'><span style="font-size:12px">PX</span></input></td></tr> + + <tr class='threedadj'><td>GRID COLOR:</td> + <td><input id='line-color' type='text' value='BLACK'></input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">SEE COLOR LIST</a></td> + </tr> + + + <tr class='threedadj'> + <td>GRID OPACITY: </td> + <td><input id='line-opacity' type='text' value='1'></input></td> + <td class="slider" style="margin:0;padding:0;"id="opacity-slider"></td> + </tr> + + <tr class='threedadj'> + <td>GRID SPACING: </td> + <td><input id='line-spacing' type='text' value='0'><span style='font-size:12px'>PX</span></input></td> + <td class="slider" style="margin:0;padding:0;" id="spacing-slider"></td></tr> + + <tr class='threedadj'><td>USE ONLY VERTICAL LINES</td><td><input type="checkbox" id="v-lines" value="false"></input></td></tr> + + <tr class='threedadj'><td>USE ONLY HORIZONTAL LINES</td><td><input type="checkbox" id="h-lines" value="false" ></input></td></tr> + </table> + + +<table> + <tr class='threedadj'><td>USE IMAGE INSTEAD OF GRID</td> + <td><input type="text" class="urlinput" type="text" id="imageinstead" value="">IMG URL eg:http://ww...</input></td> + </tr></table> + <table> + <tr class='threedadj'><td>DROP SHADOW</td><td><input type='checkbox' id='shadow' value='false'</input></td></tr> + + +</table> + <table> +<tr><td>GRID BACKGROUND:</td> + +<td> <button id='gridbgmore'>OPTIONS</button></td></tr> + <tr class='gridbgadj'><td>TRANSPARENT? (THE DEFAULT)</td><td><input type="checkbox" id="bgtransparent" value="true" checked="checked"></input></td></tr> + <tr class='gridbgadj'><td>USE AN IMAGE?</td> + <td><input class="urlinput" type="text" id="bg-image" value="">IMG URL eg:http://ww...</input></td></tr> + </table><table class='gridbgadj'><td>USE A COLOR?<input type="text" id="bg-color" value=""></td><td><a href="http://asdf.us/im/colors.html" target="_blank">SEE COLOR LIST</a></input></td> + + </table> + + +<table> + <tr class='threedadj'><td>DITHERED-TRANSITION</td> + <td><select id="transition"> + <option selected="selected" value='background'>none</option> + <option value="dither">dithered</option> + <option value="tile">infinite</option> + </select></td></tr> + +</table> + <table> + <tr><td>IMAGE:</td> + <td><button id="imageoptionsmore">OPTIONS</button></td> + </tr> + </table> + <table class='imageoptions'><td>BACKGROUND COLOR</td><td><input type="text" value="transparent" id="planebgcolor"></input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">SEE COLOR LIST</a></td> </table> + <table> + + <tr class='imageoptions'><td>OR BACKGROUND IMAGE</td><td><input class='urlinput' type="text" value="" id="planebgimage">IMG URL eg:http://ww...</input></td></tr> + </table> + + <table><tr class='imageoptions'><td>SKYCOLOR</td><td><input type="text" value="none" id="skycolor">for the area above the horizon-line</input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">SEE COLOR LIST</a></td> + </tr> + <tr class="imageoptions"><td>HEIGHT</td> + <td> <input id='img-height' type='text' value='300'><span style="font-size:12px">PX</span></input></td></td> + + <tr class="imageoptions"><td>WIDTH</td> + <td><input id='img-width' type='text' value='400'><span style="font-size:12px">PX</span></input></td></td></table> +<table> + <tr class="imageoptions"><td>TRIM WHITESPACE</td><td><input type="checkbox" id="trim" value="false"></input></td></tr> + <tr class="imageoptions"><td>IMAGE FORMAT</td><td> + <select id='format'> + <option selected='selected' value='png'>PNG</option> + <option value='gif'>GIF</option> + <option value='jpg'>JPG</option> + </select></td></tr></table> + +<table> + + <tr><input type=text value="" id='username'>← ENTER YOUR NAME if you want </input></tr> +</table> +<table> +<button id="generate">GENERATE</button> + +<!--<input type="reset" value="Reset Form">--> + +</div> + +</div> + +<div id='result'> + <span id="output-cmd" class='results'>click generate or hit enter to get your 2D plane</span> + <span id="output-img" class='results'></span> + <input id="output-url" class='results'></input> + <div id="output-info" class='results'></div> +</div> + +<h5 style="position:fixed; bottom:10px; left:10px;">COPYRIGHT 2011 PEPPER DREAMTEAMER</h5> +<div id="intro" style="background-color:white"> +<!--<div id="bg"> + <div><table cellspacing=0 cellpadding=0><tr><td> + <img src="background.gif" /> + </td></tr></table></div> +</div>--> +<div id="athena"><img src="athenafinal.gif"></img></div> +</div> +<script type="text/javascript" src="jquery-1.6.4.min.js"></script> +<script type="text/javascript" src="jquery-ui-1.8.16.custom.min.js"></script> +<script type="text/javascript" src="sliders.js"></script> +<script type="text/javascript">$('#intro').remove();</script> +<!--<script type="text/javascript" src="intro.js">--> +<script type="text/javascript" src="main.js"></script> +<!--<script src="popup.js" type="text/javascript"></script>--> +<!--<script type="text/javascript" src="picker.js"></script>--> +<script type='text/javascript'> + $('#linemore').click(function(){$('.lineadj').toggle('300')}) + $('#threedmore').click(function(){$('.threedadj').toggle('300')}) + $('#gridbgmore').click(function(){$('.gridbgadj').toggle('300')}) + $('#imageoptionsmore').click(function(){$('.imageoptions').toggle('300')}); +</script> +</body> +</html> diff --git a/frontend/imgrid/indexold.html b/frontend/imgrid/indexold.html new file mode 100755 index 0000000..5c1e27e --- /dev/null +++ b/frontend/imgrid/indexold.html @@ -0,0 +1,322 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> +<html> +<!-- + * CHICAGO * + *** BULLS *** + **** NBA **** + * ****** CHAMPIONS ****** * + * *************************************** * + ** * ______*______ * ** + ***** * ______*______ * ***** + ******* ______*______ ******* + *** **** * **** *** + ****** *oo******* *** *******oo* ****** + * *o********* *********o* * + * * * * + * * _ _ * * + * * -_ _- * * + * * -_ _- * * + * * -___- * * + * * + ********************* + * ** ** * + * ** ** * + * _-----_ * + ********* + +--> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta name="description" content="IMGRID A 3D GRID-PLANE GENERATOR" > + <meta name="keywords" content="photoblaster, 3D" > + <meta name=Author content="Pepper Dreamteamer - 2011 www.facebook.com/AAAFFF"> + <link rel="shortcut icon" href="http://asdf.us/imgrid/favicon.ico"> + <link rel="image_src" href="http://vfile.com/public/img/1.png" > + <!--FACEBOOK<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">--> + <meta property="og:title" content="imgrid" /> + <meta property="og:type" content="website" /> + <meta property="og:url" content="http://asdf.us/imgrid" /> + <meta property="og:site_name" content="IMGRID - A 3D-GRID-PLANE GENERATOR" /> + <title>IMGRID - a 3D GRID-PLANE GENERATOR</title> + + <link rel="stylesheet" href="general.css" type="text/css" media="screen" /> + <link href="colorpixx.css" rel="stylesheet" type="text/css" /> + <link href='main2.css' rel='stylesheet' type='text/css' /> + <link href='jquery-ui-1.8.16.custom.css' rel='stylesheet' type='text/css' /> + <link href='cssreset.css' rel='stylesheet' type='text/css'/> + <style type='text/css'> + body + { + font-family:georgia, Arial; + font-size:10pt; + } + h1 + { + font-size:18px; + width:50%; + margin:10px; + padding:10px; +// box-shadow: 0px 0px 9px 4px #8B7D7B; + } + #flatcontrols + { + // background-color:whitesmoke; + // box-shadow: 0px 0px 9px 3px #00EEEE; + width:40%; + margin:10px; + padding:10px; + } + .lineadj{display:none;} + .threedadj{display:none;} + .gridbgadj{display:none;} + .imageoptions{display:none;} + .results + { + display:none; + position:relative; + z-index:100; + } + .slider + { + background-color:#eee5de; + display:inline-block; + width:50%; + } + #opacity-slider + { + width:100%; + display:inline-block; + margin-right:0; + margin-left:0; + } + input + { + width:70px; + } + .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default + { + background-color:#555; + } + #result + { + position:absolute; + right:20px; + top:10px; + } + #output-url + { + width:100%; + } + .urlinput + { + width:60%; + } + a + { + background-color:#8B8B83; + max-width:100px; + border-style:solid; + border-width:1px; + } + a:link + { + color: gold; + } + a:visited + { + COLOR: mediumspringgreen; + } + a:hover + { + COLOR: #FF0000; + } + a:active + { + COLOR: #00FF00; + } + table td + { + padding:4px; +// border:solid 2px; + } + table tr + { +// border: solid 2px; + } + </style> +</head> +<body> +<!--popupcode--> +<!-- <div id="popupContact"> + <a id="popupContactClose">x</a> + <applet code="org.jdesktop.applet.util.JNLPAppletLauncher" + width=800 + height=600 + archive="dist/deployment/v1/jar/applet-launcher.jar, + dist/deployment/v1/jar/gluegen-rt.jar, + dist/deployment/v1/jar/jogl.all.jar, + dist/3dmap.jar"> + <param name="codebase_lookup" value="false"> + <param name="subapplet.classname" value="com.scannerjammer.applet.heightmap.applet.Simple3DLandscapeApplet"> + <param name="subapplet.displayname" value="3D Map"> + <param name="noddraw.check" value="true"> + <param name="progressbar" value="true"> + <param name="jnlpNumExtensions" value="1"> + <param name="jnlpExtension1" + value="dist/deployment/v1/jogl-awt.jnlp"> + <param name="java_arguments" value="-Dsun.java2d.noddraw=true"> + <param name="jnlp_href" value="dist/3dmap.jnlp"> +</applet> + </div> + <div id="backgroundPopup"></div> +endpopup code--> + + +<h1>IMGRID </h1> +<h2 style="font-size:16px;margin:10px;padding:10px;">A 3D-GRID-PLANE GENERATOR FROM PHOTOBLASTER</h2> + +<!--<h2 id="use">USE:</h2> + <div id="controls"> + <h2>I. THE FLAT PLANE + <span id="swingleft" >II. THE 3D PLANE (forthcoming) + <br> CLICK TO OPEN JAVA APPLET</span></h2>--> + + <div id="flatcontrols"> +<table style="width:100%"> + <tr><td>HEIGHT<input id='img-height' type='text' value='300'><span style="font-size:12px">PX</span></input></td> + + <td>WIDTH  <input id='img-width' type='text' value='400'><span style="font-size:12px">PX</span></input></tr> + <tr><td>SWING  <input id='swing' type='text' value='0'></input></td></tr> + <tr id="swingslider" class="slider"></tr> + <tr><td>TILT  <input id='tilt' type='text' value='0'></input></td></tr> + <tr id="tiltslider" class="slider"></tr> + <tr><td>ROLL  <input id='roll' type='text' value='0'></input></td></tr> + <tr id="rollslider" class="slider"></tr> + <tr><td>ZOOM  <input id='zoom' type='text' value='0'></input></td></tr> + <tr id="zoomslider" class="slider" value='0'></tr></table><table> + <tr><td>TRIM WHITESPACE</td><td><input type="checkbox" id="trim" value="false"></input></td></tr> + +</table> +<br> + +<table> +<tr><td>3D PLANE</td> + + <td> <button id='threedmore'>OPTIONS</button></td></tr> +</table> + <table class='threedadj'><td>PLANE BACKGROUND COLOR</td><td><input type="text" value="transparent" id="planebgcolor"></input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">SEE COLOR LIST</a></td> </table> + <table> + + <tr class='threedadj'><td>OR USE A BACKGROUND IMAGE</td><td><input class='urlinput' type="text" value="" id="planebgimage">IMG URL eg:http://ww...</input></td></tr> + </table> +<table> + <tr class='threedadj'><td>DITHERED-TRANSITION</td> + <td><select id="transition"> + <option selected="selected" value='background'>none</option> + <option value="dither">dithered</option> + <option value="tile">infinite</option> + </select></td></tr> + +</table> + <table> + <tr class='threedadj'><td>DROP SHADOW</td><td><input type='checkbox' id='shadow' value='false'</input></td></tr> + <tr class='threedadj'><td>SKYCOLOR</td><td><input type="text" value="none" id="skycolor">for the area above the horizon-line</input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">SEE COLOR LIST</a></td> + </tr></table> + <table> + <tr><td>LINE:</td> + <td><button id='linemore'>OPTIONS</button></td> + + + <tr class='lineadj'><td>LINE THICKNESS:</td> + <td><input id='line-thickness' type='text' value='1'><span style="font-size:12px">PX</span></input></td></tr> + + <tr class='lineadj'><td>LINE COLOR:</td> + <td><input id='line-color' type='text' value='BLACK'></input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">SEE COLOR LIST</a></td> + </tr> + + + <tr class='lineadj'> + <td>LINE OPACITY: </td> + <td><input id='line-opacity' type='text' value='1'></input></td> + <td class="slider" style="margin:0;padding:0;"id="opacity-slider"></td> + </tr> + + <tr class='lineadj'> + <td>LINE SPACING: </td> + <td><input id='line-spacing' type='text' value='0'><span style='font-size:12px'>PX</span></input></td> + <td class="slider" style="margin:0;padding:0;" id="spacing-slider"></td></tr> + + <tr class='lineadj'><td>USE ONLY VERTICAL LINES</td><td><input type="checkbox" id="v-lines" value="false"></input></td></tr> + + <tr class='lineadj'><td>USE ONLY HORIZONTAL LINES</td><td><input type="checkbox" id="h-lines" value="false" ></input></td></tr> + </table> +<table class="lineadj"> + <tr><td>USE IMAGE INSTEAD OF GRID</td> + <td><input type="text" class="urlinput" type="text" id="imageinstead" value="">IMG URL eg:http://ww...</input></td> + </tr></table> + + <table> + </table> + <table> +<tr><td>GRID BACKGROUND:</td> + +<td> <button id='gridbgmore'>OPTIONS</button></td></tr> + <tr class='gridbgadj'><td>TRANSPARENT? (THE DEFAULT)</td><td><input type="checkbox" id="bgtransparent" value="true" checked="checked"></input></td></tr> + <tr class='gridbgadj'><td>USE AN IMAGE?</td> + <td><input class="urlinput" type="text" id="bg-image" value="">IMG URL eg:http://ww...</input></td></tr> + </table><table class='gridbgadj'><td>USE A COLOR?<input type="text" id="bg-color" value=""></td><td><a href="http://asdf.us/im/colors.html" target="_blank">SEE COLOR LIST</a></input></td> + + </table> + + +<table> + <tr><td>IMAGE FORMAT</td><td> + <select id='format'> + <option selected='selected' value='png'>PNG</option> + <option value='gif'>GIF</option> + <option value='jpg'>JPG</option> + </select></td></tr></table> + +<table> + + <tr><input type=text value="" id='username'>← ENTER YOUR NAME if you want </input></tr> +</table> +<table> +<button id="generate">GENERATE</button> + + +</div> + +</div> + +<div id='result'> + <span id="output-cmd" class='results'>click generate or hit enter to get your 2D plane</span> + <span id="output-img" class='results'></span> + <input id="output-url" class='results'></input> + <div id="output-info" class='results'></div> +</div> + +<h5 style="position:fixed; bottom:10px; left:10px;">COPYRIGHT 2011 PEPPER DREAMTEAMER</h5> +<div id="intro" style="background-color:white"> +<div id="athena"><img src="athenafinal.gif"></img></div> +</div> +<script type="text/javascript" src="jquery-1.6.4.min.js"></script> +<script type="text/javascript" src="jquery-ui-1.8.16.custom.min.js"></script> +<script type="text/javascript" src="sliders.js"></script> +<script type="text/javascript">$('#intro').remove();</script> +<!--<script type="text/javascript" src="intro.js">--> +<script type="text/javascript" src="main.js"></script> +<!--<script src="popup.js" type="text/javascript"></script>--> +<!--<script type="text/javascript" src="picker.js"></script>--> +<script type='text/javascript'> + $('#linemore').click(function(){$('.lineadj').toggle('300')}) + $('#threedmore').click(function(){$('.threedadj').toggle('300')}) + $('#gridbgmore').click(function(){$('.gridbgadj').toggle('300')}) + $('#imageoptionsmore').click(function(){$('.imageoptions').toggle('300')}); +</script> +</body> +</html> diff --git a/frontend/imgrid/intro.html b/frontend/imgrid/intro.html new file mode 100755 index 0000000..5c14969 --- /dev/null +++ b/frontend/imgrid/intro.html @@ -0,0 +1,106 @@ +<html> +<head> + <meta charset="utf-8" /> + <meta name="description" content="IMGRID A 3D GRID-PLANE GENERATOR" > + <meta name="keywords" content="photoblaster, 3D" > + <link rel="shortcut icon" href="http://asdf.us/imgrid/favicon.ico"> + <link rel="image_src" href="http://vfile.com/public/img/1.png" > + <!--<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">--> + <meta property="og:title" content="imgrid" /> + <meta property="og:type" content="website" /> + <meta property="og:url" content="http://asdf.us/imgrid" /> + <meta property="og:site_name" content="IMGRID - A 3D-GRID-PLANE GENERATOR" /> + <title>IMGRID - a 3D GRID-PLANE GENERATOR</title> + <style type="text/css"> +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { + border: 0pt none; + font: inherit; + margin: 0pt; + padding: 0pt; + vertical-align: baseline; + } +body + { +// background-attachment: fixed; +// background-image: url(background.gif); +// text-transform: uppercase; +// background-position: center center; + color: black; + } +.vlarge + { + font-size:22px; + } +.small + { + font-size:14px; + } +.large + { + font-size:18px; + } +#bg + { + postion:absolute; + z-index:-1; + } +#athena + { + position:absolute; + z-index:1; + top: 20px; + left: 20px; + } + </style> +<link href='http://fonts.googleapis.com/css?family=Gentium+Book+Basic' rel='stylesheet' type='text/css'> +</head> + +<body> +<div id="bg"> + <div><table cellspacing=0 cellpadding=0><tr><td> + <img src="background.gif" /> + </td></tr></table></div> +</div> +<div id="athena"><img src="athenafinal.gif"></img></div> + +</body> +<script type="text/javascript" src="/js/jquery.js"></script> +<script type="text/javascript"> +var intro = + { + step: 0, + steps: 100, + delta: 0.02, + opacity: 0, + spin: function () + { + document.getElementById("bg").style.opacity = intro.opacity + intro.delta*intro.step + if (intro.step < 10) + intro.step += 0.2 + else + intro.step += 3 + if (intro.step < intro.steps) + setTimeout(intro.spin,100) + } + } +var newintro = + { + step: 0, + steps: 100, + delta: 0.02, + opacity: 0, + spin: function () + { + document.getElementById("athena").style.opacity = newintro.opacity + newintro.delta*newintro.step + if (newintro.step < 10) + newintro.step += 0.5 + else + newintro.step += 3 + if (newintro.step < newintro.steps) + setTimeout(newintro.spin,100) + } + } +intro.spin() +newintro.spin() +</script> +</html>
\ No newline at end of file diff --git a/frontend/imgrid/jeremy.html b/frontend/imgrid/jeremy.html new file mode 100755 index 0000000..608056d --- /dev/null +++ b/frontend/imgrid/jeremy.html @@ -0,0 +1,398 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> +<html> +<!-- + * pepper * + *** and *** + **** JMD **** + * ****** internet CHAMPIONS ****** * + * *************************************** * + ** * ______*______ * ** + ***** * ______*______ * ***** + ******* ______*______ ******* + *** **** * **** *** + ****** *oo******* *** *******oo* ****** + * *o********* *********o* * + * * * * + * * _ _ * * + * * -_ _- * * + * * -_ _- * * + * * -___- * * + * * + ********************* + * ** ** * + * ** ** * + * _-----_ * + ********* + +--> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta name="description" content="IMGRID A 3D GRID-PLANE GENERATOR" > + <meta name="keywords" content="photoblaster, 3D" > + <meta name=Author content="Pepper Dreamteamer - 2011 www.facebook.com/AAAFFF"> + <link rel="shortcut icon" href="http://asdf.us/imgrid/favicon.ico"> + <link rel="image_src" href="http://vfile.com/public/img/1.png" > + <!--FACEBOOK<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">--> + <meta property="og:title" content="imgrid" /> + <meta property="og:type" content="website" /> + <meta property="og:url" content="http://asdf.us/imgrid" /> + <meta property="og:site_name" content="IMGRID - A 3D-GRID-PLANE GENERATOR" /> + <title>IMGRID - a 3D GRID-PLANE GENERATOR</title> + + <link rel="stylesheet" href="general.css" type="text/css" media="screen" /> + <link href="colorpixx.css" rel="stylesheet" type="text/css" /> + <link href='main2.css' rel='stylesheet' type='text/css' /> + <link href='jquery-ui-1.8.16.custom.css' rel='stylesheet' type='text/css' /> + <link href='cssreset.css' rel='stylesheet' type='text/css'/> + <style type='text/css'> + body + { + font-family:georgia, Arial; + font-size:10pt; + } + h1 + { + font-size:18px; + // font-weight:bold; + width:50%; + margin:10px; + padding:10px; +// box-shadow: 0px 0px 9px 4px #8B7D7B; + } + #flatcontrols + { + // background-color:#CDC5BF; + // box-shadow: 0px 0px 9px 3px #00EEEE; + width:40%; + margin:10px; + padding:10px; + } + .lineadj{display:none;} + .threedadj{display:none;} + .gridbgadj{display:none;} + .imageoptions{display:none;} + .results + { + display:none; + position:relative; + z-index:-100; + } + #output-url + { + z-index:100; + width:500px; + } + .slider + { + background-color:#eee5de; + display:inline-block; + width:50%; + } + #opacity-slider + { + width:100%; + display:inline-block; + margin-right:0; + margin-left:0; + } + input + { + width:70px; + } + .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default + { + background-color:#555; + } + #result + { + position:fixed; + right:20%; + top:20px; + } + #output-url + { + width:100%; + } + .urlinput + { + width:60%; + } + a + { + background-color:white; + max-width:100px; + } + a:link + { + color: black; + } + a:visited + { + COLOR: black; + } + a:hover + { + COLOR: black; + } + a:active + { + COLOR: black; + } + table td + { + padding:4px; +// border:solid 2px; + } + table tr + { +// border: solid 2px; + } + #threedmore, #imageoptionsmore + { + background-color:white; + cursor:pointer; + font-size:20px; + text-align:center; + } +button { + background: white; + color: #000000; + font-size: 18px; + font-family: Georgia, serif; + text-decoration: none; + vertical-align: middle; + } +.button:hover { + border-top-color: #78e072; + background: #78e072; + color: #000000; + } + </style> +</head> +<body> +<!--popupcode--> +<!-- <div id="popupContact"> + <a id="popupContactClose">x</a> + <applet code="org.jdesktop.applet.util.JNLPAppletLauncher" + width=800 + height=600 + archive="dist/deployment/v1/jar/applet-launcher.jar, + dist/deployment/v1/jar/gluegen-rt.jar, + dist/deployment/v1/jar/jogl.all.jar, + dist/3dmap.jar"> + <param name="codebase_lookup" value="false"> + <param name="subapplet.classname" value="com.scannerjammer.applet.heightmap.applet.Simple3DLandscapeApplet"> + <param name="subapplet.displayname" value="3D Map"> + <param name="noddraw.check" value="true"> + <param name="progressbar" value="true"> + <param name="jnlpNumExtensions" value="1"> + <param name="jnlpExtension1" + value="dist/deployment/v1/jogl-awt.jnlp"> + <param name="java_arguments" value="-Dsun.java2d.noddraw=true"> + <param name="jnlp_href" value="dist/3dmap.jnlp"> +</applet> + </div> + <div id="backgroundPopup"></div> +endpopup code--> + +<img src='http://asdf.us/im/8d/imgrid_1324285217_imgrid_1324210455_imgrid_1324210353_gradient_darkseagreencyan_1317343959___.png' style='position:fixed; top:-200px; z-index:-100;'></img> +<div style='font-size:30px; margin-top:20px;margin-left:20px;'>IMGRID</div> +<div style="font-size:12px;margin-left:20px;margin-bottom:20px;">3D-GRID-PLANE GENERATOR</div> + +<!--<h2 id="use">USE:</h2> + <div id="controls"> + <h2>I. THE FLAT PLANE + <span id="swingleft" >II. THE 3D PLANE (forthcoming) + <br> CLICK TO OPEN JAVA APPLET</span></h2>--> + + <div id="flatcontrols"> +<table><tr><td style="background-color:white">3D OPTIONS</td></tr></table> +<br> +<table style="width:100%"> + <tr><td>SWING <input id='swing' type='text' value='0'></input></td></tr> + <tr id="swingslider" class="slider"></tr> + <tr><td>TILT <input id='tilt' type='text' value='0'></input></td></tr> + <tr id="tiltslider" class="slider"></tr> + <tr><td>ROLL <input id='roll' type='text' value='0'></input></td></tr> + <tr id="rollslider" class="slider"></tr> + <tr><td>ZOOM <input id='zoom' type='text' value='0'></input></td></tr> + <tr id="zoomslider" class="slider" value='0'></tr></table><table> + +</table> +<br> +<br> +<table> +<tr style="background-color:white"><td>GRAPHIC OPTIONS</td> + + <td> <div id='threedmore'>+</div></td></tr> + </table> + <table> + + <tr class='threedadj'><td>GRID THICKNESS:</td> + <td><input id='line-thickness' type='text' value='1'></td><td><span style="font-size:12px">PX  </span></input></td></tr> + + <tr class='threedadj'><td>GRID COLOR:</td> + <td><input id='line-color' type='text' value='BLACK'></input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></td> + </tr> + + + <tr class='threedadj'> + <td>GRID OPACITY: </td> + <td><input id='line-opacity' type='text' value='1'></input></td> + <td class="slider" style="margin:0;padding:0;"id="opacity-slider"></td> + </tr> + + <tr class='threedadj'> + <td>GRID SPACING: </td> + <td><input id='line-spacing' type='text' value='0'></input></td> + <td class="slider" style="margin:0;padding:0;" id="spacing-slider"></td></tr> + + <tr class='threedadj'><td>USE ONLY VERTICAL LINES</td><td><input type="checkbox" id="v-lines" value="false"></input></td></tr> + + <tr class='threedadj'><td>USE ONLY HORIZONTAL LINES</td><td><input type="checkbox" id="h-lines" value="false" ></input></td></tr> + </table> + + +<table> + <tr class='threedadj'><td>USE IMAGE INSTEAD OF GRID</td> + <td><input type="text" class="urlinput" type="text" id="imageinstead" value="">IMG URL eg:http://ww...</input></td> + </tr></table> +<table class='threedadj'><td>GRID BACKGROUND COLOR <input type="text" id="bg-color" value="none"></td><td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></input></td> + + </table> + <table> + <tr class='threedadj'><td>OR GRID BACKGROUND IMAGE</td> + <td><input class="urlinput" type="text" id="bg-image" value="">IMG URL eg:http://ww...</input></td></tr> + </table> + +<table> + <tr class='threedadj'><td>GRID-TRANSITION</td> + <td><select id="transition"> + <option selected="selected" value='background'>none</option> + <option value="dither">dithered</option> + <option value="tile">infinite</option> + </select></td></tr> + +</table> + <table> + <tr class='threedadj'><td>DROP SHADOW</td><td><input type='checkbox' id='shadow' value='false'</input></td></tr> + + +</table> + + +<br> + + <table> + <tr style="background-color:white"><td>IMAGE OPTIONS</td> + <td><div id="imageoptionsmore">+</div></td> + </tr> + </table> + <table class='imageoptions'><td>BACKGROUND COLOR</td><td><input type="text" value="transparent" id="planebgcolor"></input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></td> </table> + <table> + + <tr class='imageoptions'><td>OR BACKGROUND IMAGE</td><td><input class='urlinput' type="text" value="" id="planebgimage">IMG URL eg:http://ww...</input></td></tr> + </table> + + <table><tr class='imageoptions'><td>SKYCOLOR</td><td><input type="text" value="none" id="skycolor">for the area above the horizon-line</input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></td> + </tr> + <tr class="imageoptions"><td>HEIGHT</td> + <td> <input id='img-height' type='text' value='500'><span style="font-size:12px">PX</span></input></td></td> + + <tr class="imageoptions"><td>WIDTH</td> + <td><input id='img-width' type='text' value='700'><span style="font-size:12px">PX</span></input></td></td></table> +<table> + <tr class="imageoptions"><td>CROP WHITESPACE</td><td><input type="checkbox" id="trim" value="false"></input></td></tr> + <tr class="imageoptions"><td>IMAGE FORMAT</td><td> + <select id='format'> + <option selected='selected' value='png'>PNG</option> + <option value='gif'>GIF</option> + <option value='jpg'>JPG</option> + </select></td></tr></table> + <br> +<table> + + <tr><td>USERNAME</td><td><input type=text value="" id='username'></input></td></tr> +</table> +<br> +<table> +<button id="generate">GENERATE</button> + +<!--<input type="reset" value="Reset Form">--> + +</div> + +</div> + +<div id='result'> + <span id="output-cmd" class='results'>click generate or hit enter to get your 2D plane</span> + <span id="output-img" class='results'></span> + <input id="output-url" class='results'></input> + <div id="output-info" class='results'></div> +</div> +<div id="likebutton"> +<br> +<!--<div id="fb-root" style="position:fixed; bottom:10px; right:10px;background-color: transparent;"></div><script src="http://connect.facebook.net/en_US/all.js#appId=236917449658413&xfbml=1"></script><fb:like href="http://asdf.us/im/" send="false" width="347" show_faces="false" colorscheme="light" font="" style="background-color: transparent;"></fb:like> +--> + + + +<h5 style="position:fixed; bottom:10px; left:10px;">COPYRIGHT 2011 PEPPER DREAMTEAMER</h5> +<div id="intro" style="background-color:white"> +<!--<div id="bg"> + <div><table cellspacing=0 cellpadding=0><tr><td> + <img src="background.gif" /> + </td></tr></table></div> +</div>--> +<div id="athena"><img src="athenafinal.gif"></img></div> +</div> +<script type="text/javascript" src="jquery-1.6.4.min.js"></script> +<script type="text/javascript" src="jquery-ui-1.8.16.custom.min.js"></script> +<script type="text/javascript" src="sliders.js"></script> +<script type="text/javascript">$('#intro').remove();</script> +<!--<script type="text/javascript" src="intro.js">--> +<script type="text/javascript" src="main.js"></script> +<!--<script src="popup.js" type="text/javascript"></script>--> +<!--<script type="text/javascript" src="picker.js"></script>--> +<script type='text/javascript'> + threedmoreclicked = 'false'; + $('#threedmore').click(function(){ + $('.threedadj').toggle('300') + + if(threedmoreclicked === 'false'){ + $('#threedmore').html('-') + threedmoreclicked = 'true' + } + else{ + $('#threedmore').html('+') + threedmoreclicked = 'false' + } + }) + imageoptionsmoreclicked = 'false'; + $('#imageoptionsmore').html('+'); + $('#imageoptionsmore').click(function(){ + $('.imageoptions').toggle('300') + if(imageoptionsmoreclicked === 'false'){ + $('#imageoptionsmore').html('-') + imageoptionsmoreclicked = 'true' + } + else{ + $('#imageoptionsmore').html('+') + imageoptionsmoreclicked = 'false' + } + + }); + $('#bg-color').click(function(){ + nonecheck = $('#bg-color').val() + if(nonecheck === 'none') + { + $('#bg-color').val('') + } + }); +</script> +</body> +</html> diff --git a/frontend/imgrid/jmd.html b/frontend/imgrid/jmd.html new file mode 100755 index 0000000..7816e65 --- /dev/null +++ b/frontend/imgrid/jmd.html @@ -0,0 +1,346 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> +<html> +<!--JMD DOT HTML --> +<!-- + * pepper * + *** and *** + **** JMD **** + * ****** internet CHAMPIONS ****** * + * *************************************** * + ** * ______*______ * ** + ***** * ______*______ * ***** + ******* ______*______ ******* + *** **** * **** *** + ****** *oo******* *** *******oo* ****** + * *o********* *********o* * + * * * * + * * _ _ * * + * * -_ _- * * + * * -_ _- * * + * * -___- * * + * * + ********************* + * ** ** * + * ** ** * + * _-----_ * + ********* + +--> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta name="description" content="IMGRID A 3D GRID-PLANE GENERATOR" > + <meta name="keywords" content="photoblaster, 3D" > + <meta name=Author content="Pepper Dreamteamer - 2011 www.facebook.com/AAAFFF"> + <link rel="shortcut icon" href="http://asdf.us/imgrid/favicon.ico"> + <link rel="image_src" href="http://vfile.com/public/img/1.png" > + <meta property="og:title" content="imgrid" /> + <meta property="og:type" content="website" /> + <meta property="og:url" content="http://asdf.us/imgrid" /> + <meta property="og:site_name" content="IMGRID - A 3D-GRID-PLANE GENERATOR" /> + <title>IMGRID - a 3D GRID-PLANE GENERATOR</title> + + <link rel="stylesheet" href="general.css" type="text/css" media="screen" /> + <link href="colorpixx.css" rel="stylesheet" type="text/css" /> + <link href='main2.css' rel='stylesheet' type='text/css' /> + <link href='jquery-ui-1.8.16.custom.css' rel='stylesheet' type='text/css' /> + <link href='cssreset.css' rel='stylesheet' type='text/css'/> + <style type='text/css'> + body + { + font-family:georgia, Arial; + font-size:10pt; + } + h1 + { + font-size:18px; + width:50%; + margin:10px; + padding:10px; + } + #flatcontrols + { + width:40%; + margin:10px; + padding:10px; + } + .lineadj{display:none;} + .threedadj{display:none;} + .gridbgadj{display:none;} + .imageoptions{display:none;} + .results + { + display:none; + position:relative; + z-index:-100; + } + #output-url + { + z-index:100; + width:500px; + } + .slider + { + background-color:#eee5de; + display:inline-block; + width:50%; + } + #opacity-slider + { + width:100%; + display:inline-block; + margin-right:0; + margin-left:0; + } + input + { + width:70px; + } + .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default + { + background-color:#555; + } + #result + { + position:fixed; + left:50%; + top:20px; + } + #output-url + { + width:100%; + } + .urlinput + { + width:60%; + } + a + { + background-color:white; + max-width:100px; + } + a:link + { + color: black; + } + a:visited + { + COLOR: black; + } + a:hover + { + COLOR: black; + } + a:active + { + COLOR: black; + } + #threedplug, #imageoptionsplug + { + font-size:20px; + text-align:center; + } + .threedmore, .imageoptionsmore + { + cursor:pointer; + } + table + { + empty-cells: show; + } +button { + background: white; + color: #000000; + font-size: 18px; + font-family: Georgia, serif; + text-decoration: none; + vertical-align: middle; + } +.button:hover { + border-top-color: #78e072; + background: #78e072; + color: #000000; + } + </style> +</head> +<body> +<img src='http://asdf.us/im/8d/imgrid_1324285217_imgrid_1324210455_imgrid_1324210353_gradient_darkseagreencyan_1317343959___.png' style='position:fixed; top:-200px; z-index:-100;'></img> +<div style='font-size:30px; margin-top:20px;margin-left:20px;'>IMGRID</div> +<div style="font-size:12px;margin-left:20px;margin-bottom:20px;">3D-GRID-PLANE GENERATOR</div> + + <div id="flatcontrols"> +<table><tr><td>3D OPTIONS</td></tr></table> +<br> +<table style="width:100%"> + <tr><td>SWING <input id='swing' type='text' value='0'></input></td></tr> + <tr id="swingslider" class="slider"></tr> + <tr><td>TILT <input id='tilt' type='text' value='0'></input></td></tr> + <tr id="tiltslider" class="slider"></tr> + <tr><td>ROLL <input id='roll' type='text' value='0'></input></td></tr> + <tr id="rollslider" class="slider"></tr> + <tr><td>ZOOM <input id='zoom' type='text' value='0'></input></td></tr> + <tr id="zoomslider" class="slider" value='0'></tr></table><table> + <tr><td> </td></tr> + <tr><td>CROP WHITESPACE</td><td><input type="checkbox" id="trim" value="false"></input></td></tr> + +</table> +<br> +<br> +<table> +<tr><td class='threedmore'>GRAPHIC OPTIONS  </td> + <td> <div id='threedplug' class='threedmore'>+</div></td></tr> + </table> + <table> + <tr><td> </td></tr> + + <tr class='threedadj'><td>GRID THICKNESS:</td> + <td><input id='line-thickness' type='text' value='1'></td><td><span style="font-size:12px">PX  </span></input></td></tr> + + <tr class='threedadj'><td>GRID COLOR:</td> + <td><input id='line-color' type='text' value='BLACK'></input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></td> + </tr> + + + <tr class='threedadj'> + <td>GRID OPACITY: </td> + <td><input id='line-opacity' type='text' value='1'></input></td> + <td class="slider" style="margin:0;padding:0;"id="opacity-slider"></td> + </tr> + + <tr class='threedadj'> + <td>GRID SPACING: </td> + <td><input id='line-spacing' type='text' value='0'></input></td> + <td class="slider" style="margin:0;padding:0;" id="spacing-slider"></td></tr> + + <tr class='threedadj'><td>USE ONLY VERTICAL LINES</td><td><input type="checkbox" id="v-lines" value="false"></input></td></tr> + + <tr class='threedadj'><td>USE ONLY HORIZONTAL LINES</td><td><input type="checkbox" id="h-lines" value="false" ></input></td></tr> + </table> + + +<table> + <tr class='threedadj'><td>USE IMAGE INSTEAD OF GRID</td> + <td><input type="text" class="urlinput" type="text" id="imageinstead" value="">IMG URL eg:http://ww...</input></td> + </tr></table> +<table class='threedadj'><td>GRID BACKGROUND COLOR <input type="text" id="bg-color" value="none"></td><td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></input></td> + + </table> + <table> + <tr class='threedadj'><td>OR GRID BACKGROUND IMAGE</td> + <td><input class="urlinput" type="text" id="bg-image" value="">IMG URL eg:http://ww...</input></td></tr> + </table> + +<table> + <tr class='threedadj'><td>GRID-TRANSITION</td> + <td><select id="transition"> + <option selected="selected" value='background'>none</option> + <option value="dither">dithered</option> + <option value="noise">noise</option> + <option value="tile">infinite</option> + </select></td></tr> + +</table> + <table> + <tr class='threedadj'><td>DROP SHADOW</td><td><input type='checkbox' id='shadow' value='false'</input></td></tr> + + +</table> + + +<br> + + <table> + <tr><td class="imageoptionsmore">IMAGE OPTIONS  </td> + <td><div id="imageoptionsplug" class="imageoptionsmore">+</div></td> + </tr> + </table> + <tr><td> </td></tr> + <table class='imageoptions'><td>BACKGROUND COLOR  </td><td><input type="text" value="transparent" id="planebgcolor"></input></td> + <td>  <a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></td> </table> + <table> + + <tr class='imageoptions'><td>OR BACKGROUND IMAGE  </td><td><input class='urlinput' type="text" value="" id="planebgimage">IMG URL eg:http://ww...</input></td></tr> + </table> + + <table><tr class='imageoptions'><td>SKYCOLOR  </td><td><input type="text" value="none" id="skycolor"> for the area above the horizon-line</input>  </td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></td> + </tr> + <tr class="imageoptions"><td>HEIGHT</td> + <td> <input id='img-height' type='text' value='500'><span style="font-size:12px">PX</span></input></td></td> + + <tr class="imageoptions"><td>WIDTH</td> + <td><input id='img-width' type='text' value='700'><span style="font-size:12px">PX</span></input></td></td></table> +<table> + <tr class="imageoptions"><td>IMAGE FORMAT</td><td> + <select id='format'> + <option selected='selected' value='png'>PNG</option> + <option value='gif'>GIF</option> + <option value='jpg'>JPG</option> + </select></td></tr></table> + <br> +<table> + + <tr><td>USERNAME   </td><td><input type=text value="" id='username'></input></td></tr> +</table> +<br> +<table> +<button id="generate">GENERATE</button> + +</div> + +<div id='result'> + <span id="output-cmd" class='results'>click generate or hit enter to get your 2D plane</span> + <span id="output-img" class='results'></span> + <input id="output-url" class='results'></input> + <div id="output-info" class='results'></div> +</div> +<div id="likebutton"> +<br> + + + +<h5 style="position:fixed; bottom:10px; left:10px;" id='copyright'>COPYRIGHT 2011 PEPPER DREAMTEAMER</h5> +<script type="text/javascript" src="jquery-1.6.4.min.js"></script> +<script type="text/javascript" src="jquery-ui-1.8.16.custom.min.js"></script> +<script type="text/javascript" src="sliders.js"></script> +<script type="text/javascript" src="main.js"></script> +<script type='text/javascript'> + threedmoreclicked = 'false'; + $('.threedmore').click(function(){ + $('.threedadj').toggle('300') + + if(threedmoreclicked === 'false'){ + $('#threedplug').html('-') + threedmoreclicked = 'true' + } + else{ + $('#threedplug').html('+') + threedmoreclicked = 'false' + } + $('#copyright').hide(); + }) + imageoptionsmoreclicked = 'false'; + $('#imageoptionsplug').html('+'); + $('.imageoptionsmore').click(function(){ + $('.imageoptions').toggle('300') + if(imageoptionsmoreclicked === 'false'){ + $('#imageoptionsplug').html('-') + imageoptionsmoreclicked = 'true' + } + else{ + $('#imageoptionsplug').html('+') + imageoptionsmoreclicked = 'false' + } + $('#copyright').hide(); + }); + $('#bg-color').click(function(){ + nonecheck = $('#bg-color').val() + if(nonecheck === 'none') + { + $('#bg-color').val('') + } + }); +</script> +</body> +</html> diff --git a/frontend/imgrid/js/colordictbackup.js b/frontend/imgrid/js/colordictbackup.js new file mode 100755 index 0000000..62f914a --- /dev/null +++ b/frontend/imgrid/js/colordictbackup.js @@ -0,0 +1,4 @@ +var hextoname = {'#EE1289': 'DeepPink2', '#EE8262': 'salmon2', '#C4C4C4': 'gray77', '#556B2F': 'DarkOliveGreen', '#FF8C00': 'DarkOrange', '#8B7B8B': 'thistle4', '#0000EE': 'blue2', '#EED5D2': 'MistyRose2', '#BA55D3': 'MediumOrchid', '#FFF5EE': 'seashell', '#912CEE': 'purple2', '#2F4F4F': 'DarkSlateGray', '#32814B': 'MediumForestGreen', '#D15FEE': 'MediumOrchid2', '#F0FFF0': 'honeydew', '#B23AEE': 'DarkOrchid2', '#8B7765': 'PeachPuff4', '#3D3D3D': 'gray24', '#54FF9F': 'SeaGreen1', '#636363': 'gray39', '#8B8386': 'LavenderBlush4', '#FF4040': 'brown1', '#EEA9B8': 'pink2', '#C2C2C2': 'gray76', '#800080': 'purple', '#545454': 'gray33', '#EE3A8C': 'VioletRed2', '#8A8A8A': 'gray54', '#FF00FF': 'fuchsia', '#436EEE': 'RoyalBlue2', '#8B864E': 'khaki4', '#0A0A0A': 'gray4', '#808000': 'olive', '#E3E3E3': 'gray89', '#1874CD': 'DodgerBlue3', '#BCD2EE': 'LightSteelBlue2', '#A9A9A9': 'DarkGray', '#F4A460': 'SandyBrown', '#FF3030': 'firebrick1', '#FFEBCD': 'BlanchedAlmond', '#B0C4DE': 'LightSteelBlue', '#00CDCD': 'cyan3', '#C0FF3E': 'OliveDrab1', '#FFD700': 'gold', '#242424': 'gray14', '#8B2252': 'VioletRed4', '#4EEE94': 'SeaGreen2', '#CD3278': 'VioletRed3', '#00E5EE': 'turquoise2', '#CD853F': 'peru', '#ADD8E6': 'LightBlue', '#C7C7C7': 'gray78', '#CD2990': 'maroon3', '#EEE5DE': 'seashell2', '#66CD00': 'chartreuse3', '#878787': 'gray53', '#FFA54F': 'tan1', '#A2B5CD': 'LightSteelBlue3', '#BC8F8F': 'RosyBrown', '#C9C9C9': 'gray79', '#D1C166': 'MediumGoldenRod', '#8B2323': 'brown4', '#B3EE3A': 'OliveDrab2', '#EEEED1': 'LightYellow2', '#AEEEEE': 'PaleTurquoise2', '#BDBDBD': 'gray74', '#FF7F00': 'DarkOrange1', '#FFC0CB': 'pink', '#EE3B3B': 'brown2', '#CDC8B1': 'cornsilk3', '#CDB38B': 'NavajoWhite3', '#CDBA96': 'wheat3', '#B4EEB4': 'DarkSeaGreen2', '#40E0D0': 'turquoise', '#8B795E': 'NavajoWhite4', '#27408B': 'RoyalBlue4', '#424242': 'gray26', '#CDB7B5': 'MistyRose3', '#CAE1FF': 'LightSteelBlue1', '#F0FFFF': 'azure', '#2E8B57': 'SeaGreen', '#87CEEB': 'SkyBlue', '#CD00CD': 'magenta3', '#CDAA7D': 'burlywood3', '#836FFF': 'SlateBlue1', '#ABABAB': 'gray67', '#EEB4B4': 'RosyBrown2', '#8B7355': 'burlywood4', '#F0E68C': 'khaki', '#CDCDB4': 'LightYellow3', '#4D4D4D': 'gray30', '#B8B8B8': 'gray72', '#B4CDCD': 'LightCyan3', '#008B8B': 'cyan4', '#828282': 'gray51', '#00EEEE': 'cyan2', '#708090': 'SlateGray', '#9AFF9A': 'PaleGreen1', '#FFA07A': 'LightSalmon', '#EBEBEB': 'gray92', '#FFB5C5': 'pink1', '#00688B': 'DeepSkyBlue4', '#DBDBDB': 'gray86', '#191970': 'MidnightBlue', '#FF83FA': 'orchid1', '#A1A1A1': 'gray63', '#838B8B': 'azure4', '#FFA500': 'orange', '#00FF7F': 'SpringGreen', '#EEAD0E': 'DarkGoldenrod2', '#B03060': 'maroon', '#96CDCD': 'PaleTurquoise3', '#CD3333': 'brown3', '#CDBE70': 'LightGoldenrod3', '#7CCD7C': 'PaleGreen3', '#97FFFF': 'DarkSlateGray1', '#DAA520': 'goldenrod', '#8B3A3A': 'IndianRed4', '#6B6B6B': 'gray42', '#FFFAF0': 'FloralWhite', '#757575': 'gray46', '#BFBFBF': 'gray75', '#00EE76': 'SpringGreen2', '#FFFAFA': 'snow', '#6E8B3D': 'DarkOliveGreen4', '#EEE685': 'khaki2', '#FF3E96': 'VioletRed1', '#EE0000': 'red2', '#FDF5E6': 'OldLace', '#E066FF': 'MediumOrchid1', '#8DB6CD': 'LightSkyBlue3', '#FF7256': 'coral1', '#7CFC00': 'LawnGreen', '#838B83': 'honeydew4', '#BF3EFF': 'DarkOrchid1', '#8B6914': 'goldenrod4', '#00CD66': 'SpringGreen3', '#525252': 'gray32', '#A4D3EE': 'LightSkyBlue2', '#00868B': 'turquoise4', '#8DEEEE': 'DarkSlateGray2', '#787878': 'gray47', '#8B1C62': 'maroon4', '#616161': 'gray38', '#4876FF': 'RoyalBlue1', '#9F79EE': 'MediumPurple2', '#212121': 'gray13', '#C1CDC1': 'honeydew3', '#CD69C9': 'orchid3', '#E0EEEE': 'azure2', '#8B7E66': 'wheat4', '#8A2BE2': 'BlueViolet', '#CDCD00': 'yellow3', '#EE5C42': 'tomato2', '#6E6E6E': 'gray43', '#EEAEEE': 'plum2', '#DC143C': 'crimson', '#CD919E': 'pink3', '#528B8B': 'DarkSlateGray4', '#AFEEEE': 'PaleTurquoise', '#CD6889': 'PaleVioletRed3', '#E6E6FA': 'lavender', '#EE00EE': 'magenta2', '#999999': 'gray60', '#F0F8FF': 'AliceBlue', '#595959': 'gray35', '#FF7F50': 'coral', '#A6A6A6': 'gray65', '#DEDEDE': 'gray87', '#262626': 'gray15', '#6CA6CD': 'SkyBlue3', '#8B8B83': 'ivory4', '#474747': 'gray28', '#F7F7F7': 'gray97', '#548B54': 'PaleGreen4', '#48D1CC': 'MediumTurquoise', '#C1CDCD': 'azure3', '#E0EEE0': 'honeydew2', '#FFB90F': 'DarkGoldenrod1', '#FFD39B': 'burlywood1', '#8B5A2B': 'tan4', '#EEE9BF': 'LemonChiffon2', '#BCEE68': 'DarkOliveGreen2', '#8470FF': 'LightSlateBlue', '#8B0A50': 'DeepPink4', '#FFF68F': 'khaki1', '#EEA2AD': 'LightPink2', '#CD5B45': 'coral3', '#7FFF00': 'chartreuse', '#8B8378': 'AntiqueWhite4', '#9BCD9B': 'DarkSeaGreen3', '#454545': 'gray27', '#D1D1D1': 'gray82', '#EEE8AA': 'PaleGoldenrod', '#668B8B': 'PaleTurquoise4', '#EE30A7': 'maroon2', '#FFC125': 'goldenrod1', '#8B475D': 'PaleVioletRed4', '#D8BFD8': 'thistle', '#404040': 'gray25', '#EEEE00': 'yellow2', '#CDB5CD': 'thistle3', '#00C5CD': 'turquoise3', '#00CED1': 'DarkTurquoise', '#CFCFCF': 'gray81', '#008B00': 'green4', '#7A7A7A': 'gray48', '#B8860B': 'DarkGoldenrod', '#1C86EE': 'DodgerBlue2', '#8B5742': 'LightSalmon4', '#1A1A1A': 'gray10', '#8B008B': 'DarkMagenta', '#0F0F0F': 'gray6', '#CD3700': 'OrangeRed3', '#7F7F7F': 'gray50', '#FF6EB4': 'HotPink1', '#6959CD': 'SlateBlue3', '#90EE90': 'LightGreen', '#8B4789': 'orchid4', '#EE7AE9': 'orchid2', '#8968CD': 'MediumPurple3', '#080808': 'gray3', '#CDC9C9': 'snow3', '#BDB76B': 'DarkKhaki', '#9370DB': 'MediumPurple', '#EEDC82': 'LightGoldenrod2', '#3CB371': 'MediumSeaGreen', '#F5FFFA': 'MintCream', '#303030': 'gray19', '#B9D3EE': 'SlateGray2', '#575757': 'gray34', '#F5F5DC': 'beige', '#BABABA': 'gray73', '#0000CD': 'blue3', '#FF8247': 'sienna1', '#F2F2F2': 'gray95', '#EED5B7': 'bisque2', '#FFEC8B': 'LightGoldenrod1', '#EE7600': 'DarkOrange2', '#8B636C': 'pink4', '#8B814C': 'LightGoldenrod4', '#FFE4B5': 'moccasin', '#4F94CD': 'SteelBlue3', '#CDAD00': 'gold3', '#CD5555': 'IndianRed3', '#8B7500': 'gold4', '#473C8B': 'SlateBlue4', '#B0E0E6': 'PowderBlue', '#FFFF00': 'yellow', '#CD96CD': 'plum3', '#006400': 'DarkGreen', '#FAFAFA': 'gray98', '#53868B': 'CadetBlue4', '#8B4513': 'chocolate4', '#98FB98': 'PaleGreen', '#63B8FF': 'SteelBlue1', '#FFAEB9': 'LightPink1', '#EE6A50': 'coral2', '#87CEFF': 'SkyBlue1', '#87CEFA': 'LightSkyBlue', '#ADFF2F': 'GreenYellow', '#008B45': 'SpringGreen4', '#EE4000': 'OrangeRed2', '#8B6969': 'RosyBrown4', '#00008B': 'blue4', '#DB7093': 'PaleVioletRed', '#7EC0EE': 'SkyBlue2', '#3B3B3B': 'gray23', '#8C8C8C': 'gray55', '#5F9EA0': 'cadet blue', '#EE799F': 'PaleVioletRed2', '#CD6090': 'HotPink3', '#8B8682': 'seashell4', '#458B74': 'aquamarine4', '#EECFA1': 'NavajoWhite2', '#76EE00': 'chartreuse2', '#000080': 'navy', '#228B22': 'ForestGreen', '#8B8B00': 'yellow4', '#B5B5B5': 'gray71', '#CD950C': 'DarkGoldenrod3', '#EE82EE': 'violet', '#EDEDED': 'gray93', '#F5DEB3': 'wheat', '#3A5FCD': 'RoyalBlue3', '#00FA9A': 'MediumSpringGreen', '#F0F0F0': 'gray94', '#D1EEEE': 'LightCyan2', '#2E2E2E': 'gray18', '#EEC591': 'burlywood2', '#8B3E2F': 'coral4', '#CD8162': 'LightSalmon3', '#9AC0CD': 'LightBlue3', '#8B8989': 'snow4', '#EED8AE': 'wheat2', '#551A8B': 'purple4', '#919191': 'gray57', '#949494': 'gray58', '#778899': 'LightSlateGray', '#FFFACD': 'LemonChiffon', '#458B00': 'chartreuse4', '#008000': 'green', '#FFFFF0': 'ivory', '#E0E0E0': 'gray88', '#EEB422': 'goldenrod2', '#A020F0': 'purple', '#5CACEE': 'SteelBlue2', '#CD4F39': 'tomato3', '#CDC0B0': 'AntiqueWhite3', '#6E7B8B': 'LightSteelBlue4', '#9E9E9E': 'gray62', '#CDC673': 'khaki3', '#104E8B': 'DodgerBlue4', '#E0FFFF': 'LightCyan', '#FFFFFF': 'white', '#6C7B8B': 'SlateGray4', '#FFC1C1': 'RosyBrown1', '#D6D6D6': 'gray84', '#8B4726': 'sienna4', '#CD9B1D': 'goldenrod3', '#FF6347': 'tomato', '#FF34B3': 'maroon1', '#7D7D7D': 'gray49', '#121212': 'gray7', '#B0E2FF': 'LightSkyBlue1', '#8B3A62': 'HotPink4', '#CD5C5C': 'IndianRed', '#4A4A4A': 'gray29', '#B0B0B0': 'gray69', '#D9D9D9': 'gray85', '#A2CD5A': 'DarkOliveGreen3', '#8B0000': 'DarkRed', '#FF6A6A': 'IndianRed1', '#CD6600': 'DarkOrange3', '#FFEFDB': 'AntiqueWhite1', '#E9967A': 'DarkSalmon', '#EEE9E9': 'snow2', '#D4D4D4': 'gray83', '#383838': 'gray22', '#7A67EE': 'SlateBlue2', '#4169E1': 'RoyalBlue', '#5E5E5E': 'gray37', '#00F5FF': 'turquoise1', '#FFEFD5': 'PapayaWhip', '#CDAF95': 'PeachPuff3', '#CCCCCC': 'gray80', '#00BFFF': 'DeepSkyBlue', '#CDB79E': 'bisque3', '#969696': 'gray59', '#4F4F4F': 'gray31', '#1E90FF': 'DodgerBlue', '#FCFCFC': 'gray99', '#EE2C2C': 'firebrick2', '#8B6508': 'DarkGoldenrod4', '#696969': 'DimGray', '#FF7F24': 'chocolate1', '#8FBC8F': 'DarkSeaGreen', '#66CDAA': 'aquamarine3', '#6495ED': 'CornflowerBlue', '#0D0D0D': 'gray5', '#EEE0E5': 'LavenderBlush2', '#666666': 'gray40', '#B2DFEE': 'LightBlue2', '#B22222': 'firebrick', '#4B0082': 'indigo', '#FF82AB': 'PaleVioletRed1', '#AB82FF': 'MediumPurple1', '#79CDCD': 'DarkSlateGray3', '#FFE4C4': 'bisque', '#DEB887': 'burlywood', '#5D478B': 'MediumPurple4', '#8B3626': 'tomato4', '#FFFFE0': 'LightYellow', '#FFE4E1': 'MistyRose', '#171717': 'gray9', '#EEDFCC': 'AntiqueWhite2', '#9400D3': 'DarkViolet', '#BFEFFF': 'LightBlue1', '#8B7D6B': 'bisque4', '#FF8C69': 'salmon1', '#C6E2FF': 'SlateGray1', '#1C1C1C': 'gray11', '#FF4500': 'OrangeRed', '#FFE7BA': 'wheat1', '#808080': 'fractal', '#EE9572': 'LightSalmon2', '#CD8500': 'orange3', '#8B5A00': 'orange4', '#9932CC': 'DarkOrchid', '#EECBAD': 'PeachPuff2', '#CD8C95': 'LightPink3', '#292929': 'gray16', '#CD1076': 'DeepPink3', '#7A378B': 'MediumOrchid4', '#FF0000': 'red', '#698B22': 'OliveDrab4', '#ADADAD': 'gray68', '#EEE8CD': 'cornsilk2', '#DDA0DD': 'plum', '#7D26CD': 'purple3', '#DA70D6': 'orchid', '#DCDCDC': 'gainsboro', '#68228B': 'DarkOrchid4', '#7B68EE': 'MediumSlateBlue', '#000000': 'black', '#6B8E23': 'OliveDrab', '#FF69B4': 'HotPink', '#800000': 'maroon', '#8B668B': 'plum4', '#363636': 'gray21', '#8B4500': 'DarkOrange4', '#D3D3D3': 'LightGray', '#607B8B': 'LightSkyBlue4', '#F08080': 'LightCoral', '#CD9B9B': 'RosyBrown3', '#76EEC6': 'aquamarine2', '#FAEBD7': 'AntiqueWhite', '#68838B': 'LightBlue4', '#7FFFD4': 'aquamarine', '#C0C0C0': 'silver', '#EEDD82': 'LightGoldenrod', '#EE9A49': 'tan2', '#4A708B': 'SkyBlue4', '#008080': 'teal', '#7AC5CD': 'CadetBlue3', '#98F5FF': 'CadetBlue1', '#8B2500': 'OrangeRed4', '#8F8F8F': 'gray56', '#FFF0F5': 'LavenderBlush', '#8B8970': 'LemonChiffon4', '#8B8878': 'cornsilk4', '#6A5ACD': 'SlateBlue', '#4682B4': 'SteelBlue', '#EEEEE0': 'ivory2', '#B3B3B3': 'gray70', '#00FF00': 'green1', '#FFDEAD': 'NavajoWhite', '#CD2626': 'firebrick3', '#8B4C39': 'salmon4', '#9B30FF': 'purple1', '#E5E5E5': 'gray90', '#36648B': 'SteelBlue4', '#9C9C9C': 'gray61', '#F8F8FF': 'GhostWhite', '#333333': 'gray20', '#5C5C5C': 'gray36', '#737373': 'gray45', '#EEC900': 'gold2', '#FFE1FF': 'thistle1', '#C1FFC1': 'DarkSeaGreen1', '#CDC5BF': 'seashell3', '#A0522D': 'sienna', '#8B5F65': 'LightPink4', '#CDC1C5': 'LavenderBlush3', '#EE7621': 'chocolate2', '#FFBBFF': 'plum1', '#CD6839': 'sienna3', '#698B69': 'DarkSeaGreen4', '#050505': 'gray2', '#CD661D': 'chocolate3', '#FAFAD2': 'LightGoldenrodYellow', '#CDCDC1': 'ivory3', '#FFF8DC': 'cornsilk', '#A8A8A8': 'gray66', '#B452CD': 'MediumOrchid3', '#D2B48C': 'tan', '#8EE5EE': 'CadetBlue2', '#483D8B': 'DarkSlateBlue', '#BBFFFF': 'PaleTurquoise1', '#0000FF': 'blue', '#EE6AA7': 'HotPink2', '#EE7942': 'sienna2', '#00CD00': 'green3', '#141414': 'gray8', '#9ACD32': 'OliveDrab3', '#C71585': 'MediumVioletRed', '#EE9A00': 'orange2', '#CAFF70': 'DarkOliveGreen1', '#F5F5F5': 'gray96', '#32CD32': 'LimeGreen', '#00EE00': 'green2', '#FFB6C1': 'LightPink', '#8B1A1A': 'firebrick4', '#00B2EE': 'DeepSkyBlue2', '#20B2AA': 'LightSeaGreen', '#707070': 'gray44', '#009ACD': 'DeepSkyBlue3', '#A52A2A': 'brown', '#EE6363': 'IndianRed2', '#FAF0E6': 'linen', '#8B7D7B': 'MistyRose4', '#9A32CD': 'DarkOrchid3', '#1F1F1F': 'gray12', '#E8E8E8': 'gray91', '#7E7E7E': 'gray', '#7A8B8B': 'LightCyan4', '#CD7054': 'salmon3', '#9FB6CD': 'SlateGray3', '#CDC9A5': 'LemonChiffon3', '#D02090': 'VioletRed', '#00FFFF': 'aqua', '#2B2B2B': 'gray17', '#858585': 'gray52', '#A3A3A3': 'gray64', '#CD0000': 'red3', '#43CD80': 'SeaGreen3', '#FA8072': 'salmon', '#FFDAB9': 'PeachPuff', '#D2691E': 'chocolate', '#FF1493': 'DeepPink', '#EED2EE': 'thistle2', '#030303': 'gray1', '#8B8B7A': 'LightYellow4'} +var nametohex = {'grey21': '#363636', 'yellow': '#FFFF00', 'grey61': '#9C9C9C', 'HotPink3': '#CD6090', 'grey63': '#A1A1A1', 'grey62': '#9E9E9E', 'grey65': '#A6A6A6', 'AliceBlue': '#F0F8FF', 'grey67': '#ABABAB', 'grey66': '#A8A8A8', 'LightCyan1': '#E0FFFF', 'grey68': '#ADADAD', 'LightCyan3': '#B4CDCD', 'LightCyan2': '#D1EEEE', 'LightCyan4': '#7A8B8B', 'gray32': '#525252', 'gray33': '#545454', 'DarkTurquoise': '#00CED1', 'gray31': '#4F4F4F', 'gray36': '#5C5C5C', 'gray37': '#5E5E5E', 'gray34': '#575757', 'gray35': '#595959', 'aquamarine4': '#458B74', 'gray38': '#616161', 'gray39': '#636363', 'aquamarine1': '#7FFFD4', 'aquamarine3': '#66CDAA', 'aquamarine2': '#76EEC6', 'CadetBlue4': '#53868B', 'CadetBlue3': '#7AC5CD', 'CadetBlue2': '#8EE5EE', 'CadetBlue1': '#98F5FF', 'crimson': '#DC143C', 'VioletRed1': '#FF3E96', 'VioletRed2': '#EE3A8C', 'VioletRed3': '#CD3278', 'VioletRed4': '#8B2252', 'brown': '#A52A2A', 'DarkGoldenrod': '#B8860B', 'gray8': '#141414', 'SlateGrey': '#708090', 'NavajoWhite2': '#EECFA1', 'gray2': '#050505', 'cyan': '#00FFFF', 'gray0': '#000000', 'gray1': '#030303', 'fractal': '#808080', 'gray7': '#121212', 'gray4': '#0A0A0A', 'gray5': '#0D0D0D', 'grey60': '#999999', 'DarkBlue': '#00008B', 'gray98': '#FAFAFA', 'DarkKhaki': '#BDB76B', 'gray99': '#FCFCFC', 'teal': '#008080', 'grey11': '#1C1C1C', 'coral4': '#8B3E2F', 'grey12': '#1F1F1F', 'grey64': '#A3A3A3', 'PaleGreen1': '#9AFF9A', 'PaleGreen3': '#7CCD7C', 'PaleGreen2': '#90EE90', 'PaleGreen4': '#548B54', 'grey14': '#242424', 'lavender': '#E6E6FA', 'grey15': '#262626', 'chartreuse3': '#66CD00', 'chartreuse2': '#76EE00', 'chartreuse1': '#7FFF00', 'chartreuse4': '#458B00', 'RosyBrown': '#BC8F8F', 'blue': '#0000FF', 'NavajoWhite': '#FFDEAD', 'opaque': '#000000', 'maroon4': '#8B1C62', 'maroon3': '#CD2990', 'maroon2': '#EE30A7', 'maroon1': '#FF34B3', 'gold3': '#CDAD00', 'gold2': '#EEC900', 'gold1': '#FFD700', 'gold4': '#8B7500', 'LightSlateGrey': '#778899', 'gray30': '#4D4D4D', 'DarkGreen': '#006400', 'SkyBlue': '#87CEEB', 'GhostWhite': '#F8F8FF', 'LavenderBlush': '#FFF0F5', 'SeaGreen': '#2E8B57', 'BlanchedAlmond': '#FFEBCD', 'gray60': '#999999', 'DarkOliveGreen': '#556B2F', 'firebrick2': '#EE2C2C', 'firebrick1': '#FF3030', 'firebrick4': '#8B1A1A', 'sienna': '#A0522D', 'blue1': '#0000FF', 'lime': '#00FF00', 'gray55': '#8C8C8C', 'blue2': '#0000EE', 'DarkViolet': '#9400D3', 'blue4': '#00008B', 'peru': '#CD853F', 'DarkMagenta': '#8B008B', 'LightBlue2': '#B2DFEE', 'red2': '#EE0000', 'red1': '#FF0000', 'LightBlue1': '#BFEFFF', 'LightBlue4': '#68838B', 'red4': '#8B0000', 'MediumSpringGreen': '#00FA9A', 'chocolate': '#D2691E', 'ForestGreen': '#228B22', 'DarkRed': '#8B0000', 'olive': '#808000', 'HotPink2': '#EE6AA7', 'HotPink1': '#FF6EB4', 'HotPink4': '#8B3A62', 'grey18': '#2E2E2E', 'grey19': '#303030', 'none': '#000000', 'PeachPuff': '#FFDAB9', 'MediumGoldenRod': '#D1C166', 'moccasin': '#FFE4B5', 'grey10': '#1A1A1A', 'chocolate1': '#FF7F24', 'chocolate2': '#EE7621', 'chocolate3': '#CD661D', 'chocolate4': '#8B4513', 'wheat2': '#EED8AE', 'grey16': '#292929', 'grey17': '#2B2B2B', 'gray69': '#B0B0B0', 'gray68': '#ADADAD', 'gray65': '#A6A6A6', 'gray64': '#A3A3A3', 'gray67': '#ABABAB', 'gray66': '#A8A8A8', 'gray61': '#9C9C9C', 'coral': '#FF7F50', 'gray63': '#A1A1A1', 'gray62': '#9E9E9E', 'LightGoldenrod': '#EEDD82', 'turquoise4': '#00868B', 'seashell2': '#EEE5DE', 'seashell3': '#CDC5BF', 'magenta': '#FF00FF', 'seashell1': '#FFF5EE', 'tan': '#D2B48C', 'seashell4': '#8B8682', 'pink': '#FFC0CB', 'LightSlateBlue': '#8470FF', 'SteelBlue1': '#63B8FF', 'SteelBlue3': '#4F94CD', 'SteelBlue2': '#5CACEE', 'SteelBlue4': '#36648B', 'grey89': '#E3E3E3', 'grey88': '#E0E0E0', 'grey87': '#DEDEDE', 'grey86': '#DBDBDB', 'grey85': '#D9D9D9', 'grey84': '#D6D6D6', 'grey83': '#D4D4D4', 'grey82': '#D1D1D1', 'grey81': '#CFCFCF', 'grey80': '#CCCCCC', 'ivory2': '#EEEEE0', 'khaki4': '#8B864E', 'khaki1': '#FFF68F', 'khaki2': '#EEE685', 'khaki3': '#CDC673', 'salmon1': '#FF8C69', 'salmon3': '#CD7054', 'salmon2': '#EE8262', 'salmon4': '#8B4C39', 'LightPink': '#FFB6C1', 'gray9': '#171717', 'green': '#008000', 'brown2': '#EE3B3B', 'brown3': '#CD3333', 'brown1': '#FF4040', 'brown4': '#8B2323', 'cadet blue': '#5F9EA0', 'orange4': '#8B5A00', 'orange1': '#FFA500', 'orange3': '#CD8500', 'orange2': '#EE9A00', 'gray3': '#080808', 'gray6': '#0F0F0F', 'yellow4': '#8B8B00', 'yellow3': '#CDCD00', 'yellow2': '#EEEE00', 'yellow1': '#FFFF00', 'PapayaWhip': '#FFEFD5', 'bisque2': '#EED5B7', 'OliveDrab4': '#698B22', 'bisque3': '#CDB79E', 'OliveDrab1': '#C0FF3E', 'OliveDrab2': '#B3EE3A', 'OliveDrab3': '#9ACD32', 'SkyBlue4': '#4A708B', 'SkyBlue1': '#87CEFF', 'SkyBlue3': '#6CA6CD', 'SkyBlue2': '#7EC0EE', 'grey58': '#949494', 'grey59': '#969696', 'grey54': '#8A8A8A', 'grey55': '#8C8C8C', 'grey56': '#8F8F8F', 'grey57': '#919191', 'grey50': '#7F7F7F', 'silver': '#C0C0C0', 'grey52': '#858585', 'grey53': '#878787', 'cyan2': '#00EEEE', 'cyan3': '#00CDCD', 'gray23': '#3B3B3B', 'RosyBrown4': '#8B6969', 'gray25': '#404040', 'CornflowerBlue': '#6495ED', 'cyan4': '#008B8B', 'gray26': '#424242', 'gray29': '#4A4A4A', 'LimeGreen': '#32CD32', 'MistyRose': '#FFE4E1', 'navy': '#000080', 'gray94': '#F0F0F0', 'gray95': '#F2F2F2', 'gray96': '#F5F5F5', 'gray97': '#F7F7F7', 'gray90': '#E5E5E5', 'gray91': '#E8E8E8', 'gray92': '#EBEBEB', 'gray93': '#EDEDED', 'MediumPurple': '#9370DB', 'MidnightBlue': '#191970', 'cornsilk': '#FFF8DC', 'red': '#FF0000', 'grey69': '#B0B0B0', 'DarkOrchid4': '#68228B', 'blue3': '#0000CD', 'LightSteelBlue': '#B0C4DE', 'DarkOrchid1': '#BF3EFF', 'DarkOrchid2': '#B23AEE', 'DarkOrchid3': '#9A32CD', 'grey72': '#B8B8B8', 'FloralWhite': '#FFFAF0', 'grey70': '#B3B3B3', 'DarkSeaGreen': '#8FBC8F', 'grey71': '#B5B5B5', 'gray17': '#2B2B2B', 'grey77': '#C4C4C4', 'tomato4': '#8B3626', 'tomato1': '#FF6347', 'tomato3': '#CD4F39', 'tomato2': '#EE5C42', 'DarkSlateGray1': '#97FFFF', 'DarkSlateGray2': '#8DEEEE', 'DarkSlateGray3': '#79CDCD', 'DarkSlateGray4': '#528B8B', 'SteelBlue': '#4682B4', 'MediumSlateBlue': '#7B68EE', 'OrangeRed': '#FF4500', 'grey79': '#C9C9C9', 'MediumVioletRed': '#C71585', 'burlywood': '#DEB887', 'white': '#FFFFFF', 'tomato': '#FF6347', 'DodgerBlue': '#1E90FF', 'RoyalBlue4': '#27408B', 'RoyalBlue1': '#4876FF', 'RoyalBlue3': '#3A5FCD', 'RoyalBlue2': '#436EEE', 'MistyRose1': '#FFE4E1', 'MistyRose3': '#CDB7B5', 'MistyRose2': '#EED5D2', 'MistyRose4': '#8B7D7B', 'LightGray': '#D3D3D3', 'LightYellow': '#FFFFE0', 'DarkOrange': '#FF8C00', 'DarkGray': '#A9A9A9', 'SlateGray': '#708090', 'turquoise3': '#00C5CD', 'turquoise2': '#00E5EE', 'turquoise1': '#00F5FF', 'burlywood2': '#EEC591', 'burlywood4': '#8B7355', 'DarkSlateGray': '#2F4F4F', 'linen': '#FAF0E6', 'grey47': '#787878', 'snow': '#FFFAFA', 'grey46': '#757575', 'gray58': '#949494', 'gray59': '#969696', 'IndianRed4': '#8B3A3A', 'purple4': '#551A8B', 'gray52': '#858585', 'gray53': '#878787', 'purple1': '#9B30FF', 'IndianRed1': '#FF6A6A', 'purple3': '#7D26CD', 'purple2': '#912CEE', 'thistle3': '#CDB5CD', 'thistle2': '#EED2EE', 'SpringGreen2': '#00EE76', 'SpringGreen3': '#00CD66', 'SpringGreen4': '#008B45', 'thistle4': '#8B7B8B', 'LightPink2': '#EEA2AD', 'LightPink3': '#CD8C95', 'LightPink1': '#FFAEB9', 'LightPink4': '#8B5F65', 'MediumPurple1': '#AB82FF', 'MediumPurple2': '#9F79EE', 'MediumPurple3': '#8968CD', 'MediumPurple4': '#5D478B', 'MediumTurquoise': '#48D1CC', 'DimGray': '#696969', 'gray14': '#242424', 'grey100': '#FFFFFF', 'OrangeRed3': '#CD3700', 'OrangeRed2': '#EE4000', 'OrangeRed1': '#FF4500', 'LightSeaGreen': '#20B2AA', 'gold': '#FFD700', 'OrangeRed4': '#8B2500', 'NavajoWhite4': '#8B795E', 'NavajoWhite1': '#FFDEAD', 'LawnGreen': '#7CFC00', 'NavajoWhite3': '#CDB38B', 'LightGoldenrod4': '#8B814C', 'LightGoldenrod1': '#FFEC8B', 'LightGoldenrod3': '#CDBE70', 'LightGoldenrod2': '#EEDC82', 'gray21': '#363636', 'PaleGreen': '#98FB98', 'green4': '#008B00', 'green1': '#00FF00', 'green3': '#00CD00', 'green2': '#00EE00', 'MediumOrchid': '#BA55D3', 'black': '#000000', 'gray20': '#333333', 'orchid4': '#8B4789', 'DodgerBlue1': '#1E90FF', 'DodgerBlue2': '#1C86EE', 'DodgerBlue3': '#1874CD', 'DodgerBlue4': '#104E8B', 'orchid1': '#FF83FA', 'orchid2': '#EE7AE9', 'orchid3': '#CD69C9', 'DarkSeaGreen4': '#698B69', 'DarkSeaGreen3': '#9BCD9B', 'DarkSeaGreen2': '#B4EEB4', 'DarkSeaGreen1': '#C1FFC1', 'gray100': '#FFFFFF', 'BlueViolet': '#8A2BE2', 'bisque4': '#8B7D6B', 'MediumOrchid4': '#7A378B', 'MintCream': '#F5FFFA', 'MediumOrchid1': '#E066FF', 'bisque1': '#FFE4C4', 'MediumOrchid3': '#B452CD', 'MediumOrchid2': '#D15FEE', 'gray': '#7E7E7E', 'DeepSkyBlue': '#00BFFF', 'LightGrey': '#D3D3D3', 'grey78': '#C7C7C7', 'gray22': '#383838', 'plum4': '#8B668B', 'plum3': '#CD96CD', 'plum2': '#EEAEEE', 'plum1': '#FFBBFF', 'DarkSlateGrey': '#2F4F4F', 'DarkOrchid': '#9932CC', 'OliveDrab': '#6B8E23', 'gray83': '#D4D4D4', 'grey49': '#7D7D7D', 'grey48': '#7A7A7A', 'thistle': '#D8BFD8', 'violet': '#EE82EE', 'grey43': '#6E6E6E', 'grey42': '#6B6B6B', 'LightSalmon4': '#8B5742', 'grey40': '#666666', 'LightSalmon2': '#EE9572', 'LightSalmon3': '#CD8162', 'grey45': '#737373', 'LightSalmon1': '#FFA07A', 'honeydew': '#F0FFF0', 'gray18': '#2E2E2E', 'gray19': '#303030', 'LightCyan': '#E0FFFF', 'gray15': '#262626', 'gray16': '#292929', 'gray82': '#D1D1D1', 'gray10': '#1A1A1A', 'gray11': '#1C1C1C', 'gray12': '#1F1F1F', 'gray13': '#212121', 'grey93': '#EDEDED', 'PaleGoldenrod': '#EEE8AA', 'gainsboro': '#DCDCDC', 'AntiqueWhite3': '#CDC0B0', 'AntiqueWhite2': '#EEDFCC', 'AntiqueWhite1': '#FFEFDB', 'gray27': '#454545', 'SlateBlue': '#6A5ACD', 'AntiqueWhite4': '#8B8378', 'DimGrey': '#696969', 'VioletRed': '#D02090', 'WhiteSmoke': '#F5F5F5', 'grey38': '#616161', 'grey39': '#636363', 'grey36': '#5C5C5C', 'grey37': '#5E5E5E', 'grey34': '#575757', 'grey35': '#595959', 'aqua': '#00FFFF', 'grey33': '#545454', 'grey30': '#4D4D4D', 'grey31': '#4F4F4F', 'NavyBlue': '#000080', 'sienna4': '#8B4726', 'gray81': '#CFCFCF', 'gray80': '#CCCCCC', 'sienna1': '#FF8247', 'gray86': '#DBDBDB', 'sienna3': '#CD6839', 'sienna2': '#EE7942', 'gray89': '#E3E3E3', 'gray88': '#E0E0E0', 'SlateBlue4': '#473C8B', 'gray87': '#DEDEDE', 'LightSteelBlue1': '#CAE1FF', 'magenta3': '#CD00CD', 'IndianRed': '#CD5C5C', 'SlateBlue2': '#7A67EE', 'SlateBlue1': '#836FFF', 'LightBlue': '#ADD8E6', 'PeachPuff4': '#8B7765', 'seashell': '#FFF5EE', 'SaddleBrown': '#8B4513', 'PeachPuff1': '#FFDAB9', 'PeachPuff2': '#EECBAD', 'PeachPuff3': '#CDAF95', 'aquamarine': '#7FFFD4', 'LemonChiffon2': '#EEE9BF', 'LemonChiffon1': '#FFFACD', 'tan4': '#8B5A2B', 'tan3': '#CD853F', 'tan2': '#EE9A49', 'tan1': '#FFA54F', 'LemonChiffon4': '#8B8970', 'orange': '#FFA500', 'OldLace': '#FDF5E6', 'PowderBlue': '#B0E0E6', 'RosyBrown3': '#CD9B9B', 'RoyalBlue': '#4169E1', 'LightSkyBlue4': '#607B8B', 'LightSkyBlue1': '#B0E2FF', 'LightSkyBlue2': '#A4D3EE', 'LightSkyBlue3': '#8DB6CD', 'LightYellow1': '#FFFFE0', 'LightYellow2': '#EEEED1', 'LightYellow3': '#CDCDB4', 'LightYellow4': '#8B8B7A', 'goldenrod4': '#8B6914', 'goldenrod1': '#FFC125', 'goldenrod2': '#EEB422', 'goldenrod3': '#CD9B1D', 'grey32': '#525252', 'LemonChiffon': '#FFFACD', 'burlywood1': '#FFD39B', 'YellowGreen': '#9ACD32', 'LightCoral': '#F08080', 'burlywood3': '#CDAA7D', 'ivory3': '#CDCDC1', 'firebrick3': '#CD2626', 'ivory1': '#FFFFF0', 'grey8': '#141414', 'ivory4': '#8B8B83', 'grey9': '#171717', 'DarkSalmon': '#E9967A', 'SlateGray1': '#C6E2FF', 'SlateGray2': '#B9D3EE', 'SlateGray3': '#9FB6CD', 'SlateGray4': '#6C7B8B', 'RosyBrown2': '#EEB4B4', 'RosyBrown1': '#FFC1C1', 'gray85': '#D9D9D9', 'gray84': '#D6D6D6', 'LightGreen': '#90EE90', 'LavenderBlush1': '#FFF0F5', 'grey73': '#BABABA', 'LavenderBlush3': '#CDC1C5', 'LavenderBlush2': '#EEE0E5', 'grey76': '#C2C2C2', 'LavenderBlush4': '#8B8386', 'grey74': '#BDBDBD', 'grey75': '#BFBFBF', 'pink1': '#FFB5C5', 'pink3': '#CD919E', 'pink2': '#EEA9B8', 'pink4': '#8B636C', 'gray47': '#787878', 'gray46': '#757575', 'gray45': '#737373', 'gray44': '#707070', 'gray43': '#6E6E6E', 'gray42': '#6B6B6B', 'gray41': '#696969', 'gray40': '#666666', 'gray49': '#7D7D7D', 'gray48': '#7A7A7A', 'MediumAquamarine': '#66CDAA', 'MediumForestGreen': '#32814B', 'azure1': '#F0FFFF', 'azure3': '#C1CDCD', 'azure2': '#E0EEEE', 'indigo': '#4B0082', 'azure4': '#838B8B', 'firebrick': '#B22222', 'DarkGrey': '#A9A9A9', 'magenta4': '#8B008B', 'SlateBlue3': '#6959CD', 'magenta2': '#EE00EE', 'magenta1': '#FF00FF', 'grey51': '#828282', 'chartreuse': '#7FFF00', 'grey41': '#696969', 'DarkOliveGreen4': '#6E8B3D', 'turquoise': '#40E0D0', 'DarkOliveGreen1': '#CAFF70', 'DarkOliveGreen3': '#A2CD5A', 'DarkOliveGreen2': '#BCEE68', 'grey6': '#0F0F0F', 'grey7': '#121212', 'grey4': '#0A0A0A', 'grey5': '#0D0D0D', 'grey2': '#050505', 'grey3': '#080808', 'grey0': '#000000', 'grey1': '#030303', 'gray50': '#7F7F7F', 'cyan1': '#00FFFF', 'gray51': '#828282', 'gray24': '#3D3D3D', 'HotPink': '#FF69B4', 'DarkGoldenrod4': '#8B6508', 'gray54': '#8A8A8A', 'DarkGoldenrod1': '#FFB90F', 'DarkGoldenrod2': '#EEAD0E', 'DarkGoldenrod3': '#CD950C', 'IndianRed2': '#EE6363', 'DeepPink': '#FF1493', 'gray28': '#474747', 'IndianRed3': '#CD5555', 'DarkCyan': '#008B8B', 'GreenYellow': '#ADFF2F', 'LightSalmon': '#FFA07A', 'DarkOrange4': '#8B4500', 'DarkOrange1': '#FF7F00', 'transparent': '#000000', 'DarkOrange3': '#CD6600', 'orchid': '#DA70D6', 'purple': '#800080', 'wheat4': '#8B7E66', 'wheat1': '#FFE7BA', 'wheat3': '#CDBA96', 'SpringGreen1': '#00FF7F', 'coral3': '#CD5B45', 'coral2': '#EE6A50', 'coral1': '#FF7256', 'thistle1': '#FFE1FF', 'PaleTurquoise': '#AFEEEE', 'bisque': '#FFE4C4', 'DeepPink3': '#CD1076', 'DeepPink2': '#EE1289', 'DeepPink1': '#FF1493', 'khaki': '#F0E68C', 'wheat': '#F5DEB3', 'MediumSeaGreen': '#3CB371', 'DeepPink4': '#8B0A50', 'salmon': '#FA8072', 'grey44': '#707070', 'DarkSlateBlue': '#483D8B', 'PaleVioletRed4': '#8B475D', 'PaleVioletRed1': '#FF82AB', 'PaleVioletRed2': '#EE799F', 'PaleVioletRed3': '#CD6889', 'AntiqueWhite': '#FAEBD7', 'PaleTurquoise4': '#668B8B', 'PaleTurquoise3': '#96CDCD', 'PaleTurquoise2': '#AEEEEE', 'PaleTurquoise1': '#BBFFFF', 'gray56': '#8F8F8F', 'plum': '#DDA0DD', 'beige': '#F5F5DC', 'SpringGreen': '#00FF7F', 'azure': '#F0FFFF', 'honeydew1': '#F0FFF0', 'honeydew2': '#E0EEE0', 'honeydew3': '#C1CDC1', 'honeydew4': '#838B83', 'gray57': '#919191', 'snow4': '#8B8989', 'snow2': '#EEE9E9', 'snow3': '#CDC9C9', 'snow1': '#FFFAFA', 'SandyBrown': '#F4A460', 'grey13': '#212121', 'SeaGreen4': '#2E8B57', 'SeaGreen3': '#43CD80', 'SeaGreen2': '#4EEE94', 'SeaGreen1': '#54FF9F', 'grey29': '#4A4A4A', 'grey28': '#474747', 'grey25': '#404040', 'grey24': '#3D3D3D', 'grey27': '#454545', 'grey26': '#424242', 'fuchsia': '#FF00FF', 'grey20': '#333333', 'grey23': '#3B3B3B', 'grey22': '#383838', 'gray78': '#C7C7C7', 'gray79': '#C9C9C9', 'gray76': '#C2C2C2', 'gray77': '#C4C4C4', 'gray74': '#BDBDBD', 'gray75': '#BFBFBF', 'gray72': '#B8B8B8', 'gray73': '#BABABA', 'gray70': '#B3B3B3', 'gray71': '#B5B5B5', 'ivory': '#FFFFF0', 'LemonChiffon3': '#CDC9A5', 'DeepSkyBlue4': '#00688B', 'DeepSkyBlue3': '#009ACD', 'DeepSkyBlue2': '#00B2EE', 'DeepSkyBlue1': '#00BFFF', 'cornsilk4': '#8B8878', 'cornsilk2': '#EEE8CD', 'cornsilk3': '#CDC8B1', 'CadetBlue': '#5F9EA0', 'cornsilk1': '#FFF8DC', 'grey90': '#E5E5E5', 'grey91': '#E8E8E8', 'grey92': '#EBEBEB', 'goldenrod': '#DAA520', 'grey94': '#F0F0F0', 'grey95': '#F2F2F2', 'grey96': '#F5F5F5', 'grey97': '#F7F7F7', 'grey98': '#FAFAFA', 'grey99': '#FCFCFC', 'red3': '#CD0000', 'LightSteelBlue2': '#BCD2EE', 'LightSteelBlue3': '#A2B5CD', 'LightSteelBlue4': '#6E7B8B', 'LightBlue3': '#9AC0CD', 'maroon': '#800000', 'LightSkyBlue': '#87CEFA', 'LightGoldenrodYellow': '#FAFAD2', 'MediumBlue': '#0000CD', 'LightSlateGray': '#778899', 'DarkOrange2': '#EE7600', 'PaleVioletRed': '#DB7093'} +var divlist = ['#d0', '#d1', '#d2', '#d3', '#d4', '#d5', '#d6', '#d7', '#d8', '#d9', '#d10', '#d11', '#d12', '#d13', '#d14', '#d15', '#d16', '#d17', '#d18', '#d19', '#d20', '#d21', '#d22', '#d23', '#d24', '#d25', '#d26', '#d27', '#d28', '#d29', '#d30', '#d31', '#d32', '#d33', '#d34', '#d35', '#d36', '#d37', '#d38', '#d39', '#d40', '#d41', '#d42', '#d43', '#d44', '#d45', '#d46', '#d47', '#d48', '#d49', '#d50', '#d51', '#d52', '#d53', '#d54', '#d55', '#d56', '#d57', '#d58', '#d59', '#d60', '#d61', '#d62', '#d63', '#d64', '#d65', '#d66', '#d67', '#d68', '#d69', '#d70', '#d71', '#d72', '#d73', '#d74', '#d75', '#d76', '#d77', '#d78', '#d79', '#d80', '#d81', '#d82', '#d83', '#d84', '#d85', '#d86', '#d87', '#d88', '#d89', '#d90', '#d91', '#d92', '#d93', '#d94', '#d95', '#d96', '#d97', '#d98', '#d99', '#d100', '#d101', '#d102', '#d103', '#d104', '#d105', '#d106', '#d107', '#d108', '#d109', '#d110', '#d111', '#d112', '#d113', '#d114', '#d115', '#d116', '#d117', '#d118', '#d119', '#d120', '#d121', '#d122', '#d123', '#d124', '#d125', '#d126', '#d127', '#d128', '#d129', '#d130', '#d131', '#d132', '#d133', '#d134', '#d135', '#d136', '#d137', '#d138', '#d139', '#d140', '#d141', '#d142', '#d143', '#d144', '#d145', '#d146', '#d147', '#d148', '#d149', '#d150', '#d151', '#d152', '#d153', '#d154', '#d155', '#d156', '#d157', '#d158', '#d159', '#d160', '#d161', '#d162', '#d163', '#d164', '#d165', '#d166', '#d167', '#d168', '#d169', '#d170', '#d171', '#d172', '#d173', '#d174', '#d175', '#d176', '#d177', '#d178', '#d179', '#d180', '#d181', '#d182', '#d183', '#d184', '#d185', '#d186', '#d187', '#d188', '#d189', '#d190', '#d191', '#d192', '#d193', '#d194', '#d195', '#d196', '#d197', '#d198', '#d199', '#d200', '#d201', '#d202', '#d203', '#d204', '#d205', '#d206', '#d207', '#d208', '#d209', '#d210', '#d211', '#d212', '#d213', '#d214', '#d215', '#d216', '#d217', '#d218', '#d219', '#d220', '#d221', '#d222', '#d223', '#d224', '#d225', '#d226', '#d227', '#d228', '#d229', '#d230', '#d231', '#d232', '#d233', '#d234', '#d235', '#d236', '#d237', '#d238', '#d239', '#d240', '#d241', '#d242', '#d243', '#d244', '#d245', '#d246', '#d247', '#d248', '#d249', '#d250', '#d251', '#d252', '#d253', '#d254', '#d255', '#d256', '#d257', '#d258', '#d259', '#d260', '#d261', '#d262', '#d263', '#d264', '#d265', '#d266', '#d267', '#d268', '#d269', '#d270', '#d271', '#d272', '#d273', '#d274', '#d275', '#d276', '#d277', '#d278', '#d279', '#d280', '#d281', '#d282', '#d283', '#d284', '#d285', '#d286', '#d287', '#d288', '#d289', '#d290', '#d291', '#d292', '#d293', '#d294', '#d295', '#d296', '#d297', '#d298', '#d299', '#d300', '#d301', '#d302', '#d303', '#d304', '#d305', '#d306', '#d307', '#d308', '#d309', '#d310', '#d311', '#d312', '#d313', '#d314', '#d315', '#d316', '#d317', '#d318', '#d319', '#d320', '#d321', '#d322', '#d323', '#d324', '#d325', '#d326', '#d327', '#d328', '#d329', '#d330', '#d331', '#d332', '#d333', '#d334', '#d335', '#d336', '#d337', '#d338', '#d339', '#d340', '#d341', '#d342', '#d343', '#d344', '#d345', '#d346', '#d347', '#d348', '#d349', '#d350', '#d351', '#d352', '#d353', '#d354', '#d355', '#d356', '#d357', '#d358', '#d359', '#d360', '#d361', '#d362', '#d363', '#d364', '#d365', '#d366', '#d367', '#d368', '#d369', '#d370', '#d371', '#d372', '#d373', '#d374', '#d375', '#d376', '#d377', '#d378', '#d379', '#d380', '#d381', '#d382', '#d383', '#d384', '#d385', '#d386', '#d387', '#d388', '#d389', '#d390', '#d391', '#d392', '#d393', '#d394', '#d395', '#d396', '#d397', '#d398', '#d399', '#d400', '#d401', '#d402', '#d403', '#d404', '#d405', '#d406', '#d407', '#d408', '#d409', '#d410', '#d411', '#d412', '#d413', '#d414', '#d415', '#d416', '#d417', '#d418', '#d419', '#d420', '#d421', '#d422', '#d423', '#d424', '#d425', '#d426', '#d427', '#d428', '#d429', '#d430', '#d431', '#d432', '#d433', '#d434', '#d435', '#d436', '#d437', '#d438', '#d439', '#d440', '#d441', '#d442', '#d443', '#d444', '#d445', '#d446', '#d447', '#d448', '#d449', '#d450', '#d451', '#d452', '#d453', '#d454', '#d455', '#d456', '#d457', '#d458', '#d459', '#d460', '#d461', '#d462', '#d463', '#d464', '#d465', '#d466', '#d467', '#d468', '#d469', '#d470', '#d471', '#d472', '#d473', '#d474', '#d475', '#d476', '#d477', '#d478', '#d479', '#d480', '#d481', '#d482', '#d483', '#d484', '#d485', '#d486', '#d487', '#d488', '#d489', '#d490', '#d491', '#d492', '#d493', '#d494', '#d495', '#d496', '#d497', '#d498', '#d499', '#d500', '#d501', '#d502', '#d503', '#d504', '#d505', '#d506', '#d507', '#d508', '#d509', '#d510', '#d511', '#d512', '#d513', '#d514', '#d515', '#d516', '#d517', '#d518', '#d519', '#d520', '#d521', '#d522', '#d523', '#d524', '#d525', '#d526', '#d527', '#d528', '#d529', '#d530', '#d531', '#d532', '#d533', '#d534', '#d535', '#d536', '#d537', '#d538', '#d539', '#d540', '#d541', '#d542', '#d543', '#d544', '#d545', '#d546', '#d547', '#d548', '#d549', '#d550', '#d551', '#d552', '#d553', '#d554', '#d555', '#d556', '#d557', '#d558', '#d559', '#d560', '#d561', '#d562', '#d563', '#d564', '#d565', '#d566', '#d567', '#d568', '#d569', '#d570', '#d571', '#d572', '#d573', '#d574', '#d575', '#d576', '#d577', '#d578', '#d579', '#d580', '#d581', '#d582', '#d583', '#d584', '#d585', '#d586', '#d587', '#d588', '#d589', '#d590', '#d591', '#d592', '#d593', '#d594', '#d595', '#d596', '#d597', '#d598', '#d599', '#d600', '#d601', '#d602', '#d603', '#d604', '#d605', '#d606', '#d607', '#d608', '#d609', '#d610', '#d611', '#d612', '#d613', '#d614', '#d615', '#d616', '#d617', '#d618', '#d619', '#d620', '#d621', '#d622', '#d623', '#d624', '#d625', '#d626', '#d627', '#d628', '#d629', '#d630', '#d631', '#d632', '#d633', '#d634', '#d635', '#d636', '#d637', '#d638', '#d639', '#d640', '#d641', '#d642', '#d643', '#d644', '#d645', '#d646', '#d647', '#d648', '#d649', '#d650', '#d651', '#d652', '#d653', '#d654', '#d655', '#d656', '#d657', '#d658', '#d659', '#d660', '#d661', '#d662', '#d663', '#d664', '#d665', '#d666', '#d667', '#d668', '#d669', '#d670', '#d671', '#d672', '#d673'] +var divtoname = {'#d322': 'khaki4', '#d600': 'gray34', '#d118': 'MediumPurple1', '#d119': 'MediumPurple2', '#d114': 'purple3', '#d115': 'purple4', '#d116': 'purple1', '#d117': 'MediumPurple', '#d110': 'purple', '#d111': 'indigo', '#d112': 'BlueViolet', '#d113': 'purple2', '#d529': 'grey67', '#d231': 'DarkSlateGray', '#d339': 'LightGoldenrod3', '#d233': 'MediumTurquoise', '#d232': 'DarkSlateGrey', '#d235': 'turquoise', '#d234': 'LightSeaGreen', '#d237': 'aquamarine', '#d236': 'aquamarine4', '#d239': 'aquamarine2', '#d238': 'aquamarine1', '#d332': 'gold1', '#d333': 'gold2', '#d334': 'gold3', '#d335': 'gold4', '#d336': 'LightGoldenrod', '#d337': 'LightGoldenrod4', '#d424': 'LightSalmon3', '#d425': 'LightSalmon', '#d426': 'LightSalmon1', '#d427': 'LightSalmon4', '#d420': 'sienna', '#d421': 'sienna1', '#d422': 'sienna2', '#d423': 'sienna3', '#d587': 'grey41', '#d586': 'gray41', '#d585': 'DimGrey', '#d584': 'DimGray', '#d428': 'LightSalmon2', '#d429': 'coral', '#d581': 'grey43', '#d580': 'gray43', '#d89': 'thistle4', '#d88': 'plum3', '#d349': 'goldenrod4', '#d348': 'goldenrod3', '#d81': 'thistle2', '#d80': 'thistle1', '#d83': 'plum2', '#d82': 'plum1', '#d85': 'thistle3', '#d84': 'thistle', '#d87': 'violet', '#d86': 'plum', '#d601': 'grey34', '#d67': 'DeepPink3', '#d66': 'DeepPink2', '#d65': 'DeepPink1', '#d64': 'DeepPink', '#d63': 'HotPink', '#d62': 'HotPink4', '#d61': 'HotPink1', '#d60': 'HotPink2', '#d69': 'maroon1', '#d68': 'DeepPink4', '#d510': 'grey76', '#d511': 'silver', '#d512': 'gray75', '#d513': 'grey75', '#d514': 'gray74', '#d515': 'grey74', '#d516': 'gray73', '#d517': 'grey73', '#d518': 'gray72', '#d519': 'grey72', '#d150': 'LightSteelBlue2', '#d151': 'LightSteelBlue3', '#d152': 'LightSteelBlue4', '#d153': 'SlateGray4', '#d154': 'SlateGray1', '#d155': 'SlateGray2', '#d156': 'SlateGray3', '#d157': 'LightSlateGray', '#d158': 'LightSlateGrey', '#d159': 'SlateGray', '#d565': 'gray50', '#d564': 'fractal', '#d567': 'gray', '#d566': 'grey50', '#d561': 'grey52', '#d560': 'gray52', '#d563': 'grey51', '#d562': 'gray51', '#d604': 'gray32', '#d605': 'grey32', '#d606': 'gray31', '#d607': 'grey31', '#d569': 'grey49', '#d568': 'gray49', '#d602': 'gray33', '#d603': 'grey33', '#d125': 'SlateBlue', '#d124': 'MediumSlateBlue', '#d127': 'SlateBlue2', '#d126': 'SlateBlue1', '#d121': 'MediumPurple4', '#d120': 'MediumPurple3', '#d123': 'LightSlateBlue', '#d122': 'DarkSlateBlue', '#d359': 'wheat1', '#d129': 'SlateBlue4', '#d128': 'SlateBlue3', '#d301': 'LightYellow', '#d300': 'ivory1', '#d303': 'beige', '#d302': 'LightYellow1', '#d305': 'LightGoldenrodYellow', '#d304': 'ivory2', '#d307': 'ivory3', '#d306': 'LightYellow2', '#d309': 'ivory4', '#d308': 'LightYellow3', '#d462': 'grey98', '#d351': 'DarkGoldenrod1', '#d464': 'grey97', '#d465': 'gray96', '#d466': 'grey96', '#d467': 'WhiteSmoke', '#d463': 'gray97', '#d268': 'PaleGreen3', '#d269': 'honeydew4', '#d266': 'DarkSeaGreen3', '#d267': 'DarkSeaGreen', '#d264': 'LightGreen', '#d265': 'PaleGreen2', '#d262': 'PaleGreen', '#d263': 'honeydew3', '#d260': 'DarkSeaGreen2', '#d261': 'PaleGreen1', '#d598': 'gray35', '#d29': 'firebrick4', '#d28': 'brown4', '#d23': 'red2', '#d22': 'firebrick3', '#d21': 'RosyBrown4', '#d20': 'red1', '#d27': 'IndianRed4', '#d26': 'red3', '#d25': 'brown', '#d24': 'firebrick', '#d599': 'grey35', '#d338': 'LightGoldenrod1', '#d419': 'sienna4', '#d418': 'seashell1', '#d230': 'teal', '#d415': 'chocolate4', '#d414': 'chocolate3', '#d417': 'seashell', '#d416': 'SaddleBrown', '#d411': 'chocolate', '#d410': 'seashell3', '#d413': 'chocolate2', '#d412': 'chocolate1', '#d398': 'tan1', '#d399': 'tan2', '#d392': 'DarkOrange1', '#d393': 'linen', '#d390': 'bisque1', '#d391': 'bisque3', '#d396': 'DarkOrange4', '#d397': 'peru', '#d394': 'DarkOrange2', '#d395': 'DarkOrange3', '#d194': 'CadetBlue2', '#d195': 'CadetBlue3', '#d196': 'CadetBlue4', '#d197': 'turquoise1', '#d190': 'LightBlue', '#d191': 'LightBlue4', '#d192': 'PowderBlue', '#d193': 'CadetBlue1', '#d198': 'turquoise2', '#d199': 'turquoise3', '#d330': 'cornsilk4', '#d331': 'gold', '#d640': 'gray14', '#d641': 'grey14', '#d642': 'gray13', '#d643': 'grey13', '#d644': 'gray12', '#d645': 'grey12', '#d646': 'gray11', '#d647': 'grey11', '#d648': 'gray10', '#d649': 'grey10', '#d668': 'black', '#d486': 'gainsboro', '#d487': 'gray86', '#d484': 'gray87', '#d485': 'grey87', '#d482': 'gray88', '#d483': 'grey88', '#d480': 'gray89', '#d481': 'grey89', '#d521': 'grey71', '#d520': 'gray71', '#d523': 'grey70', '#d522': 'gray70', '#d525': 'grey69', '#d524': 'gray69', '#d488': 'grey86', '#d489': 'gray85', '#d430': 'OrangeRed', '#d660': 'gray4', '#d169': 'SteelBlue1', '#d168': 'SteelBlue', '#d661': 'grey4', '#d161': 'DodgerBlue', '#d160': 'SlateGrey', '#d163': 'DodgerBlue2', '#d162': 'DodgerBlue1', '#d165': 'DodgerBlue3', '#d164': 'DodgerBlue4', '#d167': 'SteelBlue4', '#d166': 'AliceBlue', '#d635': 'grey17', '#d634': 'gray17', '#d637': 'grey16', '#d636': 'gray16', '#d631': 'grey19', '#d630': 'gray19', '#d633': 'grey18', '#d632': 'gray18', '#d639': 'grey15', '#d638': 'gray15', '#d368': 'PapayaWhip', '#d222': 'cyan', '#d223': 'cyan1', '#d220': 'LightCyan4', '#d221': 'aqua', '#d226': 'DarkSlateGray4', '#d227': 'cyan3', '#d224': 'PaleTurquoise4', '#d225': 'cyan2', '#d228': 'cyan4', '#d229': 'DarkCyan', '#d590': 'gray39', '#d538': 'gray63', '#d539': 'grey63', '#d591': 'grey39', '#d451': 'MistyRose', '#d450': 'MistyRose2', '#d453': 'salmon', '#d452': 'MistyRose1', '#d455': 'white', '#d454': 'MistyRose3', '#d457': 'grey100', '#d456': 'gray100', '#d459': 'gray99', '#d458': 'grey100', '#d592': 'gray38', '#d593': 'grey38', '#d594': 'gray37', '#d595': 'grey37', '#d596': 'gray36', '#d597': 'grey36', '#d297': 'YellowGreen', '#d296': 'OliveDrab3', '#d295': 'OliveDrab2', '#d294': 'OliveDrab1', '#d293': 'OliveDrab', '#d292': 'DarkOliveGreen', '#d291': 'DarkOliveGreen4', '#d290': 'DarkOliveGreen2', '#d356': 'wheat2', '#d357': 'OldLace', '#d354': 'DarkGoldenrod4', '#d355': 'FloralWhite', '#d352': 'DarkGoldenrod2', '#d353': 'DarkGoldenrod3', '#d299': 'ivory', '#d298': 'OliveDrab4', '#d468': 'gray95', '#d534': 'gray65', '#d535': 'grey65', '#d52': 'LavenderBlush2', '#d53': 'LavenderBlush4', '#d50': 'LavenderBlush1', '#d51': 'LavenderBlush3', '#d56': 'VioletRed3', '#d57': 'VioletRed1', '#d54': 'maroon', '#d55': 'HotPink3', '#d58': 'VioletRed2', '#d59': 'VioletRed4', '#d469': 'grey95', '#d558': 'gray53', '#d559': 'grey53', '#d576': 'gray45', '#d577': 'grey45', '#d574': 'gray46', '#d575': 'grey46', '#d572': 'gray47', '#d573': 'grey47', '#d570': 'gray48', '#d571': 'grey48', '#d671': 'opaque', '#d670': 'grey0', '#d673': 'transparent', '#d672': 'none', '#d578': 'gray44', '#d579': 'grey44', '#d589': 'grey40', '#d588': 'gray40', '#d4': 'RosyBrown2', '#d5': 'snow3', '#d6': 'LightCoral', '#d7': 'IndianRed1', '#d0': 'snow', '#d1': 'snow1', '#d2': 'snow2', '#d3': 'RosyBrown1', '#d8': 'RosyBrown3', '#d9': 'IndianRed2', '#d136': 'MediumBlue', '#d137': 'blue4', '#d134': 'blue2', '#d135': 'blue3', '#d132': 'blue', '#d133': 'blue1', '#d130': 'GhostWhite', '#d131': 'lavender', '#d583': 'grey42', '#d138': 'DarkBlue', '#d139': 'MidnightBlue', '#d312': 'yellow1', '#d313': 'yellow2', '#d310': 'LightYellow4', '#d311': 'yellow', '#d316': 'olive', '#d317': 'DarkKhaki', '#d314': 'yellow3', '#d315': 'yellow4', '#d318': 'khaki2', '#d319': 'LemonChiffon4', '#d259': 'DarkSeaGreen1', '#d258': 'honeydew2', '#d253': 'SeaGreen4', '#d252': 'SeaGreen1', '#d251': 'SeaGreen3', '#d250': 'SeaGreen', '#d257': 'honeydew1', '#d256': 'honeydew', '#d255': 'MediumForestGreen', '#d254': 'SeaGreen2', '#d345': 'goldenrod', '#d344': 'cornsilk1', '#d612': 'gray28', '#d347': 'goldenrod2', '#d461': 'gray98', '#d346': 'goldenrod1', '#d479': 'grey90', '#d341': 'cornsilk3', '#d478': 'gray90', '#d340': 'LightGoldenrod2', '#d343': 'cornsilk', '#d342': 'cornsilk2', '#d528': 'gray67', '#d408': 'seashell4', '#d409': 'seashell2', '#d406': 'PeachPuff3', '#d407': 'SandyBrown', '#d404': 'PeachPuff4', '#d405': 'PeachPuff2', '#d402': 'PeachPuff', '#d403': 'PeachPuff1', '#d400': 'tan3', '#d401': 'tan4', '#d552': 'gray56', '#d460': 'grey99', '#d16': 'firebrick2', '#d17': 'snow4', '#d14': 'IndianRed', '#d15': 'IndianRed3', '#d12': 'firebrick1', '#d13': 'brown2', '#d10': 'RosyBrown', '#d11': 'brown1', '#d532': 'gray66', '#d533': 'grey66', '#d530': 'DarkGray', '#d531': 'DarkGrey', '#d536': 'gray64', '#d537': 'grey64', '#d18': 'brown3', '#d19': 'red', '#d329': 'MediumGoldenRod', '#d328': 'LemonChiffon2', '#d178': 'LightSkyBlue1', '#d179': 'LightSkyBlue2', '#d172': 'SkyBlue4', '#d173': 'SkyBlue1', '#d170': 'SteelBlue2', '#d171': 'SteelBlue3', '#d176': 'LightSkyBlue', '#d177': 'LightSkyBlue4', '#d174': 'SkyBlue2', '#d175': 'SkyBlue3', '#d626': 'gray21', '#d627': 'grey21', '#d624': 'gray22', '#d625': 'grey22', '#d622': 'gray23', '#d623': 'grey23', '#d620': 'gray24', '#d621': 'grey24', '#d628': 'gray20', '#d629': 'grey20', '#d219': 'azure4', '#d218': 'DarkSlateGray3', '#d217': 'PaleTurquoise3', '#d216': 'DarkSlateGray2', '#d215': 'LightCyan3', '#d214': 'azure3', '#d213': 'DarkSlateGray1', '#d212': 'PaleTurquoise2', '#d211': 'PaleTurquoise', '#d210': 'PaleTurquoise1', '#d669': 'gray0', '#d582': 'gray42', '#d442': 'coral3', '#d443': 'coral4', '#d440': 'coral1', '#d441': 'coral2', '#d446': 'tomato1', '#d447': 'tomato2', '#d444': 'tomato4', '#d445': 'tomato', '#d448': 'tomato3', '#d449': 'MistyRose4', '#d280': 'DarkGreen', '#d281': 'LawnGreen', '#d282': 'chartreuse', '#d283': 'chartreuse1', '#d284': 'chartreuse2', '#d285': 'chartreuse3', '#d286': 'chartreuse4', '#d287': 'GreenYellow', '#d288': 'DarkOliveGreen3', '#d289': 'DarkOliveGreen1', '#d361': 'orange', '#d360': 'wheat3', '#d367': 'moccasin', '#d366': 'wheat4', '#d365': 'orange4', '#d364': 'orange3', '#d49': 'LavenderBlush', '#d48': 'PaleVioletRed3', '#d45': 'PaleVioletRed', '#d44': 'PaleVioletRed4', '#d47': 'PaleVioletRed1', '#d46': 'PaleVioletRed2', '#d41': 'pink2', '#d40': 'pink1', '#d43': 'pink4', '#d42': 'pink3', '#d358': 'wheat', '#d527': 'grey68', '#d526': 'gray68', '#d614': 'gray27', '#d543': 'grey61', '#d542': 'gray61', '#d541': 'grey62', '#d540': 'gray62', '#d547': 'grey59', '#d546': 'gray59', '#d545': 'grey60', '#d544': 'gray60', '#d662': 'gray3', '#d663': 'grey3', '#d549': 'grey58', '#d548': 'gray58', '#d666': 'gray1', '#d667': 'grey1', '#d664': 'gray2', '#d665': 'grey2', '#d103': 'MediumOrchid4', '#d102': 'MediumOrchid3', '#d101': 'MediumOrchid2', '#d100': 'MediumOrchid1', '#d107': 'DarkOrchid3', '#d106': 'DarkOrchid1', '#d105': 'DarkOrchid', '#d104': 'DarkViolet', '#d109': 'DarkOrchid4', '#d108': 'DarkOrchid2', '#d244': 'SpringGreen', '#d245': 'SpringGreen1', '#d246': 'SpringGreen2', '#d247': 'SpringGreen3', '#d240': 'aquamarine3', '#d241': 'MediumAquamarine', '#d242': 'MediumSpringGreen', '#d243': 'MintCream', '#d327': 'LemonChiffon3', '#d326': 'khaki', '#d325': 'LemonChiffon1', '#d324': 'LemonChiffon', '#d248': 'SpringGreen4', '#d249': 'MediumSeaGreen', '#d321': 'khaki3', '#d320': 'khaki1', '#d350': 'DarkGoldenrod', '#d439': 'salmon4', '#d438': 'salmon3', '#d98': 'purple', '#d99': 'MediumOrchid', '#d96': 'DarkMagenta', '#d97': 'magenta4', '#d94': 'magenta2', '#d95': 'magenta3', '#d92': 'magenta1', '#d93': 'plum4', '#d90': 'fuchsia', '#d91': 'magenta', '#d433': 'OrangeRed3', '#d432': 'OrangeRed2', '#d431': 'OrangeRed1', '#d74': 'VioletRed', '#d75': 'orchid2', '#d76': 'orchid', '#d77': 'orchid1', '#d70': 'maroon2', '#d71': 'maroon3', '#d72': 'maroon4', '#d73': 'MediumVioletRed', '#d437': 'salmon2', '#d78': 'orchid3', '#d79': 'orchid4', '#d436': 'salmon1', '#d435': 'DarkSalmon', '#d434': 'OrangeRed4', '#d507': 'gray77', '#d506': 'grey78', '#d505': 'gray78', '#d504': 'grey79', '#d503': 'gray79', '#d502': 'grey80', '#d501': 'gray80', '#d500': 'grey81', '#d509': 'gray76', '#d508': 'grey77', '#d473': 'grey93', '#d369': 'NavajoWhite3', '#d147': 'CornflowerBlue', '#d146': 'RoyalBlue4', '#d145': 'RoyalBlue3', '#d144': 'RoyalBlue2', '#d143': 'RoyalBlue1', '#d142': 'RoyalBlue', '#d141': 'NavyBlue', '#d140': 'navy', '#d149': 'LightSteelBlue1', '#d148': 'LightSteelBlue', '#d472': 'gray93', '#d613': 'grey28', '#d363': 'orange2', '#d611': 'grey29', '#d610': 'gray29', '#d617': 'grey26', '#d616': 'gray26', '#d615': 'grey27', '#d362': 'orange1', '#d619': 'grey25', '#d618': 'gray25', '#d208': 'azure2', '#d209': 'LightCyan2', '#d200': 'turquoise4', '#d201': 'cadet blue', '#d202': 'CadetBlue', '#d203': 'DarkTurquoise', '#d204': 'azure', '#d205': 'azure1', '#d206': 'LightCyan', '#d207': 'LightCyan1', '#d608': 'gray30', '#d609': 'grey30', '#d374': 'NavajoWhite4', '#d375': 'AntiqueWhite4', '#d376': 'AntiqueWhite', '#d377': 'tan', '#d370': 'BlanchedAlmond', '#d371': 'NavajoWhite', '#d372': 'NavajoWhite1', '#d373': 'NavajoWhite2', '#d477': 'grey91', '#d476': 'gray91', '#d475': 'grey92', '#d474': 'gray92', '#d378': 'bisque4', '#d379': 'burlywood', '#d471': 'grey94', '#d470': 'gray94', '#d279': 'green', '#d278': 'green4', '#d275': 'PaleGreen4', '#d274': 'green2', '#d277': 'ForestGreen', '#d276': 'green3', '#d271': 'lime', '#d270': 'green1', '#d273': 'DarkSeaGreen4', '#d272': 'LimeGreen', '#d38': 'pink', '#d39': 'crimson', '#d30': 'DarkRed', '#d31': 'red4', '#d32': 'maroon', '#d33': 'LightPink1', '#d34': 'LightPink3', '#d35': 'LightPink4', '#d36': 'LightPink2', '#d37': 'LightPink', '#d658': 'gray5', '#d389': 'bisque', '#d388': 'bisque2', '#d381': 'burlywood1', '#d380': 'AntiqueWhite2', '#d383': 'burlywood2', '#d382': 'burlywood3', '#d385': 'burlywood4', '#d384': 'AntiqueWhite1', '#d387': 'DarkOrange', '#d386': 'AntiqueWhite3', '#d189': 'LightBlue2', '#d188': 'LightBlue1', '#d183': 'DeepSkyBlue', '#d182': 'LightBlue3', '#d181': 'SkyBlue', '#d180': 'LightSkyBlue3', '#d187': 'DeepSkyBlue3', '#d186': 'DeepSkyBlue4', '#d185': 'DeepSkyBlue2', '#d184': 'DeepSkyBlue1', '#d657': 'grey6', '#d656': 'gray6', '#d655': 'grey7', '#d654': 'gray7', '#d653': 'grey8', '#d652': 'gray8', '#d651': 'grey9', '#d650': 'gray9', '#d550': 'gray57', '#d659': 'grey5', '#d551': 'grey57', '#d495': 'LightGray', '#d494': 'grey83', '#d497': 'gray82', '#d496': 'LightGrey', '#d491': 'gray84', '#d490': 'grey85', '#d493': 'gray83', '#d492': 'grey84', '#d554': 'gray55', '#d555': 'grey55', '#d556': 'gray54', '#d557': 'grey54', '#d499': 'gray81', '#d498': 'grey82', '#d323': 'PaleGoldenrod', '#d553': 'grey56'}
\ No newline at end of file diff --git a/frontend/imgrid/js/colors_iframe.js b/frontend/imgrid/js/colors_iframe.js new file mode 100644 index 0000000..5e6d5b2 --- /dev/null +++ b/frontend/imgrid/js/colors_iframe.js @@ -0,0 +1,45 @@ + + + + +function launch_iframe(input_target){ + $.fancybox.open({ + href : '/im/colors/index.html', + width : 1100, // set the width + height : 710, + fitToView : true, + autoDimensions:false, + autoSize:false, + type : 'iframe', + closeBtn : false, + padding : 5, + beforeShow : function(){ + $('.fancybox-iframe').contents().find('#submitvalue').click(function(){ + $('.fancybox-iframe').contents().find('form').submit(); + $.fancybox.close(); + }); + }, + beforeClose : function(){ + x = $('.fancybox-iframe').contents().find('#namespace').val(); + }, + afterClose: function(){ + $(input_target).val(x); + } + }); +} +$(document).ready(function(){ + if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) { + return; + } + var element_list = [".bg-color", ".line-color", ".planebgcolor", ".skycolor"] + element_list.forEach( + function(l){ + console.log("a"+l) + $("a"+l).click(function(event){ + event.preventDefault(); + launch_iframe("input"+l) + }); + } + ) + +}) diff --git a/frontend/imgrid/js/imgrid-main.js b/frontend/imgrid/js/imgrid-main.js new file mode 100755 index 0000000..f88e235 --- /dev/null +++ b/frontend/imgrid/js/imgrid-main.js @@ -0,0 +1,121 @@ +var Main = + { + API_HEADER: "#@imgrid", + generating: false, + enter: function (e) + { + if (Main.generating) + return + if (e.keyCode === 13) + Main.go() + }, + go: function () + { + if (Main.generating) + return + Main.generating = true + var theloader = '<span style="width:100%;margin-right:40%"><img style="width:140px;height:120px;display:inline;" src="generating.gif"></img></span>' + $("#output-cmd").html(theloader).show() + if($('#transition :selected').val() === 'tile'||$('#transition :selected').val()=== 'random') + { + $('#output-cmd').append("<br><span style='color:red'>WARNING: THIS REQUEST MIGHT TAKE A WHILE</span>") + } + $('.results').show() + $("#output-img").show() + $("#output-url").show() + $("#result").show() + var data = + { + width: $("#img-width").val(), + height: $("#img-height").val(), + linethickness: $("#line-thickness").val(), + opacity: $("#line-opacity").val(), + linecolor: $("#line-color").val(), + spacing: $("#line-spacing").val(), + vlines: $('#v-lines:checked').val() !== undefined ? "true" : "false", + hlines: $('#h-lines:checked').val() !== undefined ? "true" : "false", + shadow: $('#shadow:checked').val() !== undefined ? "true" : "false", + bgimage: $("#bg-image").val(), + bgcolor: $("#bg-color").val(), + imageinstead: $("#imageinstead").val(), + planebgcolor: $("#planebgcolor").val(), + skycolor: $("#skycolor").val(), + planebgimage: $("#planebgimage").val(), + transition: $('#transition :selected').val(), + swing: $("#swing").val(), + tilt: $("#tilt").val(), + roll: $("#roll").val(), + zoom: $("#zoom").val(), + trim: $("#trim:checked").val() !== undefined ? "true" : "false", + format: $('#format :selected').val(), + username: $('#username').val() + } + if (data.transition == 'infinite'){ + $('#genbutton').append("<span style='color:red'>WARNING:This might take a while</span>")} + if (data.username.length > 0) + document.cookie = "imname="+data.username+";path=/;domain=.asdf.us;max-age=1086400" + $.post("/im/api/imgrid", data, Main.callback) + }, + error: function (s) + { + $("#output-cmd").html("<span class='error'>ERROR: " + s + "</span>").show() + $("#output-url").hide() + $("#output-img").hide() + }, + filesize: function (size) + { + if (size < 1024) + return size.toString() + " bytes" + if (size < 1024 * 1024) + return Math.floor (size/1024).toString() + " KB" + else + return Math.floor (size/(1024*1024)).toString() + " MB" + }, + callback: function (data) + { + data = JSON.parse(data) + $("#output-cmd").html('') + $("#output-img").html("<a target=_blank href='"+data.url+"'>"+"<img src='"+data.url+"'></img><br>"+"</a>"); + $("#output-url").val(data.url) + $("#output-info").html('-ACTUAL SIZE-<br>'+Main.filesize(data.size)+'<br>'+data.width+'<br>'+data.height+'<br><br>'+'<span style="float:right">see more at →<a href="http://asdf.us/im/gallery">photoblaster gallery</a></span>'+'<br>') + Main.generating = false + }, + cookie: function () + { + if (document.cookie) + { + var cookies = document.cookie.split(";") + for (i in cookies) + { + var cookie = cookies[i].split("=") + if (cookie[0].indexOf("imname") !== -1) + { + if (cookie[1] !== 'false' && cookie[1] !== 'undefined' && cookie[1].length) + { + return cookie[1] + } + } + } + } + return "" + }, + init: function () + { + var name = Main.cookie () + $("#username").val(name) + if (name) + { +// $("#userlink").show() + // $("#userlink a").attr("href", "/im/gallery/?name="+name).html(name+"'s photoblasts") + } + $("#generate").bind("click", Main.go) + $(document).bind("keydown", Main.enter) + } + } +$('#theform').each(function(){ + this.reset(); + }); + + + +Main.init () diff --git a/frontend/imgrid/js/jquery-1.6.4.min.js b/frontend/imgrid/js/jquery-1.6.4.min.js new file mode 100755 index 0000000..628ed9b --- /dev/null +++ b/frontend/imgrid/js/jquery-1.6.4.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */ +(function(a,b){function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bA.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bW(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bP,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bW(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bW(a,c,d,e,"*",g));return l}function bV(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bL),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function by(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bt:bu;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bg(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bf(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function V(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(Q.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(w,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function J(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function D(){return!0}function C(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.4",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:H?function(a){return a==null?"":H.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?F.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(!b)return-1;if(I)return I.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=G.call(arguments,2),g=function(){return a.apply(c,f.concat(G.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){J["[object "+b+"]"]=b.toLowerCase()}),A=e.uaMatch(z),A.browser&&(e.browser[A.browser]=!0,e.browser.version=A.version),e.browser.webkit&&(e.browser.safari=!0),j.test("Â ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?C=function(){c.removeEventListener("DOMContentLoaded",C,!1),e.ready()}:c.attachEvent&&(C=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",C),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g+"With"](this===b?d:this,[h])}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u,v;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(b),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==null?g:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=C);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),B).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete +t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,M(a.origType,a.selector),f.extend({},a,{handler:L,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,M(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?D:C):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=D;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=D;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=D,this.stopPropagation()},isDefaultPrevented:C,isPropagationStopped:C,isImmediatePropagationStopped:C};var E=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},F=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?F:E,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?F:E)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="submit"||c==="image")&&f(b).closest("form").length&&J("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&J("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var G,H=function(a){var b=f.nodeName(a,"input")?a.type:"",c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var K={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||C,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=w.exec(h),k="",j&&(k=j[0],h=h.replace(w,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,K[h]?(a.push(K[h]+k),h=h+k):h=(K[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+M(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+M(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var N=/Until$/,O=/^(?:parents|prevUntil|prevAll)/,P=/,/,Q=/^.[^:#\[\.,]*$/,R=Array.prototype.slice,S=f.expr.match.POS,T={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(V(this,a,!1),"not",a)},filter:function(a){return this.pushStack(V(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=S.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=S.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(U(c[0])||U(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|object|embed|option|style)/i,bb=/checked\s*(?:[^=]|=\s*.checked.)/i,bc=/\/(java|ecma)script/i,bd=/^\s*<!(?:\[CDATA\[|\-\-)/,be={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bb.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bf(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bl)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!ba.test(a[0])&&(f.support.checkClone||!bb.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean +(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=$.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&X.test(k)&&o.insertBefore(b.createTextNode(X.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bk(k[i]);else bk(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bc.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bm=/alpha\([^)]*\)/i,bn=/opacity=([^)]*)/,bo=/([A-Z]|^ms)/g,bp=/^-?\d+(?:px)?$/i,bq=/^-?\d/,br=/^([\-+])=([\-+.\de]+)/,bs={position:"absolute",visibility:"hidden",display:"block"},bt=["Left","Right"],bu=["Top","Bottom"],bv,bw,bx;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bv(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=br.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bv)return bv(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return by(a,b,d);f.swap(a,bs,function(){e=by(a,b,d)});return e}},set:function(a,b){if(!bp.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bv=bw||bx,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bK=/^(?:select|textarea)/i,bL=/\s+/,bM=/([?&])_=[^&]*/,bN=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bO=f.fn.load,bP={},bQ={},bR,bS,bT=["*/"]+["*"];try{bR=e.href}catch(bU){bR=c.createElement("a"),bR.href="",bR=bR.href}bS=bN.exec(bR.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bO)return bO.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bJ,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bK.test(this.nodeName)||bE.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bB,"\r\n")}}):{name:b.name,value:c.replace(bB,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?bX(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),bX(a,b);return a},ajaxSettings:{url:bR,isLocal:bF.test(bS[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bT},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bV(bP),ajaxTransport:bV(bQ),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?bZ(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=b$(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bD.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bC,"").replace(bH,bS[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bL),d.crossDomain==null&&(r=bN.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bS[1]&&r[2]==bS[2]&&(r[3]||(r[1]==="http:"?80:443))==(bS[3]||(bS[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bW(bP,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bG.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bI.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bM,"$1_="+x);d.url=y+(y===d.url?(bI.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bT+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bW(bQ,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bz,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cq("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cr(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cq("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cq("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cr(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cq("show",1),slideUp:cq("hide",1),slideToggle:cq("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return d.step(a)}var d=this,e=f.fx;this.startTime=cn||co(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&f.timers.push(g)&&!cl&&(cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||co(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cs=/^t(?:able|d|h)$/i,ct=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cu(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cs.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=ct.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!ct.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cu(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cu(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNaN(j)?i:j}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
\ No newline at end of file diff --git a/frontend/imgrid/js/jquery-ui-1.8.16.custom.min.js b/frontend/imgrid/js/jquery-ui-1.8.16.custom.min.js new file mode 100755 index 0000000..3042d0b --- /dev/null +++ b/frontend/imgrid/js/jquery-ui-1.8.16.custom.min.js @@ -0,0 +1,84 @@ +/*! + * jQuery UI 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.16", +keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({propAttr:c.fn.prop||c.fn.attr,_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d= +this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this, +"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart": +"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight, +outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a, +"tabindex"),d=isNaN(b);return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&& +a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&& +c.ui.isOverAxis(b,e,i)}})}})(jQuery); +;/*! + * jQuery UI Widget 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)try{b(d).triggerHandler("remove")}catch(e){}k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(d){}});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]= +function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)): +d;if(e&&d.charAt(0)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options= +b.extend(true,{},this.options,this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+ +"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled", +c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery); +;/*! + * jQuery UI Mouse 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b){var d=false;b(document).mouseup(function(){d=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+ +this.widgetName)},_mouseDown:function(a){if(!d){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,f=a.which==1,g=typeof this.options.cancel=="string"&&a.target.nodeName?b(a.target).closest(this.options.cancel).length:false;if(!f||g||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted= +this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(e){return c._mouseMove(e)};this._mouseUpDelegate=function(e){return c._mouseUp(e)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return d=true}},_mouseMove:function(a){if(b.browser.msie&& +!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted= +false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +;/* + * jQuery UI Slider 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var a=this,b=this.options,c=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f=b.values&&b.values.length||1,e=[];this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+ +this.orientation+" ui-widget ui-widget-content ui-corner-all"+(b.disabled?" ui-slider-disabled ui-disabled":""));this.range=d([]);if(b.range){if(b.range===true){if(!b.values)b.values=[this._valueMin(),this._valueMin()];if(b.values.length&&b.values.length!==2)b.values=[b.values[0],b.values[0]]}this.range=d("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(b.range==="min"||b.range==="max"?" ui-slider-range-"+b.range:""))}for(var j=c.length;j<f;j+=1)e.push("<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>"); +this.handles=c.add(d(e.join("")).appendTo(a.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle", +g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!a.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");i=a._start(g,l);if(i===false)return}break}m=a.options.step;i=a.options.values&&a.options.values.length? +(h=a.values(l)):(h=a.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=a._valueMin();break;case d.ui.keyCode.END:h=a._valueMax();break;case d.ui.keyCode.PAGE_UP:h=a._trimAlignValue(i+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=a._trimAlignValue(i-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===a._valueMax())return;h=a._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===a._valueMin())return;h=a._trimAlignValue(i- +m);break}a._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(g,k);a._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy(); +return this},_mouseCapture:function(a){var b=this.options,c,f,e,j,g;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:a.pageX,y:a.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(b.range===true&&this.values(1)===b.min){g+=1;e=d(this.handles[g])}if(this._start(a,g)===false)return false; +this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();b=e.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-e.width()/2,top:a.pageY-b.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(a,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(a){var b= +this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b;if(this.orientation==="horizontal"){b= +this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b); +c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var f;if(this.options.values&&this.options.values.length){f=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>f||b===1&&c<f))c=f;if(c!==this.values(b)){f=this.values();f[b]=c;a=this._trigger("slide",a,{handle:this.handles[b],value:c,values:f});this.values(b?0:1);a!==false&&this.values(b,c,true)}}else if(c!==this.value()){a=this._trigger("slide",a,{handle:this.handles[b],value:c}); +a!==false&&this.value(c)}},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value= +this._trimAlignValue(a);this._refreshValue();this._change(null,0)}else return this._value()},values:function(a,b){var c,f,e;if(arguments.length>1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e<c.length;e+=1){c[e]=this._trimAlignValue(f[e]);this._change(null,e)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(a): +this.value();else return this._values()},_setOption:function(a,b){var c,f=0;if(d.isArray(this.options.values))f=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(a){case "disabled":if(b){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.propAttr("disabled",true);this.element.addClass("ui-disabled")}else{this.handles.propAttr("disabled",false);this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation(); +this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<f;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c;if(arguments.length){b=this.options.values[a]; +return b=this._trimAlignValue(b)}else{b=this.options.values.slice();for(c=0;c<b.length;c+=1)b[c]=this._trimAlignValue(b[c]);return b}},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a= +this.options.range,b=this.options,c=this,f=!this._animateOff?b.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({width:e- +g+"%"},{queue:false,duration:b.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:b.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[f?"animate":"css"]({width:e+"%"}, +b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.16"})})(jQuery); +;
\ No newline at end of file diff --git a/frontend/imgrid/js/maincopy.js b/frontend/imgrid/js/maincopy.js new file mode 100755 index 0000000..b7f474b --- /dev/null +++ b/frontend/imgrid/js/maincopy.js @@ -0,0 +1,109 @@ +var Main = + { + API_HEADER: "#@imgrid", + generating: false, + enter: function (e) + { + if (Main.generating) + return + if (e.keyCode === 13) + Main.go() + }, + go: function () + { + if (Main.generating) + return + Main.generating = true + $("#output-cmd").html('generating...').show() + $("#output-img").show() + $("#output-url").show() + $("#result").show() + var data = + { + width: $("#img-width").val(), + height: $("#img-height").val(), + linethickness: $("#line-thickness").val(), + opacity: $("#line-opacity").val(), + linecolor: $("#line-color").val(), + spacing: $("#line-spacing").val(), + vlines: $('#v-lines:checked').val() !== undefined ? "true" : "false", + hlines: $('#h-lines:checked').val() !== undefined ? "true" : "false", + shadow: $('#shadow:checked').val() !== undefined ? "true" : "false", + bgtransparent: $('#bgtransparent:checked').val() !== undefined ? "true" : "false", + bgimage: $("#bg-image").val(), + bgcolor: $("#bg-color").val(), + imageinstead: $("#imageinstead").val(), + planebgcolor: $("#planebgcolor").val(), + skycolor: $("#skycolor").val(), + planebgimage: $("#planebgimage").val(), + dither: $('#dither:checked').val() !== undefined ? "true" : "false", + swing: $("#swing").val(), + tilt: $("#tilt").val(), + roll: $("#roll").val(), + zoom: $("#zoom").val(), + trim: $("#trim:checked").val() !== undefined ? "true" : "false", + format: $('#format :selected').val(), + name: $('#username').val() + } + if (data.name.length > 0) + document.cookie = "imname="+data.name+";path=/;domain=.asdf.us;max-age=1086400" + $.post("/cgi-bin/im/imgrid/gridmaker", data, Main.callback) + }, + error: function (s) + { + $("#output-cmd").html("<span class='error'>ERROR: " + s + "</span>").show() + $("#output-url").hide() + $("#output-img").hide() + }, + callback: function (raw) + { + $("#output-cmd").html('your result...') + lines = raw.split('\n') + lines = lines.reverse() + $("#output-img").html("<img class='results' src='"+lines[1]+"'></img>"); + Main.generating = false + }, + filesize: function (size) + { + if (size < 1024) + return size + " bytes" + if (size < 1024 * 1024) + return Math.floor (size/1024) + " KB" + else + return Math.floor (size/(1024*1024)) + " MB" + }, + cookie: function () + { + if (document.cookie) + { + var cookies = document.cookie.split(";") + for (i in cookies) + { + var cookie = cookies[i].split("=") + if (cookie[0].indexOf("imname") !== -1) + { + if (cookie[1] !== 'false' && cookie[1] !== 'undefined' && cookie[1].length) + { + return cookie[1] + } + } + } + } + return "" + }, + init: function () + { + var name = Main.cookie () + $("#username").val(name) +/* if (name) + { + $("#userlink").show() + $("#userlink a").attr("href", "/im/gallery/?name="+name).html(name+"'s photoblasts") + } */ + // $("#likebutton,#controls").fadeIn(0) + $("#generate").bind("click", Main.go) + $("div input[type=text]").bind("keydown", Main.enter) + } + } +//document.getElementById('imform').reset(); +Main.init () diff --git a/frontend/imgrid/js/popup.js b/frontend/imgrid/js/popup.js new file mode 100755 index 0000000..bf138d0 --- /dev/null +++ b/frontend/imgrid/js/popup.js @@ -0,0 +1,69 @@ +//SETTING UP OUR POPUP +//0 means disabled; 1 means enabled; + var popupStatus = 0; + +//loading popup with jQuery magic! + function loadPopup(){ +//loads popup only if it is disabled + if(popupStatus==0){ + $("#backgroundPopup").css({ + "opacity": "0.7" + }); + $("#backgroundPopup").fadeIn("slow"); + $("#popupContact").fadeIn("slow"); + popupStatus = 1; + } + } +//centering popup + function centerPopup(){ +//request data for centering + var windowWidth = document.documentElement.clientWidth; + var windowHeight = document.documentElement.clientHeight; + var popupHeight = $("#popupContact").height(); + var popupWidth = $("#popupContact").width(); + //centering + $("#popupContact").css({ + "position": "absolute", + "top": windowHeight/2-popupHeight/2, + "left": windowWidth/2-popupWidth/2 + }); +//only need force for IE6 + + $("#backgroundPopup").css({ + "height": windowHeight + }); + + } +//disabling popup with jQuery magic! + function disablePopup(){ +//disables popup only if it is enabled + if(popupStatus==1){ + $("#backgroundPopup").fadeOut("slow"); + $("#popupContact").fadeOut("slow"); + popupStatus = 0; + } + } + + $(document).ready(function(){ +//following code will be here + }); + +//LOADING POPUP +//Click the button event! + $("#swingleft").click(function(){ +//centering with css + centerPopup(); +//load popup + loadPopup(); + }); + +//CLOSING POPUP +//Click the x event! + $("#popupContactClose").click(function(){ + disablePopup(); + }); +//Click out event! + $("#backgroundPopup").click(function(){ + disablePopup(); + }); +
\ No newline at end of file diff --git a/frontend/imgrid/js/sliders.js b/frontend/imgrid/js/sliders.js new file mode 100755 index 0000000..ef76b03 --- /dev/null +++ b/frontend/imgrid/js/sliders.js @@ -0,0 +1,83 @@ + $(function() { + $( "#line-thickness-slider" ).slider({ + value:1, + min: 0, + max: 300, + step: 1, + slide: function( event, ui ) { + $( "#line-thickness" ).val(ui.value); + } + }); + $( "#line-thickness" ).val( $( "#line-thickness-slider" ).slider( "value" ) ); + $( "#opacity-slider" ).slider({ + value:1, + min: 0, + max: 1, + step: .1, + slide: function( event, ui ) { + $( "#line-opacity" ).val(ui.value); + } + }); + $( "#line-opacity" ).val( $( "#opacity-slider" ).slider( "value" ) ); + $( "#spacing-slider" ).slider({ + value:10, + min: 1, + max: 400, + step: 1, + slide: function( event, ui ) { + $( "#line-spacing" ).val(ui.value); + } + }); + $( "#line-spacing" ).val( $( "#spacing-slider" ).slider( "value" ) ); + + $( "#swingslider" ).slider({ + value:0, + min: -180, + max: 180, + step: 1, + slide: function( event, ui ) { + $( "#swing" ).val(ui.value); + } + }); + $( "#swing" ).val( $( "#swingslider" ).slider( "value" ) ); + + $( "#tiltslider" ).slider({ + value:0, + min: -180, + max: 180, + step: 1, + slide: function( event, ui ) { + $( "#tilt" ).val(ui.value); + } + }); + $( "#tilt" ).val( $( "#tiltslider" ).slider( "value" ) ); + + $( "#rollslider" ).slider({ + value:0, + min: -180, + max: 180, + step: 1, + slide: function( event, ui ) { + $( "#roll" ).val(ui.value); + } + }); + $( "#roll" ).val($( "#rollslider" ).slider( "value" ) ); + + $( "#zoomslider" ).slider({ + value: 0, + min: -50, + max: 50, + step: .05, + slide: function( event, ui ) { + thevalue = (ui.value/4).toFixed(2); + if (thevalue <= 1 && thevalue >= -1) + { + thevalue = 0; + } + $( "#zoom" ).val(thevalue); + } + }); + $( "#zoom" ).val($( "#zoomslider" ).slider( "value" ) ); + }); +//end sliders jquery + diff --git a/frontend/imgrid/old.html b/frontend/imgrid/old.html new file mode 100755 index 0000000..46e4a34 --- /dev/null +++ b/frontend/imgrid/old.html @@ -0,0 +1,461 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> +<html> +<!-- + * pepper * + *** and *** + **** JMD **** + * ****** internet CHAMPIONS ****** * + * *************************************** * + ** * ______*______ * ** + ***** * ______*______ * ***** + ******* ______*______ ******* + *** **** * **** *** + ****** *oo******* *** *******oo* ****** + * *o********* *********o* * + * * * * + * * _ _ * * + * * -_ _- * * + * * -_ _- * * + * * -___- * * + * * + ********************* + * ** ** * + * ** ** * + * _-----_ * + ********* + +--> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta name="description" content="IMGRID A 3D GRID-PLANE GENERATOR" > + <meta name="keywords" content="photoblaster, 3D" > + <meta name=Author content="Pepper Dreamteamer - 2011 www.facebook.com/AAAFFF"> + <link rel="shortcut icon" href="http://asdf.us/imgrid/favicon.ico"> + <link rel="image_src" href="http://vfile.com/public/img/1.png" > + <!--FACEBOOK<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">--> + <meta property="og:title" content="imgrid" /> + <meta property="og:type" content="website" /> + <meta property="og:url" content="http://asdf.us/imgrid" /> + <meta property="og:site_name" content="IMGRID - A 3D-GRID-PLANE GENERATOR" /> + <title>IMGRID - a 3D GRID-PLANE GENERATOR</title> + + <link rel="stylesheet" href="general.css" type="text/css" media="screen" /> + <link href='jquery-ui-1.8.16.custom.css' rel='stylesheet' type='text/css' /> + <link href='cssreset.css' rel='stylesheet' type='text/css'/> + <link href='http://fonts.googleapis.com/css?family=Varela+Round' rel='stylesheet' type='text/css'> + <style type='text/css'> + body + { + font-family: 'Varela Round', sans-serif; + font-size:10pt; + } + h1 + { + font-size:18px; + width:50%; + margin:10px; + padding:10px; + } + #flatcontrols + { + width:40%; + margin:10px; + padding:10px; + } + .gridadj,.background,.dimensions + { + display:none; + } + #thegrid,#thedimensions,#thebackground + { + background-color:whitesmoke; + margin-left:20px; + -moz-box-shadow: 0px 0px 9px 3px aqua; + -webkit-box-shadow: 0px 0px 9px 3px aqua; + box-shadow: 0px 0px 9px 3px aqua + } + .results + { + display:none; + position:relative; + } + #output-url + { + z-index:100; + width:500px; + } + #result + { + position:fixed; + left:50%; + top:20px; + } + #output-img img + { + max-height:70%; + max-width:100%; + } + #output-url + { + width:100%; + } + .slider + { + background-color:#eee5de; + display:inline-block; + width:50%; + } + #opacity-slider, #spacing-slider + { + width:100%; + display:inline-block; + margin-right:0; + margin-left:0; + } + input + { + width:70px; + } + .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default + { + background-color:#555; + } + .urlinput + { + width:60%; + } + a + { + background-color:white; + max-width:100px; + } + a:link + { + color: black; + } + a:visited + { + COLOR: black; + } + a:hover + { + COLOR: black; + } + a:active + { + COLOR: black; + } + table td + { + padding:4px; + } + table tr + { +// border: solid 2px; + } + .gridmore, .backgroundmore, .dimensionsmore, .linksmore + { + cursor:pointer; + } + #gridplug,#backgroundplug,#dimensionsplug,#linksplug + { + font-size:20px; + text-align:center; + } +button { + background: white; + color: #000000; + font-size: 18px; + font-family: Georgia, serif; + text-decoration: none; + vertical-align: middle; + } +.button:hover { + border-top-color: #78e072; + background: #78e072; + color: #000000; + } +table + { + empty-cells:show; + } +#generate + { + position:absolute; + left:320px; + top:55px; + } + </style> +</head> +<body> +<!-- <div id="popupContact"> + <a id="popupContactClose">x</a> + <applet code="org.jdesktop.applet.util.JNLPAppletLauncher" + width=800 + height=600 + archive="dist/deployment/v1/jar/applet-launcher.jar, + dist/deployment/v1/jar/gluegen-rt.jar, + dist/deployment/v1/jar/jogl.all.jar, + dist/3dmap.jar"> + <param name="codebase_lookup" value="false"> + <param name="subapplet.classname" value="com.scannerjammer.applet.heightmap.applet.Simple3DLandscapeApplet"> + <param name="subapplet.displayname" value="3D Map"> + <param name="noddraw.check" value="true"> + <param name="progressbar" value="true"> + <param name="jnlpNumExtensions" value="1"> + <param name="jnlpExtension1" + value="dist/deployment/v1/jogl-awt.jnlp"> + <param name="java_arguments" value="-Dsun.java2d.noddraw=true"> + <param name="jnlp_href" value="dist/3dmap.jnlp"> +</applet> + </div> + <div id="backgroundPopup"></div> +endpopup code--> + <div id="intro" style="background-image:url(background.gif); z-index:1000; height:inherit; width:inherit; position:fixed; left:50%; top:20px"> + <img src="athenafinal.gif"></img> + </div> + +<img src='http://asdf.us/im/8d/imgrid_1324285217_imgrid_1324210455_imgrid_1324210353_gradient_darkseagreencyan_1317343959___.png' style='position:fixed; top:-200px; z-index:-100;'></img> +<div style='font-size:30px; margin-top:20px;margin-left:20px;'>IMGRID</div> +<div style="font-size:12px;margin-left:20px;margin-bottom:20px;">3D-GRID-PLANE GENERATOR +<br> +hit enter or click GENERATE to get your 2D plane + +<button id="generate">GENERATE</button> +</div> + +<form id='theform'> + <div id="flatcontrols"> +<table> +<tr><td class='dimensionsmore'>DIMENSIONS</td> + + <td> <div id='dimensionsplug' class='dimensionsmore'>+</div></td></tr> + </table> + <div id='thedimensions'> + <table class='dimensions'> + <tr><td>HEIGHT</td> + <td> <input id='img-height' type='text' value='500'><span style="font-size:12px">PX</span></input></td></td> + <tr><td>WIDTH</td> + <td><input id='img-width' type='text' value='700'><span style="font-size:12px">PX</span></input></td></td> + <tr style="line-height:10px"><td> </tr><td> + </table> +<table style="width:100%" class="dimensions"> + <tr><td>SWING <input id='swing' type='text' value='0'></input></td></tr> + <tr id="swingslider" class="slider"></tr> + <tr><td>TILT <input id='tilt' type='text' value='0'></input></td></tr> + <tr id="tiltslider" class="slider"></tr> + <tr><td>ROLL <input id='roll' type='text' value='0'></input></td></tr> + <tr id="rollslider" class="slider"></tr> + <tr><td>ZOOM  (in/out)  <input id='zoom' type='text' value='0'></input></td></tr> + <tr id="zoomslider" class="slider" value='0'></tr> + +</table> +<table class="dimensions"> + <tr><td> </td></tr> + <tr><td>CROP WHITESPACE</td><td><input type="checkbox" id="trim" value="false"></input></td></tr> + <tr><td> </td></tr> + </table> +<table class='dimensions'> + <tr><td>IMAGE FORMAT</td><td> + <select id='format'> + <option selected='selected' value='png'>PNG</option> + <option value='gif'>GIF</option> + <option value='jpg'>JPG</option> + </select></td></tr></table> + </div> +<table> +<tr><td class='gridmore'>GRID AND IMAGE</td> + + <td> <div id='gridplug' class='gridmore'>+</div></td></tr> + </table> + + <div id='thegrid'> +<table class='gridadj'> + <tr><td>USE IMAGE INSTEAD OF GRID</td> + <td><input type="text" class="urlinput" type="text" id="imageinstead" value="">IMG URL eg:http://ww...</input></td> + </tr></table> + <table class='gridadj'> + <tr><td>GRID THICKNESS:</td> + <td><input id='line-thickness' type='text' value='1'></td><td><span style="font-size:12px">PX  </span></input></td></tr> + + <tr class='gridadj'><td>GRID COLOR:</td> + <td><input id='line-color' type='text' value='BLACK'></input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></td> + </tr> + + </table> + <table> + <tr class='gridadj'> + <td>GRID OPACITY: </td> + <td><input id='line-opacity' type='text' value='1'></input></td> + <td style="width:140px; height: .8em; margin:0; padding:0;" class="slider" style="margin:0;padding:0;"id="opacity-slider"></td> + </tr> + + <tr class='gridadj'> + <td>GRID SPACING: </td> + <td><input id='line-spacing' type='text' value='0'></input></td> + <td class="slider" style="margin:0;padding:0;" id="spacing-slider"></td></tr> + + <tr class='gridadj'><td>USE ONLY VERTICAL LINES</td><td><input type="checkbox" id="v-lines" value="false"></input></td></tr> + + <tr class='gridadj'><td>USE ONLY HORIZONTAL LINES</td><td><input type="checkbox" id="h-lines" value="false" ></input></td></tr> + </table> +<table class='gridadj'><td>GRID BACKGROUND COLOR <input type="text" id="bg-color" value="transparent"></td><td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></input></td> + + </table> + <table class='gridadj'> + <tr><td>OR GRID BACKGROUND IMAGE</td> + <td><input class="urlinput" type="text" id="bg-image" value="">IMG URL eg:http://ww...</input></td></tr> + </table> + +<table class='gridadj'> + <tr><td>GRID-TRANSITION</td> + <td><select id="transition"> + <option selected="selected" value='background'>none</option> + <option value="dither">dithered</option> + <option value="random">noise</option> + <option value="tile">infinite</option> + <option value="edge">extended-edge</option> + </select></td></tr> + +</table> + <table class='gridadj'> + <tr><td>DROP SHADOW</td><td><input type='checkbox' id='shadow' value='false'</input></td></tr> + + +</table> +</div> + + + <table> + <tr><td class="backgroundmore">BACKGROUND</td> + <td><div id="backgroundplug" class="backgroundmore">+</div></td> + </tr> + </table> +<div id='thebackground'> + <table class='background'><td>BACKGROUND COLOR</td><td><input type="text" value="transparent" id="planebgcolor"></input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></td> </table> + <table class="background"> + + <tr><td>OR BACKGROUND IMAGE</td><td><input class='urlinput' type="text" value="" id="planebgimage">IMG URL eg:http://ww...</input></td></tr> + </table> + + <table class='background'><tr><td>SKYCOLOR</td><td><input type="text" value="none" id="skycolor">for the area above the horizon-line</input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></td> + </tr> +</table> + +</div> +<table> + <tr><td> </td></tr> + <tr><td>USERNAME</td><td><input type=text value="" id='username'></input></td><td><div class='linksmore' id='linksplug'>+</div></td></tr> +</table> + <div id='links'> + <a class='links' href="http://asdf.us/im/gallery">PHOTOBLASTER GALLERY</a><br> + <a class='links' href="http://asdf.us/imgrid/greatgrids/">GREAT GRIDS GALLERY</a><br> + <a class='links' href="http://asdf.us/im">MAIN PHOTOBLASTER EDITOR</a></br> +<div id="fb-root" style="position:fixed; bottom:10px; right:10px;background-color: transparent;"></div><script src="http://connect.facebook.net/en_US/all.js#appId=236917449658413&xfbml=1"></script><fb:like href="http://asdf.us/im/" send="false" width="347" show_faces="false" colorscheme="light" font="" style="background-color: transparent;"></fb:like> + + </div> +<br> + + +</div> + +</div> + +</form> +<div id='result'> + <span id="output-cmd" class='results'> +</span> + <span id="output-img" class='results'></span> + <input id="output-url" class='results'></input> + <div id="output-info" class='results'></div> +</div> + + + + +<h5 id='copyright' style="position:fixed; bottom:10px; left:10px;">COPYRIGHT 2011 PEPPER DREAMTEAMER</h5> +<script type="text/javascript" src="jquery-1.6.4.min.js"></script> +<script type="text/javascript" src="jquery-ui-1.8.16.custom.min.js"></script> +<script type='text/javascript'> +$(document).ready(function() + { + $('#intro').fadeOut(1000,function() + { + $('#intro').remove() + }) + }); +</script> +<script type="text/javascript" src="sliders.js"></script> +<script type="text/javascript" src="main.js"></script> +<!--<script src="popup.js" type="text/javascript"></script>--> +<!--<script type="text/javascript" src="picker.js"></script>--> +<script type='text/javascript'> + gridmoreclicked = 'false'; + $('.gridmore').click(function(){ + $('.gridadj').toggle('300') + + if(gridmoreclicked === 'false'){ + $('#gridplug').html('-') + $('#thegrid').css('padding','5px'); + gridmoreclicked = 'true' + } + else{ + $('#gridplug').html('+') + $('#thegrid').css('padding','0px'); + gridmoreclicked = 'false' + } + $('#copyright').hide() + }) + + + + backgroundmoreclicked = 'false'; + $('#backgroundplug').html('+'); + $('.backgroundmore').click(function(){ + $('.background').toggle('300') + if(backgroundmoreclicked === 'false'){ + $('#thebackground').css('padding','5px'); + $('#backgroundplug').html('-') + backgroundmoreclicked = 'true' + } + else{ + $('#backgroundplug').html('+') + $('#thebackground').css('padding','0px'); + backgroundmoreclicked = 'false' + } + $('#copyright').hide() + }); + + + dimensionsmoreclicked = 'false'; + $('#dimensionsplug').html('+'); + $('.dimensionsmore').click(function(){ + $('.dimensions').toggle('300') + if(dimensionsmoreclicked === 'false'){ + $('#dimensionsplug').html('-') + $('#thedimensions').css('padding','5px'); + dimensionsmoreclicked = 'true' + } + else{ + $('#dimensionsplug').html('+') + $('#thedimensions').css('padding','0px'); + dimensionsmoreclicked = 'false' + } + $('#copyright').hide() + }); + + + $('#bg-color').click(function(){ + nonecheck = $('#bg-color').val() + if(nonecheck === 'none') + { + $('#bg-color').val('') + } + }); +</script> +</body> +</html> diff --git a/frontend/imgrid/oldindex.html b/frontend/imgrid/oldindex.html new file mode 100755 index 0000000..106fabf --- /dev/null +++ b/frontend/imgrid/oldindex.html @@ -0,0 +1,307 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> +<html> +<!-- + __ __ __ __ __ __ __ +/_/\/\ /_/\/\ /_/\/\ /_/\/\ /_/\/\ /_/\/\ /_/\/\ +\_\ / \_\ / \_\ / \_\ / \_\ / \_\ / \_\ / +/_/ \ /_/ \ /_/ \ /_/ \ /_/ \ /_/ \ /_/ \ +\_\/\ \ \_\/\ \ \_\/\ \ \_\/\ \ \_\/\ \ \_\/\ \ \_\/\ \ + \_\/ \_\/ \_\/ \_\/ \_\/ \_\/ \_\/ +--> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta name="description" content="IMGRID A 3D GRID-PLANE GENERATOR" > + <meta name="keywords" content="photoblaster, 3D" > + <meta name=Author content="Pepper Dreamteamer - 2011 www.facebook.com/AAAFFF"> + <link rel="shortcut icon" href="http://asdf.us/imgrid/favicon.ico"> + <link rel="image_src" href="http://vfile.com/public/img/1.png" > + <!--FACEBOOK<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">--> + <meta property="og:title" content="imgrid" /> + <meta property="og:type" content="website" /> + <meta property="og:url" content="http://asdf.us/imgrid" /> + <meta property="og:site_name" content="IMGRID - A 3D-GRID-PLANE GENERATOR" /> + <title>IMGRID - a 3D GRID-PLANE GENERATOR</title> + + <link rel="stylesheet" href="general.css" type="text/css" media="screen" /> + <link href="colorpixx.css" rel="stylesheet" type="text/css" /> + <link href='main2.css' rel='stylesheet' type='text/css' /> + <link href='jquery-ui-1.8.16.custom.css' rel='stylesheet' type='text/css' /> + <link href='cssreset.css' rel='stylesheet' type='text/css'/> + <style type='text/css'> + body + { + font-family:georgia, Arial; + font-size:10pt; + } + h1 + { + font-size:18px; + // font-weight:bold; + width:50%; + margin:10px; + padding:10px; +// box-shadow: 0px 0px 9px 4px #8B7D7B; + } + #flatcontrols + { + // background-color:whitesmoke; + // box-shadow: 0px 0px 9px 3px #00EEEE; + width:40%; + margin:10px; + padding:10px; + } + .lineadj{display:none;} + .threedadj{display:none;} + .gridbgadj{display:none;} + .results + { + display:none; + position:relative; + z-index:100; + } + .slider + { + background-color:#eee5de; + display:inline-block; + width:100%; + } + #opacity-slider + { + width:100%; + display:inline-block; + margin-right:0; + margin-left:0; + } + input + { + width:70px; + } + .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default + { + background-color:#555; + } + #result + { + position:absolute; + right:20px; + top:10px; + } + #output-url + { + width:100%; + } + .urlinput + { + width:60%; + } + a + { + background-color:#8B8B83; + max-width:100px; + border-style:solid; + border-width:1px; + } + a:link + { + color: gold; + } + a:visited + { + COLOR: mediumspringgreen; + } + a:hover + { + COLOR: #FF0000; + } + a:active + { + COLOR: #00FF00; + } + table td + { + padding:4px; +// border:solid 2px; + } + table tr + { +// border: solid 2px; + } + </style> +</head> +<body> +<!--popupcode--> +<!-- <div id="popupContact"> + <a id="popupContactClose">x</a> + <applet code="org.jdesktop.applet.util.JNLPAppletLauncher" + width=800 + height=600 + archive="dist/deployment/v1/jar/applet-launcher.jar, + dist/deployment/v1/jar/gluegen-rt.jar, + dist/deployment/v1/jar/jogl.all.jar, + dist/3dmap.jar"> + <param name="codebase_lookup" value="false"> + <param name="subapplet.classname" value="com.scannerjammer.applet.heightmap.applet.Simple3DLandscapeApplet"> + <param name="subapplet.displayname" value="3D Map"> + <param name="noddraw.check" value="true"> + <param name="progressbar" value="true"> + <param name="jnlpNumExtensions" value="1"> + <param name="jnlpExtension1" + value="dist/deployment/v1/jogl-awt.jnlp"> + <param name="java_arguments" value="-Dsun.java2d.noddraw=true"> + <param name="jnlp_href" value="dist/3dmap.jnlp"> +</applet> + </div> + <div id="backgroundPopup"></div> +endpopup code--> + + +<h1>IMGRID </h1> +<h2 style="font-size:16px;margin:10px;">A 3D-GRID-PLANE GENERATOR FROM PHOTOBLASTER</h2> + +<!--<h2 id="use">USE:</h2> + <div id="controls"> + <h2>I. THE FLAT PLANE + <span id="swingleft" >II. THE 3D PLANE (forthcoming) + <br> CLICK TO OPEN JAVA APPLET</span></h2>--> + + <div id="flatcontrols"> +<table style="width:100%"> + <tr><td>SWING<input id='swing' type='text' value='0'></input></td></tr> + <tr id="swingslider" class="slider"></tr> + <tr><td>TILT<input id='tilt' type='text' value='0'></input></td></tr> + <tr id="tiltslider" class="slider"></tr> + <tr><td>ROLL<input id='roll' type='text' value='0'></input></td></tr> + <tr id="rollslider" class="slider"></tr> + <tr><td>ZOOM<input id='zoom' type='text' value='0'></input></td></tr> + <tr id="zoomslider" class="slider" value='0'></tr></table><table> + +</table> +<table> +<tr><td>THE 3D PLANE...</td> + + <td> <button id='threedmore'>OPTIONS</button></td></tr> + <tr class='threedadj'><td>USE IMAGE INSTEAD OF GRID</td> + <td><input type="text" class="urlinput" type="text" id="imageinstead" value="">IMG URL eg:http://ww...</input></td> + </tr></table> + <table class='threedadj'><td>PLANE BACKGROUND COLOR</td><td><input type="text" value="transparent" id="planebgcolor"></input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">SEE COLOR LIST</a></td> </table> + <table> + + <tr class='threedadj'><td>OR USE A BACKGROUND IMAGE</td><td><input class='urlinput' type="text" value="" id="planebgimage">IMG URL eg:http://ww...</input></td></tr> + </table> + <table> + <tr class='threedadj'><td>DROP SHADOW</td><td><input type='checkbox' id='shadow' value='false'</input></td></tr> + <tr class='threedadj'><td>SKYCOLOR</td><td><input type="text" value="none" id="skycolor">for the area above the horizon-line</input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">SEE COLOR LIST</a></td> + </tr></table> + <table> + <tr><td>ADJUST LINE:</td> + <td><button id='linemore'>OPTIONS</button></td> + + + <tr class='lineadj'><td>LINE THICKNESS:</td> + <td><input id='line-thickness' type='text' value='1'><span style="font-size:12px">PX</span></input></td></tr> + + <tr class='lineadj'><td>LINE COLOR:</td> + <td><input id='line-color' type='text' value='BLACK'></input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">SEE COLOR LIST</a></td> + </tr> + + + <tr class='lineadj'> + <td>LINE OPACITY: </td> + <td><input id='line-opacity' type='text' value='1'></input></td> + <td class="slider" style="margin:0;padding:0;"id="opacity-slider"></td> + </tr> + + <tr class='lineadj'> + <td>LINE SPACING: </td> + <td><input id='line-spacing' type='text' value='0'><span style='font-size:12px'>PX</span></input></td> + <td class="slider" style="margin:0;padding:0;" id="spacing-slider"></td></tr> + + <tr class='lineadj'><td>USE ONLY VERTICAL LINES</td><td><input type="checkbox" id="v-lines" value="false"></input></td></tr> + + <tr class='lineadj'><td>USE ONLY HORIZONTAL LINES</td><td><input type="checkbox" id="h-lines" value="false" ></input></td></tr> + </table> + + <table> + </table> + <table> +<tr><td>GRID BACKGROUND:</td> + +<td> <button id='gridbgmore'>OPTIONS</button></td></tr> + <tr class='gridbgadj'><td>TRANSPARENT? (THE DEFAULT)</td><td><input type="checkbox" id="bgtransparent" value="true" checked="checked"></input></td></tr> + <tr class='gridbgadj'><td>USE AN IMAGE?</td> + <td><input class="urlinput" type="text" id="bg-image" value="">IMG URL eg:http://ww...</input></td></tr> + </table><table class='gridbgadj'><td>USE A COLOR?<input type="text" id="bg-color" value=""></td><td><a href="http://asdf.us/im/colors.html" target="_blank">SEE COLOR LIST</a></input></td> + + </table> + + +<table> + <tr class='threedadj'><td>DITHERED-TRANSITION</td> + <td><select id="transition"> + <option selected="selected" value='background'>none</option> + <option value="dither">dithered</option> + <option value="tile">infinite</option> + </select></td></tr> + +</table> + <table> + <tr><td>IMAGE SIZE:</td></tr> + <tr><td>HEIGHT</td> + <td> <input id='img-height' type='text' value='300'><span style="font-size:12px">PX</span></input></td></td> + + <tr><td>WIDTH</td> + <td><input id='img-width' type='text' value='400'><span style="font-size:12px">PX</span></input></td></td></table> +<table> + <tr><td>TRIM WHITESPACE</td><td><input type="checkbox" id="trim" value="false"></input></td></tr> + <tr>IMAGE FORMAT<select id='format'> + <option selected='selected' value='png'>PNG</option> + <option value='gif'>GIF</option> + <option value='jpg'>JPG</option> + </select></tr></table><table> + + <tr><input type=text value="" id='username'>← ENTER YOUR NAME if you want </input></tr> +</table> +<table> +<button id="generate">GENERATE</button> + +<!--<input type="reset" value="Reset Form">--> + +</div> + +</div> + +<div id='result'> + <span id="output-cmd" class='results'>click generate or hit enter to get your 2D plane</span> + <span id="output-img" class='results'></span> + <input id="output-url" class='results'></input> + <div id="output-info" class='results'></div> +</div> + +<h5 style="position:fixed; bottom:10px; left:10px;">COPYRIGHT 2011 PEPPER DREAMTEAMER</h5> +<div id="intro" style="background-color:white"> +<!--<div id="bg"> + <div><table cellspacing=0 cellpadding=0><tr><td> + <img src="background.gif" /> + </td></tr></table></div> +</div>--> +<div id="athena"><img src="athenafinal.gif"></img></div> +</div> +<script type="text/javascript" src="jquery-1.6.4.min.js"></script> +<script type="text/javascript" src="jquery-ui-1.8.16.custom.min.js"></script> +<script type="text/javascript" src="sliders.js"></script> +<script type="text/javascript">$('#intro').remove();</script> +<!--<script type="text/javascript" src="intro.js">--> +<script type="text/javascript" src="main.js"></script> +<!--<script src="popup.js" type="text/javascript"></script>--> +<!--<script type="text/javascript" src="picker.js"></script>--> +<script type='text/javascript'> + $('#linemore').click(function(){$('.lineadj').toggle('300')}) + $('#threedmore').click(function(){$('.threedadj').toggle('300')}) + $('#gridbgmore').click(function(){$('.gridbgadj').toggle('300')}) +</script> +</body> +</html> diff --git a/frontend/imgrid/safety.html b/frontend/imgrid/safety.html new file mode 100755 index 0000000..79bc91a --- /dev/null +++ b/frontend/imgrid/safety.html @@ -0,0 +1,488 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr"> +<html> +<!-- + * pepper * + *** and *** + **** JMD **** + * ****** internet CHAMPIONS ****** * + * *************************************** * + ** * ______*______ * ** + ***** * ______*______ * ***** + ******* ______*______ ******* + *** **** * **** *** + ****** *oo******* *** *******oo* ****** + * *o********* *********o* * + * * * * + * * _ _ * * + * * -_ _- * * + * * -_ _- * * + * * -___- * * + * * + ********************* + * ** ** * + * ** ** * + * _-----_ * + ********* + +--> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> + <meta name="description" content="IMGRID A 3D GRID-PLANE GENERATOR" > + <meta name="keywords" content="photoblaster, 3D" > + <meta name=Author content="Pepper Dreamteamer - 2011 www.facebook.com/AAAFFF"> + <link rel="shortcut icon" href="http://asdf.us/imgrid/favicon.ico"> + <link rel="image_src" href="http://vfile.com/public/img/1.png" > + <!--FACEBOOK<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://ogp.me/ns#" xmlns:fb="http://www.facebook.com/2008/fbml">--> + <meta property="og:title" content="imgrid" /> + <meta property="og:type" content="website" /> + <meta property="og:url" content="http://asdf.us/imgrid" /> + <meta property="og:site_name" content="IMGRID - A 3D-GRID-PLANE GENERATOR" /> + <title>IMGRID - a 3D GRID-PLANE GENERATOR</title> + + <link rel="stylesheet" href="general.css" type="text/css" media="screen" /> + <link href='jquery-ui-1.8.16.custom.css' rel='stylesheet' type='text/css' /> + <link href='cssreset.css' rel='stylesheet' type='text/css'/> + <link href='http://fonts.googleapis.com/css?family=Varela+Round' rel='stylesheet' type='text/css'> + <style type='text/css'> + body + { + font-family: 'Varela Round', sans-serif; + font-size:10pt; + } + h1 + { + font-size:18px; + width:50%; + margin:10px; + padding:10px; + } + #flatcontrols + { + width:40%; + margin:10px; + padding:10px; + } + .gridadj,.background,.dimensions,.links + { + display:none; + } + #thegrid,#thedimensions,#thebackground,#links + { + background-color:whitesmoke; + margin-left:20px; + -moz-box-shadow: 0px 0px 9px 3px #8B7D7B; + -webkit-box-shadow: 0px 0px 9px 3px #8B7D7B; + box-shadow: 0px 0px 9px 3px #8B7D7B; + } + #links + { + line-height:2; + padding:10px; + } + .results + { + display:none; + position:relative; + } + #result + { + position:fixed; + left:50%; + top:20px; + padding-right:15px; + } + #output-img img + { + max-height:70%; + max-width:100%; + } + #output-url + { + width:100%; + } + .slider + { + background-color:#eee5de; + display:inline-block; + width:50%; + } + #opacity-slider, #spacing-slider + { + width:100%; + display:inline-block; + margin-right:0; + margin-left:0; + } + input + { + width:70px; + } + .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default + { + background-color:#555; + } + .urlinput + { + width:60%; + } + a + { + background-color:white; + max-width:100px; + } + a:link + { + color: black; + } + a:visited + { + COLOR: black; + } + a:hover + { + COLOR: black; + } + a:active + { + COLOR: black; + } + table td + { + padding:4px; + } + table tr + { +// border: solid 2px; + } + .gridmore, .backgroundmore, .dimensionsmore, .linksmore + { + cursor:pointer; + } + #gridplug,#backgroundplug,#dimensionsplug,#linksplug + { + font-size:20px; + text-align:center; + } +button { + background: white; + color: #000000; + font-size: 18px; + font-family: Georgia, serif; + text-decoration: none; + vertical-align: middle; + } +.button:hover { + border-top-color: #78e072; + background: #78e072; + color: #000000; + } +table + { + empty-cells:show; + } +.generate + { + position:absolute; + left:320px; + top:240px; + -moz-box-shadow: 0px 0px 9px 3px pink; + -webkit-box-shadow: 0px 0px 9px 3px pink; + box-shadow: 0px 0px 9px 3px pink; + } + </style> +</head> +<body> +<!-- <div id="popupContact"> + <a id="popupContactClose">x</a> + <applet code="org.jdesktop.applet.util.JNLPAppletLauncher" + width=800 + height=600 + archive="dist/deployment/v1/jar/applet-launcher.jar, + dist/deployment/v1/jar/gluegen-rt.jar, + dist/deployment/v1/jar/jogl.all.jar, + dist/3dmap.jar"> + <param name="codebase_lookup" value="false"> + <param name="subapplet.classname" value="com.scannerjammer.applet.heightmap.applet.Simple3DLandscapeApplet"> + <param name="subapplet.displayname" value="3D Map"> + <param name="noddraw.check" value="true"> + <param name="progressbar" value="true"> + <param name="jnlpNumExtensions" value="1"> + <param name="jnlpExtension1" + value="dist/deployment/v1/jogl-awt.jnlp"> + <param name="java_arguments" value="-Dsun.java2d.noddraw=true"> + <param name="jnlp_href" value="dist/3dmap.jnlp"> +</applet> + </div> + <div id="backgroundPopup"></div> +endpopup code--> + <div id='intro' style='position:absolute;top:0px;left:0px;width:100%;height:100%;background-image:url(background.gif);'><div style="background-image:url(background.gif); z-index:1000; height:inherit; width:inherit; position:fixed; left:50%; top:20px"> + <img src="athenafinal.gif"></img> + </div></div> + +<a href="http://asdf.us/imgrid/index.html" style:'cursor:pointer'><img src='http://asdf.us/im/8d/imgrid_1324285217_imgrid_1324210455_imgrid_1324210353_gradient_darkseagreencyan_1317343959___.png' style='position:fixed; top:-200px; z-index:-100;'></img> +<div style='font-size:30px;'><img style="width:500px" src="http://asdf.us/im/42/imgrid_1324542588_.png"></img></div></a> +<div style="font-size:12px;margin-left:20px;margin-bottom:20px;">3D-GRID-PLANE GENERATOR +<br> +hit enter or click GENERATE to get your 2D plane + +<span id='genbutton'><button id='generate'>GENERATE</button></span> +</div> + +<form id='theform'> + <div id="flatcontrols"> +<table> +<tr><td class='dimensionsmore'>DIMENSIONS</td> + + <td> <div id='dimensionsplug' class='dimensionsmore'>+</div></td></tr> + </table> + <div id='thedimensions'> + <table class='dimensions'> + <tr><td>HEIGHT</td> + <td> <input id='img-height' type='text' value='500'><span style="font-size:12px">PX</span></input></td></td> + <tr><td>WIDTH</td> + <td><input id='img-width' type='text' value='700'><span style="font-size:12px">PX</span></input></td></td> + <tr style="line-height:10px"><td> </tr><td> + </table> +<table style="width:100%" class="dimensions"> + <tr><td>SWING <input id='swing' type='text' value='0'></input></td></tr> + <tr id="swingslider" class="slider"></tr> + <tr><td>TILT <input id='tilt' type='text' value='0'></input></td></tr> + <tr id="tiltslider" class="slider"></tr> + <tr><td>ROLL <input id='roll' type='text' value='0'></input></td></tr> + <tr id="rollslider" class="slider"></tr> + <tr><td>ZOOM  (in/out)  <input id='zoom' type='text' value='0'></input></td></tr> + <tr id="zoomslider" class="slider" value='0'></tr> + +</table> +<table class="dimensions"> + <tr><td> </td></tr> + <tr><td>CROP WHITESPACE</td><td><input type="checkbox" id="trim" value="false"></input></td></tr> + <tr><td> </td></tr> + </table> +<table class='dimensions'> + <tr><td>IMAGE FORMAT</td><td> + <select id='format'> + <option selected='selected' value='png'>PNG</option> + <option value='gif'>GIF</option> + <option value='jpg'>JPG</option> + </select></td></tr></table> + </div> +<table> +<tr><td class='gridmore'>GRID AND IMAGE</td> + + <td> <div id='gridplug' class='gridmore'>+</div></td></tr> + </table> + + <div id='thegrid'> +<table class='gridadj'> + <tr><td>USE IMAGE INSTEAD OF GRID</td> + <td><input type="text" class="urlinput" type="text" id="imageinstead" value="">IMG URL eg:http://ww...</input></td> + </tr></table> + <table class='gridadj'> + <tr><td>GRID THICKNESS:</td> + <td><input id='line-thickness' type='text' value='1'></td><td><span style="font-size:12px">PX  </span></input></td></tr> + + <tr class='gridadj'><td>GRID COLOR:</td> + <td><input id='line-color' type='text' value='BLACK'></input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></td> + </tr> + + </table> + <table> + <tr class='gridadj'> + <td>GRID OPACITY: </td> + <td><input id='line-opacity' type='text' value='1'></input></td> + <td style="width:140px; height: .8em; margin:0; padding:0;" class="slider" style="margin:0;padding:0;"id="opacity-slider"></td> + </tr> + + <tr class='gridadj'> + <td>GRID SPACING: </td> + <td><input id='line-spacing' type='text' value='0'></input></td> + <td class="slider" style="margin:0;padding:0;" id="spacing-slider"></td></tr> + + <tr class='gridadj'><td>USE ONLY VERTICAL LINES</td><td><input type="checkbox" id="v-lines" value="false"></input></td></tr> + + <tr class='gridadj'><td>USE ONLY HORIZONTAL LINES</td><td><input type="checkbox" id="h-lines" value="false" ></input></td></tr> + </table> +<table class='gridadj'><td>GRID BACKGROUND COLOR <input type="text" id="bg-color" value="transparent"></td><td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></input></td> + + </table> + <table class='gridadj'> + <tr><td>OR GRID BACKGROUND IMAGE</td> + <td><input class="urlinput" type="text" id="bg-image" value="">IMG URL eg:http://ww...</input></td></tr> + </table> + +<table class='gridadj'> + <tr><td>GRID-TRANSITION</td> + <td><select id="transition"> + <option selected="selected" value='background'>none</option> + <option value="dither">dithered</option> + <option value="random">noise</option> + <option value="tile">infinite</option> + <option value="edge">extended-edge</option> + </select></td></tr> + +</table> + <table class='gridadj'> + <tr><td>DROP SHADOW</td><td><input type='checkbox' id='shadow' value='false'</input></td></tr> + + +</table> +</div> + + + <table style='width:150px;'> + <tr><td class="backgroundmore">BACKGROUND</td> + <td><div id="backgroundplug" class="backgroundmore">+</div></td> + </tr> + </table> +<div id='thebackground'> + <table class='background'><td>BACKGROUND COLOR</td><td><input type="text" value="transparent" id="planebgcolor"></input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></td> </table> + <table class="background"> + + <tr><td>OR BACKGROUND IMAGE</td><td><input class='urlinput' type="text" value="" id="planebgimage">IMG URL eg:http://ww...</input></td></tr> + </table> + + <table class='background'><tr><td>SKYCOLOR</td><td><input type="text" value="none" id="skycolor">for the area above the horizon-line</input></td> + <td><a href="http://asdf.us/im/colors.html" target="_blank">COLOR LIST</a></td> + </tr> +</table> + +</div> +<table> + <tr><td> </td></tr> + <tr><td>USERNAME</td><td><input type=text value="" id='username'></input></td><td><div class='linksmore' id='linksplug'>+</div></td> +<td> <div id='links' class='links'> + <a class='links' href="http://asdf.us/im/gallery">PHOTOBLASTER GALLERY</a><br> + <a class='links' href="http://asdf.us/imgrid/greatgrids/">THE GREAT GRIDS GALLERY</a><br> + <a class='links' href="http://asdf.us/im">MAIN PHOTOBLASTER EDITOR</a></br> +<div id="fb-root" style="position:fixed; bottom:10px; right:10px;background-color: transparent;"></div><script src="http://connect.facebook.net/en_US/all.js#appId=236917449658413&xfbml=1"></script><fb:like href="http://asdf.us/im/" send="false" width="347" show_faces="false" colorscheme="light" font="" style="background-color: transparent;"></fb:like> + + </div> + +</td></tr></table> + +<br> + + +</div> + +</div> + +</form> +<div id='result'> + <span id="output-cmd" class='results'> +</span> + <span id="output-img" class='results'></span> + <input id="output-url" class='results'></input> + <div id="output-info" class='results'></div> +</div> + + + + +<span class='copyright' style="position:fixed; bottom:10px; left:10px;">COPYRIGHT 2011 PEPPER DREAMTEAMER</span><a href='http://asdf.us/imgrid/greatgrids/index.html'><img class='copyright' style='display:inline; position:fixed; bottom:10px; left:290px; width:100px' src="blackplant.png"></img></a> +<script type="text/javascript" src="jquery-1.6.4.min.js"></script> +<script type="text/javascript" src="jquery-ui-1.8.16.custom.min.js"></script> +<script type='text/javascript'> +$(document).ready(function() + { + $('#intro').fadeOut(1000,function() + { + $('#intro').remove() + }) + }); +</script> +<script type="text/javascript" src="sliders.js"></script> +<script type="text/javascript" src="main.js"></script> +<!--<script src="popup.js" type="text/javascript"></script>--> +<!--<script type="text/javascript" src="picker.js"></script>--> +<script type='text/javascript'> + linksclicked = 'false'; + $('#linksplug').click(function(){ + $('.links').toggle('300') + + if(linksclicked === 'false'){ + $('#linksplug').html('-') + $('.links').css({'min-width':'275px','word-space':'nowrap','min-height':'100px'}) + linksclicked = 'true' + } + else{ + $('#linksplug').html('+') + $('#links').css('padding','0px'); + linksclicked = 'false' + } + $('.copyright').hide() + $("body,html").scrollTop(5000); + }) + + gridmoreclicked = 'false'; + $('.gridmore').click(function(){ + $('.gridadj').toggle('300') + + if(gridmoreclicked === 'false'){ + $('#gridplug').html('-') + $('#thegrid').css('padding','5px'); + gridmoreclicked = 'true' + $("html,body").scrollTop(1000); + } + else{ + $('#gridplug').html('+') + $('#thegrid').css('padding','0px'); + gridmoreclicked = 'false' + } + $('.copyright').hide() + }) + + + + backgroundmoreclicked = 'false'; + $('#backgroundplug').html('+'); + $('.backgroundmore').click(function(){ + $('.background').toggle('300') + if(backgroundmoreclicked === 'false'){ + $('#thebackground').css('padding','5px'); + $('#backgroundplug').html('-') + $("html,body").scrollTop(1000); + backgroundmoreclicked = 'true' + } + else{ + $('#backgroundplug').html('+') + $('#thebackground').css('padding','0px'); + backgroundmoreclicked = 'false' + } + $('.copyright').hide() + }); + + + dimensionsmoreclicked = 'false'; + $('#dimensionsplug').html('+'); + $('.dimensionsmore').click(function(){ + $('.dimensions').toggle('300') + if(dimensionsmoreclicked === 'false'){ + $('#dimensionsplug').html('-') + $('#thedimensions').css('padding','5px'); + $("html,body").scrollTop(1000); + dimensionsmoreclicked = 'true' + } + else{ + $('#dimensionsplug').html('+') + $('#thedimensions').css('padding','0px'); + dimensionsmoreclicked = 'false' + } + $('.copyright').hide() + }); + + + $('#bg-color').click(function(){ + nonecheck = $('#bg-color').val() + if(nonecheck === 'none') + { + $('#bg-color').val('') + } + }); +</script> +</body> +</html> diff --git a/frontend/imgrid/sj6v1.zip b/frontend/imgrid/sj6v1.zip Binary files differnew file mode 100755 index 0000000..b5c1592 --- /dev/null +++ b/frontend/imgrid/sj6v1.zip diff --git a/frontend/imlandscape/README.md b/frontend/imlandscape/README.md new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/frontend/imlandscape/README.md diff --git a/frontend/imlandscape/img/Heightmap.jpg b/frontend/imlandscape/img/Heightmap.jpg Binary files differnew file mode 100644 index 0000000..ccee392 --- /dev/null +++ b/frontend/imlandscape/img/Heightmap.jpg diff --git a/frontend/imlandscape/img/Texture.jpg b/frontend/imlandscape/img/Texture.jpg Binary files differnew file mode 100644 index 0000000..eef3866 --- /dev/null +++ b/frontend/imlandscape/img/Texture.jpg diff --git a/frontend/imlandscape/img/generating_background.gif b/frontend/imlandscape/img/generating_background.gif Binary files differnew file mode 100644 index 0000000..b228123 --- /dev/null +++ b/frontend/imlandscape/img/generating_background.gif diff --git a/frontend/imlandscape/index.html b/frontend/imlandscape/index.html new file mode 100644 index 0000000..fb9e251 --- /dev/null +++ b/frontend/imlandscape/index.html @@ -0,0 +1,113 @@ +<!doctype html> +<html lang="en"> +<head> +<title>IMLandscape</title> +<!-- + WEBSITE BY PEPPER +--> +<meta charset="utf-8"> +<meta name="viewport" + content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"> +<style> +body { + color: black; + font-family: Monospace; + font-size: 13px; + text-align: left; + background-color: whitesmoke; + margin: 0px; + overflow: hidden; +} + +#title { + font-size: 25px; +} + +#params { + font-size: 16px; +} + +#info { + font-size: 12px; + border: 1px solid black; + padding: 5px; +} + +#container { + position: absolute; + top: 150px; + width: 100%; + height: 100%; + padding: 5px; + background-color: #FFFFFF; +} + +</style> +</head> +<body> + <script src="js/generating.js"></script> + <script src="js/jquery.min.js"></script> + <script src="js/Three.js"></script> + <script src="js/Detector.js"></script> + <script src="js/RequestAnimationFrame.js"></script> + <script src="js/3D_Landscape.js"></script> + <script src="js/keypress.js"></script> + <script src="js/pb.js"></script> + <script src="js/username.js"></script> + <table border="0" cellpadding="10"> + <tr> + <td> + <div id="title"> + DUMB 3D Landscape + </div> + <div id="info"> + Move Up/Down/Left/Right: Arrow Keys<br/> + Rotate Up/Down/Left/Right: Shift+Arrow Keys<br/> + Zoom In/Zoom Out: Fn+Up Arrow/Fn+Down Arrow or Page Up/Page Down<br/> + Toggle Wireframe: Space<br/> + Restore original position: Delete<br/> + </div> + </td> + + <td> + <div id="input"> + <form name="input" action="" method="post"> + <table id="form_table" border="0"> + <tr> + <td>Texture URL:</td> + <td colspan="2"><input type="text" id="texture" size="35" value="http://someurl.biz/someimage.jpg" /></td> + </tr> + <tr> + <td>Heightmap URL:</td> + <td colspan="2"><input type="text" id="heightmap" size="35" value="http://someurl.biz/someimage.jpg" /><br /></td> + </tr> + <tr> + <td><input type="button" value="Save as Image" id="save" onClick="saveScene()" /></td> + <td><input type="button" value="Load New" id="change" onClick="loadNew()" /></td> + </tr> + <tr> + <td class="url_result" style="display:none;" colspan="2">rendered image:<a class="url_result" href="" target="_blank"></a>(semi-transparent)</td> + </tr> + </tr> + </table> + </form> + </div> + </td> + <td> + <div id="new_thing"> + <table id="username_etc" border=0> + <tr> + <td colspan="2">Username: <input type="text" size="10" id="username" value="" /></td> + </tr> + <tr> + <td id="gallery_link" colspan="2">→<a href="http://asdf.us/im/gallery" target="_blank" >pb gallery</a></td> + </tr> + </table> + </div> + </td> + </tr> + </table> + <div id="container"> + </div> +</body> +</html> diff --git a/frontend/imlandscape/js/3D_Landscape.js b/frontend/imlandscape/js/3D_Landscape.js new file mode 100644 index 0000000..411bfe7 --- /dev/null +++ b/frontend/imlandscape/js/3D_Landscape.js @@ -0,0 +1,248 @@ +var container, stats;
+var camera, controls, scene, renderer;
+var mesh, texture, material;
+//FIXME experiment with these fixed params
+var worldWidth = 256, worldDepth = 256, worldHalfWidth = worldWidth / 2, worldHalfDepth = worldDepth / 2;
+var textureFile = 'img/Texture.jpg';
+var heightmapFile = 'img/Heightmap.jpg';
+var pos_x, pos_y, pos_z, rot_x, rot_y, rot_z;
+var wf = false;
+
+
+function runWebGLSimulation(){
+ //Detect WebGL
+ if (!Detector.webgl) {
+ Detector.addGetWebGLMessage();
+ document.getElementById('container').innerHTML = "";
+ }
+
+ //Start Graphics
+ initGraphics(textureFile, heightmapFile, function(){ animate() });
+ //Start Scene Animation
+}
+
+function initGraphics(textureFile, heightmapFile, cb) {
+
+ container = document.getElementById('container');
+ //Set camera
+ camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 1, 20000);
+ //Set scene
+ scene = new THREE.Scene();
+
+ //Get heightmap data
+ //Generates the heightmap data from the heightmap image
+ var size = worldWidth * worldDepth, data = new Float32Array(size);
+
+ var canvas = document.createElement('canvas');
+ canvas.width = worldWidth;
+ canvas.height = worldDepth;
+ context = canvas.getContext('2d');
+ context.fillStyle = '#000';
+ context.fillRect(0, 0, worldWidth, worldDepth);
+
+ var img = new Image();
+ img.src = heightmapFile;
+ img.onerror = function() {
+ alert("The following url did not work: \n"+heightmapFile.slice(15));
+ is_generating = false;
+ toggle_background();
+ };
+
+ img.onload = function(){
+ context.drawImage(img, 0, 0);
+ image = context.getImageData(0, 0, worldWidth, worldDepth);
+ var imageData = image.data;
+ var pixels = size;
+ for (var i=0; i<pixels; i++){
+ // Get RGB
+ red = imageData[4 * i + 0];
+ green = imageData[4 * i + 1];
+ blue = imageData[4 * i + 2];
+ // Get grayscale
+ gray = (red + green + blue) / 3;
+ // Put heightmap value
+ data[i] = gray;
+ }
+
+ //Set camera position
+ camera.position.y = data[worldHalfWidth + worldHalfDepth * worldWidth] + 500;
+ scene.add(camera);
+
+ //Create geometry data used for mesh
+ var geometry = new THREE.PlaneGeometry(7500, 7500, worldWidth - 1, worldDepth - 1);
+ for ( var i = 0, l = geometry.vertices.length; i < l; i++) {
+ geometry.vertices[i].position.z = data[i] * 3;
+ }
+
+ //Load texture
+ texture = THREE.ImageUtils.loadTexture(textureFile, {}, function() {
+ renderer.render(scene, camera);
+ });
+ texture.needsUpdate = true;
+
+ //Create mesh from heightmap and texture
+ material = new THREE.MeshBasicMaterial({
+ map : texture,
+ wireframe: wf
+ });
+ mesh = new THREE.Mesh(geometry, material);
+ mesh.rotation.x = -90 * Math.PI / 180;
+ scene.add(mesh);
+
+ //Create renderer
+ renderer = new THREE.WebGLRenderer({
+ preserveDrawingBuffer : true // required to support .toDataURL()
+ });
+ renderer.setSize(window.innerWidth, window.innerHeight - 150); //FIXME, add height of the controls
+ container.innerHTML = "";
+ container.appendChild(renderer.domElement);
+
+ //Get default values
+ pos_x = mesh.position.x;
+ pos_y = mesh.position.y;
+ pos_z = mesh.position.z;
+ rot_x = mesh.rotation.x;
+ rot_y = mesh.rotation.y;
+ rot_z = mesh.rotation.z;
+ is_generating = false;
+ toggle_background();
+ cb();
+ };
+}
+
+var requestId;
+function loop() {
+ render();
+ requestId = window.requestAnimationFrame(loop);
+}
+function animate() {
+ if (!requestId) {
+ loop();
+ }
+}
+function stop_animating() {
+ if (requestId) {
+ window.cancelAnimationFrame(requestId);
+ requestId = undefined;
+ }
+}
+
+
+function render() {
+ renderer.render(scene, camera);
+}
+
+function init_controls(){
+ var listener = new window.keypress.Listener();
+ var my_scope = this;
+ var my_combos = listener.register_many([
+ {
+ "keys" : "up",
+ "is_solitary" : true,
+ "on_keydown" : function() {
+ mesh.position.y += 150;
+ },
+ "this" : my_scope
+ },
+ {
+ "keys" : "down",
+ "is_solitary" : true,
+ "on_keydown" : function() {
+ mesh.position.y -= 150;
+ },
+ "this" : my_scope
+ },
+ {
+ "keys" : "right",
+ "is_solitary" : true,
+ "on_keydown" : function() {
+ mesh.position.x += 150;
+ },
+ "this" : my_scope
+ },
+ {
+ "keys" : "left",
+ "is_solitary" : true,
+ "on_keydown" : function() {
+ mesh.position.x -= 150;
+ },
+ "this" : my_scope
+ },
+ {
+ "keys" : "shift up",
+ "is_exclusive" : true,
+ "on_keydown" : function() {
+ mesh.rotation.x += 0.1;
+ },
+ "this" : my_scope
+ },
+ {
+ "keys" : "shift down",
+ "is_exclusive" : true,
+ "on_keydown" : function() {
+ mesh.rotation.x -= 0.1;
+ },
+ "this" : my_scope
+ },
+ {
+ "keys" : "shift right",
+ "is_exclusive" : true,
+ "on_keydown" : function() {
+ mesh.rotation.z -= 0.1;
+ },
+ "this" : my_scope
+ },
+ {
+ "keys" : "shift left",
+ "is_exclusive" : true,
+ "on_keydown" : function() {
+ mesh.rotation.z += 0.1;
+ },
+ "this" : my_scope
+ },
+ {
+ "keys" : "delete",
+ "is_exclusive" : true,
+ "on_keydown" : function() {
+ mesh.position.x = pos_x;
+ mesh.position.y = pos_y;
+ mesh.position.z = pos_z;
+ mesh.rotation.x = rot_x;
+ mesh.rotation.y = rot_y;
+ mesh.rotation.z = rot_z;
+ },
+ "this" : my_scope
+ },
+ {
+ "keys" : "pageup",
+ "is_exclusive" : true,
+ "on_keydown" : function() {
+ mesh.position.z += 150;
+ },
+ "this" : my_scope
+ },
+ {
+ "keys" : "pagedown",
+ "is_exclusive" : true,
+ "on_keydown" : function() {
+ mesh.position.z -= 150;
+ },
+ "this" : my_scope
+ },
+ {
+ "keys" : "space",
+ "is_exclusive" : true,
+ "on_keydown" : function() {
+ wf = !wf;
+ material.wireframe = wf;
+ },
+ "this" : my_scope
+ },
+ ]);
+}
+
+
+window.onload= function(e){
+ runWebGLSimulation();
+ init_controls();
+}
diff --git a/frontend/imlandscape/js/Detector.js b/frontend/imlandscape/js/Detector.js new file mode 100644 index 0000000..0c0c632 --- /dev/null +++ b/frontend/imlandscape/js/Detector.js @@ -0,0 +1,52 @@ +Detector = { + + canvas : !! window.CanvasRenderingContext2D, + webgl : ( function () { try { return !! window.WebGLRenderingContext && !! document.createElement( 'canvas' ).getContext( 'experimental-webgl' ); } catch( e ) { return false; } } )(), + workers : !! window.Worker, + fileapi : window.File && window.FileReader && window.FileList && window.Blob, + + getWebGLErrorMessage : function () { + + var domElement = document.createElement( 'div' ); + + domElement.style.fontFamily = 'monospace'; + domElement.style.fontSize = '13px'; + domElement.style.textAlign = 'center'; + domElement.style.background = '#eee'; + domElement.style.color = '#000'; + domElement.style.width = '100%'; + domElement.style.height = '50px'; + + if ( ! this.webgl ) { + + domElement.innerHTML = window.WebGLRenderingContext ? [ + 'Your graphics card does not seem to support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation">WebGL</a>.<br />', + 'Find out how to get it <a href="http://get.webgl.org/">here</a>.' + ].join( '\n' ) : [ + 'Your browser does not seem to support <a href="http://khronos.org/webgl/wiki/Getting_a_WebGL_Implementation">WebGL</a>.<br/>', + 'Find out how to get it <a href="http://get.webgl.org/">here</a>.' + ].join( '\n' ); + + } + + return domElement; + + }, + + addGetWebGLMessage : function ( parameters ) { + + var parent, id, domElement; + + parameters = parameters || {}; + + parent = parameters.parent !== undefined ? parameters.parent : document.body; + id = parameters.id !== undefined ? parameters.id : 'container'; + + domElement = Detector.getWebGLErrorMessage(); + domElement.id = id; + + parent.appendChild( domElement ); + + } + +}; diff --git a/frontend/imlandscape/js/RequestAnimationFrame.js b/frontend/imlandscape/js/RequestAnimationFrame.js new file mode 100644 index 0000000..b1940ae --- /dev/null +++ b/frontend/imlandscape/js/RequestAnimationFrame.js @@ -0,0 +1,24 @@ +(function() { + var lastTime = 0; + var vendors = ['webkit', 'moz']; + for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { + window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame']; + window.cancelAnimationFrame = + window[vendors[x]+'CancelAnimationFrame'] || window[vendors[x]+'CancelRequestAnimationFrame']; + } + + if (!window.requestAnimationFrame) + window.requestAnimationFrame = function(callback, element) { + var currTime = new Date().getTime(); + var timeToCall = Math.max(0, 16 - (currTime - lastTime)); + var id = window.setTimeout(function() { callback(currTime + timeToCall); }, + timeToCall); + lastTime = currTime + timeToCall; + return id; + }; + + if (!window.cancelAnimationFrame) + window.cancelAnimationFrame = function(id) { + clearTimeout(id); + }; +}()); diff --git a/frontend/imlandscape/js/Three.js b/frontend/imlandscape/js/Three.js new file mode 100644 index 0000000..c274a8d --- /dev/null +++ b/frontend/imlandscape/js/Three.js @@ -0,0 +1,708 @@ +// Three.js r45 - http://github.com/mrdoob/three.js +var THREE=THREE||{};if(!self.Int32Array)self.Int32Array=Array,self.Float32Array=Array;THREE.Color=function(b){b!==void 0&&this.setHex(b);return this}; +THREE.Color.prototype={constructor:THREE.Color,r:1,g:1,b:1,copy:function(b){this.r=b.r;this.g=b.g;this.b=b.b;return this},setRGB:function(b,c,e){this.r=b;this.g=c;this.b=e;return this},setHSV:function(b,c,e){var f,h,k;if(e==0)this.r=this.g=this.b=0;else switch(f=Math.floor(b*6),h=b*6-f,b=e*(1-c),k=e*(1-c*h),c=e*(1-c*(1-h)),f){case 1:this.r=k;this.g=e;this.b=b;break;case 2:this.r=b;this.g=e;this.b=c;break;case 3:this.r=b;this.g=k;this.b=e;break;case 4:this.r=c;this.g=b;this.b=e;break;case 5:this.r= +e;this.g=b;this.b=k;break;case 6:case 0:this.r=e,this.g=c,this.b=b}return this},setHex:function(b){b=Math.floor(b);this.r=(b>>16&255)/255;this.g=(b>>8&255)/255;this.b=(b&255)/255;return this},getHex:function(){return~~(this.r*255)<<16^~~(this.g*255)<<8^~~(this.b*255)},getContextStyle:function(){return"rgb("+Math.floor(this.r*255)+","+Math.floor(this.g*255)+","+Math.floor(this.b*255)+")"},clone:function(){return(new THREE.Color).setRGB(this.r,this.g,this.b)}}; +THREE.Vector2=function(b,c){this.x=b||0;this.y=c||0}; +THREE.Vector2.prototype={constructor:THREE.Vector2,set:function(b,c){this.x=b;this.y=c;return this},copy:function(b){this.x=b.x;this.y=b.y;return this},clone:function(){return new THREE.Vector2(this.x,this.y)},add:function(b,c){this.x=b.x+c.x;this.y=b.y+c.y;return this},addSelf:function(b){this.x+=b.x;this.y+=b.y;return this},sub:function(b,c){this.x=b.x-c.x;this.y=b.y-c.y;return this},subSelf:function(b){this.x-=b.x;this.y-=b.y;return this},multiplyScalar:function(b){this.x*=b;this.y*=b;return this}, +divideScalar:function(b){b?(this.x/=b,this.y/=b):this.set(0,0);return this},negate:function(){return this.multiplyScalar(-1)},dot:function(b){return this.x*b.x+this.y*b.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.lengthSq())},normalize:function(){return this.divideScalar(this.length())},distanceTo:function(b){return Math.sqrt(this.distanceToSquared(b))},distanceToSquared:function(b){var c=this.x-b.x,b=this.y-b.y;return c*c+b*b},setLength:function(b){return this.normalize().multiplyScalar(b)}, +equals:function(b){return b.x==this.x&&b.y==this.y}};THREE.Vector3=function(b,c,e){this.x=b||0;this.y=c||0;this.z=e||0}; +THREE.Vector3.prototype={constructor:THREE.Vector3,set:function(b,c,e){this.x=b;this.y=c;this.z=e;return this},setX:function(b){this.x=b;return this},setY:function(b){this.y=b;return this},setZ:function(b){this.z=b;return this},copy:function(b){this.x=b.x;this.y=b.y;this.z=b.z;return this},clone:function(){return new THREE.Vector3(this.x,this.y,this.z)},add:function(b,c){this.x=b.x+c.x;this.y=b.y+c.y;this.z=b.z+c.z;return this},addSelf:function(b){this.x+=b.x;this.y+=b.y;this.z+=b.z;return this}, +addScalar:function(b){this.x+=b;this.y+=b;this.z+=b;return this},sub:function(b,c){this.x=b.x-c.x;this.y=b.y-c.y;this.z=b.z-c.z;return this},subSelf:function(b){this.x-=b.x;this.y-=b.y;this.z-=b.z;return this},multiply:function(b,c){this.x=b.x*c.x;this.y=b.y*c.y;this.z=b.z*c.z;return this},multiplySelf:function(b){this.x*=b.x;this.y*=b.y;this.z*=b.z;return this},multiplyScalar:function(b){this.x*=b;this.y*=b;this.z*=b;return this},divideSelf:function(b){this.x/=b.x;this.y/=b.y;this.z/=b.z;return this}, +divideScalar:function(b){b?(this.x/=b,this.y/=b,this.z/=b):this.set(0,0,0);return this},negate:function(){return this.multiplyScalar(-1)},dot:function(b){return this.x*b.x+this.y*b.y+this.z*b.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.lengthSq())},lengthManhattan:function(){return this.x+this.y+this.z},normalize:function(){return this.divideScalar(this.length())},setLength:function(b){return this.normalize().multiplyScalar(b)}, +cross:function(b,c){this.x=b.y*c.z-b.z*c.y;this.y=b.z*c.x-b.x*c.z;this.z=b.x*c.y-b.y*c.x;return this},crossSelf:function(b){return this.set(this.y*b.z-this.z*b.y,this.z*b.x-this.x*b.z,this.x*b.y-this.y*b.x)},distanceTo:function(b){return Math.sqrt(this.distanceToSquared(b))},distanceToSquared:function(b){return(new THREE.Vector3).sub(this,b).lengthSq()},setPositionFromMatrix:function(b){this.x=b.n14;this.y=b.n24;this.z=b.n34},setRotationFromMatrix:function(b){var c=Math.cos(this.y);this.y=Math.asin(b.n13); +Math.abs(c)>1.0E-5?(this.x=Math.atan2(-b.n23/c,b.n33/c),this.z=Math.atan2(-b.n12/c,b.n11/c)):(this.x=0,this.z=Math.atan2(b.n21,b.n22))},isZero:function(){return this.lengthSq()<1.0E-4}};THREE.Vector4=function(b,c,e,f){this.x=b||0;this.y=c||0;this.z=e||0;this.w=f!==void 0?f:1}; +THREE.Vector4.prototype={constructor:THREE.Vector4,set:function(b,c,e,f){this.x=b;this.y=c;this.z=e;this.w=f;return this},copy:function(b){this.x=b.x;this.y=b.y;this.z=b.z;this.w=b.w!==void 0?b.w:1},clone:function(){return new THREE.Vector4(this.x,this.y,this.z,this.w)},add:function(b,c){this.x=b.x+c.x;this.y=b.y+c.y;this.z=b.z+c.z;this.w=b.w+c.w;return this},addSelf:function(b){this.x+=b.x;this.y+=b.y;this.z+=b.z;this.w+=b.w;return this},sub:function(b,c){this.x=b.x-c.x;this.y=b.y-c.y;this.z=b.z- +c.z;this.w=b.w-c.w;return this},subSelf:function(b){this.x-=b.x;this.y-=b.y;this.z-=b.z;this.w-=b.w;return this},multiplyScalar:function(b){this.x*=b;this.y*=b;this.z*=b;this.w*=b;return this},divideScalar:function(b){b?(this.x/=b,this.y/=b,this.z/=b,this.w/=b):(this.z=this.y=this.x=0,this.w=1);return this},negate:function(){return this.multiplyScalar(-1)},dot:function(b){return this.x*b.x+this.y*b.y+this.z*b.z+this.w*b.w},lengthSq:function(){return this.dot(this)},length:function(){return Math.sqrt(this.lengthSq())}, +normalize:function(){return this.divideScalar(this.length())},setLength:function(b){return this.normalize().multiplyScalar(b)},lerpSelf:function(b,c){this.x+=(b.x-this.x)*c;this.y+=(b.y-this.y)*c;this.z+=(b.z-this.z)*c;this.w+=(b.w-this.w)*c;return this}};THREE.Ray=function(b,c){this.origin=b||new THREE.Vector3;this.direction=c||new THREE.Vector3}; +THREE.Ray.prototype={constructor:THREE.Ray,intersectScene:function(b){return this.intersectObjects(b.objects)},intersectObjects:function(b){var c,e,f=[];c=0;for(e=b.length;c<e;c++)Array.prototype.push.apply(f,this.intersectObject(b[c]));f.sort(function(b,c){return b.distance-c.distance});return f},intersectObject:function(b){function c(b,c,e){var f;f=e.clone().subSelf(b).dot(c);if(f<=0)return null;b=b.clone().addSelf(c.clone().multiplyScalar(f));return e.distanceTo(b)}function e(b,c,e,f){var f=f.clone().subSelf(c), +e=e.clone().subSelf(c),h=b.clone().subSelf(c),b=f.dot(f),c=f.dot(e),f=f.dot(h),k=e.dot(e),e=e.dot(h),h=1/(b*k-c*c),k=(k*f-c*e)*h,b=(b*e-c*f)*h;return k>0&&b>0&&k+b<1}if(b instanceof THREE.Particle){var f=c(this.origin,this.direction,b.matrixWorld.getPosition());if(f==null||f>b.scale.x)return[];return[{distance:f,point:b.position,face:null,object:b}]}else if(b instanceof THREE.Mesh){f=c(this.origin,this.direction,b.matrixWorld.getPosition());if(f==null||f>b.geometry.boundingSphere.radius*Math.max(b.scale.x, +Math.max(b.scale.y,b.scale.z)))return[];var h,k,m,n,t,u,v,p,x,w,A=b.geometry,z=A.vertices,y=[],f=0;for(h=A.faces.length;f<h;f++)if(k=A.faces[f],x=this.origin.clone(),w=this.direction.clone(),u=b.matrixWorld,m=u.multiplyVector3(k.centroid.clone()).subSelf(x),p=m.dot(w),!(p<=0)&&(m=u.multiplyVector3(z[k.a].position.clone()),n=u.multiplyVector3(z[k.b].position.clone()),t=u.multiplyVector3(z[k.c].position.clone()),u=k instanceof THREE.Face4?u.multiplyVector3(z[k.d].position.clone()):null,v=b.matrixRotationWorld.multiplyVector3(k.normal.clone()), +p=w.dot(v),b.doubleSided||(b.flipSided?p>0:p<0)))if(p=v.dot((new THREE.Vector3).sub(m,x))/p,x=x.addSelf(w.multiplyScalar(p)),k instanceof THREE.Face3)e(x,m,n,t)&&(k={distance:this.origin.distanceTo(x),point:x,face:k,object:b},y.push(k));else if(k instanceof THREE.Face4&&(e(x,m,n,u)||e(x,n,t,u)))k={distance:this.origin.distanceTo(x),point:x,face:k,object:b},y.push(k);y.sort(function(b,c){return b.distance-c.distance});return y}else return[]}}; +THREE.Rectangle=function(){function b(){k=f-c;m=h-e}var c,e,f,h,k,m,n=!0;this.getX=function(){return c};this.getY=function(){return e};this.getWidth=function(){return k};this.getHeight=function(){return m};this.getLeft=function(){return c};this.getTop=function(){return e};this.getRight=function(){return f};this.getBottom=function(){return h};this.set=function(k,m,v,p){n=!1;c=k;e=m;f=v;h=p;b()};this.addPoint=function(k,m){n?(n=!1,c=k,e=m,f=k,h=m):(c=c<k?c:k,e=e<m?e:m,f=f>k?f:k,h=h>m?h:m);b()};this.add3Points= +function(k,m,v,p,x,w){n?(n=!1,c=k<v?k<x?k:x:v<x?v:x,e=m<p?m<w?m:w:p<w?p:w,f=k>v?k>x?k:x:v>x?v:x,h=m>p?m>w?m:w:p>w?p:w):(c=k<v?k<x?k<c?k:c:x<c?x:c:v<x?v<c?v:c:x<c?x:c,e=m<p?m<w?m<e?m:e:w<e?w:e:p<w?p<e?p:e:w<e?w:e,f=k>v?k>x?k>f?k:f:x>f?x:f:v>x?v>f?v:f:x>f?x:f,h=m>p?m>w?m>h?m:h:w>h?w:h:p>w?p>h?p:h:w>h?w:h);b()};this.addRectangle=function(k){n?(n=!1,c=k.getLeft(),e=k.getTop(),f=k.getRight(),h=k.getBottom()):(c=c<k.getLeft()?c:k.getLeft(),e=e<k.getTop()?e:k.getTop(),f=f>k.getRight()?f:k.getRight(),h=h> +k.getBottom()?h:k.getBottom());b()};this.inflate=function(k){c-=k;e-=k;f+=k;h+=k;b()};this.minSelf=function(k){c=c>k.getLeft()?c:k.getLeft();e=e>k.getTop()?e:k.getTop();f=f<k.getRight()?f:k.getRight();h=h<k.getBottom()?h:k.getBottom();b()};this.intersects=function(b){return Math.min(f,b.getRight())-Math.max(c,b.getLeft())>=0&&Math.min(h,b.getBottom())-Math.max(e,b.getTop())>=0};this.empty=function(){n=!0;h=f=e=c=0;b()};this.isEmpty=function(){return n}};THREE.Matrix3=function(){this.m=[]}; +THREE.Matrix3.prototype={constructor:THREE.Matrix3,transpose:function(){var b,c=this.m;b=c[1];c[1]=c[3];c[3]=b;b=c[2];c[2]=c[6];c[6]=b;b=c[5];c[5]=c[7];c[7]=b;return this},transposeIntoArray:function(b){var c=this.m;b[0]=c[0];b[1]=c[3];b[2]=c[6];b[3]=c[1];b[4]=c[4];b[5]=c[7];b[6]=c[2];b[7]=c[5];b[8]=c[8];return this}}; +THREE.Matrix4=function(b,c,e,f,h,k,m,n,t,u,v,p,x,w,A,z){this.set(b!==void 0?b:1,c||0,e||0,f||0,h||0,k!==void 0?k:1,m||0,n||0,t||0,u||0,v!==void 0?v:1,p||0,x||0,w||0,A||0,z!==void 0?z:1);this.flat=Array(16);this.m33=new THREE.Matrix3}; +THREE.Matrix4.prototype={constructor:THREE.Matrix4,set:function(b,c,e,f,h,k,m,n,t,u,v,p,x,w,A,z){this.n11=b;this.n12=c;this.n13=e;this.n14=f;this.n21=h;this.n22=k;this.n23=m;this.n24=n;this.n31=t;this.n32=u;this.n33=v;this.n34=p;this.n41=x;this.n42=w;this.n43=A;this.n44=z;return this},identity:function(){this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);return this},copy:function(b){this.set(b.n11,b.n12,b.n13,b.n14,b.n21,b.n22,b.n23,b.n24,b.n31,b.n32,b.n33,b.n34,b.n41,b.n42,b.n43,b.n44);return this},lookAt:function(b, +c,e){var f=THREE.Matrix4.__v1,h=THREE.Matrix4.__v2,k=THREE.Matrix4.__v3;k.sub(b,c).normalize();if(k.length()===0)k.z=1;f.cross(e,k).normalize();f.length()===0&&(k.x+=1.0E-4,f.cross(e,k).normalize());h.cross(k,f).normalize();this.n11=f.x;this.n12=h.x;this.n13=k.x;this.n21=f.y;this.n22=h.y;this.n23=k.y;this.n31=f.z;this.n32=h.z;this.n33=k.z;return this},multiplyVector3:function(b){var c=b.x,e=b.y,f=b.z,h=1/(this.n41*c+this.n42*e+this.n43*f+this.n44);b.x=(this.n11*c+this.n12*e+this.n13*f+this.n14)*h; +b.y=(this.n21*c+this.n22*e+this.n23*f+this.n24)*h;b.z=(this.n31*c+this.n32*e+this.n33*f+this.n34)*h;return b},multiplyVector4:function(b){var c=b.x,e=b.y,f=b.z,h=b.w;b.x=this.n11*c+this.n12*e+this.n13*f+this.n14*h;b.y=this.n21*c+this.n22*e+this.n23*f+this.n24*h;b.z=this.n31*c+this.n32*e+this.n33*f+this.n34*h;b.w=this.n41*c+this.n42*e+this.n43*f+this.n44*h;return b},rotateAxis:function(b){var c=b.x,e=b.y,f=b.z;b.x=c*this.n11+e*this.n12+f*this.n13;b.y=c*this.n21+e*this.n22+f*this.n23;b.z=c*this.n31+ +e*this.n32+f*this.n33;b.normalize();return b},crossVector:function(b){var c=new THREE.Vector4;c.x=this.n11*b.x+this.n12*b.y+this.n13*b.z+this.n14*b.w;c.y=this.n21*b.x+this.n22*b.y+this.n23*b.z+this.n24*b.w;c.z=this.n31*b.x+this.n32*b.y+this.n33*b.z+this.n34*b.w;c.w=b.w?this.n41*b.x+this.n42*b.y+this.n43*b.z+this.n44*b.w:1;return c},multiply:function(b,c){var e=b.n11,f=b.n12,h=b.n13,k=b.n14,m=b.n21,n=b.n22,t=b.n23,u=b.n24,v=b.n31,p=b.n32,x=b.n33,w=b.n34,A=b.n41,z=b.n42,y=b.n43,C=b.n44,E=c.n11,D=c.n12, +F=c.n13,M=c.n14,N=c.n21,G=c.n22,H=c.n23,K=c.n24,Z=c.n31,L=c.n32,P=c.n33,U=c.n34,Y=c.n41,X=c.n42,o=c.n43,ea=c.n44;this.n11=e*E+f*N+h*Z+k*Y;this.n12=e*D+f*G+h*L+k*X;this.n13=e*F+f*H+h*P+k*o;this.n14=e*M+f*K+h*U+k*ea;this.n21=m*E+n*N+t*Z+u*Y;this.n22=m*D+n*G+t*L+u*X;this.n23=m*F+n*H+t*P+u*o;this.n24=m*M+n*K+t*U+u*ea;this.n31=v*E+p*N+x*Z+w*Y;this.n32=v*D+p*G+x*L+w*X;this.n33=v*F+p*H+x*P+w*o;this.n34=v*M+p*K+x*U+w*ea;this.n41=A*E+z*N+y*Z+C*Y;this.n42=A*D+z*G+y*L+C*X;this.n43=A*F+z*H+y*P+C*o;this.n44=A* +M+z*K+y*U+C*ea;return this},multiplyToArray:function(b,c,e){this.multiply(b,c);e[0]=this.n11;e[1]=this.n21;e[2]=this.n31;e[3]=this.n41;e[4]=this.n12;e[5]=this.n22;e[6]=this.n32;e[7]=this.n42;e[8]=this.n13;e[9]=this.n23;e[10]=this.n33;e[11]=this.n43;e[12]=this.n14;e[13]=this.n24;e[14]=this.n34;e[15]=this.n44;return this},multiplySelf:function(b){this.multiply(this,b);return this},multiplyScalar:function(b){this.n11*=b;this.n12*=b;this.n13*=b;this.n14*=b;this.n21*=b;this.n22*=b;this.n23*=b;this.n24*= +b;this.n31*=b;this.n32*=b;this.n33*=b;this.n34*=b;this.n41*=b;this.n42*=b;this.n43*=b;this.n44*=b;return this},determinant:function(){var b=this.n11,c=this.n12,e=this.n13,f=this.n14,h=this.n21,k=this.n22,m=this.n23,n=this.n24,t=this.n31,u=this.n32,v=this.n33,p=this.n34,x=this.n41,w=this.n42,A=this.n43,z=this.n44;return f*m*u*x-e*n*u*x-f*k*v*x+c*n*v*x+e*k*p*x-c*m*p*x-f*m*t*w+e*n*t*w+f*h*v*w-b*n*v*w-e*h*p*w+b*m*p*w+f*k*t*A-c*n*t*A-f*h*u*A+b*n*u*A+c*h*p*A-b*k*p*A-e*k*t*z+c*m*t*z+e*h*u*z-b*m*u*z-c*h* +v*z+b*k*v*z},transpose:function(){var b;b=this.n21;this.n21=this.n12;this.n12=b;b=this.n31;this.n31=this.n13;this.n13=b;b=this.n32;this.n32=this.n23;this.n23=b;b=this.n41;this.n41=this.n14;this.n14=b;b=this.n42;this.n42=this.n24;this.n24=b;b=this.n43;this.n43=this.n34;this.n43=b;return this},clone:function(){var b=new THREE.Matrix4;b.n11=this.n11;b.n12=this.n12;b.n13=this.n13;b.n14=this.n14;b.n21=this.n21;b.n22=this.n22;b.n23=this.n23;b.n24=this.n24;b.n31=this.n31;b.n32=this.n32;b.n33=this.n33;b.n34= +this.n34;b.n41=this.n41;b.n42=this.n42;b.n43=this.n43;b.n44=this.n44;return b},flatten:function(){this.flat[0]=this.n11;this.flat[1]=this.n21;this.flat[2]=this.n31;this.flat[3]=this.n41;this.flat[4]=this.n12;this.flat[5]=this.n22;this.flat[6]=this.n32;this.flat[7]=this.n42;this.flat[8]=this.n13;this.flat[9]=this.n23;this.flat[10]=this.n33;this.flat[11]=this.n43;this.flat[12]=this.n14;this.flat[13]=this.n24;this.flat[14]=this.n34;this.flat[15]=this.n44;return this.flat},flattenToArray:function(b){b[0]= +this.n11;b[1]=this.n21;b[2]=this.n31;b[3]=this.n41;b[4]=this.n12;b[5]=this.n22;b[6]=this.n32;b[7]=this.n42;b[8]=this.n13;b[9]=this.n23;b[10]=this.n33;b[11]=this.n43;b[12]=this.n14;b[13]=this.n24;b[14]=this.n34;b[15]=this.n44;return b},flattenToArrayOffset:function(b,c){b[c]=this.n11;b[c+1]=this.n21;b[c+2]=this.n31;b[c+3]=this.n41;b[c+4]=this.n12;b[c+5]=this.n22;b[c+6]=this.n32;b[c+7]=this.n42;b[c+8]=this.n13;b[c+9]=this.n23;b[c+10]=this.n33;b[c+11]=this.n43;b[c+12]=this.n14;b[c+13]=this.n24;b[c+14]= +this.n34;b[c+15]=this.n44;return b},setTranslation:function(b,c,e){this.set(1,0,0,b,0,1,0,c,0,0,1,e,0,0,0,1);return this},setScale:function(b,c,e){this.set(b,0,0,0,0,c,0,0,0,0,e,0,0,0,0,1);return this},setRotationX:function(b){var c=Math.cos(b),b=Math.sin(b);this.set(1,0,0,0,0,c,-b,0,0,b,c,0,0,0,0,1);return this},setRotationY:function(b){var c=Math.cos(b),b=Math.sin(b);this.set(c,0,b,0,0,1,0,0,-b,0,c,0,0,0,0,1);return this},setRotationZ:function(b){var c=Math.cos(b),b=Math.sin(b);this.set(c,-b,0, +0,b,c,0,0,0,0,1,0,0,0,0,1);return this},setRotationAxis:function(b,c){var e=Math.cos(c),f=Math.sin(c),h=1-e,k=b.x,m=b.y,n=b.z,t=h*k,u=h*m;this.set(t*k+e,t*m-f*n,t*n+f*m,0,t*m+f*n,u*m+e,u*n-f*k,0,t*n-f*m,u*n+f*k,h*n*n+e,0,0,0,0,1);return this},setPosition:function(b){this.n14=b.x;this.n24=b.y;this.n34=b.z;return this},getPosition:function(){if(!this.position)this.position=new THREE.Vector3;this.position.set(this.n14,this.n24,this.n34);return this.position},getColumnX:function(){if(!this.columnX)this.columnX= +new THREE.Vector3;this.columnX.set(this.n11,this.n21,this.n31);return this.columnX},getColumnY:function(){if(!this.columnY)this.columnY=new THREE.Vector3;this.columnY.set(this.n12,this.n22,this.n32);return this.columnY},getColumnZ:function(){if(!this.columnZ)this.columnZ=new THREE.Vector3;this.columnZ.set(this.n13,this.n23,this.n33);return this.columnZ},setRotationFromEuler:function(b,c){var e=b.x,f=b.y,h=b.z,k=Math.cos(e),e=Math.sin(e),m=Math.cos(f),f=Math.sin(f),n=Math.cos(h),h=Math.sin(h);switch(c){case "YXZ":var t= +m*n,u=m*h,v=f*n,p=f*h;this.n11=t+p*e;this.n12=v*e-u;this.n13=k*f;this.n21=k*h;this.n22=k*n;this.n23=-e;this.n31=u*e-v;this.n32=p+t*e;this.n33=k*m;break;case "ZXY":t=m*n;u=m*h;v=f*n;p=f*h;this.n11=t-p*e;this.n12=-k*h;this.n13=v+u*e;this.n21=u+v*e;this.n22=k*n;this.n23=p-t*e;this.n31=-k*f;this.n32=e;this.n33=k*m;break;case "ZYX":t=k*n;u=k*h;v=e*n;p=e*h;this.n11=m*n;this.n12=v*f-u;this.n13=t*f+p;this.n21=m*h;this.n22=p*f+t;this.n23=u*f-v;this.n31=-f;this.n32=e*m;this.n33=k*m;break;case "YZX":t=k*m;u= +k*f;v=e*m;p=e*f;this.n11=m*n;this.n12=p-t*h;this.n13=v*h+u;this.n21=h;this.n22=k*n;this.n23=-e*n;this.n31=-f*n;this.n32=u*h+v;this.n33=t-p*h;break;case "XZY":t=k*m;u=k*f;v=e*m;p=e*f;this.n11=m*n;this.n12=-h;this.n13=f*n;this.n21=t*h+p;this.n22=k*n;this.n23=u*h-v;this.n31=v*h-u;this.n32=e*n;this.n33=p*h+t;break;default:t=k*n,u=k*h,v=e*n,p=e*h,this.n11=m*n,this.n12=-m*h,this.n13=f,this.n21=u+v*f,this.n22=t-p*f,this.n23=-e*m,this.n31=p-t*f,this.n32=v+u*f,this.n33=k*m}return this},setRotationFromQuaternion:function(b){var c= +b.x,e=b.y,f=b.z,h=b.w,k=c+c,m=e+e,n=f+f,b=c*k,t=c*m;c*=n;var u=e*m;e*=n;f*=n;k*=h;m*=h;h*=n;this.n11=1-(u+f);this.n12=t-h;this.n13=c+m;this.n21=t+h;this.n22=1-(b+f);this.n23=e-k;this.n31=c-m;this.n32=e+k;this.n33=1-(b+u);return this},scale:function(b){var c=b.x,e=b.y,b=b.z;this.n11*=c;this.n12*=e;this.n13*=b;this.n21*=c;this.n22*=e;this.n23*=b;this.n31*=c;this.n32*=e;this.n33*=b;this.n41*=c;this.n42*=e;this.n43*=b;return this},compose:function(b,c,e){var f=THREE.Matrix4.__m1,h=THREE.Matrix4.__m2; +f.identity();f.setRotationFromQuaternion(c);h.setScale(e.x,e.y,e.z);this.multiply(f,h);this.n14=b.x;this.n24=b.y;this.n34=b.z;return this},decompose:function(b,c,e){var f=THREE.Matrix4.__v1,h=THREE.Matrix4.__v2,k=THREE.Matrix4.__v3;f.set(this.n11,this.n21,this.n31);h.set(this.n12,this.n22,this.n32);k.set(this.n13,this.n23,this.n33);b=b instanceof THREE.Vector3?b:new THREE.Vector3;c=c instanceof THREE.Quaternion?c:new THREE.Quaternion;e=e instanceof THREE.Vector3?e:new THREE.Vector3;e.x=f.length(); +e.y=h.length();e.z=k.length();b.x=this.n14;b.y=this.n24;b.z=this.n34;f=THREE.Matrix4.__m1;f.copy(this);f.n11/=e.x;f.n21/=e.x;f.n31/=e.x;f.n12/=e.y;f.n22/=e.y;f.n32/=e.y;f.n13/=e.z;f.n23/=e.z;f.n33/=e.z;c.setFromRotationMatrix(f);return[b,c,e]},extractPosition:function(b){this.n14=b.n14;this.n24=b.n24;this.n34=b.n34},extractRotation:function(b,c){var e=1/c.x,f=1/c.y,h=1/c.z;this.n11=b.n11*e;this.n21=b.n21*e;this.n31=b.n31*e;this.n12=b.n12*f;this.n22=b.n22*f;this.n32=b.n32*f;this.n13=b.n13*h;this.n23= +b.n23*h;this.n33=b.n33*h}}; +THREE.Matrix4.makeInvert=function(b,c){var e=b.n11,f=b.n12,h=b.n13,k=b.n14,m=b.n21,n=b.n22,t=b.n23,u=b.n24,v=b.n31,p=b.n32,x=b.n33,w=b.n34,A=b.n41,z=b.n42,y=b.n43,C=b.n44;c===void 0&&(c=new THREE.Matrix4);c.n11=t*w*z-u*x*z+u*p*y-n*w*y-t*p*C+n*x*C;c.n12=k*x*z-h*w*z-k*p*y+f*w*y+h*p*C-f*x*C;c.n13=h*u*z-k*t*z+k*n*y-f*u*y-h*n*C+f*t*C;c.n14=k*t*p-h*u*p-k*n*x+f*u*x+h*n*w-f*t*w;c.n21=u*x*A-t*w*A-u*v*y+m*w*y+t*v*C-m*x*C;c.n22=h*w*A-k*x*A+k*v*y-e*w*y-h*v*C+e*x*C;c.n23=k*t*A-h*u*A-k*m*y+e*u*y+h*m*C-e*t*C;c.n24= +h*u*v-k*t*v+k*m*x-e*u*x-h*m*w+e*t*w;c.n31=n*w*A-u*p*A+u*v*z-m*w*z-n*v*C+m*p*C;c.n32=k*p*A-f*w*A-k*v*z+e*w*z+f*v*C-e*p*C;c.n33=h*u*A-k*n*A+k*m*z-e*u*z-f*m*C+e*n*C;c.n34=k*n*v-f*u*v-k*m*p+e*u*p+f*m*w-e*n*w;c.n41=t*p*A-n*x*A-t*v*z+m*x*z+n*v*y-m*p*y;c.n42=f*x*A-h*p*A+h*v*z-e*x*z-f*v*y+e*p*y;c.n43=h*n*A-f*t*A-h*m*z+e*t*z+f*m*y-e*n*y;c.n44=f*t*v-h*n*v+h*m*p-e*t*p-f*m*x+e*n*x;c.multiplyScalar(1/b.determinant());return c}; +THREE.Matrix4.makeInvert3x3=function(b){var c=b.m33,e=c.m,f=b.n33*b.n22-b.n32*b.n23,h=-b.n33*b.n21+b.n31*b.n23,k=b.n32*b.n21-b.n31*b.n22,m=-b.n33*b.n12+b.n32*b.n13,n=b.n33*b.n11-b.n31*b.n13,t=-b.n32*b.n11+b.n31*b.n12,u=b.n23*b.n12-b.n22*b.n13,v=-b.n23*b.n11+b.n21*b.n13,p=b.n22*b.n11-b.n21*b.n12,b=b.n11*f+b.n21*m+b.n31*u;b==0&&console.error("THREE.Matrix4.makeInvert3x3: Matrix not invertible.");b=1/b;e[0]=b*f;e[1]=b*h;e[2]=b*k;e[3]=b*m;e[4]=b*n;e[5]=b*t;e[6]=b*u;e[7]=b*v;e[8]=b*p;return c}; +THREE.Matrix4.makeFrustum=function(b,c,e,f,h,k){var m;m=new THREE.Matrix4;m.n11=2*h/(c-b);m.n12=0;m.n13=(c+b)/(c-b);m.n14=0;m.n21=0;m.n22=2*h/(f-e);m.n23=(f+e)/(f-e);m.n24=0;m.n31=0;m.n32=0;m.n33=-(k+h)/(k-h);m.n34=-2*k*h/(k-h);m.n41=0;m.n42=0;m.n43=-1;m.n44=0;return m};THREE.Matrix4.makePerspective=function(b,c,e,f){var h,b=e*Math.tan(b*Math.PI/360);h=-b;return THREE.Matrix4.makeFrustum(h*c,b*c,h,b,e,f)}; +THREE.Matrix4.makeOrtho=function(b,c,e,f,h,k){var m,n,t,u;m=new THREE.Matrix4;n=c-b;t=e-f;u=k-h;m.n11=2/n;m.n12=0;m.n13=0;m.n14=-((c+b)/n);m.n21=0;m.n22=2/t;m.n23=0;m.n24=-((e+f)/t);m.n31=0;m.n32=0;m.n33=-2/u;m.n34=-((k+h)/u);m.n41=0;m.n42=0;m.n43=0;m.n44=1;return m};THREE.Matrix4.__v1=new THREE.Vector3;THREE.Matrix4.__v2=new THREE.Vector3;THREE.Matrix4.__v3=new THREE.Vector3;THREE.Matrix4.__m1=new THREE.Matrix4;THREE.Matrix4.__m2=new THREE.Matrix4; +THREE.Object3D=function(){this.name="";this.id=THREE.Object3DCount++;this.parent=void 0;this.children=[];this.up=new THREE.Vector3(0,1,0);this.position=new THREE.Vector3;this.rotation=new THREE.Vector3;this.eulerOrder="XYZ";this.scale=new THREE.Vector3(1,1,1);this.flipSided=this.doubleSided=this.dynamic=!1;this.renderDepth=null;this.rotationAutoUpdate=!0;this.matrix=new THREE.Matrix4;this.matrixWorld=new THREE.Matrix4;this.matrixRotationWorld=new THREE.Matrix4;this.matrixWorldNeedsUpdate=this.matrixAutoUpdate= +!0;this.quaternion=new THREE.Quaternion;this.useQuaternion=!1;this.boundRadius=0;this.boundRadiusScale=1;this.visible=!0;this.receiveShadow=this.castShadow=!1;this.frustumCulled=!0;this._vector=new THREE.Vector3}; +THREE.Object3D.prototype={constructor:THREE.Object3D,translate:function(b,c){this.matrix.rotateAxis(c);this.position.addSelf(c.multiplyScalar(b))},translateX:function(b){this.translate(b,this._vector.set(1,0,0))},translateY:function(b){this.translate(b,this._vector.set(0,1,0))},translateZ:function(b){this.translate(b,this._vector.set(0,0,1))},lookAt:function(b){this.matrix.lookAt(b,this.position,this.up);this.rotationAutoUpdate&&this.rotation.setRotationFromMatrix(this.matrix)},add:function(b){if(this.children.indexOf(b)=== +-1){b.parent!==void 0&&b.parent.removeChild(b);b.parent=this;this.children.push(b);for(var c=this;c.parent!==void 0;)c=c.parent;c!==void 0&&c instanceof THREE.Scene&&c.addChildRecurse(b)}},remove:function(b){var c=this,e=this.children.indexOf(b);if(e!==-1){b.parent=void 0;for(this.children.splice(e,1);c.parent!==void 0;)c=c.parent;c!==void 0&&c instanceof THREE.Scene&&c.removeChildRecurse(b)}},getChildByName:function(b,c){var e,f,h;e=0;for(f=this.children.length;e<f;e++){h=this.children[e];if(h.name=== +b)return h;if(c&&(h=h.getChildByName(b,c),h!==void 0))return h}},updateMatrix:function(){this.matrix.setPosition(this.position);this.useQuaternion?this.matrix.setRotationFromQuaternion(this.quaternion):this.matrix.setRotationFromEuler(this.rotation,this.eulerOrder);if(this.scale.x!==1||this.scale.y!==1||this.scale.z!==1)this.matrix.scale(this.scale),this.boundRadiusScale=Math.max(this.scale.x,Math.max(this.scale.y,this.scale.z));this.matrixWorldNeedsUpdate=!0},update:function(b,c,e){this.matrixAutoUpdate&& +this.updateMatrix();if(this.matrixWorldNeedsUpdate||c)b?this.matrixWorld.multiply(b,this.matrix):this.matrixWorld.copy(this.matrix),this.matrixRotationWorld.extractRotation(this.matrixWorld,this.scale),this.matrixWorldNeedsUpdate=!1,c=!0;for(var b=0,f=this.children.length;b<f;b++)this.children[b].update(this.matrixWorld,c,e)},addChild:function(b){console.warn("DEPRECATED: Object3D.addChild() is now Object3D.add().");this.add(b)},removeChild:function(b){console.warn("DEPRECATED: Object3D.removeChild() is now Object3D.remove()."); +this.remove(b)}};THREE.Object3DCount=0; +THREE.Projector=function(){function b(){var b=t[n]=t[n]||new THREE.RenderableVertex;n++;return b}function c(b,c){return c.z-b.z}function e(b,c){var e=0,f=1,k=b.z+b.w,h=c.z+c.w,m=-b.z+b.w,n=-c.z+c.w;return k>=0&&h>=0&&m>=0&&n>=0?!0:k<0&&h<0||m<0&&n<0?!1:(k<0?e=Math.max(e,k/(k-h)):h<0&&(f=Math.min(f,k/(k-h))),m<0?e=Math.max(e,m/(m-n)):n<0&&(f=Math.min(f,m/(m-n))),f<e?!1:(b.lerpSelf(c,e),c.lerpSelf(b,1-f),!0))}var f,h,k=[],m,n,t=[],u,v,p=[],x,w=[],A,z,y=[],C,E,D=[],F=[],M=[],N=new THREE.Vector4,G=new THREE.Vector4, +H=new THREE.Matrix4,K=new THREE.Matrix4,Z=[new THREE.Vector4,new THREE.Vector4,new THREE.Vector4,new THREE.Vector4,new THREE.Vector4,new THREE.Vector4],L=new THREE.Vector4,P=new THREE.Vector4;this.projectVector=function(b,c){H.multiply(c.projectionMatrix,c.matrixWorldInverse);H.multiplyVector3(b);return b};this.unprojectVector=function(b,c){H.multiply(c.matrixWorld,THREE.Matrix4.makeInvert(c.projectionMatrix));H.multiplyVector3(b);return b};this.pickingRay=function(b,c){var e;b.z=-1;e=new THREE.Vector3(b.x, +b.y,1);this.unprojectVector(b,c);this.unprojectVector(e,c);e.subSelf(b).normalize();return new THREE.Ray(b,e)};this.projectObjects=function(b,e,m){var o,n;h=F.length=0;o=b.objects;b=0;for(e=o.length;b<e;b++){n=o[b];var t;if(!(t=!n.visible))if(t=n instanceof THREE.Mesh)if(t=n.frustumCulled){a:{t=void 0;for(var u=n.matrixWorld,w=-n.geometry.boundingSphere.radius*Math.max(n.scale.x,Math.max(n.scale.y,n.scale.z)),p=0;p<6;p++)if(t=Z[p].x*u.n14+Z[p].y*u.n24+Z[p].z*u.n34+Z[p].w,t<=w){t=!1;break a}t=!0}t= +!t}if(!t)t=k[h]=k[h]||new THREE.RenderableObject,h++,f=t,N.copy(n.position),H.multiplyVector3(N),f.object=n,f.z=N.z,F.push(f)}m&&F.sort(c);return F};this.projectScene=function(f,k,h){var o=k.near,F=k.far,N,pa,fa,ma,da,la,ga,$,ca,aa,ha,ka,sa,J,Q,na,ra;E=z=x=v=M.length=0;k.matrixAutoUpdate&&k.update(void 0,!0);f.update(void 0,!1,k);H.multiply(k.projectionMatrix,k.matrixWorldInverse);Z[0].set(H.n41-H.n11,H.n42-H.n12,H.n43-H.n13,H.n44-H.n14);Z[1].set(H.n41+H.n11,H.n42+H.n12,H.n43+H.n13,H.n44+H.n14);Z[2].set(H.n41+ +H.n21,H.n42+H.n22,H.n43+H.n23,H.n44+H.n24);Z[3].set(H.n41-H.n21,H.n42-H.n22,H.n43-H.n23,H.n44-H.n24);Z[4].set(H.n41-H.n31,H.n42-H.n32,H.n43-H.n33,H.n44-H.n34);Z[5].set(H.n41+H.n31,H.n42+H.n32,H.n43+H.n33,H.n44+H.n34);for(N=0;N<6;N++)ca=Z[N],ca.divideScalar(Math.sqrt(ca.x*ca.x+ca.y*ca.y+ca.z*ca.z));ca=this.projectObjects(f,k,!0);f=0;for(N=ca.length;f<N;f++)if(aa=ca[f].object,aa.visible)if(ha=aa.matrixWorld,ka=aa.matrixRotationWorld,sa=aa.materials,J=aa.overdraw,n=0,aa instanceof THREE.Mesh){Q=aa.geometry; +ma=Q.vertices;na=Q.faces;Q=Q.faceVertexUvs;pa=0;for(fa=ma.length;pa<fa;pa++)m=b(),m.positionWorld.copy(ma[pa].position),ha.multiplyVector3(m.positionWorld),m.positionScreen.copy(m.positionWorld),H.multiplyVector4(m.positionScreen),m.positionScreen.x/=m.positionScreen.w,m.positionScreen.y/=m.positionScreen.w,m.visible=m.positionScreen.z>o&&m.positionScreen.z<F;ma=0;for(pa=na.length;ma<pa;ma++){fa=na[ma];if(fa instanceof THREE.Face3)if(da=t[fa.a],la=t[fa.b],ga=t[fa.c],da.visible&&la.visible&&ga.visible&& +(aa.doubleSided||aa.flipSided!=(ga.positionScreen.x-da.positionScreen.x)*(la.positionScreen.y-da.positionScreen.y)-(ga.positionScreen.y-da.positionScreen.y)*(la.positionScreen.x-da.positionScreen.x)<0))$=p[v]=p[v]||new THREE.RenderableFace3,v++,u=$,u.v1.copy(da),u.v2.copy(la),u.v3.copy(ga);else continue;else if(fa instanceof THREE.Face4)if(da=t[fa.a],la=t[fa.b],ga=t[fa.c],$=t[fa.d],da.visible&&la.visible&&ga.visible&&$.visible&&(aa.doubleSided||aa.flipSided!=(($.positionScreen.x-da.positionScreen.x)* +(la.positionScreen.y-da.positionScreen.y)-($.positionScreen.y-da.positionScreen.y)*(la.positionScreen.x-da.positionScreen.x)<0||(la.positionScreen.x-ga.positionScreen.x)*($.positionScreen.y-ga.positionScreen.y)-(la.positionScreen.y-ga.positionScreen.y)*($.positionScreen.x-ga.positionScreen.x)<0)))ra=w[x]=w[x]||new THREE.RenderableFace4,x++,u=ra,u.v1.copy(da),u.v2.copy(la),u.v3.copy(ga),u.v4.copy($);else continue;u.normalWorld.copy(fa.normal);ka.multiplyVector3(u.normalWorld);u.centroidWorld.copy(fa.centroid); +ha.multiplyVector3(u.centroidWorld);u.centroidScreen.copy(u.centroidWorld);H.multiplyVector3(u.centroidScreen);ga=fa.vertexNormals;da=0;for(la=ga.length;da<la;da++)$=u.vertexNormalsWorld[da],$.copy(ga[da]),ka.multiplyVector3($);da=0;for(la=Q.length;da<la;da++)if(ra=Q[da][ma]){ga=0;for($=ra.length;ga<$;ga++)u.uvs[da][ga]=ra[ga]}u.meshMaterials=sa;u.faceMaterials=fa.materials;u.overdraw=J;u.z=u.centroidScreen.z;M.push(u)}}else if(aa instanceof THREE.Line){K.multiply(H,ha);ma=aa.geometry.vertices;da= +b();da.positionScreen.copy(ma[0].position);K.multiplyVector4(da.positionScreen);pa=1;for(fa=ma.length;pa<fa;pa++)if(da=b(),da.positionScreen.copy(ma[pa].position),K.multiplyVector4(da.positionScreen),la=t[n-2],L.copy(da.positionScreen),P.copy(la.positionScreen),e(L,P))L.multiplyScalar(1/L.w),P.multiplyScalar(1/P.w),ha=y[z]=y[z]||new THREE.RenderableLine,z++,A=ha,A.v1.positionScreen.copy(L),A.v2.positionScreen.copy(P),A.z=Math.max(L.z,P.z),A.materials=aa.materials,M.push(A)}else if(aa instanceof THREE.Particle&& +(G.set(aa.matrixWorld.n14,aa.matrixWorld.n24,aa.matrixWorld.n34,1),H.multiplyVector4(G),G.z/=G.w,G.z>0&&G.z<1))ha=D[E]=D[E]||new THREE.RenderableParticle,E++,C=ha,C.x=G.x/G.w,C.y=G.y/G.w,C.z=G.z,C.rotation=aa.rotation.z,C.scale.x=aa.scale.x*Math.abs(C.x-(G.x+k.projectionMatrix.n11)/(G.w+k.projectionMatrix.n14)),C.scale.y=aa.scale.y*Math.abs(C.y-(G.y+k.projectionMatrix.n22)/(G.w+k.projectionMatrix.n24)),C.materials=aa.materials,M.push(C);h&&M.sort(c);return M}}; +THREE.Quaternion=function(b,c,e,f){this.set(b||0,c||0,e||0,f!==void 0?f:1)}; +THREE.Quaternion.prototype={constructor:THREE.Quaternion,set:function(b,c,e,f){this.x=b;this.y=c;this.z=e;this.w=f;return this},copy:function(b){this.x=b.x;this.y=b.y;this.z=b.z;this.w=b.w;return this},setFromEuler:function(b){var c=Math.PI/360,e=b.x*c,f=b.y*c,h=b.z*c,b=Math.cos(f),f=Math.sin(f),c=Math.cos(-h),h=Math.sin(-h),k=Math.cos(e),e=Math.sin(e),m=b*c,n=f*h;this.w=m*k-n*e;this.x=m*e+n*k;this.y=f*c*k+b*h*e;this.z=b*h*k-f*c*e;return this},setFromAxisAngle:function(b,c){var e=c/2,f=Math.sin(e); +this.x=b.x*f;this.y=b.y*f;this.z=b.z*f;this.w=Math.cos(e);return this},setFromRotationMatrix:function(b){var c=Math.pow(b.determinant(),1/3);this.w=Math.sqrt(Math.max(0,c+b.n11+b.n22+b.n33))/2;this.x=Math.sqrt(Math.max(0,c+b.n11-b.n22-b.n33))/2;this.y=Math.sqrt(Math.max(0,c-b.n11+b.n22-b.n33))/2;this.z=Math.sqrt(Math.max(0,c-b.n11-b.n22+b.n33))/2;this.x=b.n32-b.n23<0?-Math.abs(this.x):Math.abs(this.x);this.y=b.n13-b.n31<0?-Math.abs(this.y):Math.abs(this.y);this.z=b.n21-b.n12<0?-Math.abs(this.z):Math.abs(this.z); +this.normalize();return this},calculateW:function(){this.w=-Math.sqrt(Math.abs(1-this.x*this.x-this.y*this.y-this.z*this.z));return this},inverse:function(){this.x*=-1;this.y*=-1;this.z*=-1;return this},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w)},normalize:function(){var b=Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z+this.w*this.w);b==0?this.w=this.z=this.y=this.x=0:(b=1/b,this.x*=b,this.y*=b,this.z*=b,this.w*=b);return this},multiplySelf:function(b){var c= +this.x,e=this.y,f=this.z,h=this.w,k=b.x,m=b.y,n=b.z,b=b.w;this.x=c*b+h*k+e*n-f*m;this.y=e*b+h*m+f*k-c*n;this.z=f*b+h*n+c*m-e*k;this.w=h*b-c*k-e*m-f*n;return this},multiply:function(b,c){this.x=b.x*c.w+b.y*c.z-b.z*c.y+b.w*c.x;this.y=-b.x*c.z+b.y*c.w+b.z*c.x+b.w*c.y;this.z=b.x*c.y-b.y*c.x+b.z*c.w+b.w*c.z;this.w=-b.x*c.x-b.y*c.y-b.z*c.z+b.w*c.w;return this},multiplyVector3:function(b,c){c||(c=b);var e=b.x,f=b.y,h=b.z,k=this.x,m=this.y,n=this.z,t=this.w,u=t*e+m*h-n*f,v=t*f+n*e-k*h,p=t*h+k*f-m*e,e=-k* +e-m*f-n*h;c.x=u*t+e*-k+v*-n-p*-m;c.y=v*t+e*-m+p*-k-u*-n;c.z=p*t+e*-n+u*-m-v*-k;return c}};THREE.Quaternion.slerp=function(b,c,e,f){var h=b.w*c.w+b.x*c.x+b.y*c.y+b.z*c.z;if(Math.abs(h)>=1)return e.w=b.w,e.x=b.x,e.y=b.y,e.z=b.z,e;var k=Math.acos(h),m=Math.sqrt(1-h*h);if(Math.abs(m)<0.001)return e.w=0.5*(b.w+c.w),e.x=0.5*(b.x+c.x),e.y=0.5*(b.y+c.y),e.z=0.5*(b.z+c.z),e;h=Math.sin((1-f)*k)/m;f=Math.sin(f*k)/m;e.w=b.w*h+c.w*f;e.x=b.x*h+c.x*f;e.y=b.y*h+c.y*f;e.z=b.z*h+c.z*f;return e}; +THREE.Vertex=function(b){this.position=b||new THREE.Vector3};THREE.Face3=function(b,c,e,f,h,k){this.a=b;this.b=c;this.c=e;this.normal=f instanceof THREE.Vector3?f:new THREE.Vector3;this.vertexNormals=f instanceof Array?f:[];this.color=h instanceof THREE.Color?h:new THREE.Color;this.vertexColors=h instanceof Array?h:[];this.vertexTangents=[];this.materials=k instanceof Array?k:[k];this.centroid=new THREE.Vector3}; +THREE.Face4=function(b,c,e,f,h,k,m){this.a=b;this.b=c;this.c=e;this.d=f;this.normal=h instanceof THREE.Vector3?h:new THREE.Vector3;this.vertexNormals=h instanceof Array?h:[];this.color=k instanceof THREE.Color?k:new THREE.Color;this.vertexColors=k instanceof Array?k:[];this.vertexTangents=[];this.materials=m instanceof Array?m:[m];this.centroid=new THREE.Vector3};THREE.UV=function(b,c){this.u=b||0;this.v=c||0}; +THREE.UV.prototype={constructor:THREE.UV,set:function(b,c){this.u=b;this.v=c;return this},copy:function(b){this.u=b.u;this.v=b.v;return this},clone:function(){return new THREE.UV(this.u,this.v)}};THREE.Geometry=function(){this.id=THREE.GeometryCount++;this.vertices=[];this.colors=[];this.faces=[];this.faceUvs=[[]];this.faceVertexUvs=[[]];this.morphTargets=[];this.morphColors=[];this.skinWeights=[];this.skinIndices=[];this.boundingSphere=this.boundingBox=null;this.dynamic=this.hasTangents=!1}; +THREE.Geometry.prototype={constructor:THREE.Geometry,applyMatrix:function(b){var c=new THREE.Matrix4;c.extractRotation(b,new THREE.Vector3(1,1,1));for(var e=0,f=this.vertices.length;e<f;e++)b.multiplyVector3(this.vertices[e].position);e=0;for(f=this.faces.length;e<f;e++){var h=this.faces[e];c.multiplyVector3(h.normal);for(var k=0,m=h.vertexNormals.length;k<m;k++)c.multiplyVector3(h.vertexNormals[k]);b.multiplyVector3(h.centroid)}},computeCentroids:function(){var b,c,e;b=0;for(c=this.faces.length;b< +c;b++)e=this.faces[b],e.centroid.set(0,0,0),e instanceof THREE.Face3?(e.centroid.addSelf(this.vertices[e.a].position),e.centroid.addSelf(this.vertices[e.b].position),e.centroid.addSelf(this.vertices[e.c].position),e.centroid.divideScalar(3)):e instanceof THREE.Face4&&(e.centroid.addSelf(this.vertices[e.a].position),e.centroid.addSelf(this.vertices[e.b].position),e.centroid.addSelf(this.vertices[e.c].position),e.centroid.addSelf(this.vertices[e.d].position),e.centroid.divideScalar(4))},computeFaceNormals:function(b){var c, +e,f,h,k,m,n=new THREE.Vector3,t=new THREE.Vector3;f=0;for(h=this.faces.length;f<h;f++){k=this.faces[f];if(b&&k.vertexNormals.length){n.set(0,0,0);c=0;for(e=k.vertexNormals.length;c<e;c++)n.addSelf(k.vertexNormals[c]);n.divideScalar(3)}else c=this.vertices[k.a],e=this.vertices[k.b],m=this.vertices[k.c],n.sub(m.position,e.position),t.sub(c.position,e.position),n.crossSelf(t);n.isZero()||n.normalize();k.normal.copy(n)}},computeVertexNormals:function(){var b,c,e,f;if(this.__tmpVertices==void 0){f=this.__tmpVertices= +Array(this.vertices.length);b=0;for(c=this.vertices.length;b<c;b++)f[b]=new THREE.Vector3;b=0;for(c=this.faces.length;b<c;b++)if(e=this.faces[b],e instanceof THREE.Face3)e.vertexNormals=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];else if(e instanceof THREE.Face4)e.vertexNormals=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3]}else{f=this.__tmpVertices;b=0;for(c=this.vertices.length;b<c;b++)f[b].set(0,0,0)}b=0;for(c=this.faces.length;b<c;b++)e=this.faces[b],e instanceof +THREE.Face3?(f[e.a].addSelf(e.normal),f[e.b].addSelf(e.normal),f[e.c].addSelf(e.normal)):e instanceof THREE.Face4&&(f[e.a].addSelf(e.normal),f[e.b].addSelf(e.normal),f[e.c].addSelf(e.normal),f[e.d].addSelf(e.normal));b=0;for(c=this.vertices.length;b<c;b++)f[b].normalize();b=0;for(c=this.faces.length;b<c;b++)e=this.faces[b],e instanceof THREE.Face3?(e.vertexNormals[0].copy(f[e.a]),e.vertexNormals[1].copy(f[e.b]),e.vertexNormals[2].copy(f[e.c])):e instanceof THREE.Face4&&(e.vertexNormals[0].copy(f[e.a]), +e.vertexNormals[1].copy(f[e.b]),e.vertexNormals[2].copy(f[e.c]),e.vertexNormals[3].copy(f[e.d]))},computeTangents:function(){function b(b,c,e,f,k,h,o){n=b.vertices[c].position;t=b.vertices[e].position;u=b.vertices[f].position;v=m[k];p=m[h];x=m[o];w=t.x-n.x;A=u.x-n.x;z=t.y-n.y;y=u.y-n.y;C=t.z-n.z;E=u.z-n.z;D=p.u-v.u;F=x.u-v.u;M=p.v-v.v;N=x.v-v.v;G=1/(D*N-F*M);L.set((N*w-M*A)*G,(N*z-M*y)*G,(N*C-M*E)*G);P.set((D*A-F*w)*G,(D*y-F*z)*G,(D*E-F*C)*G);K[c].addSelf(L);K[e].addSelf(L);K[f].addSelf(L);Z[c].addSelf(P); +Z[e].addSelf(P);Z[f].addSelf(P)}var c,e,f,h,k,m,n,t,u,v,p,x,w,A,z,y,C,E,D,F,M,N,G,H,K=[],Z=[],L=new THREE.Vector3,P=new THREE.Vector3,U=new THREE.Vector3,Y=new THREE.Vector3,X=new THREE.Vector3;c=0;for(e=this.vertices.length;c<e;c++)K[c]=new THREE.Vector3,Z[c]=new THREE.Vector3;c=0;for(e=this.faces.length;c<e;c++)k=this.faces[c],m=this.faceVertexUvs[0][c],k instanceof THREE.Face3?b(this,k.a,k.b,k.c,0,1,2):k instanceof THREE.Face4&&(b(this,k.a,k.b,k.c,0,1,2),b(this,k.a,k.b,k.d,0,1,3));var o=["a","b", +"c","d"];c=0;for(e=this.faces.length;c<e;c++){k=this.faces[c];for(f=0;f<k.vertexNormals.length;f++)X.copy(k.vertexNormals[f]),h=k[o[f]],H=K[h],U.copy(H),U.subSelf(X.multiplyScalar(X.dot(H))).normalize(),Y.cross(k.vertexNormals[f],H),h=Y.dot(Z[h]),h=h<0?-1:1,k.vertexTangents[f]=new THREE.Vector4(U.x,U.y,U.z,h)}this.hasTangents=!0},computeBoundingBox:function(){var b;if(this.vertices.length>0){this.boundingBox={x:[this.vertices[0].position.x,this.vertices[0].position.x],y:[this.vertices[0].position.y, +this.vertices[0].position.y],z:[this.vertices[0].position.z,this.vertices[0].position.z]};for(var c=1,e=this.vertices.length;c<e;c++){b=this.vertices[c];if(b.position.x<this.boundingBox.x[0])this.boundingBox.x[0]=b.position.x;else if(b.position.x>this.boundingBox.x[1])this.boundingBox.x[1]=b.position.x;if(b.position.y<this.boundingBox.y[0])this.boundingBox.y[0]=b.position.y;else if(b.position.y>this.boundingBox.y[1])this.boundingBox.y[1]=b.position.y;if(b.position.z<this.boundingBox.z[0])this.boundingBox.z[0]= +b.position.z;else if(b.position.z>this.boundingBox.z[1])this.boundingBox.z[1]=b.position.z}}},computeBoundingSphere:function(){for(var b=0,c=0,e=this.vertices.length;c<e;c++)b=Math.max(b,this.vertices[c].position.length());this.boundingSphere={radius:b}},mergeVertices:function(){var b={},c=[],e=[],f,h=Math.pow(10,4),k,m;k=0;for(m=this.vertices.length;k<m;k++)f=this.vertices[k].position,f=[Math.round(f.x*h),Math.round(f.y*h),Math.round(f.z*h)].join("_"),b[f]===void 0?(b[f]=k,c.push(this.vertices[k]), +e[k]=c.length-1):e[k]=e[b[f]];k=0;for(m=this.faces.length;k<m;k++){b=this.faces[k];if(b instanceof THREE.Face3)b.a=e[b.a],b.b=e[b.b],b.c=e[b.c];if(b instanceof THREE.Face4)b.a=e[b.a],b.b=e[b.b],b.c=e[b.c],b.d=e[b.d]}this.vertices=c}};THREE.GeometryCount=0; +THREE.Spline=function(b){function c(b,c,e,f,k,h,m){b=(e-b)*0.5;f=(f-c)*0.5;return(2*(c-e)+b+f)*m+(-3*(c-e)-2*b-f)*h+b*k+c}this.points=b;var e=[],f={x:0,y:0,z:0},h,k,m,n,t,u,v,p,x;this.initFromArray=function(b){this.points=[];for(var c=0;c<b.length;c++)this.points[c]={x:b[c][0],y:b[c][1],z:b[c][2]}};this.getPoint=function(b){h=(this.points.length-1)*b;k=Math.floor(h);m=h-k;e[0]=k==0?k:k-1;e[1]=k;e[2]=k>this.points.length-2?k:k+1;e[3]=k>this.points.length-3?k:k+2;u=this.points[e[0]];v=this.points[e[1]]; +p=this.points[e[2]];x=this.points[e[3]];n=m*m;t=m*n;f.x=c(u.x,v.x,p.x,x.x,m,n,t);f.y=c(u.y,v.y,p.y,x.y,m,n,t);f.z=c(u.z,v.z,p.z,x.z,m,n,t);return f};this.getControlPointsArray=function(){var b,c,e=this.points.length,f=[];for(b=0;b<e;b++)c=this.points[b],f[b]=[c.x,c.y,c.z];return f};this.getLength=function(b){var c,e,f=c=c=0,k=new THREE.Vector3,h=new THREE.Vector3,m=[],n=0;m[0]=0;b||(b=100);e=this.points.length*b;k.copy(this.points[0]);for(b=1;b<e;b++)c=b/e,position=this.getPoint(c),h.copy(position), +n+=h.distanceTo(k),k.copy(position),c*=this.points.length-1,c=Math.floor(c),c!=f&&(m[c]=n,f=c);m[m.length]=n;return{chunks:m,total:n}};this.reparametrizeByArcLength=function(b){var c,e,f,k,h,m,n=[],t=new THREE.Vector3,u=this.getLength();n.push(t.copy(this.points[0]).clone());for(c=1;c<this.points.length;c++){e=u.chunks[c]-u.chunks[c-1];m=Math.ceil(b*e/u.total);k=(c-1)/(this.points.length-1);h=c/(this.points.length-1);for(e=1;e<m-1;e++)f=k+e*(1/m)*(h-k),position=this.getPoint(f),n.push(t.copy(position).clone()); +n.push(t.copy(this.points[c]).clone())}this.points=n}};THREE.Edge=function(b,c,e,f){this.vertices=[b,c];this.vertexIndices=[e,f];this.faces=[];this.faceIndices=[]};THREE.Camera=function(){if(arguments.length)return console.warn("DEPRECATED: Camera() is now PerspectiveCamera() or OrthographicCamera()."),new THREE.PerspectiveCamera(arguments[0],arguments[1],arguments[2],arguments[3]);THREE.Object3D.call(this);this.matrixWorldInverse=new THREE.Matrix4;this.projectionMatrix=new THREE.Matrix4}; +THREE.Camera.prototype=new THREE.Object3D;THREE.Camera.prototype.constructor=THREE.Camera;THREE.Camera.prototype.lookAt=function(b){this.matrix.lookAt(this.position,b,this.up);this.rotationAutoUpdate&&this.rotation.setRotationFromMatrix(this.matrix)}; +THREE.Camera.prototype.update=function(b,c,e){this.matrixAutoUpdate&&this.updateMatrix();if(c||this.matrixWorldNeedsUpdate)b?this.matrixWorld.multiply(b,this.matrix):this.matrixWorld.copy(this.matrix),this.matrixWorldNeedsUpdate=!1,c=!0,THREE.Matrix4.makeInvert(this.matrixWorld,this.matrixWorldInverse);for(b=0;b<this.children.length;b++)this.children[b].update(this.matrixWorld,c,e)}; +THREE.OrthographicCamera=function(b,c,e,f,h,k){THREE.Camera.call(this);this.left=b;this.right=c;this.top=e;this.bottom=f;this.near=h!==void 0?h:0.1;this.far=k!==void 0?k:2E3;this.updateProjectionMatrix()};THREE.OrthographicCamera.prototype=new THREE.Camera;THREE.OrthographicCamera.prototype.constructor=THREE.OrthographicCamera;THREE.OrthographicCamera.prototype.updateProjectionMatrix=function(){this.projectionMatrix=THREE.Matrix4.makeOrtho(this.left,this.right,this.top,this.bottom,this.near,this.far)}; +THREE.PerspectiveCamera=function(b,c,e,f){THREE.Camera.call(this);this.fov=b!==void 0?b:50;this.aspect=c!==void 0?c:1;this.near=e!==void 0?e:0.1;this.far=f!==void 0?f:2E3;this.updateProjectionMatrix()};THREE.PerspectiveCamera.prototype=new THREE.Camera;THREE.PerspectiveCamera.prototype.constructor=THREE.PerspectiveCamera;THREE.PerspectiveCamera.prototype.setLens=function(b,c){this.fov=2*Math.atan((c!==void 0?c:43.25)/(b*2));this.fov*=180/Math.PI;this.updateProjectionMatrix()}; +THREE.PerspectiveCamera.prototype.setViewOffset=function(b,c,e,f,h,k){this.fullWidth=b;this.fullHeight=c;this.x=e;this.y=f;this.width=h;this.height=k;this.updateProjectionMatrix()}; +THREE.PerspectiveCamera.prototype.updateProjectionMatrix=function(){if(this.fullWidth){var b=this.fullWidth/this.fullHeight,c=Math.tan(this.fov*Math.PI/360)*this.near,e=-c,f=b*e,b=Math.abs(b*c-f),e=Math.abs(c-e);this.projectionMatrix=THREE.Matrix4.makeFrustum(f+this.x*b/this.fullWidth,f+(this.x+this.width)*b/this.fullWidth,c-(this.y+this.height)*e/this.fullHeight,c-this.y*e/this.fullHeight,this.near,this.far)}else this.projectionMatrix=THREE.Matrix4.makePerspective(this.fov,this.aspect,this.near, +this.far)};THREE.Light=function(b){THREE.Object3D.call(this);this.color=new THREE.Color(b)};THREE.Light.prototype=new THREE.Object3D;THREE.Light.prototype.constructor=THREE.Light;THREE.Light.prototype.supr=THREE.Object3D.prototype;THREE.AmbientLight=function(b){THREE.Light.call(this,b)};THREE.AmbientLight.prototype=new THREE.Light;THREE.AmbientLight.prototype.constructor=THREE.AmbientLight; +THREE.DirectionalLight=function(b,c,e){THREE.Light.call(this,b);this.position=new THREE.Vector3(0,1,0);this.intensity=c!==void 0?c:1;this.distance=e!==void 0?e:0};THREE.DirectionalLight.prototype=new THREE.Light;THREE.DirectionalLight.prototype.constructor=THREE.DirectionalLight;THREE.PointLight=function(b,c,e){THREE.Light.call(this,b);this.position=new THREE.Vector3(0,0,0);this.intensity=c!==void 0?c:1;this.distance=e!==void 0?e:0};THREE.PointLight.prototype=new THREE.Light; +THREE.PointLight.prototype.constructor=THREE.PointLight;THREE.SpotLight=function(b,c,e,f){THREE.Light.call(this,b);this.position=new THREE.Vector3(0,1,0);this.target=new THREE.Object3D;this.intensity=c!==void 0?c:1;this.distance=e!==void 0?e:0;this.castShadow=f!==void 0?f:!1};THREE.SpotLight.prototype=new THREE.Light;THREE.SpotLight.prototype.constructor=THREE.SpotLight; +THREE.Material=function(b){this.name="";this.id=THREE.MaterialCount++;b=b||{};this.opacity=b.opacity!==void 0?b.opacity:1;this.transparent=b.transparent!==void 0?b.transparent:!1;this.blending=b.blending!==void 0?b.blending:THREE.NormalBlending;this.depthTest=b.depthTest!==void 0?b.depthTest:!0;this.depthWrite=b.depthWrite!==void 0?b.depthWrite:!0;this.polygonOffset=b.polygonOffset!==void 0?b.polygonOffset:!1;this.polygonOffsetFactor=b.polygonOffsetFactor!==void 0?b.polygonOffsetFactor:0;this.polygonOffsetUnits= +b.polygonOffsetUnits!==void 0?b.polygonOffsetUnits:0;this.alphaTest=b.alphaTest!==void 0?b.alphaTest:0};THREE.MaterialCount=0;THREE.NoShading=0;THREE.FlatShading=1;THREE.SmoothShading=2;THREE.NoColors=0;THREE.FaceColors=1;THREE.VertexColors=2;THREE.NormalBlending=0;THREE.AdditiveBlending=1;THREE.SubtractiveBlending=2;THREE.MultiplyBlending=3;THREE.AdditiveAlphaBlending=4; +THREE.LineBasicMaterial=function(b){THREE.Material.call(this,b);b=b||{};this.color=b.color!==void 0?new THREE.Color(b.color):new THREE.Color(16777215);this.linewidth=b.linewidth!==void 0?b.linewidth:1;this.linecap=b.linecap!==void 0?b.linecap:"round";this.linejoin=b.linejoin!==void 0?b.linejoin:"round";this.vertexColors=b.vertexColors?b.vertexColors:!1;this.fog=b.fog!==void 0?b.fog:!0};THREE.LineBasicMaterial.prototype=new THREE.Material;THREE.LineBasicMaterial.prototype.constructor=THREE.LineBasicMaterial; +THREE.MeshBasicMaterial=function(b){THREE.Material.call(this,b);b=b||{};this.color=b.color!==void 0?new THREE.Color(b.color):new THREE.Color(16777215);this.map=b.map!==void 0?b.map:null;this.lightMap=b.lightMap!==void 0?b.lightMap:null;this.envMap=b.envMap!==void 0?b.envMap:null;this.combine=b.combine!==void 0?b.combine:THREE.MultiplyOperation;this.reflectivity=b.reflectivity!==void 0?b.reflectivity:1;this.refractionRatio=b.refractionRatio!==void 0?b.refractionRatio:0.98;this.fog=b.fog!==void 0?b.fog: +!0;this.shading=b.shading!==void 0?b.shading:THREE.SmoothShading;this.wireframe=b.wireframe!==void 0?b.wireframe:!1;this.wireframeLinewidth=b.wireframeLinewidth!==void 0?b.wireframeLinewidth:1;this.wireframeLinecap=b.wireframeLinecap!==void 0?b.wireframeLinecap:"round";this.wireframeLinejoin=b.wireframeLinejoin!==void 0?b.wireframeLinejoin:"round";this.vertexColors=b.vertexColors!==void 0?b.vertexColors:!1;this.skinning=b.skinning!==void 0?b.skinning:!1;this.morphTargets=b.morphTargets!==void 0?b.morphTargets: +!1};THREE.MeshBasicMaterial.prototype=new THREE.Material;THREE.MeshBasicMaterial.prototype.constructor=THREE.MeshBasicMaterial; +THREE.MeshLambertMaterial=function(b){THREE.Material.call(this,b);b=b||{};this.color=b.color!==void 0?new THREE.Color(b.color):new THREE.Color(16777215);this.map=b.map!==void 0?b.map:null;this.lightMap=b.lightMap!==void 0?b.lightMap:null;this.envMap=b.envMap!==void 0?b.envMap:null;this.combine=b.combine!==void 0?b.combine:THREE.MultiplyOperation;this.reflectivity=b.reflectivity!==void 0?b.reflectivity:1;this.refractionRatio=b.refractionRatio!==void 0?b.refractionRatio:0.98;this.fog=b.fog!==void 0? +b.fog:!0;this.shading=b.shading!==void 0?b.shading:THREE.SmoothShading;this.wireframe=b.wireframe!==void 0?b.wireframe:!1;this.wireframeLinewidth=b.wireframeLinewidth!==void 0?b.wireframeLinewidth:1;this.wireframeLinecap=b.wireframeLinecap!==void 0?b.wireframeLinecap:"round";this.wireframeLinejoin=b.wireframeLinejoin!==void 0?b.wireframeLinejoin:"round";this.vertexColors=b.vertexColors!==void 0?b.vertexColors:!1;this.skinning=b.skinning!==void 0?b.skinning:!1;this.morphTargets=b.morphTargets!==void 0? +b.morphTargets:!1};THREE.MeshLambertMaterial.prototype=new THREE.Material;THREE.MeshLambertMaterial.prototype.constructor=THREE.MeshLambertMaterial; +THREE.MeshPhongMaterial=function(b){THREE.Material.call(this,b);b=b||{};this.color=b.color!==void 0?new THREE.Color(b.color):new THREE.Color(16777215);this.ambient=b.ambient!==void 0?new THREE.Color(b.ambient):new THREE.Color(328965);this.specular=b.specular!==void 0?new THREE.Color(b.specular):new THREE.Color(1118481);this.shininess=b.shininess!==void 0?b.shininess:30;this.map=b.map!==void 0?b.map:null;this.lightMap=b.lightMap!==void 0?b.lightMap:null;this.envMap=b.envMap!==void 0?b.envMap:null; +this.combine=b.combine!==void 0?b.combine:THREE.MultiplyOperation;this.reflectivity=b.reflectivity!==void 0?b.reflectivity:1;this.refractionRatio=b.refractionRatio!==void 0?b.refractionRatio:0.98;this.fog=b.fog!==void 0?b.fog:!0;this.shading=b.shading!==void 0?b.shading:THREE.SmoothShading;this.wireframe=b.wireframe!==void 0?b.wireframe:!1;this.wireframeLinewidth=b.wireframeLinewidth!==void 0?b.wireframeLinewidth:1;this.wireframeLinecap=b.wireframeLinecap!==void 0?b.wireframeLinecap:"round";this.wireframeLinejoin= +b.wireframeLinejoin!==void 0?b.wireframeLinejoin:"round";this.vertexColors=b.vertexColors!==void 0?b.vertexColors:!1;this.skinning=b.skinning!==void 0?b.skinning:!1;this.morphTargets=b.morphTargets!==void 0?b.morphTargets:!1};THREE.MeshPhongMaterial.prototype=new THREE.Material;THREE.MeshPhongMaterial.prototype.constructor=THREE.MeshPhongMaterial; +THREE.MeshDepthMaterial=function(b){THREE.Material.call(this,b);b=b||{};this.shading=b.shading!==void 0?b.shading:THREE.SmoothShading;this.wireframe=b.wireframe!==void 0?b.wireframe:!1;this.wireframeLinewidth=b.wireframeLinewidth!==void 0?b.wireframeLinewidth:1};THREE.MeshDepthMaterial.prototype=new THREE.Material;THREE.MeshDepthMaterial.prototype.constructor=THREE.MeshDepthMaterial; +THREE.MeshNormalMaterial=function(b){THREE.Material.call(this,b);b=b||{};this.shading=b.shading?b.shading:THREE.FlatShading;this.wireframe=b.wireframe?b.wireframe:!1;this.wireframeLinewidth=b.wireframeLinewidth?b.wireframeLinewidth:1};THREE.MeshNormalMaterial.prototype=new THREE.Material;THREE.MeshNormalMaterial.prototype.constructor=THREE.MeshNormalMaterial;THREE.MeshFaceMaterial=function(){}; +THREE.MeshShaderMaterial=function(b){console.warn("DEPRECATED: MeshShaderMaterial() is now ShaderMaterial().");return new THREE.ShaderMaterial(b)}; +THREE.ParticleBasicMaterial=function(b){THREE.Material.call(this,b);b=b||{};this.color=b.color!==void 0?new THREE.Color(b.color):new THREE.Color(16777215);this.map=b.map!==void 0?b.map:null;this.size=b.size!==void 0?b.size:1;this.sizeAttenuation=b.sizeAttenuation!==void 0?b.sizeAttenuation:!0;this.vertexColors=b.vertexColors!==void 0?b.vertexColors:!1;this.fog=b.fog!==void 0?b.fog:!0};THREE.ParticleBasicMaterial.prototype=new THREE.Material;THREE.ParticleBasicMaterial.prototype.constructor=THREE.ParticleBasicMaterial; +THREE.ParticleCanvasMaterial=function(b){THREE.Material.call(this,b);b=b||{};this.color=b.color!==void 0?new THREE.Color(b.color):new THREE.Color(16777215);this.program=b.program!==void 0?b.program:function(){}};THREE.ParticleCanvasMaterial.prototype=new THREE.Material;THREE.ParticleCanvasMaterial.prototype.constructor=THREE.ParticleCanvasMaterial;THREE.ParticleDOMMaterial=function(b){THREE.Material.call(this);this.domElement=b}; +THREE.ShaderMaterial=function(b){THREE.Material.call(this,b);b=b||{};this.fragmentShader=b.fragmentShader!==void 0?b.fragmentShader:"void main() {}";this.vertexShader=b.vertexShader!==void 0?b.vertexShader:"void main() {}";this.uniforms=b.uniforms!==void 0?b.uniforms:{};this.attributes=b.attributes;this.shading=b.shading!==void 0?b.shading:THREE.SmoothShading;this.wireframe=b.wireframe!==void 0?b.wireframe:!1;this.wireframeLinewidth=b.wireframeLinewidth!==void 0?b.wireframeLinewidth:1;this.fog=b.fog!== +void 0?b.fog:!1;this.lights=b.lights!==void 0?b.lights:!1;this.vertexColors=b.vertexColors!==void 0?b.vertexColors:!1;this.skinning=b.skinning!==void 0?b.skinning:!1;this.morphTargets=b.morphTargets!==void 0?b.morphTargets:!1};THREE.ShaderMaterial.prototype=new THREE.Material;THREE.ShaderMaterial.prototype.constructor=THREE.ShaderMaterial; +THREE.Texture=function(b,c,e,f,h,k){this.id=THREE.TextureCount++;this.image=b;this.mapping=c!==void 0?c:new THREE.UVMapping;this.wrapS=e!==void 0?e:THREE.ClampToEdgeWrapping;this.wrapT=f!==void 0?f:THREE.ClampToEdgeWrapping;this.magFilter=h!==void 0?h:THREE.LinearFilter;this.minFilter=k!==void 0?k:THREE.LinearMipMapLinearFilter;this.offset=new THREE.Vector2(0,0);this.repeat=new THREE.Vector2(1,1);this.needsUpdate=!1}; +THREE.Texture.prototype={constructor:THREE.Texture,clone:function(){var b=new THREE.Texture(this.image,this.mapping,this.wrapS,this.wrapT,this.magFilter,this.minFilter);b.offset.copy(this.offset);b.repeat.copy(this.repeat);return b}};THREE.TextureCount=0;THREE.MultiplyOperation=0;THREE.MixOperation=1;THREE.CubeReflectionMapping=function(){};THREE.CubeRefractionMapping=function(){};THREE.LatitudeReflectionMapping=function(){};THREE.LatitudeRefractionMapping=function(){}; +THREE.SphericalReflectionMapping=function(){};THREE.SphericalRefractionMapping=function(){};THREE.UVMapping=function(){};THREE.RepeatWrapping=0;THREE.ClampToEdgeWrapping=1;THREE.MirroredRepeatWrapping=2;THREE.NearestFilter=3;THREE.NearestMipMapNearestFilter=4;THREE.NearestMipMapLinearFilter=5;THREE.LinearFilter=6;THREE.LinearMipMapNearestFilter=7;THREE.LinearMipMapLinearFilter=8;THREE.ByteType=9;THREE.UnsignedByteType=10;THREE.ShortType=11;THREE.UnsignedShortType=12;THREE.IntType=13; +THREE.UnsignedIntType=14;THREE.FloatType=15;THREE.AlphaFormat=16;THREE.RGBFormat=17;THREE.RGBAFormat=18;THREE.LuminanceFormat=19;THREE.LuminanceAlphaFormat=20;THREE.DataTexture=function(b,c,e,f,h,k,m,n,t){THREE.Texture.call(this,null,h,k,m,n,t);this.image={data:b,width:c,height:e};this.format=f!==void 0?f:THREE.RGBAFormat};THREE.DataTexture.prototype=new THREE.Texture;THREE.DataTexture.prototype.constructor=THREE.DataTexture; +THREE.DataTexture.prototype.clone=function(){var b=new THREE.DataTexture(this.data.slice(0),this.mapping,this.wrapS,this.wrapT,this.magFilter,this.minFilter);b.offset.copy(this.offset);b.repeat.copy(this.repeat);return b};THREE.Particle=function(b){THREE.Object3D.call(this);this.materials=b instanceof Array?b:[b]};THREE.Particle.prototype=new THREE.Object3D;THREE.Particle.prototype.constructor=THREE.Particle; +THREE.ParticleSystem=function(b,c){THREE.Object3D.call(this);this.geometry=b;this.materials=c instanceof Array?c:[c];this.sortParticles=!1};THREE.ParticleSystem.prototype=new THREE.Object3D;THREE.ParticleSystem.prototype.constructor=THREE.ParticleSystem;THREE.Line=function(b,c,e){THREE.Object3D.call(this);this.geometry=b;this.materials=c instanceof Array?c:[c];this.type=e!=void 0?e:THREE.LineStrip};THREE.LineStrip=0;THREE.LinePieces=1;THREE.Line.prototype=new THREE.Object3D; +THREE.Line.prototype.constructor=THREE.Line; +THREE.Mesh=function(b,c){THREE.Object3D.call(this);this.geometry=b;this.materials=c&&c.length?c:[c];this.overdraw=!1;if(this.geometry&&(this.geometry.boundingSphere||this.geometry.computeBoundingSphere(),this.boundRadius=b.boundingSphere.radius,this.geometry.morphTargets.length)){this.morphTargetBase=-1;this.morphTargetForcedOrder=[];this.morphTargetInfluences=[];this.morphTargetDictionary={};for(var e=0;e<this.geometry.morphTargets.length;e++)this.morphTargetInfluences.push(0),this.morphTargetDictionary[this.geometry.morphTargets[e].name]= +e}};THREE.Mesh.prototype=new THREE.Object3D;THREE.Mesh.prototype.constructor=THREE.Mesh;THREE.Mesh.prototype.supr=THREE.Object3D.prototype;THREE.Mesh.prototype.getMorphTargetIndexByName=function(b){if(this.morphTargetDictionary[b]!==void 0)return this.morphTargetDictionary[b];console.log("THREE.Mesh.getMorphTargetIndexByName: morph target "+b+" does not exist. Returning 0.");return 0}; +THREE.Bone=function(b){THREE.Object3D.call(this);this.skin=b;this.skinMatrix=new THREE.Matrix4;this.hasNoneBoneChildren=!1};THREE.Bone.prototype=new THREE.Object3D;THREE.Bone.prototype.constructor=THREE.Bone;THREE.Bone.prototype.supr=THREE.Object3D.prototype; +THREE.Bone.prototype.update=function(b,c,e){this.matrixAutoUpdate&&(c|=this.updateMatrix());if(c||this.matrixWorldNeedsUpdate)b?this.skinMatrix.multiply(b,this.matrix):this.skinMatrix.copy(this.matrix),this.matrixWorldNeedsUpdate=!1,c=!0;var f,h=this.children.length;if(this.hasNoneBoneChildren){this.matrixWorld.multiply(this.skin.matrixWorld,this.skinMatrix);for(f=0;f<h;f++)b=this.children[f],b instanceof THREE.Bone?b.update(this.skinMatrix,c,e):b.update(this.matrixWorld,!0,e)}else for(f=0;f<h;f++)this.children[f].update(this.skinMatrix, +c,e)};THREE.Bone.prototype.addChild=function(b){if(this.children.indexOf(b)===-1&&(b.parent!==void 0&&b.parent.removeChild(b),b.parent=this,this.children.push(b),!(b instanceof THREE.Bone)))this.hasNoneBoneChildren=!0}; +THREE.SkinnedMesh=function(b,c){THREE.Mesh.call(this,b,c);this.identityMatrix=new THREE.Matrix4;this.bones=[];this.boneMatrices=[];var e,f,h,k,m,n;if(this.geometry.bones!==void 0){for(e=0;e<this.geometry.bones.length;e++)h=this.geometry.bones[e],k=h.pos,m=h.rotq,n=h.scl,f=this.addBone(),f.name=h.name,f.position.set(k[0],k[1],k[2]),f.quaternion.set(m[0],m[1],m[2],m[3]),f.useQuaternion=!0,n!==void 0?f.scale.set(n[0],n[1],n[2]):f.scale.set(1,1,1);for(e=0;e<this.bones.length;e++)h=this.geometry.bones[e], +f=this.bones[e],h.parent===-1?this.addChild(f):this.bones[h.parent].addChild(f);this.boneMatrices=new Float32Array(16*this.bones.length);this.pose()}};THREE.SkinnedMesh.prototype=new THREE.Mesh;THREE.SkinnedMesh.prototype.constructor=THREE.SkinnedMesh; +THREE.SkinnedMesh.prototype.update=function(b,c,e){if(this.visible){this.matrixAutoUpdate&&(c|=this.updateMatrix());if(c||this.matrixWorldNeedsUpdate)b?this.matrixWorld.multiply(b,this.matrix):this.matrixWorld.copy(this.matrix),this.matrixWorldNeedsUpdate=!1,c=!0;var f,h=this.children.length;for(f=0;f<h;f++)b=this.children[f],b instanceof THREE.Bone?b.update(this.identityMatrix,!1,e):b.update(this.matrixWorld,c,e);e=this.bones.length;ba=this.bones;bm=this.boneMatrices;for(c=0;c<e;c++)ba[c].skinMatrix.flattenToArrayOffset(bm, +c*16)}};THREE.SkinnedMesh.prototype.addBone=function(b){b===void 0&&(b=new THREE.Bone(this));this.bones.push(b);return b}; +THREE.SkinnedMesh.prototype.pose=function(){this.update(void 0,!0);for(var b,c=[],e=0;e<this.bones.length;e++)b=this.bones[e],c.push(THREE.Matrix4.makeInvert(b.skinMatrix)),b.skinMatrix.flattenToArrayOffset(this.boneMatrices,e*16);if(this.geometry.skinVerticesA===void 0){this.geometry.skinVerticesA=[];this.geometry.skinVerticesB=[];var f;for(b=0;b<this.geometry.skinIndices.length;b++){var e=this.geometry.vertices[b].position,h=this.geometry.skinIndices[b].x,k=this.geometry.skinIndices[b].y;f=new THREE.Vector3(e.x, +e.y,e.z);this.geometry.skinVerticesA.push(c[h].multiplyVector3(f));f=new THREE.Vector3(e.x,e.y,e.z);this.geometry.skinVerticesB.push(c[k].multiplyVector3(f));this.geometry.skinWeights[b].x+this.geometry.skinWeights[b].y!==1&&(e=(1-(this.geometry.skinWeights[b].x+this.geometry.skinWeights[b].y))*0.5,this.geometry.skinWeights[b].x+=e,this.geometry.skinWeights[b].y+=e)}}};THREE.Ribbon=function(b,c){THREE.Object3D.call(this);this.geometry=b;this.materials=c instanceof Array?c:[c]}; +THREE.Ribbon.prototype=new THREE.Object3D;THREE.Ribbon.prototype.constructor=THREE.Ribbon;THREE.LOD=function(){THREE.Object3D.call(this);this.LODs=[]};THREE.LOD.prototype=new THREE.Object3D;THREE.LOD.prototype.constructor=THREE.LOD;THREE.LOD.prototype.supr=THREE.Object3D.prototype;THREE.LOD.prototype.addLevel=function(b,c){c===void 0&&(c=0);for(var c=Math.abs(c),e=0;e<this.LODs.length;e++)if(c<this.LODs[e].visibleAtDistance)break;this.LODs.splice(e,0,{visibleAtDistance:c,object3D:b});this.add(b)}; +THREE.LOD.prototype.update=function(b,c,e){this.matrixAutoUpdate&&(c|=this.updateMatrix());if(c||this.matrixWorldNeedsUpdate)b?this.matrixWorld.multiply(b,this.matrix):this.matrixWorld.copy(this.matrix),this.matrixWorldNeedsUpdate=!1,c=!0;if(this.LODs.length>1){b=e.matrixWorldInverse;b=-(b.n31*this.position.x+b.n32*this.position.y+b.n33*this.position.z+b.n34);this.LODs[0].object3D.visible=!0;for(var f=1;f<this.LODs.length;f++)if(b>=this.LODs[f].visibleAtDistance)this.LODs[f-1].object3D.visible=!1, +this.LODs[f].object3D.visible=!0;else break;for(;f<this.LODs.length;f++)this.LODs[f].object3D.visible=!1}for(b=0;b<this.children.length;b++)this.children[b].update(this.matrixWorld,c,e)}; +THREE.Sprite=function(b){THREE.Object3D.call(this);this.color=b.color!==void 0?new THREE.Color(b.color):new THREE.Color(16777215);this.map=b.map instanceof THREE.Texture?b.map:THREE.ImageUtils.loadTexture(b.map);this.blending=b.blending!==void 0?b.blending:THREE.NormalBlending;this.useScreenCoordinates=b.useScreenCoordinates!==void 0?b.useScreenCoordinates:!0;this.mergeWith3D=b.mergeWith3D!==void 0?b.mergeWith3D:!this.useScreenCoordinates;this.affectedByDistance=b.affectedByDistance!==void 0?b.affectedByDistance: +!this.useScreenCoordinates;this.scaleByViewport=b.scaleByViewport!==void 0?b.scaleByViewport:!this.affectedByDistance;this.alignment=b.alignment instanceof THREE.Vector2?b.alignment:THREE.SpriteAlignment.center;this.rotation3d=this.rotation;this.rotation=0;this.opacity=1;this.uvOffset=new THREE.Vector2(0,0);this.uvScale=new THREE.Vector2(1,1)};THREE.Sprite.prototype=new THREE.Object3D;THREE.Sprite.prototype.constructor=THREE.Sprite;THREE.Sprite.prototype.supr=THREE.Object3D.prototype; +THREE.Sprite.prototype.updateMatrix=function(){this.matrix.setPosition(this.position);this.rotation3d.set(0,0,this.rotation);this.matrix.setRotationFromEuler(this.rotation3d);if(this.scale.x!==1||this.scale.y!==1)this.matrix.scale(this.scale),this.boundRadiusScale=Math.max(this.scale.x,this.scale.y);this.matrixWorldNeedsUpdate=!0};THREE.SpriteAlignment={};THREE.SpriteAlignment.topLeft=new THREE.Vector2(1,-1);THREE.SpriteAlignment.topCenter=new THREE.Vector2(0,-1); +THREE.SpriteAlignment.topRight=new THREE.Vector2(-1,-1);THREE.SpriteAlignment.centerLeft=new THREE.Vector2(1,0);THREE.SpriteAlignment.center=new THREE.Vector2(0,0);THREE.SpriteAlignment.centerRight=new THREE.Vector2(-1,0);THREE.SpriteAlignment.bottomLeft=new THREE.Vector2(1,1);THREE.SpriteAlignment.bottomCenter=new THREE.Vector2(0,1);THREE.SpriteAlignment.bottomRight=new THREE.Vector2(-1,1); +THREE.Scene=function(){THREE.Object3D.call(this);this.fog=null;this.matrixAutoUpdate=!1;this.collisions=this.overrideMaterial=null;this.objects=[];this.lights=[];this.__objectsAdded=[];this.__objectsRemoved=[]};THREE.Scene.prototype=new THREE.Object3D;THREE.Scene.prototype.constructor=THREE.Scene;THREE.Scene.prototype.supr=THREE.Object3D.prototype;THREE.Scene.prototype.add=function(b){this.supr.add.call(this,b);this.addChildRecurse(b)}; +THREE.Scene.prototype.addChildRecurse=function(b){if(b instanceof THREE.Light)this.lights.indexOf(b)===-1&&this.lights.push(b);else if(!(b instanceof THREE.Camera||b instanceof THREE.Bone)&&this.objects.indexOf(b)===-1){this.objects.push(b);this.__objectsAdded.push(b);var c=this.__objectsRemoved.indexOf(b);c!==-1&&this.__objectsRemoved.splice(c,1)}for(c=0;c<b.children.length;c++)this.addChildRecurse(b.children[c])};THREE.Scene.prototype.remove=function(b){this.supr.remove.call(this,b);this.removeChildRecurse(b)}; +THREE.Scene.prototype.removeChildRecurse=function(b){if(b instanceof THREE.Light){var c=this.lights.indexOf(b);c!==-1&&this.lights.splice(c,1)}else b instanceof THREE.Camera||(c=this.objects.indexOf(b),c!==-1&&(this.objects.splice(c,1),this.__objectsRemoved.push(b),c=this.__objectsAdded.indexOf(b),c!==-1&&this.__objectsAdded.splice(c,1)));for(c=0;c<b.children.length;c++)this.removeChildRecurse(b.children[c])}; +THREE.Scene.prototype.addChild=function(b){console.warn("DEPRECATED: Scene.addChild() is now Scene.add().");this.add(b)};THREE.Scene.prototype.addObject=function(b){console.warn("DEPRECATED: Scene.addObject() is now Scene.add().");this.add(b)};THREE.Scene.prototype.addLight=function(b){console.warn("DEPRECATED: Scene.addLight() is now Scene.add().");this.add(b)};THREE.Scene.prototype.removeChild=function(b){console.warn("DEPRECATED: Scene.removeChild() is now Scene.remove().");this.remove(b)}; +THREE.Scene.prototype.removeObject=function(b){console.warn("DEPRECATED: Scene.removeObject() is now Scene.remove().");this.remove(b)};THREE.Scene.prototype.removeLight=function(b){console.warn("DEPRECATED: Scene.removeLight() is now Scene.remove().");this.remove(b)};THREE.Fog=function(b,c,e){this.color=new THREE.Color(b);this.near=c!==void 0?c:1;this.far=e!==void 0?e:1E3};THREE.FogExp2=function(b,c){this.color=new THREE.Color(b);this.density=c!==void 0?c:2.5E-4}; +THREE.DOMRenderer=function(){THREE.Renderer.call(this);var b=null,c=new THREE.Projector,e,f,h,k;this.domElement=document.createElement("div");this.setSize=function(b,c){e=b;f=c;h=e/2;k=f/2};this.render=function(e,f){var t,u,v,p,x,w,A,z;b=c.projectScene(e,f);t=0;for(u=b.length;t<u;t++)if(x=b[t],x instanceof THREE.RenderableParticle){A=x.x*h+h;z=x.y*k+k;v=0;for(p=x.material.length;v<p;v++)if(w=x.material[v],w instanceof THREE.ParticleDOMMaterial)w=w.domElement,w.style.left=A+"px",w.style.top=z+"px"}}}; +THREE.CanvasRenderer=function(b){function c(b){if(y!=b)w.globalAlpha=y=b}function e(b){if(C!=b){switch(b){case THREE.NormalBlending:w.globalCompositeOperation="source-over";break;case THREE.AdditiveBlending:w.globalCompositeOperation="lighter";break;case THREE.SubtractiveBlending:w.globalCompositeOperation="darker"}C=b}}function f(b){if(E!=b)w.strokeStyle=E=b}function h(b){if(D!=b)w.fillStyle=D=b}var k=this,m=null,n=new THREE.Projector,b=b||{},t=b.canvas!==void 0?b.canvas:document.createElement("canvas"), +u,v,p,x,w=t.getContext("2d"),A=new THREE.Color(0),z=0,y=1,C=0,E=null,D=null,F=null,M=null,N=null,G,H,K,Z,L=new THREE.RenderableVertex,P=new THREE.RenderableVertex,U,Y,X,o,ea,R,pa,fa,ma,da,la,ga,$=new THREE.Color(0),ca=new THREE.Color(0),aa=new THREE.Color(0),ha=new THREE.Color(0),ka=new THREE.Color(0),sa=[],J,Q,na,ra,va,ua,Ea,Ba,Da,Fa,V=new THREE.Rectangle,T=new THREE.Rectangle,O=new THREE.Rectangle,qa=!1,ia=new THREE.Color,ja=new THREE.Color,ya=new THREE.Color,wa=new THREE.Color,oa=new THREE.Vector3, +Ia,za,Ka,Ca,Ga,W,b=16;Ia=document.createElement("canvas");Ia.width=Ia.height=2;za=Ia.getContext("2d");za.fillStyle="rgba(0,0,0,1)";za.fillRect(0,0,2,2);Ka=za.getImageData(0,0,2,2);Ca=Ka.data;Ga=document.createElement("canvas");Ga.width=Ga.height=b;W=Ga.getContext("2d");W.translate(-b/2,-b/2);W.scale(b,b);b--;this.domElement=t;this.sortElements=this.sortObjects=this.autoClear=!0;this.info={render:{vertices:0,faces:0}};this.setSize=function(b,c){u=b;v=c;p=Math.floor(u/2);x=Math.floor(v/2);t.width=u; +t.height=v;V.set(-p,-x,p,x);T.set(-p,-x,p,x);y=1;C=0;N=M=F=D=E=null};this.setClearColor=function(b,c){A.copy(b);z=c;T.set(-p,-x,p,x)};this.setClearColorHex=function(b,c){A.setHex(b);z=c;T.set(-p,-x,p,x)};this.clear=function(){w.setTransform(1,0,0,-1,p,x);T.isEmpty()||(T.minSelf(V),T.inflate(2),z<1&&w.clearRect(Math.floor(T.getX()),Math.floor(T.getY()),Math.floor(T.getWidth()),Math.floor(T.getHeight())),z>0&&(e(THREE.NormalBlending),c(1),h("rgba("+Math.floor(A.r*255)+","+Math.floor(A.g*255)+","+Math.floor(A.b* +255)+","+z+")"),w.fillRect(Math.floor(T.getX()),Math.floor(T.getY()),Math.floor(T.getWidth()),Math.floor(T.getHeight()))),T.empty())};this.render=function(b,t){function u(b){var c,e,f,k=b.lights;ja.setRGB(0,0,0);ya.setRGB(0,0,0);wa.setRGB(0,0,0);b=0;for(c=k.length;b<c;b++)e=k[b],f=e.color,e instanceof THREE.AmbientLight?(ja.r+=f.r,ja.g+=f.g,ja.b+=f.b):e instanceof THREE.DirectionalLight?(ya.r+=f.r,ya.g+=f.g,ya.b+=f.b):e instanceof THREE.PointLight&&(wa.r+=f.r,wa.g+=f.g,wa.b+=f.b)}function v(b,c,e, +f){var k,h,m,o,n=b.lights,b=0;for(k=n.length;b<k;b++)h=n[b],m=h.color,h instanceof THREE.DirectionalLight?(o=e.dot(h.position),o<=0||(o*=h.intensity,f.r+=m.r*o,f.g+=m.g*o,f.b+=m.b*o)):h instanceof THREE.PointLight&&(o=e.dot(oa.sub(h.position,c).normalize()),o<=0||(o*=h.distance==0?1:1-Math.min(c.distanceTo(h.position)/h.distance,1),o!=0&&(o*=h.intensity,f.r+=m.r*o,f.g+=m.g*o,f.b+=m.b*o)))}function z(b,k,m){c(m.opacity);e(m.blending);var o,n,t,u,v,xa;if(m instanceof THREE.ParticleBasicMaterial){if(m.map)u= +m.map.image,v=u.width>>1,xa=u.height>>1,m=k.scale.x*p,t=k.scale.y*x,o=m*v,n=t*xa,O.set(b.x-o,b.y-n,b.x+o,b.y+n),V.intersects(O)&&(w.save(),w.translate(b.x,b.y),w.rotate(-k.rotation),w.scale(m,-t),w.translate(-v,-xa),w.drawImage(u,0,0),w.restore())}else m instanceof THREE.ParticleCanvasMaterial&&(o=k.scale.x*p,n=k.scale.y*x,O.set(b.x-o,b.y-n,b.x+o,b.y+n),V.intersects(O)&&(f(m.color.getContextStyle()),h(m.color.getContextStyle()),w.save(),w.translate(b.x,b.y),w.rotate(-k.rotation),w.scale(o,n),m.program(w), +w.restore()))}function y(b,k,h,m){c(m.opacity);e(m.blending);w.beginPath();w.moveTo(b.positionScreen.x,b.positionScreen.y);w.lineTo(k.positionScreen.x,k.positionScreen.y);w.closePath();if(m instanceof THREE.LineBasicMaterial){b=m.linewidth;if(F!=b)w.lineWidth=F=b;b=m.linecap;if(M!=b)w.lineCap=M=b;b=m.linejoin;if(N!=b)w.lineJoin=N=b;f(m.color.getContextStyle());w.stroke();O.inflate(m.linewidth*2)}}function A(b,f,h,m,n,u,p,w,x){k.info.render.vertices+=3;k.info.render.faces++;c(w.opacity);e(w.blending); +U=b.positionScreen.x;Y=b.positionScreen.y;X=f.positionScreen.x;o=f.positionScreen.y;ea=h.positionScreen.x;R=h.positionScreen.y;E(U,Y,X,o,ea,R);if(w instanceof THREE.MeshBasicMaterial)if(w.map)w.map.mapping instanceof THREE.UVMapping&&(ra=p.uvs[0],ab(U,Y,X,o,ea,R,ra[m].u,ra[m].v,ra[n].u,ra[n].v,ra[u].u,ra[u].v,w.map));else if(w.envMap){if(w.envMap.mapping instanceof THREE.SphericalReflectionMapping)b=t.matrixWorldInverse,oa.copy(p.vertexNormalsWorld[0]),va=(oa.x*b.n11+oa.y*b.n12+oa.z*b.n13)*0.5+0.5, +ua=-(oa.x*b.n21+oa.y*b.n22+oa.z*b.n23)*0.5+0.5,oa.copy(p.vertexNormalsWorld[1]),Ea=(oa.x*b.n11+oa.y*b.n12+oa.z*b.n13)*0.5+0.5,Ba=-(oa.x*b.n21+oa.y*b.n22+oa.z*b.n23)*0.5+0.5,oa.copy(p.vertexNormalsWorld[2]),Da=(oa.x*b.n11+oa.y*b.n12+oa.z*b.n13)*0.5+0.5,Fa=-(oa.x*b.n21+oa.y*b.n22+oa.z*b.n23)*0.5+0.5,ab(U,Y,X,o,ea,R,va,ua,Ea,Ba,Da,Fa,w.envMap)}else w.wireframe?Na(w.color,w.wireframeLinewidth,w.wireframeLinecap,w.wireframeLinejoin):Oa(w.color);else if(w instanceof THREE.MeshLambertMaterial)w.map&&!w.wireframe&& +(w.map.mapping instanceof THREE.UVMapping&&(ra=p.uvs[0],ab(U,Y,X,o,ea,R,ra[m].u,ra[m].v,ra[n].u,ra[n].v,ra[u].u,ra[u].v,w.map)),e(THREE.SubtractiveBlending)),qa?!w.wireframe&&w.shading==THREE.SmoothShading&&p.vertexNormalsWorld.length==3?(ca.r=aa.r=ha.r=ja.r,ca.g=aa.g=ha.g=ja.g,ca.b=aa.b=ha.b=ja.b,v(x,p.v1.positionWorld,p.vertexNormalsWorld[0],ca),v(x,p.v2.positionWorld,p.vertexNormalsWorld[1],aa),v(x,p.v3.positionWorld,p.vertexNormalsWorld[2],ha),ca.r=Math.max(0,Math.min(w.color.r*ca.r,1)),ca.g= +Math.max(0,Math.min(w.color.g*ca.g,1)),ca.b=Math.max(0,Math.min(w.color.b*ca.b,1)),aa.r=Math.max(0,Math.min(w.color.r*aa.r,1)),aa.g=Math.max(0,Math.min(w.color.g*aa.g,1)),aa.b=Math.max(0,Math.min(w.color.b*aa.b,1)),ha.r=Math.max(0,Math.min(w.color.r*ha.r,1)),ha.g=Math.max(0,Math.min(w.color.g*ha.g,1)),ha.b=Math.max(0,Math.min(w.color.b*ha.b,1)),ka.r=(aa.r+ha.r)*0.5,ka.g=(aa.g+ha.g)*0.5,ka.b=(aa.b+ha.b)*0.5,na=Ya(ca,aa,ha,ka),Va(U,Y,X,o,ea,R,0,0,1,0,0,1,na)):(ia.r=ja.r,ia.g=ja.g,ia.b=ja.b,v(x,p.centroidWorld, +p.normalWorld,ia),$.r=Math.max(0,Math.min(w.color.r*ia.r,1)),$.g=Math.max(0,Math.min(w.color.g*ia.g,1)),$.b=Math.max(0,Math.min(w.color.b*ia.b,1)),w.wireframe?Na($,w.wireframeLinewidth,w.wireframeLinecap,w.wireframeLinejoin):Oa($)):w.wireframe?Na(w.color,w.wireframeLinewidth,w.wireframeLinecap,w.wireframeLinejoin):Oa(w.color);else if(w instanceof THREE.MeshDepthMaterial)J=t.near,Q=t.far,ca.r=ca.g=ca.b=1-Ra(b.positionScreen.z,J,Q),aa.r=aa.g=aa.b=1-Ra(f.positionScreen.z,J,Q),ha.r=ha.g=ha.b=1-Ra(h.positionScreen.z, +J,Q),ka.r=(aa.r+ha.r)*0.5,ka.g=(aa.g+ha.g)*0.5,ka.b=(aa.b+ha.b)*0.5,na=Ya(ca,aa,ha,ka),Va(U,Y,X,o,ea,R,0,0,1,0,0,1,na);else if(w instanceof THREE.MeshNormalMaterial)$.r=Wa(p.normalWorld.x),$.g=Wa(p.normalWorld.y),$.b=Wa(p.normalWorld.z),w.wireframe?Na($,w.wireframeLinewidth,w.wireframeLinecap,w.wireframeLinejoin):Oa($)}function C(b,f,h,m,n,u,w,p,x){k.info.render.vertices+=4;k.info.render.faces++;c(p.opacity);e(p.blending);if(p.map||p.envMap)A(b,f,m,0,1,3,w,p,x),A(n,h,u,1,2,3,w,p,x);else if(U=b.positionScreen.x, +Y=b.positionScreen.y,X=f.positionScreen.x,o=f.positionScreen.y,ea=h.positionScreen.x,R=h.positionScreen.y,pa=m.positionScreen.x,fa=m.positionScreen.y,ma=n.positionScreen.x,da=n.positionScreen.y,la=u.positionScreen.x,ga=u.positionScreen.y,p instanceof THREE.MeshBasicMaterial)D(U,Y,X,o,ea,R,pa,fa),p.wireframe?Na(p.color,p.wireframeLinewidth,p.wireframeLinecap,p.wireframeLinejoin):Oa(p.color);else if(p instanceof THREE.MeshLambertMaterial)qa?!p.wireframe&&p.shading==THREE.SmoothShading&&w.vertexNormalsWorld.length== +4?(ca.r=aa.r=ha.r=ka.r=ja.r,ca.g=aa.g=ha.g=ka.g=ja.g,ca.b=aa.b=ha.b=ka.b=ja.b,v(x,w.v1.positionWorld,w.vertexNormalsWorld[0],ca),v(x,w.v2.positionWorld,w.vertexNormalsWorld[1],aa),v(x,w.v4.positionWorld,w.vertexNormalsWorld[3],ha),v(x,w.v3.positionWorld,w.vertexNormalsWorld[2],ka),ca.r=Math.max(0,Math.min(p.color.r*ca.r,1)),ca.g=Math.max(0,Math.min(p.color.g*ca.g,1)),ca.b=Math.max(0,Math.min(p.color.b*ca.b,1)),aa.r=Math.max(0,Math.min(p.color.r*aa.r,1)),aa.g=Math.max(0,Math.min(p.color.g*aa.g,1)), +aa.b=Math.max(0,Math.min(p.color.b*aa.b,1)),ha.r=Math.max(0,Math.min(p.color.r*ha.r,1)),ha.g=Math.max(0,Math.min(p.color.g*ha.g,1)),ha.b=Math.max(0,Math.min(p.color.b*ha.b,1)),ka.r=Math.max(0,Math.min(p.color.r*ka.r,1)),ka.g=Math.max(0,Math.min(p.color.g*ka.g,1)),ka.b=Math.max(0,Math.min(p.color.b*ka.b,1)),na=Ya(ca,aa,ha,ka),E(U,Y,X,o,pa,fa),Va(U,Y,X,o,pa,fa,0,0,1,0,0,1,na),E(ma,da,ea,R,la,ga),Va(ma,da,ea,R,la,ga,1,0,1,1,0,1,na)):(ia.r=ja.r,ia.g=ja.g,ia.b=ja.b,v(x,w.centroidWorld,w.normalWorld,ia), +$.r=Math.max(0,Math.min(p.color.r*ia.r,1)),$.g=Math.max(0,Math.min(p.color.g*ia.g,1)),$.b=Math.max(0,Math.min(p.color.b*ia.b,1)),D(U,Y,X,o,ea,R,pa,fa),p.wireframe?Na($,p.wireframeLinewidth,p.wireframeLinecap,p.wireframeLinejoin):Oa($)):(D(U,Y,X,o,ea,R,pa,fa),p.wireframe?Na(p.color,p.wireframeLinewidth,p.wireframeLinecap,p.wireframeLinejoin):Oa(p.color));else if(p instanceof THREE.MeshNormalMaterial)$.r=Wa(w.normalWorld.x),$.g=Wa(w.normalWorld.y),$.b=Wa(w.normalWorld.z),D(U,Y,X,o,ea,R,pa,fa),p.wireframe? +Na($,p.wireframeLinewidth,p.wireframeLinecap,p.wireframeLinejoin):Oa($);else if(p instanceof THREE.MeshDepthMaterial)J=t.near,Q=t.far,ca.r=ca.g=ca.b=1-Ra(b.positionScreen.z,J,Q),aa.r=aa.g=aa.b=1-Ra(f.positionScreen.z,J,Q),ha.r=ha.g=ha.b=1-Ra(m.positionScreen.z,J,Q),ka.r=ka.g=ka.b=1-Ra(h.positionScreen.z,J,Q),na=Ya(ca,aa,ha,ka),E(U,Y,X,o,pa,fa),Va(U,Y,X,o,pa,fa,0,0,1,0,0,1,na),E(ma,da,ea,R,la,ga),Va(ma,da,ea,R,la,ga,1,0,1,1,0,1,na)}function E(b,c,e,f,k,h){w.beginPath();w.moveTo(b,c);w.lineTo(e,f); +w.lineTo(k,h);w.lineTo(b,c);w.closePath()}function D(b,c,e,f,k,h,m,o){w.beginPath();w.moveTo(b,c);w.lineTo(e,f);w.lineTo(k,h);w.lineTo(m,o);w.lineTo(b,c);w.closePath()}function Na(b,c,e,k){if(F!=c)w.lineWidth=F=c;if(M!=e)w.lineCap=M=e;if(N!=k)w.lineJoin=N=k;f(b.getContextStyle());w.stroke();O.inflate(c*2)}function Oa(b){h(b.getContextStyle());w.fill()}function ab(b,c,e,f,k,m,o,n,t,p,u,x,v){if(v.image.width!=0){if(v.needsUpdate==!0||sa[v.id]==void 0){var xa=v.wrapS==THREE.RepeatWrapping,z=v.wrapT== +THREE.RepeatWrapping;sa[v.id]=w.createPattern(v.image,xa&&z?"repeat":xa&&!z?"repeat-x":!xa&&z?"repeat-y":"no-repeat");v.needsUpdate=!1}h(sa[v.id]);var xa=v.offset.x/v.repeat.x,z=v.offset.y/v.repeat.y,V=(v.image.width-1)*v.repeat.x,v=(v.image.height-1)*v.repeat.y,o=(o+xa)*V,n=(n+z)*v,t=(t+xa)*V,p=(p+z)*v,u=(u+xa)*V,x=(x+z)*v;e-=b;f-=c;k-=b;m-=c;t-=o;p-=n;u-=o;x-=n;xa=1/(t*x-u*p);v=(x*e-p*k)*xa;p=(x*f-p*m)*xa;e=(t*k-u*e)*xa;f=(t*m-u*f)*xa;b=b-v*o-e*n;c=c-p*o-f*n;w.save();w.transform(v,p,e,f,b,c);w.fill(); +w.restore()}}function Va(b,c,e,f,k,h,m,o,n,t,p,u,v){var x,xa;x=v.width-1;xa=v.height-1;m*=x;o*=xa;n*=x;t*=xa;p*=x;u*=xa;e-=b;f-=c;k-=b;h-=c;n-=m;t-=o;p-=m;u-=o;xa=1/(n*u-p*t);x=(u*e-t*k)*xa;t=(u*f-t*h)*xa;e=(n*k-p*e)*xa;f=(n*h-p*f)*xa;b=b-x*m-e*o;c=c-t*m-f*o;w.save();w.transform(x,t,e,f,b,c);w.clip();w.drawImage(v,0,0);w.restore()}function Ya(b,c,e,f){var k=~~(b.r*255),h=~~(b.g*255),b=~~(b.b*255),m=~~(c.r*255),o=~~(c.g*255),c=~~(c.b*255),n=~~(e.r*255),t=~~(e.g*255),e=~~(e.b*255),p=~~(f.r*255),u=~~(f.g* +255),f=~~(f.b*255);Ca[0]=k<0?0:k>255?255:k;Ca[1]=h<0?0:h>255?255:h;Ca[2]=b<0?0:b>255?255:b;Ca[4]=m<0?0:m>255?255:m;Ca[5]=o<0?0:o>255?255:o;Ca[6]=c<0?0:c>255?255:c;Ca[8]=n<0?0:n>255?255:n;Ca[9]=t<0?0:t>255?255:t;Ca[10]=e<0?0:e>255?255:e;Ca[12]=p<0?0:p>255?255:p;Ca[13]=u<0?0:u>255?255:u;Ca[14]=f<0?0:f>255?255:f;za.putImageData(Ka,0,0);W.drawImage(Ia,0,0);return Ga}function Ra(b,c,e){b=(b-c)/(e-c);return b*b*(3-2*b)}function Wa(b){b=(b+1)*0.5;return b<0?0:b>1?1:b}function Pa(b,c){var e=c.x-b.x,f=c.y- +b.y,k=e*e+f*f;k!=0&&(k=1/Math.sqrt(k),e*=k,f*=k,c.x+=e,c.y+=f,b.x-=e,b.y-=f)}var Za,bb,ta,Ha,Qa,Xa,$a,Aa;this.autoClear?this.clear():w.setTransform(1,0,0,-1,p,x);k.info.render.vertices=0;k.info.render.faces=0;m=n.projectScene(b,t,this.sortElements);(qa=b.lights.length>0)&&u(b);Za=0;for(bb=m.length;Za<bb;Za++){ta=m[Za];O.empty();if(ta instanceof THREE.RenderableParticle){G=ta;G.x*=p;G.y*=x;Ha=0;for(Qa=ta.materials.length;Ha<Qa;)Aa=ta.materials[Ha++],Aa.opacity!=0&&z(G,ta,Aa,b)}else if(ta instanceof +THREE.RenderableLine){if(G=ta.v1,H=ta.v2,G.positionScreen.x*=p,G.positionScreen.y*=x,H.positionScreen.x*=p,H.positionScreen.y*=x,O.addPoint(G.positionScreen.x,G.positionScreen.y),O.addPoint(H.positionScreen.x,H.positionScreen.y),V.intersects(O)){Ha=0;for(Qa=ta.materials.length;Ha<Qa;)Aa=ta.materials[Ha++],Aa.opacity!=0&&y(G,H,ta,Aa,b)}}else if(ta instanceof THREE.RenderableFace3){if(G=ta.v1,H=ta.v2,K=ta.v3,G.positionScreen.x*=p,G.positionScreen.y*=x,H.positionScreen.x*=p,H.positionScreen.y*=x,K.positionScreen.x*= +p,K.positionScreen.y*=x,ta.overdraw&&(Pa(G.positionScreen,H.positionScreen),Pa(H.positionScreen,K.positionScreen),Pa(K.positionScreen,G.positionScreen)),O.add3Points(G.positionScreen.x,G.positionScreen.y,H.positionScreen.x,H.positionScreen.y,K.positionScreen.x,K.positionScreen.y),V.intersects(O)){Ha=0;for(Qa=ta.meshMaterials.length;Ha<Qa;)if(Aa=ta.meshMaterials[Ha++],Aa instanceof THREE.MeshFaceMaterial){Xa=0;for($a=ta.faceMaterials.length;Xa<$a;)(Aa=ta.faceMaterials[Xa++])&&Aa.opacity!=0&&A(G,H, +K,0,1,2,ta,Aa,b)}else Aa.opacity!=0&&A(G,H,K,0,1,2,ta,Aa,b)}}else if(ta instanceof THREE.RenderableFace4&&(G=ta.v1,H=ta.v2,K=ta.v3,Z=ta.v4,G.positionScreen.x*=p,G.positionScreen.y*=x,H.positionScreen.x*=p,H.positionScreen.y*=x,K.positionScreen.x*=p,K.positionScreen.y*=x,Z.positionScreen.x*=p,Z.positionScreen.y*=x,L.positionScreen.copy(H.positionScreen),P.positionScreen.copy(Z.positionScreen),ta.overdraw&&(Pa(G.positionScreen,H.positionScreen),Pa(H.positionScreen,Z.positionScreen),Pa(Z.positionScreen, +G.positionScreen),Pa(K.positionScreen,L.positionScreen),Pa(K.positionScreen,P.positionScreen)),O.addPoint(G.positionScreen.x,G.positionScreen.y),O.addPoint(H.positionScreen.x,H.positionScreen.y),O.addPoint(K.positionScreen.x,K.positionScreen.y),O.addPoint(Z.positionScreen.x,Z.positionScreen.y),V.intersects(O))){Ha=0;for(Qa=ta.meshMaterials.length;Ha<Qa;)if(Aa=ta.meshMaterials[Ha++],Aa instanceof THREE.MeshFaceMaterial){Xa=0;for($a=ta.faceMaterials.length;Xa<$a;)(Aa=ta.faceMaterials[Xa++])&&Aa.opacity!= +0&&C(G,H,K,Z,L,P,ta,Aa,b)}else Aa.opacity!=0&&C(G,H,K,Z,L,P,ta,Aa,b)}T.addRectangle(O)}w.setTransform(1,0,0,1,0,0)}}; +THREE.SVGRenderer=function(){function b(b,c,e){var f,k,h,m;f=0;for(k=b.lights.length;f<k;f++)h=b.lights[f],h instanceof THREE.DirectionalLight?(m=c.normalWorld.dot(h.position)*h.intensity,m>0&&(e.r+=h.color.r*m,e.g+=h.color.g*m,e.b+=h.color.b*m)):h instanceof THREE.PointLight&&(Z.sub(h.position,c.centroidWorld),Z.normalize(),m=c.normalWorld.dot(Z)*h.intensity,m>0&&(e.r+=h.color.r*m,e.g+=h.color.g*m,e.b+=h.color.b*m))}function c(c,e,m,o,n,p){k.info.render.vertices+=3;k.info.render.faces++;U=f(Y++); +U.setAttribute("d","M "+c.positionScreen.x+" "+c.positionScreen.y+" L "+e.positionScreen.x+" "+e.positionScreen.y+" L "+m.positionScreen.x+","+m.positionScreen.y+"z");n instanceof THREE.MeshBasicMaterial?F.copy(n.color):n instanceof THREE.MeshLambertMaterial?D?(M.r=N.r,M.g=N.g,M.b=N.b,b(p,o,M),F.r=Math.max(0,Math.min(n.color.r*M.r,1)),F.g=Math.max(0,Math.min(n.color.g*M.g,1)),F.b=Math.max(0,Math.min(n.color.b*M.b,1))):F.copy(n.color):n instanceof THREE.MeshDepthMaterial?(K=1-n.__2near/(n.__farPlusNear- +o.z*n.__farMinusNear),F.setRGB(K,K,K)):n instanceof THREE.MeshNormalMaterial&&F.setRGB(h(o.normalWorld.x),h(o.normalWorld.y),h(o.normalWorld.z));n.wireframe?U.setAttribute("style","fill: none; stroke: "+F.getContextStyle()+"; stroke-width: "+n.wireframeLinewidth+"; stroke-opacity: "+n.opacity+"; stroke-linecap: "+n.wireframeLinecap+"; stroke-linejoin: "+n.wireframeLinejoin):U.setAttribute("style","fill: "+F.getContextStyle()+"; fill-opacity: "+n.opacity);t.appendChild(U)}function e(c,e,m,o,n,p,u){k.info.render.vertices+= +4;k.info.render.faces++;U=f(Y++);U.setAttribute("d","M "+c.positionScreen.x+" "+c.positionScreen.y+" L "+e.positionScreen.x+" "+e.positionScreen.y+" L "+m.positionScreen.x+","+m.positionScreen.y+" L "+o.positionScreen.x+","+o.positionScreen.y+"z");p instanceof THREE.MeshBasicMaterial?F.copy(p.color):p instanceof THREE.MeshLambertMaterial?D?(M.r=N.r,M.g=N.g,M.b=N.b,b(u,n,M),F.r=Math.max(0,Math.min(p.color.r*M.r,1)),F.g=Math.max(0,Math.min(p.color.g*M.g,1)),F.b=Math.max(0,Math.min(p.color.b*M.b,1))): +F.copy(p.color):p instanceof THREE.MeshDepthMaterial?(K=1-p.__2near/(p.__farPlusNear-n.z*p.__farMinusNear),F.setRGB(K,K,K)):p instanceof THREE.MeshNormalMaterial&&F.setRGB(h(n.normalWorld.x),h(n.normalWorld.y),h(n.normalWorld.z));p.wireframe?U.setAttribute("style","fill: none; stroke: "+F.getContextStyle()+"; stroke-width: "+p.wireframeLinewidth+"; stroke-opacity: "+p.opacity+"; stroke-linecap: "+p.wireframeLinecap+"; stroke-linejoin: "+p.wireframeLinejoin):U.setAttribute("style","fill: "+F.getContextStyle()+ +"; fill-opacity: "+p.opacity);t.appendChild(U)}function f(b){L[b]==null&&(L[b]=document.createElementNS("http://www.w3.org/2000/svg","path"),o==0&&L[b].setAttribute("shape-rendering","crispEdges"));return L[b]}function h(b){b=(b+1)*0.5;return b<0?0:b>1?1:b}var k=this,m=null,n=new THREE.Projector,t=document.createElementNS("http://www.w3.org/2000/svg","svg"),u,v,p,x,w,A,z,y,C=new THREE.Rectangle,E=new THREE.Rectangle,D=!1,F=new THREE.Color(16777215),M=new THREE.Color(16777215),N=new THREE.Color(0), +G=new THREE.Color(0),H=new THREE.Color(0),K,Z=new THREE.Vector3,L=[],P=[],U,Y,X,o=1;this.domElement=t;this.sortElements=this.sortObjects=this.autoClear=!0;this.info={render:{vertices:0,faces:0}};this.setQuality=function(b){switch(b){case "high":o=1;break;case "low":o=0}};this.setSize=function(b,c){u=b;v=c;p=u/2;x=v/2;t.setAttribute("viewBox",-p+" "+-x+" "+u+" "+v);t.setAttribute("width",u);t.setAttribute("height",v);C.set(-p,-x,p,x)};this.clear=function(){for(;t.childNodes.length>0;)t.removeChild(t.childNodes[0])}; +this.render=function(b,f){var h,u,v,F,L,M,K,ca;this.autoClear&&this.clear();k.info.render.vertices=0;k.info.render.faces=0;m=n.projectScene(b,f,this.sortElements);X=Y=0;if(D=b.lights.length>0){K=b.lights;N.setRGB(0,0,0);G.setRGB(0,0,0);H.setRGB(0,0,0);h=0;for(u=K.length;h<u;h++)v=K[h],F=v.color,v instanceof THREE.AmbientLight?(N.r+=F.r,N.g+=F.g,N.b+=F.b):v instanceof THREE.DirectionalLight?(G.r+=F.r,G.g+=F.g,G.b+=F.b):v instanceof THREE.PointLight&&(H.r+=F.r,H.g+=F.g,H.b+=F.b)}h=0;for(u=m.length;h< +u;h++)if(K=m[h],E.empty(),K instanceof THREE.RenderableParticle){w=K;w.x*=p;w.y*=-x;v=0;for(F=K.materials.length;v<F;)v++}else if(K instanceof THREE.RenderableLine){if(w=K.v1,A=K.v2,w.positionScreen.x*=p,w.positionScreen.y*=-x,A.positionScreen.x*=p,A.positionScreen.y*=-x,E.addPoint(w.positionScreen.x,w.positionScreen.y),E.addPoint(A.positionScreen.x,A.positionScreen.y),C.intersects(E)){v=0;for(F=K.materials.length;v<F;)if((ca=K.materials[v++])&&ca.opacity!=0){L=w;M=A;var aa=X++;P[aa]==null&&(P[aa]= +document.createElementNS("http://www.w3.org/2000/svg","line"),o==0&&P[aa].setAttribute("shape-rendering","crispEdges"));U=P[aa];U.setAttribute("x1",L.positionScreen.x);U.setAttribute("y1",L.positionScreen.y);U.setAttribute("x2",M.positionScreen.x);U.setAttribute("y2",M.positionScreen.y);ca instanceof THREE.LineBasicMaterial&&(U.setAttribute("style","fill: none; stroke: "+ca.color.getContextStyle()+"; stroke-width: "+ca.linewidth+"; stroke-opacity: "+ca.opacity+"; stroke-linecap: "+ca.linecap+"; stroke-linejoin: "+ +ca.linejoin),t.appendChild(U))}}}else if(K instanceof THREE.RenderableFace3){if(w=K.v1,A=K.v2,z=K.v3,w.positionScreen.x*=p,w.positionScreen.y*=-x,A.positionScreen.x*=p,A.positionScreen.y*=-x,z.positionScreen.x*=p,z.positionScreen.y*=-x,E.addPoint(w.positionScreen.x,w.positionScreen.y),E.addPoint(A.positionScreen.x,A.positionScreen.y),E.addPoint(z.positionScreen.x,z.positionScreen.y),C.intersects(E)){v=0;for(F=K.meshMaterials.length;v<F;)if(ca=K.meshMaterials[v++],ca instanceof THREE.MeshFaceMaterial){L= +0;for(M=K.faceMaterials.length;L<M;)(ca=K.faceMaterials[L++])&&ca.opacity!=0&&c(w,A,z,K,ca,b)}else ca&&ca.opacity!=0&&c(w,A,z,K,ca,b)}}else if(K instanceof THREE.RenderableFace4&&(w=K.v1,A=K.v2,z=K.v3,y=K.v4,w.positionScreen.x*=p,w.positionScreen.y*=-x,A.positionScreen.x*=p,A.positionScreen.y*=-x,z.positionScreen.x*=p,z.positionScreen.y*=-x,y.positionScreen.x*=p,y.positionScreen.y*=-x,E.addPoint(w.positionScreen.x,w.positionScreen.y),E.addPoint(A.positionScreen.x,A.positionScreen.y),E.addPoint(z.positionScreen.x, +z.positionScreen.y),E.addPoint(y.positionScreen.x,y.positionScreen.y),C.intersects(E))){v=0;for(F=K.meshMaterials.length;v<F;)if(ca=K.meshMaterials[v++],ca instanceof THREE.MeshFaceMaterial){L=0;for(M=K.faceMaterials.length;L<M;)(ca=K.faceMaterials[L++])&&ca.opacity!=0&&e(w,A,z,y,K,ca,b)}else ca&&ca.opacity!=0&&e(w,A,z,y,K,ca,b)}}}; +THREE.ShaderChunk={fog_pars_fragment:"#ifdef USE_FOG\nuniform vec3 fogColor;\n#ifdef FOG_EXP2\nuniform float fogDensity;\n#else\nuniform float fogNear;\nuniform float fogFar;\n#endif\n#endif",fog_fragment:"#ifdef USE_FOG\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\n#ifdef FOG_EXP2\nconst float LOG2 = 1.442695;\nfloat fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\nfogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\n#else\nfloat fogFactor = smoothstep( fogNear, fogFar, depth );\n#endif\ngl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\n#endif", +envmap_pars_fragment:"#ifdef USE_ENVMAP\nvarying vec3 vReflect;\nuniform float reflectivity;\nuniform samplerCube envMap;\nuniform int combine;\n#endif",envmap_fragment:"#ifdef USE_ENVMAP\nvec4 cubeColor = textureCube( envMap, vec3( -vReflect.x, vReflect.yz ) );\nif ( combine == 1 ) {\ngl_FragColor = vec4( mix( gl_FragColor.xyz, cubeColor.xyz, reflectivity ), opacity );\n} else {\ngl_FragColor = gl_FragColor * cubeColor;\n}\n#endif",envmap_pars_vertex:"#ifdef USE_ENVMAP\nvarying vec3 vReflect;\nuniform float refractionRatio;\nuniform bool useRefract;\n#endif", +envmap_vertex:"#ifdef USE_ENVMAP\nvec4 mPosition = objectMatrix * vec4( position, 1.0 );\nvec3 nWorld = mat3( objectMatrix[ 0 ].xyz, objectMatrix[ 1 ].xyz, objectMatrix[ 2 ].xyz ) * normal;\nif ( useRefract ) {\nvReflect = refract( normalize( mPosition.xyz - cameraPosition ), normalize( nWorld.xyz ), refractionRatio );\n} else {\nvReflect = reflect( normalize( mPosition.xyz - cameraPosition ), normalize( nWorld.xyz ) );\n}\n#endif",map_particle_pars_fragment:"#ifdef USE_MAP\nuniform sampler2D map;\n#endif", +map_particle_fragment:"#ifdef USE_MAP\ngl_FragColor = gl_FragColor * texture2D( map, gl_PointCoord );\n#endif",map_pars_vertex:"#ifdef USE_MAP\nvarying vec2 vUv;\nuniform vec4 offsetRepeat;\n#endif",map_pars_fragment:"#ifdef USE_MAP\nvarying vec2 vUv;\nuniform sampler2D map;\n#endif",map_vertex:"#ifdef USE_MAP\nvUv = uv * offsetRepeat.zw + offsetRepeat.xy;\n#endif",map_fragment:"#ifdef USE_MAP\ngl_FragColor = gl_FragColor * texture2D( map, vUv );\n#endif",lightmap_pars_fragment:"#ifdef USE_LIGHTMAP\nvarying vec2 vUv2;\nuniform sampler2D lightMap;\n#endif", +lightmap_pars_vertex:"#ifdef USE_LIGHTMAP\nvarying vec2 vUv2;\n#endif",lightmap_fragment:"#ifdef USE_LIGHTMAP\ngl_FragColor = gl_FragColor * texture2D( lightMap, vUv2 );\n#endif",lightmap_vertex:"#ifdef USE_LIGHTMAP\nvUv2 = uv2;\n#endif",lights_pars_vertex:"uniform bool enableLighting;\nuniform vec3 ambientLightColor;\n#if MAX_DIR_LIGHTS > 0\nuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\nuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n#endif\n#if MAX_POINT_LIGHTS > 0\nuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\nuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\nuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\n#endif", +lights_vertex:"if ( !enableLighting ) {\nvLightWeighting = vec3( 1.0 );\n} else {\nvLightWeighting = ambientLightColor;\n#if MAX_DIR_LIGHTS > 0\nfor( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\nvec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );\nfloat directionalLightWeighting = max( dot( transformedNormal, normalize( lDirection.xyz ) ), 0.0 );\nvLightWeighting += directionalLightColor[ i ] * directionalLightWeighting;\n}\n#endif\n#if MAX_POINT_LIGHTS > 0\nfor( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\nvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\nvec3 lVector = lPosition.xyz - mvPosition.xyz;\nfloat lDistance = 1.0;\nif ( pointLightDistance[ i ] > 0.0 )\nlDistance = 1.0 - min( ( length( lVector ) / pointLightDistance[ i ] ), 1.0 );\nlVector = normalize( lVector );\nfloat pointLightWeighting = max( dot( transformedNormal, lVector ), 0.0 );\nvLightWeighting += pointLightColor[ i ] * pointLightWeighting * lDistance;\n}\n#endif\n}", +lights_phong_pars_vertex:"#if MAX_POINT_LIGHTS > 0\nuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\nuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\nvarying vec4 vPointLight[ MAX_POINT_LIGHTS ];\n#endif",lights_phong_vertex:"#if MAX_POINT_LIGHTS > 0\nfor( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\nvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\nvec3 lVector = lPosition.xyz - mvPosition.xyz;\nfloat lDistance = 1.0;\nif ( pointLightDistance[ i ] > 0.0 )\nlDistance = 1.0 - min( ( length( lVector ) / pointLightDistance[ i ] ), 1.0 );\nlVector = normalize( lVector );\nvPointLight[ i ] = vec4( lVector, lDistance );\n}\n#endif", +lights_pars_fragment:"uniform vec3 ambientLightColor;\n#if MAX_DIR_LIGHTS > 0\nuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\nuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n#endif\n#if MAX_POINT_LIGHTS > 0\nuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\nvarying vec4 vPointLight[ MAX_POINT_LIGHTS ];\n#endif\nvarying vec3 vViewPosition;\nvarying vec3 vNormal;",lights_fragment:"vec3 normal = normalize( vNormal );\nvec3 viewPosition = normalize( vViewPosition );\n#if MAX_POINT_LIGHTS > 0\nvec3 pointDiffuse = vec3( 0.0 );\nvec3 pointSpecular = vec3( 0.0 );\nfor ( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\nvec3 pointVector = normalize( vPointLight[ i ].xyz );\nvec3 pointHalfVector = normalize( vPointLight[ i ].xyz + viewPosition );\nfloat pointDistance = vPointLight[ i ].w;\nfloat pointDotNormalHalf = dot( normal, pointHalfVector );\nfloat pointDiffuseWeight = max( dot( normal, pointVector ), 0.0 );\nfloat pointSpecularWeight = 0.0;\nif ( pointDotNormalHalf >= 0.0 )\npointSpecularWeight = pow( pointDotNormalHalf, shininess );\npointDiffuse += diffuse * pointLightColor[ i ] * pointDiffuseWeight * pointDistance;\npointSpecular += specular * pointLightColor[ i ] * pointSpecularWeight * pointDistance;\n}\n#endif\n#if MAX_DIR_LIGHTS > 0\nvec3 dirDiffuse = vec3( 0.0 );\nvec3 dirSpecular = vec3( 0.0 );\nfor( int i = 0; i < MAX_DIR_LIGHTS; i ++ ) {\nvec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );\nvec3 dirVector = normalize( lDirection.xyz );\nvec3 dirHalfVector = normalize( lDirection.xyz + viewPosition );\nfloat dirDotNormalHalf = dot( normal, dirHalfVector );\nfloat dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );\nfloat dirSpecularWeight = 0.0;\nif ( dirDotNormalHalf >= 0.0 )\ndirSpecularWeight = pow( dirDotNormalHalf, shininess );\ndirDiffuse += diffuse * directionalLightColor[ i ] * dirDiffuseWeight;\ndirSpecular += specular * directionalLightColor[ i ] * dirSpecularWeight;\n}\n#endif\nvec3 totalDiffuse = vec3( 0.0 );\nvec3 totalSpecular = vec3( 0.0 );\n#if MAX_DIR_LIGHTS > 0\ntotalDiffuse += dirDiffuse;\ntotalSpecular += dirSpecular;\n#endif\n#if MAX_POINT_LIGHTS > 0\ntotalDiffuse += pointDiffuse;\ntotalSpecular += pointSpecular;\n#endif\ngl_FragColor.xyz = gl_FragColor.xyz * totalDiffuse + totalSpecular + ambientLightColor * ambient;", +color_pars_fragment:"#ifdef USE_COLOR\nvarying vec3 vColor;\n#endif",color_fragment:"#ifdef USE_COLOR\ngl_FragColor = gl_FragColor * vec4( vColor, opacity );\n#endif",color_pars_vertex:"#ifdef USE_COLOR\nvarying vec3 vColor;\n#endif",color_vertex:"#ifdef USE_COLOR\nvColor = color;\n#endif",skinning_pars_vertex:"#ifdef USE_SKINNING\nuniform mat4 boneGlobalMatrices[ MAX_BONES ];\n#endif",skinning_vertex:"#ifdef USE_SKINNING\ngl_Position = ( boneGlobalMatrices[ int( skinIndex.x ) ] * skinVertexA ) * skinWeight.x;\ngl_Position += ( boneGlobalMatrices[ int( skinIndex.y ) ] * skinVertexB ) * skinWeight.y;\ngl_Position = projectionMatrix * viewMatrix * objectMatrix * gl_Position;\n#endif", +morphtarget_pars_vertex:"#ifdef USE_MORPHTARGETS\nuniform float morphTargetInfluences[ 8 ];\n#endif",morphtarget_vertex:"#ifdef USE_MORPHTARGETS\nvec3 morphed = vec3( 0.0, 0.0, 0.0 );\nmorphed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\nmorphed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\nmorphed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\nmorphed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\nmorphed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\nmorphed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\nmorphed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\nmorphed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\nmorphed += position;\ngl_Position = projectionMatrix * modelViewMatrix * vec4( morphed, 1.0 );\n#endif", +default_vertex:"#ifndef USE_MORPHTARGETS\n#ifndef USE_SKINNING\ngl_Position = projectionMatrix * mvPosition;\n#endif\n#endif",shadowmap_pars_fragment:"#ifdef USE_SHADOWMAP\nuniform sampler2D shadowMap[ MAX_SHADOWS ];\nuniform float shadowDarkness;\nuniform float shadowBias;\nvarying vec4 vShadowCoord[ MAX_SHADOWS ];\nfloat unpackDepth( const in vec4 rgba_depth ) {\nconst vec4 bit_shift = vec4( 1.0 / ( 256.0 * 256.0 * 256.0 ), 1.0 / ( 256.0 * 256.0 ), 1.0 / 256.0, 1.0 );\nfloat depth = dot( rgba_depth, bit_shift );\nreturn depth;\n}\n#endif", +shadowmap_fragment:"#ifdef USE_SHADOWMAP\n#ifdef SHADOWMAP_SOFT\nconst float xPixelOffset = 1.0 / SHADOWMAP_WIDTH;\nconst float yPixelOffset = 1.0 / SHADOWMAP_HEIGHT;\n#endif\nvec4 shadowColor = vec4( 1.0 );\nfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\nvec3 shadowCoord = vShadowCoord[ i ].xyz / vShadowCoord[ i ].w;\nshadowCoord.z += shadowBias;\nif ( shadowCoord.x >= 0.0 && shadowCoord.x <= 1.0 && shadowCoord.y >= 0.0 && shadowCoord.y <= 1.0 ) {\n#ifdef SHADOWMAP_SOFT\nfloat shadow = 0.0;\nfor ( float y = -1.25; y <= 1.25; y += 1.25 )\nfor ( float x = -1.25; x <= 1.25; x += 1.25 ) {\nvec4 rgbaDepth = texture2D( shadowMap[ i ], vec2( x * xPixelOffset, y * yPixelOffset ) + shadowCoord.xy );\nfloat fDepth = unpackDepth( rgbaDepth );\nif ( fDepth < shadowCoord.z )\nshadow += 1.0;\n}\nshadow /= 9.0;\nshadowColor = shadowColor * vec4( vec3( ( 1.0 - shadowDarkness * shadow ) ), 1.0 );\n#else\nvec4 rgbaDepth = texture2D( shadowMap[ i ], shadowCoord.xy );\nfloat fDepth = unpackDepth( rgbaDepth );\nif ( fDepth < shadowCoord.z )\nshadowColor = shadowColor * vec4( vec3( shadowDarkness ), 1.0 );\n#endif\n}\n}\ngl_FragColor = gl_FragColor * shadowColor;\n#endif", +shadowmap_pars_vertex:"#ifdef USE_SHADOWMAP\nvarying vec4 vShadowCoord[ MAX_SHADOWS ];\nuniform mat4 shadowMatrix[ MAX_SHADOWS ];\n#endif",shadowmap_vertex:"#ifdef USE_SHADOWMAP\nfor( int i = 0; i < MAX_SHADOWS; i ++ ) {\nvShadowCoord[ i ] = shadowMatrix[ i ] * objectMatrix * vec4( position, 1.0 );\n}\n#endif",alphatest_fragment:"#ifdef ALPHATEST\nif ( gl_FragColor.a < ALPHATEST ) discard;\n#endif"}; +THREE.UniformsUtils={merge:function(b){var c,e,f,h={};for(c=0;c<b.length;c++)for(e in f=this.clone(b[c]),f)h[e]=f[e];return h},clone:function(b){var c,e,f,h={};for(c in b)for(e in h[c]={},b[c])f=b[c][e],h[c][e]=f instanceof THREE.Color||f instanceof THREE.Vector2||f instanceof THREE.Vector3||f instanceof THREE.Vector4||f instanceof THREE.Matrix4||f instanceof THREE.Texture?f.clone():f instanceof Array?f.slice():f;return h}}; +THREE.UniformsLib={common:{diffuse:{type:"c",value:new THREE.Color(15658734)},opacity:{type:"f",value:1},map:{type:"t",value:0,texture:null},offsetRepeat:{type:"v4",value:new THREE.Vector4(0,0,1,1)},lightMap:{type:"t",value:2,texture:null},envMap:{type:"t",value:1,texture:null},useRefract:{type:"i",value:0},reflectivity:{type:"f",value:1},refractionRatio:{type:"f",value:0.98},combine:{type:"i",value:0},morphTargetInfluences:{type:"f",value:0}},fog:{fogDensity:{type:"f",value:2.5E-4},fogNear:{type:"f", +value:1},fogFar:{type:"f",value:2E3},fogColor:{type:"c",value:new THREE.Color(16777215)}},lights:{enableLighting:{type:"i",value:1},ambientLightColor:{type:"fv",value:[]},directionalLightDirection:{type:"fv",value:[]},directionalLightColor:{type:"fv",value:[]},pointLightColor:{type:"fv",value:[]},pointLightPosition:{type:"fv",value:[]},pointLightDistance:{type:"fv1",value:[]}},particle:{psColor:{type:"c",value:new THREE.Color(15658734)},opacity:{type:"f",value:1},size:{type:"f",value:1},scale:{type:"f", +value:1},map:{type:"t",value:0,texture:null},fogDensity:{type:"f",value:2.5E-4},fogNear:{type:"f",value:1},fogFar:{type:"f",value:2E3},fogColor:{type:"c",value:new THREE.Color(16777215)}},shadowmap:{shadowMap:{type:"tv",value:6,texture:[]},shadowMatrix:{type:"m4v",value:[]},shadowBias:{type:"f",value:0.0039},shadowDarkness:{type:"f",value:0.2}}}; +THREE.ShaderLib={sprite:{vertexShader:"uniform int useScreenCoordinates;\nuniform int affectedByDistance;\nuniform vec3 screenPosition;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform float rotation;\nuniform vec2 scale;\nuniform vec2 alignment;\nuniform vec2 uvOffset;\nuniform vec2 uvScale;\nattribute vec2 position;\nattribute vec2 uv;\nvarying vec2 vUV;\nvoid main() {\nvUV = uvOffset + uv * uvScale;\nvec2 alignedPosition = position + alignment;\nvec2 rotatedPosition;\nrotatedPosition.x = ( cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y ) * scale.x;\nrotatedPosition.y = ( sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y ) * scale.y;\nvec4 finalPosition;\nif( useScreenCoordinates != 0 ) {\nfinalPosition = vec4( screenPosition.xy + rotatedPosition, screenPosition.z, 1.0 );\n} else {\nfinalPosition = projectionMatrix * modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\nfinalPosition.xy += rotatedPosition * ( affectedByDistance == 1 ? 1.0 : finalPosition.z );\n}\ngl_Position = finalPosition;\n}",fragmentShader:"#ifdef GL_ES\nprecision highp float;\n#endif\nuniform vec3 color;\nuniform sampler2D map;\nuniform float opacity;\nvarying vec2 vUV;\nvoid main() {\nvec4 texture = texture2D( map, vUV );\ngl_FragColor = vec4( color * texture.xyz, texture.a * opacity );\n}"}, +depth:{uniforms:{mNear:{type:"f",value:1},mFar:{type:"f",value:2E3},opacity:{type:"f",value:1}},vertexShader:"void main() {\ngl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",fragmentShader:"uniform float mNear;\nuniform float mFar;\nuniform float opacity;\nvoid main() {\nfloat depth = gl_FragCoord.z / gl_FragCoord.w;\nfloat color = 1.0 - smoothstep( mNear, mFar, depth );\ngl_FragColor = vec4( vec3( color ), opacity );\n}"},normal:{uniforms:{opacity:{type:"f",value:1}}, +vertexShader:"varying vec3 vNormal;\nvoid main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvNormal = normalize( normalMatrix * normal );\ngl_Position = projectionMatrix * mvPosition;\n}",fragmentShader:"uniform float opacity;\nvarying vec3 vNormal;\nvoid main() {\ngl_FragColor = vec4( 0.5 * normalize( vNormal ) + 0.5, opacity );\n}"},basic:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.common,THREE.UniformsLib.fog,THREE.UniformsLib.shadowmap]),vertexShader:[THREE.ShaderChunk.map_pars_vertex, +THREE.ShaderChunk.lightmap_pars_vertex,THREE.ShaderChunk.envmap_pars_vertex,THREE.ShaderChunk.color_pars_vertex,THREE.ShaderChunk.skinning_pars_vertex,THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.shadowmap_pars_vertex,"void main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",THREE.ShaderChunk.map_vertex,THREE.ShaderChunk.lightmap_vertex,THREE.ShaderChunk.envmap_vertex,THREE.ShaderChunk.color_vertex,THREE.ShaderChunk.skinning_vertex,THREE.ShaderChunk.morphtarget_vertex, +THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.shadowmap_vertex,"}"].join("\n"),fragmentShader:["uniform vec3 diffuse;\nuniform float opacity;",THREE.ShaderChunk.color_pars_fragment,THREE.ShaderChunk.map_pars_fragment,THREE.ShaderChunk.lightmap_pars_fragment,THREE.ShaderChunk.envmap_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,THREE.ShaderChunk.shadowmap_pars_fragment,"void main() {\ngl_FragColor = vec4( diffuse, opacity );",THREE.ShaderChunk.map_fragment,THREE.ShaderChunk.alphatest_fragment, +THREE.ShaderChunk.lightmap_fragment,THREE.ShaderChunk.color_fragment,THREE.ShaderChunk.envmap_fragment,THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n")},lambert:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.common,THREE.UniformsLib.fog,THREE.UniformsLib.lights,THREE.UniformsLib.shadowmap]),vertexShader:["varying vec3 vLightWeighting;",THREE.ShaderChunk.map_pars_vertex,THREE.ShaderChunk.lightmap_pars_vertex,THREE.ShaderChunk.envmap_pars_vertex,THREE.ShaderChunk.lights_pars_vertex, +THREE.ShaderChunk.color_pars_vertex,THREE.ShaderChunk.skinning_pars_vertex,THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.shadowmap_pars_vertex,"void main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",THREE.ShaderChunk.map_vertex,THREE.ShaderChunk.lightmap_vertex,THREE.ShaderChunk.envmap_vertex,THREE.ShaderChunk.color_vertex,"vec3 transformedNormal = normalize( normalMatrix * normal );",THREE.ShaderChunk.lights_vertex,THREE.ShaderChunk.skinning_vertex,THREE.ShaderChunk.morphtarget_vertex, +THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.shadowmap_vertex,"}"].join("\n"),fragmentShader:["uniform vec3 diffuse;\nuniform float opacity;\nvarying vec3 vLightWeighting;",THREE.ShaderChunk.color_pars_fragment,THREE.ShaderChunk.map_pars_fragment,THREE.ShaderChunk.lightmap_pars_fragment,THREE.ShaderChunk.envmap_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,THREE.ShaderChunk.shadowmap_pars_fragment,"void main() {\ngl_FragColor = vec4( diffuse, opacity );",THREE.ShaderChunk.map_fragment,THREE.ShaderChunk.alphatest_fragment, +"gl_FragColor = gl_FragColor * vec4( vLightWeighting, 1.0 );",THREE.ShaderChunk.lightmap_fragment,THREE.ShaderChunk.color_fragment,THREE.ShaderChunk.envmap_fragment,THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n")},phong:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.common,THREE.UniformsLib.fog,THREE.UniformsLib.lights,THREE.UniformsLib.shadowmap,{ambient:{type:"c",value:new THREE.Color(328965)},specular:{type:"c",value:new THREE.Color(1118481)},shininess:{type:"f", +value:30}}]),vertexShader:["varying vec3 vViewPosition;\nvarying vec3 vNormal;",THREE.ShaderChunk.map_pars_vertex,THREE.ShaderChunk.lightmap_pars_vertex,THREE.ShaderChunk.envmap_pars_vertex,THREE.ShaderChunk.lights_phong_pars_vertex,THREE.ShaderChunk.color_pars_vertex,THREE.ShaderChunk.skinning_pars_vertex,THREE.ShaderChunk.morphtarget_pars_vertex,THREE.ShaderChunk.shadowmap_pars_vertex,"void main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",THREE.ShaderChunk.map_vertex,THREE.ShaderChunk.lightmap_vertex, +THREE.ShaderChunk.envmap_vertex,THREE.ShaderChunk.color_vertex,"#ifndef USE_ENVMAP\nvec4 mPosition = objectMatrix * vec4( position, 1.0 );\n#endif\nvViewPosition = -mvPosition.xyz;\nvec3 transformedNormal = normalize( normalMatrix * normal );\nvNormal = transformedNormal;",THREE.ShaderChunk.lights_phong_vertex,THREE.ShaderChunk.skinning_vertex,THREE.ShaderChunk.morphtarget_vertex,THREE.ShaderChunk.default_vertex,THREE.ShaderChunk.shadowmap_vertex,"}"].join("\n"),fragmentShader:["uniform vec3 diffuse;\nuniform float opacity;\nuniform vec3 ambient;\nuniform vec3 specular;\nuniform float shininess;", +THREE.ShaderChunk.color_pars_fragment,THREE.ShaderChunk.map_pars_fragment,THREE.ShaderChunk.lightmap_pars_fragment,THREE.ShaderChunk.envmap_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,THREE.ShaderChunk.lights_pars_fragment,THREE.ShaderChunk.shadowmap_pars_fragment,"void main() {\ngl_FragColor = vec4( vec3 ( 1.0 ), opacity );",THREE.ShaderChunk.map_fragment,THREE.ShaderChunk.alphatest_fragment,THREE.ShaderChunk.lights_fragment,THREE.ShaderChunk.lightmap_fragment,THREE.ShaderChunk.color_fragment, +THREE.ShaderChunk.envmap_fragment,THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n")},particle_basic:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.particle,THREE.UniformsLib.shadowmap]),vertexShader:["uniform float size;\nuniform float scale;",THREE.ShaderChunk.color_pars_vertex,THREE.ShaderChunk.shadowmap_pars_vertex,"void main() {",THREE.ShaderChunk.color_vertex,"vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n#ifdef USE_SIZEATTENUATION\ngl_PointSize = size * ( scale / length( mvPosition.xyz ) );\n#else\ngl_PointSize = size;\n#endif\ngl_Position = projectionMatrix * mvPosition;", +THREE.ShaderChunk.shadowmap_vertex,"}"].join("\n"),fragmentShader:["uniform vec3 psColor;\nuniform float opacity;",THREE.ShaderChunk.color_pars_fragment,THREE.ShaderChunk.map_particle_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,THREE.ShaderChunk.shadowmap_pars_fragment,"void main() {\ngl_FragColor = vec4( psColor, opacity );",THREE.ShaderChunk.map_particle_fragment,THREE.ShaderChunk.alphatest_fragment,THREE.ShaderChunk.color_fragment,THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.fog_fragment, +"}"].join("\n")},depthRGBA:{uniforms:{},vertexShader:[THREE.ShaderChunk.morphtarget_pars_vertex,"void main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );",THREE.ShaderChunk.morphtarget_vertex,THREE.ShaderChunk.default_vertex,"}"].join("\n"),fragmentShader:"vec4 pack_depth( const in float depth ) {\nconst vec4 bit_shift = vec4( 256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0 );\nconst vec4 bit_mask = vec4( 0.0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0 );\nvec4 res = fract( depth * bit_shift );\nres -= res.xxyz * bit_mask;\nreturn res;\n}\nvoid main() {\ngl_FragData[ 0 ] = pack_depth( gl_FragCoord.z );\n}"}}; +THREE.WebGLRenderer=function(b){function c(b,c,e){var f,k,h,m=b.vertices,n=m.length,t=b.colors,p=t.length,u=b.__vertexArray,w=b.__colorArray,v=b.__sortArray,x=b.__dirtyVertices,z=b.__dirtyColors,V=b.__webglCustomAttributes,y,A;if(V)for(y in V)V[y].offset=0;if(e.sortParticles){ua.multiplySelf(e.matrixWorld);for(f=0;f<n;f++)k=m[f].position,Da.copy(k),ua.multiplyVector3(Da),v[f]=[Da.z,f];v.sort(function(b,c){return c[0]-b[0]});for(f=0;f<n;f++)k=m[v[f][1]].position,h=f*3,u[h]=k.x,u[h+1]=k.y,u[h+2]=k.z; +for(f=0;f<p;f++)h=f*3,color=t[v[f][1]],w[h]=color.r,w[h+1]=color.g,w[h+2]=color.b;if(V)for(y in V){f=V[y];t=f.value.length;for(h=0;h<t;h++){index=v[h][1];p=f.offset;if(f.size===1){if(f.boundTo===void 0||f.boundTo==="vertices")f.array[p]=f.value[index]}else{if(f.boundTo===void 0||f.boundTo==="vertices")A=f.value[index];f.size===2?(f.array[p]=A.x,f.array[p+1]=A.y):f.size===3?f.type==="c"?(f.array[p]=A.r,f.array[p+1]=A.g,f.array[p+2]=A.b):(f.array[p]=A.x,f.array[p+1]=A.y,f.array[p+2]=A.z):(f.array[p]= +A.x,f.array[p+1]=A.y,f.array[p+2]=A.z,f.array[p+3]=A.w)}f.offset+=f.size}}}else{if(x)for(f=0;f<n;f++)k=m[f].position,h=f*3,u[h]=k.x,u[h+1]=k.y,u[h+2]=k.z;if(z)for(f=0;f<p;f++)color=t[f],h=f*3,w[h]=color.r,w[h+1]=color.g,w[h+2]=color.b;if(V)for(y in V)if(f=V[y],f.__original.needsUpdate){t=f.value.length;for(h=0;h<t;h++){p=f.offset;if(f.size===1){if(f.boundTo===void 0||f.boundTo==="vertices")f.array[p]=f.value[h]}else{if(f.boundTo===void 0||f.boundTo==="vertices")A=f.value[h];f.size===2?(f.array[p]= +A.x,f.array[p+1]=A.y):f.size===3?f.type==="c"?(f.array[p]=A.r,f.array[p+1]=A.g,f.array[p+2]=A.b):(f.array[p]=A.x,f.array[p+1]=A.y,f.array[p+2]=A.z):(f.array[p]=A.x,f.array[p+1]=A.y,f.array[p+2]=A.z,f.array[p+3]=A.w)}f.offset+=f.size}}}if(x||e.sortParticles)o.bindBuffer(o.ARRAY_BUFFER,b.__webglVertexBuffer),o.bufferData(o.ARRAY_BUFFER,u,c);if(z||e.sortParticles)o.bindBuffer(o.ARRAY_BUFFER,b.__webglColorBuffer),o.bufferData(o.ARRAY_BUFFER,w,c);if(V)for(y in V)if(f=V[y],f.__original.needsUpdate||e.sortParticles)o.bindBuffer(o.ARRAY_BUFFER, +f.buffer),o.bufferData(o.ARRAY_BUFFER,f.array,c)}function e(b,c,e,f,k){f.program||X.initMaterial(f,c,e,k);if(f.morphTargets&&!k.__webglMorphTargetInfluences){k.__webglMorphTargetInfluences=new Float32Array(X.maxMorphTargets);for(var h=0,m=X.maxMorphTargets;h<m;h++)k.__webglMorphTargetInfluences[h]=0}var n=!1,h=f.program,m=h.uniforms,p=f.uniforms;h!=R&&(o.useProgram(h),R=h,n=!0);if(f.id!=fa)fa=f.id,n=!0;if(n){o.uniformMatrix4fv(m.projectionMatrix,!1,Ea);if(e&&f.fog)if(p.fogColor.value=e.color,e instanceof +THREE.Fog)p.fogNear.value=e.near,p.fogFar.value=e.far;else if(e instanceof THREE.FogExp2)p.fogDensity.value=e.density;if(f instanceof THREE.MeshPhongMaterial||f instanceof THREE.MeshLambertMaterial||f.lights){for(var t,u,w=0,v=0,x=0,z,A,y,O=Fa,T=O.directional.colors,E=O.directional.positions,C=O.point.colors,D=O.point.positions,F=O.point.distances,J=0,qa=0,e=t=y=0,n=c.length;e<n;e++)if(t=c[e],u=t.color,z=t.position,A=t.intensity,y=t.distance,t instanceof THREE.AmbientLight)w+=u.r,v+=u.g,x+=u.b;else if(t instanceof +THREE.DirectionalLight)y=J*3,T[y]=u.r*A,T[y+1]=u.g*A,T[y+2]=u.b*A,E[y]=z.x,E[y+1]=z.y,E[y+2]=z.z,J+=1;else if(t instanceof THREE.SpotLight)y=J*3,T[y]=u.r*A,T[y+1]=u.g*A,T[y+2]=u.b*A,u=1/z.length(),E[y]=z.x*u,E[y+1]=z.y*u,E[y+2]=z.z*u,J+=1;else if(t instanceof THREE.PointLight)t=qa*3,C[t]=u.r*A,C[t+1]=u.g*A,C[t+2]=u.b*A,D[t]=z.x,D[t+1]=z.y,D[t+2]=z.z,F[qa]=y,qa+=1;e=J*3;for(n=T.length;e<n;e++)T[e]=0;e=qa*3;for(n=C.length;e<n;e++)C[e]=0;O.point.length=qa;O.directional.length=J;O.ambient[0]=w;O.ambient[1]= +v;O.ambient[2]=x;c=Fa;p.enableLighting.value=c.directional.length+c.point.length;p.ambientLightColor.value=c.ambient;p.directionalLightColor.value=c.directional.colors;p.directionalLightDirection.value=c.directional.positions;p.pointLightColor.value=c.point.colors;p.pointLightPosition.value=c.point.positions;p.pointLightDistance.value=c.point.distances}if(f instanceof THREE.MeshBasicMaterial||f instanceof THREE.MeshLambertMaterial||f instanceof THREE.MeshPhongMaterial)p.diffuse.value=f.color,p.opacity.value= +f.opacity,(p.map.texture=f.map)&&p.offsetRepeat.value.set(f.map.offset.x,f.map.offset.y,f.map.repeat.x,f.map.repeat.y),p.lightMap.texture=f.lightMap,p.envMap.texture=f.envMap,p.reflectivity.value=f.reflectivity,p.refractionRatio.value=f.refractionRatio,p.combine.value=f.combine,p.useRefract.value=f.envMap&&f.envMap.mapping instanceof THREE.CubeRefractionMapping;if(f instanceof THREE.LineBasicMaterial)p.diffuse.value=f.color,p.opacity.value=f.opacity;else if(f instanceof THREE.ParticleBasicMaterial)p.psColor.value= +f.color,p.opacity.value=f.opacity,p.size.value=f.size,p.scale.value=V.height/2,p.map.texture=f.map;else if(f instanceof THREE.MeshPhongMaterial)p.ambient.value=f.ambient,p.specular.value=f.specular,p.shininess.value=f.shininess;else if(f instanceof THREE.MeshDepthMaterial)p.mNear.value=b.near,p.mFar.value=b.far,p.opacity.value=f.opacity;else if(f instanceof THREE.MeshNormalMaterial)p.opacity.value=f.opacity;if(k.receiveShadow&&!f._shadowPass&&p.shadowMatrix){for(c=0;c<oa.length;c++)p.shadowMatrix.value[c]= +oa[c],p.shadowMap.texture[c]=X.shadowMap[c];p.shadowDarkness.value=X.shadowMapDarkness;p.shadowBias.value=X.shadowMapBias}c=f.uniformsList;p=0;for(e=c.length;p<e;p++)if(v=h.uniforms[c[p][1]])if(w=c[p][0],x=w.type,n=w.value,x=="i")o.uniform1i(v,n);else if(x=="f")o.uniform1f(v,n);else if(x=="v2")o.uniform2f(v,n.x,n.y);else if(x=="v3")o.uniform3f(v,n.x,n.y,n.z);else if(x=="v4")o.uniform4f(v,n.x,n.y,n.z,n.w);else if(x=="c")o.uniform3f(v,n.r,n.g,n.b);else if(x=="fv1")o.uniform1fv(v,n);else if(x=="fv")o.uniform3fv(v, +n);else if(x=="v3v"){if(!w._array)w._array=new Float32Array(3*n.length);x=0;for(z=n.length;x<z;x++)O=x*3,w._array[O]=n[x].x,w._array[O+1]=n[x].y,w._array[O+2]=n[x].z;o.uniform3fv(v,w._array)}else if(x=="m4"){if(!w._array)w._array=new Float32Array(16);n.flattenToArray(w._array);o.uniformMatrix4fv(v,!1,w._array)}else if(x=="m4v"){if(!w._array)w._array=new Float32Array(16*n.length);x=0;for(z=n.length;x<z;x++)n[x].flattenToArrayOffset(w._array,x*16);o.uniformMatrix4fv(v,!1,w._array)}else if(x=="t"){if(o.uniform1i(v, +n),v=w.texture)if(v.image instanceof Array&&v.image.length==6){if(w=v,w.image.length==6)if(w.needsUpdate){if(!w.image.__webglTextureCube)w.image.__webglTextureCube=o.createTexture();o.activeTexture(o.TEXTURE0+n);o.bindTexture(o.TEXTURE_CUBE_MAP,w.image.__webglTextureCube);for(n=0;n<6;n++)o.texImage2D(o.TEXTURE_CUBE_MAP_POSITIVE_X+n,0,o.RGBA,o.RGBA,o.UNSIGNED_BYTE,w.image[n]);H(o.TEXTURE_CUBE_MAP,w,w.image[0]);w.needsUpdate=!1}else o.activeTexture(o.TEXTURE0+n),o.bindTexture(o.TEXTURE_CUBE_MAP,w.image.__webglTextureCube)}else v instanceof +THREE.WebGLRenderTargetCube?(w=v,o.activeTexture(o.TEXTURE0+n),o.bindTexture(o.TEXTURE_CUBE_MAP,w.__webglTexture)):K(v,n)}else if(x=="tv"){if(!w._array){w._array=[];x=0;for(z=w.texture.length;x<z;x++)w._array[x]=n+x}o.uniform1iv(v,w._array);x=0;for(z=w.texture.length;x<z;x++)(v=w.texture[x])&&K(v,w._array[x])}(f instanceof THREE.ShaderMaterial||f instanceof THREE.MeshPhongMaterial||f.envMap)&&m.cameraPosition!==null&&o.uniform3f(m.cameraPosition,b.position.x,b.position.y,b.position.z);(f instanceof +THREE.MeshPhongMaterial||f instanceof THREE.MeshLambertMaterial||f instanceof THREE.ShaderMaterial||f.skinning)&&m.viewMatrix!==null&&o.uniformMatrix4fv(m.viewMatrix,!1,Ba);f.skinning&&(o.uniformMatrix4fv(m.cameraInverseMatrix,!1,Ba),o.uniformMatrix4fv(m.boneGlobalMatrices,!1,k.boneMatrices))}o.uniformMatrix4fv(m.modelViewMatrix,!1,k._modelViewMatrixArray);m.normalMatrix&&o.uniformMatrix3fv(m.normalMatrix,!1,k._normalMatrixArray);(f instanceof THREE.ShaderMaterial||f.envMap||f.skinning||k.receiveShadow)&& +m.objectMatrix!==null&&o.uniformMatrix4fv(m.objectMatrix,!1,k._objectMatrixArray);return h}function f(b,c,f,k,h,m){if(k.opacity!=0){var n,f=e(b,c,f,k,m),b=f.attributes,c=!1,f=h.id*16777215+f.id;f!=ma&&(ma=f,c=!0);if(!k.morphTargets&&b.position>=0)c&&(o.bindBuffer(o.ARRAY_BUFFER,h.__webglVertexBuffer),o.vertexAttribPointer(b.position,3,o.FLOAT,!1,0,0));else if(m.morphTargetBase){f=k.program.attributes;m.morphTargetBase!==-1?(o.bindBuffer(o.ARRAY_BUFFER,h.__webglMorphTargetsBuffers[m.morphTargetBase]), +o.vertexAttribPointer(f.position,3,o.FLOAT,!1,0,0)):f.position>=0&&(o.bindBuffer(o.ARRAY_BUFFER,h.__webglVertexBuffer),o.vertexAttribPointer(f.position,3,o.FLOAT,!1,0,0));if(m.morphTargetForcedOrder.length)for(var p=0,t=m.morphTargetForcedOrder,u=m.morphTargetInfluences;p<k.numSupportedMorphTargets&&p<t.length;)o.bindBuffer(o.ARRAY_BUFFER,h.__webglMorphTargetsBuffers[t[p]]),o.vertexAttribPointer(f["morphTarget"+p],3,o.FLOAT,!1,0,0),m.__webglMorphTargetInfluences[p]=u[t[p]],p++;else{var t=[],w=-1, +v=0,u=m.morphTargetInfluences,x,z=u.length,p=0;for(m.morphTargetBase!==-1&&(t[m.morphTargetBase]=!0);p<k.numSupportedMorphTargets;){for(x=0;x<z;x++)!t[x]&&u[x]>w&&(v=x,w=u[v]);o.bindBuffer(o.ARRAY_BUFFER,h.__webglMorphTargetsBuffers[v]);o.vertexAttribPointer(f["morphTarget"+p],3,o.FLOAT,!1,0,0);m.__webglMorphTargetInfluences[p]=w;t[v]=1;w=-1;p++}}k.program.uniforms.morphTargetInfluences!==null&&o.uniform1fv(k.program.uniforms.morphTargetInfluences,m.__webglMorphTargetInfluences)}if(c){if(h.__webglCustomAttributes)for(n in h.__webglCustomAttributes)b[n]>= +0&&(f=h.__webglCustomAttributes[n],o.bindBuffer(o.ARRAY_BUFFER,f.buffer),o.vertexAttribPointer(b[n],f.size,o.FLOAT,!1,0,0));b.color>=0&&(o.bindBuffer(o.ARRAY_BUFFER,h.__webglColorBuffer),o.vertexAttribPointer(b.color,3,o.FLOAT,!1,0,0));b.normal>=0&&(o.bindBuffer(o.ARRAY_BUFFER,h.__webglNormalBuffer),o.vertexAttribPointer(b.normal,3,o.FLOAT,!1,0,0));b.tangent>=0&&(o.bindBuffer(o.ARRAY_BUFFER,h.__webglTangentBuffer),o.vertexAttribPointer(b.tangent,4,o.FLOAT,!1,0,0));b.uv>=0&&(h.__webglUVBuffer?(o.bindBuffer(o.ARRAY_BUFFER, +h.__webglUVBuffer),o.vertexAttribPointer(b.uv,2,o.FLOAT,!1,0,0),o.enableVertexAttribArray(b.uv)):o.disableVertexAttribArray(b.uv));b.uv2>=0&&(h.__webglUV2Buffer?(o.bindBuffer(o.ARRAY_BUFFER,h.__webglUV2Buffer),o.vertexAttribPointer(b.uv2,2,o.FLOAT,!1,0,0),o.enableVertexAttribArray(b.uv2)):o.disableVertexAttribArray(b.uv2));k.skinning&&b.skinVertexA>=0&&b.skinVertexB>=0&&b.skinIndex>=0&&b.skinWeight>=0&&(o.bindBuffer(o.ARRAY_BUFFER,h.__webglSkinVertexABuffer),o.vertexAttribPointer(b.skinVertexA,4, +o.FLOAT,!1,0,0),o.bindBuffer(o.ARRAY_BUFFER,h.__webglSkinVertexBBuffer),o.vertexAttribPointer(b.skinVertexB,4,o.FLOAT,!1,0,0),o.bindBuffer(o.ARRAY_BUFFER,h.__webglSkinIndicesBuffer),o.vertexAttribPointer(b.skinIndex,4,o.FLOAT,!1,0,0),o.bindBuffer(o.ARRAY_BUFFER,h.__webglSkinWeightsBuffer),o.vertexAttribPointer(b.skinWeight,4,o.FLOAT,!1,0,0))}m instanceof THREE.Mesh?(k.wireframe?(o.lineWidth(k.wireframeLinewidth),c&&o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,h.__webglLineBuffer),o.drawElements(o.LINES,h.__webglLineCount, +o.UNSIGNED_SHORT,0)):(c&&o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,h.__webglFaceBuffer),o.drawElements(o.TRIANGLES,h.__webglFaceCount,o.UNSIGNED_SHORT,0)),X.info.render.calls++,X.info.render.vertices+=h.__webglFaceCount,X.info.render.faces+=h.__webglFaceCount/3):m instanceof THREE.Line?(m=m.type==THREE.LineStrip?o.LINE_STRIP:o.LINES,o.lineWidth(k.linewidth),o.drawArrays(m,0,h.__webglLineCount),X.info.render.calls++):m instanceof THREE.ParticleSystem?(o.drawArrays(o.POINTS,0,h.__webglParticleCount),X.info.render.calls++): +m instanceof THREE.Ribbon&&(o.drawArrays(o.TRIANGLE_STRIP,0,h.__webglVertexCount),X.info.render.calls++)}}function h(b,c,e){if(!b.__webglVertexBuffer)b.__webglVertexBuffer=o.createBuffer();if(!b.__webglNormalBuffer)b.__webglNormalBuffer=o.createBuffer();b.hasPos&&(o.bindBuffer(o.ARRAY_BUFFER,b.__webglVertexBuffer),o.bufferData(o.ARRAY_BUFFER,b.positionArray,o.DYNAMIC_DRAW),o.enableVertexAttribArray(c.attributes.position),o.vertexAttribPointer(c.attributes.position,3,o.FLOAT,!1,0,0));if(b.hasNormal){o.bindBuffer(o.ARRAY_BUFFER, +b.__webglNormalBuffer);if(e==THREE.FlatShading){var f,h,k,m,n,p,t,u,w,v,x=b.count*3;for(v=0;v<x;v+=9)e=b.normalArray,f=e[v],h=e[v+1],k=e[v+2],m=e[v+3],p=e[v+4],u=e[v+5],n=e[v+6],t=e[v+7],w=e[v+8],f=(f+m+n)/3,h=(h+p+t)/3,k=(k+u+w)/3,e[v]=f,e[v+1]=h,e[v+2]=k,e[v+3]=f,e[v+4]=h,e[v+5]=k,e[v+6]=f,e[v+7]=h,e[v+8]=k}o.bufferData(o.ARRAY_BUFFER,b.normalArray,o.DYNAMIC_DRAW);o.enableVertexAttribArray(c.attributes.normal);o.vertexAttribPointer(c.attributes.normal,3,o.FLOAT,!1,0,0)}o.drawArrays(o.TRIANGLES, +0,b.count);b.count=0}function k(b){if(la!=b.doubleSided)b.doubleSided?o.disable(o.CULL_FACE):o.enable(o.CULL_FACE),la=b.doubleSided;if(ga!=b.flipSided)b.flipSided?o.frontFace(o.CW):o.frontFace(o.CCW),ga=b.flipSided}function m(b){ca!=b&&(b?o.enable(o.DEPTH_TEST):o.disable(o.DEPTH_TEST),ca=b)}function n(b){aa!=b&&(o.depthMask(b),aa=b)}function t(b,c,e){ha!=b&&(b?o.enable(o.POLYGON_OFFSET_FILL):o.disable(o.POLYGON_OFFSET_FILL),ha=b);if(b&&(ka!=c||sa!=e))o.polygonOffset(c,e),ka=c,sa=e}function u(b){va[0].set(b.n41- +b.n11,b.n42-b.n12,b.n43-b.n13,b.n44-b.n14);va[1].set(b.n41+b.n11,b.n42+b.n12,b.n43+b.n13,b.n44+b.n14);va[2].set(b.n41+b.n21,b.n42+b.n22,b.n43+b.n23,b.n44+b.n24);va[3].set(b.n41-b.n21,b.n42-b.n22,b.n43-b.n23,b.n44-b.n24);va[4].set(b.n41-b.n31,b.n42-b.n32,b.n43-b.n33,b.n44-b.n34);va[5].set(b.n41+b.n31,b.n42+b.n32,b.n43+b.n33,b.n44+b.n34);for(var c,b=0;b<6;b++)c=va[b],c.divideScalar(Math.sqrt(c.x*c.x+c.y*c.y+c.z*c.z))}function v(b){for(var c=b.matrixWorld,e=-b.geometry.boundingSphere.radius*Math.max(b.scale.x, +Math.max(b.scale.y,b.scale.z)),f=0;f<6;f++)if(b=va[f].x*c.n14+va[f].y*c.n24+va[f].z*c.n34+va[f].w,b<=e)return!1;return!0}function p(b,c){b.list[b.count]=c;b.count+=1}function x(b){var c,e,f=b.object,h=b.opaque,k=b.transparent;k.count=0;b=h.count=0;for(c=f.materials.length;b<c;b++)e=f.materials[b],e.transparent?p(k,e):p(h,e)}function w(b){var c,e,f,h,k=b.object,m=b.buffer,n=b.opaque,o=b.transparent;o.count=0;b=n.count=0;for(f=k.materials.length;b<f;b++)if(c=k.materials[b],c instanceof THREE.MeshFaceMaterial){c= +0;for(e=m.materials.length;c<e;c++)(h=m.materials[c])&&(h.transparent?p(o,h):p(n,h))}else(h=c)&&(h.transparent?p(o,h):p(n,h))}function A(b,c){return c.z-b.z}function z(b){var c,n,p,t=0,w,x,z,y,A=b.lights;wa||(wa=new THREE.PerspectiveCamera(X.shadowCameraFov,X.shadowMapWidth/X.shadowMapHeight,X.shadowCameraNear,X.shadowCameraFar));c=0;for(n=A.length;c<n;c++)if(p=A[c],p instanceof THREE.SpotLight&&p.castShadow){fa=-1;X.shadowMap[t]||(X.shadowMap[t]=new THREE.WebGLRenderTarget(X.shadowMapWidth,X.shadowMapHeight, +{minFilter:THREE.LinearFilter,magFilter:THREE.LinearFilter,format:THREE.RGBAFormat}));oa[t]||(oa[t]=new THREE.Matrix4);w=X.shadowMap[t];x=oa[t];wa.position.copy(p.position);wa.lookAt(p.target.position);wa.update(void 0,!0);b.update(void 0,!1,wa);x.set(0.5,0,0,0.5,0,0.5,0,0.5,0,0,0.5,0.5,0,0,0,1);x.multiplySelf(wa.projectionMatrix);x.multiplySelf(wa.matrixWorldInverse);wa.matrixWorldInverse.flattenToArray(Ba);wa.projectionMatrix.flattenToArray(Ea);ua.multiply(wa.projectionMatrix,wa.matrixWorldInverse); +u(ua);X.initWebGLObjects(b);Z(w);o.clearColor(1,1,1,1);X.clear();o.clearColor(ia.r,ia.g,ia.b,ja);x=b.__webglObjects.length;p=b.__webglObjectsImmediate.length;for(w=0;w<x;w++)z=b.__webglObjects[w],y=z.object,y.visible&&y.castShadow?!(y instanceof THREE.Mesh)||!y.frustumCulled||v(y)?(y.matrixWorld.flattenToArray(y._objectMatrixArray),C(y,wa,!1),z.render=!0):z.render=!1:z.render=!1;m(!0);G(THREE.NormalBlending);for(w=0;w<x;w++)if(z=b.__webglObjects[w],z.render)y=z.object,buffer=z.buffer,k(y),z=y.customDepthMaterial? +y.customDepthMaterial:y.geometry.morphTargets.length?Ka:za,f(wa,A,null,z,buffer,y);for(w=0;w<p;w++)z=b.__webglObjectsImmediate[w],y=z.object,y.visible&&y.castShadow&&(y.matrixAutoUpdate&&y.matrixWorld.flattenToArray(y._objectMatrixArray),ma=-1,C(y,wa,!1),k(y),program=e(wa,A,null,za,y),y.immediateRenderCallback?y.immediateRenderCallback(program,o,va):y.render(function(b){h(b,program,za.shading)}));t++}}function y(b,c){var e,f,h;e=W.attributes;var k=W.uniforms,m=ra/na,n,p=[],t=na*0.5,u=ra*0.5,w=!0; +o.useProgram(W.program);R=W.program;ma=ca=$=-1;Ja||(o.enableVertexAttribArray(W.attributes.position),o.enableVertexAttribArray(W.attributes.uv),Ja=!0);o.disable(o.CULL_FACE);o.enable(o.BLEND);o.depthMask(!0);o.bindBuffer(o.ARRAY_BUFFER,W.vertexBuffer);o.vertexAttribPointer(e.position,2,o.FLOAT,!1,16,0);o.vertexAttribPointer(e.uv,2,o.FLOAT,!1,16,8);o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,W.elementBuffer);o.uniformMatrix4fv(k.projectionMatrix,!1,Ea);o.activeTexture(o.TEXTURE0);o.uniform1i(k.map,0);e=0; +for(f=b.__webglSprites.length;e<f;e++)if(h=b.__webglSprites[e],h.visible&&h.opacity!=0)h.useScreenCoordinates?h.z=-h.position.z:(h._modelViewMatrix.multiplyToArray(c.matrixWorldInverse,h.matrixWorld,h._modelViewMatrixArray),h.z=-h._modelViewMatrix.n34);b.__webglSprites.sort(A);e=0;for(f=b.__webglSprites.length;e<f;e++)h=b.__webglSprites[e],h.visible&&h.opacity!=0&&h.map&&h.map.image&&h.map.image.width&&(h.useScreenCoordinates?(o.uniform1i(k.useScreenCoordinates,1),o.uniform3f(k.screenPosition,(h.position.x- +t)/t,(u-h.position.y)/u,Math.max(0,Math.min(1,h.position.z)))):(o.uniform1i(k.useScreenCoordinates,0),o.uniform1i(k.affectedByDistance,h.affectedByDistance?1:0),o.uniformMatrix4fv(k.modelViewMatrix,!1,h._modelViewMatrixArray)),n=h.map.image.width/(h.scaleByViewport?ra:1),p[0]=n*m*h.scale.x,p[1]=n*h.scale.y,o.uniform2f(k.uvScale,h.uvScale.x,h.uvScale.y),o.uniform2f(k.uvOffset,h.uvOffset.x,h.uvOffset.y),o.uniform2f(k.alignment,h.alignment.x,h.alignment.y),o.uniform1f(k.opacity,h.opacity),o.uniform3f(k.color, +h.color.r,h.color.g,h.color.b),o.uniform1f(k.rotation,h.rotation),o.uniform2fv(k.scale,p),h.mergeWith3D&&!w?(o.enable(o.DEPTH_TEST),w=!0):!h.mergeWith3D&&w&&(o.disable(o.DEPTH_TEST),w=!1),G(h.blending),K(h.map,0),o.drawElements(o.TRIANGLES,6,o.UNSIGNED_SHORT,0));o.enable(o.CULL_FACE);o.enable(o.DEPTH_TEST);o.depthMask(aa)}function C(b,c,e){b._modelViewMatrix.multiplyToArray(c.matrixWorldInverse,b.matrixWorld,b._modelViewMatrixArray);e&&THREE.Matrix4.makeInvert3x3(b._modelViewMatrix).transposeIntoArray(b._normalMatrixArray)} +function E(b){var c,e,f,h;h=b.__materials;b=0;for(e=h.length;b<e;b++)if(f=h[b],f.attributes)for(c in f.attributes)if(f.attributes[c].needsUpdate)return!0;return!1}function D(b){var c,e,f,h;h=b.__materials;b=0;for(e=h.length;b<e;b++)if(f=h[b],f.attributes)for(c in f.attributes)f.attributes[c].needsUpdate=!1}function F(b,c){var e;for(e=b.length-1;e>=0;e--)b[e].object==c&&b.splice(e,1)}function M(b){function c(b){var h=[];e=0;for(f=b.length;e<f;e++)b[e]==void 0?h.push("undefined"):h.push(b[e].id);return h.join("_")} +var e,f,h,k,m,n,o,p,t={},u=b.morphTargets!==void 0?b.morphTargets.length:0;b.geometryGroups={};h=0;for(k=b.faces.length;h<k;h++)m=b.faces[h],n=m.materials,o=c(n),t[o]==void 0&&(t[o]={hash:o,counter:0}),p=t[o].hash+"_"+t[o].counter,b.geometryGroups[p]==void 0&&(b.geometryGroups[p]={faces:[],materials:n,vertices:0,numMorphTargets:u}),m=m instanceof THREE.Face3?3:4,b.geometryGroups[p].vertices+m>65535&&(t[o].counter+=1,p=t[o].hash+"_"+t[o].counter,b.geometryGroups[p]==void 0&&(b.geometryGroups[p]={faces:[], +materials:n,vertices:0,numMorphTargets:u})),b.geometryGroups[p].faces.push(h),b.geometryGroups[p].vertices+=m;b.geometryGroupsList=[];for(var w in b.geometryGroups)b.geometryGroups[w].id=da++,b.geometryGroupsList.push(b.geometryGroups[w])}function N(b,c,e){b.push({buffer:c,object:e,opaque:{list:[],count:0},transparent:{list:[],count:0}})}function G(b){if(b!=$){switch(b){case THREE.AdditiveBlending:o.blendEquation(o.FUNC_ADD);o.blendFunc(o.SRC_ALPHA,o.ONE);break;case THREE.SubtractiveBlending:o.blendEquation(o.FUNC_ADD); +o.blendFunc(o.ZERO,o.ONE_MINUS_SRC_COLOR);break;case THREE.MultiplyBlending:o.blendEquation(o.FUNC_ADD);o.blendFunc(o.ZERO,o.SRC_COLOR);break;default:o.blendEquationSeparate(o.FUNC_ADD,o.FUNC_ADD),o.blendFuncSeparate(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA,o.ONE,o.ONE_MINUS_SRC_ALPHA)}$=b}}function H(b,c,e){(e.width&e.width-1)==0&&(e.height&e.height-1)==0?(o.texParameteri(b,o.TEXTURE_WRAP_S,Y(c.wrapS)),o.texParameteri(b,o.TEXTURE_WRAP_T,Y(c.wrapT)),o.texParameteri(b,o.TEXTURE_MAG_FILTER,Y(c.magFilter)), +o.texParameteri(b,o.TEXTURE_MIN_FILTER,Y(c.minFilter)),o.generateMipmap(b)):(o.texParameteri(b,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(b,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.texParameteri(b,o.TEXTURE_MAG_FILTER,U(c.magFilter)),o.texParameteri(b,o.TEXTURE_MIN_FILTER,U(c.minFilter)))}function K(b,c){if(b.needsUpdate){if(!b.__webglInit)b.__webglInit=!0,b.__webglTexture=o.createTexture(),X.info.memory.textures++;o.activeTexture(o.TEXTURE0+c);o.bindTexture(o.TEXTURE_2D,b.__webglTexture);b instanceof +THREE.DataTexture?o.texImage2D(o.TEXTURE_2D,0,Y(b.format),b.image.width,b.image.height,0,Y(b.format),o.UNSIGNED_BYTE,b.image.data):o.texImage2D(o.TEXTURE_2D,0,o.RGBA,o.RGBA,o.UNSIGNED_BYTE,b.image);H(o.TEXTURE_2D,b,b.image);b.needsUpdate=!1}else o.activeTexture(o.TEXTURE0+c),o.bindTexture(o.TEXTURE_2D,b.__webglTexture)}function Z(b){var c=b instanceof THREE.WebGLRenderTargetCube;if(b&&!b.__webglFramebuffer){if(b.depthBuffer===void 0)b.depthBuffer=!0;if(b.stencilBuffer===void 0)b.stencilBuffer=!0; +b.__webglRenderbuffer=o.createRenderbuffer();b.__webglTexture=o.createTexture();if(c){o.bindTexture(o.TEXTURE_CUBE_MAP,b.__webglTexture);H(o.TEXTURE_CUBE_MAP,b,b);b.__webglFramebuffer=[];for(var e=0;e<6;e++)b.__webglFramebuffer[e]=o.createFramebuffer(),o.texImage2D(o.TEXTURE_CUBE_MAP_POSITIVE_X+e,0,Y(b.format),b.width,b.height,0,Y(b.format),Y(b.type),null)}else b.__webglFramebuffer=o.createFramebuffer(),o.bindTexture(o.TEXTURE_2D,b.__webglTexture),H(o.TEXTURE_2D,b,b),o.texImage2D(o.TEXTURE_2D,0,Y(b.format), +b.width,b.height,0,Y(b.format),Y(b.type),null);o.bindRenderbuffer(o.RENDERBUFFER,b.__webglRenderbuffer);if(c)for(e=0;e<6;++e)o.bindFramebuffer(o.FRAMEBUFFER,b.__webglFramebuffer[e]),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_CUBE_MAP_POSITIVE_X+e,b.__webglTexture,0);else o.bindFramebuffer(o.FRAMEBUFFER,b.__webglFramebuffer),o.framebufferTexture2D(o.FRAMEBUFFER,o.COLOR_ATTACHMENT0,o.TEXTURE_2D,b.__webglTexture,0);b.depthBuffer&&!b.stencilBuffer?(o.renderbufferStorage(o.RENDERBUFFER, +o.DEPTH_COMPONENT16,b.width,b.height),o.framebufferRenderbuffer(o.FRAMEBUFFER,o.DEPTH_ATTACHMENT,o.RENDERBUFFER,b.__webglRenderbuffer)):b.depthBuffer&&b.stencilBuffer?(o.renderbufferStorage(o.RENDERBUFFER,o.DEPTH_STENCIL,b.width,b.height),o.framebufferRenderbuffer(o.FRAMEBUFFER,o.DEPTH_STENCIL_ATTACHMENT,o.RENDERBUFFER,b.__webglRenderbuffer)):o.renderbufferStorage(o.RENDERBUFFER,o.RGBA4,b.width,b.height);c?o.bindTexture(o.TEXTURE_CUBE_MAP,null):o.bindTexture(o.TEXTURE_2D,null);o.bindRenderbuffer(o.RENDERBUFFER, +null);o.bindFramebuffer(o.FRAMEBUFFER,null)}var f,h;b?(c=c?b.__webglFramebuffer[b.activeCubeFace]:b.__webglFramebuffer,e=b.width,b=b.height,h=f=0):(c=null,e=na,b=ra,f=J,h=Q);c!=pa&&(o.bindFramebuffer(o.FRAMEBUFFER,c),o.viewport(f,h,e,b),pa=c)}function L(b){b instanceof THREE.WebGLRenderTargetCube?(o.bindTexture(o.TEXTURE_CUBE_MAP,b.__webglTexture),o.generateMipmap(o.TEXTURE_CUBE_MAP),o.bindTexture(o.TEXTURE_CUBE_MAP,null)):(o.bindTexture(o.TEXTURE_2D,b.__webglTexture),o.generateMipmap(o.TEXTURE_2D), +o.bindTexture(o.TEXTURE_2D,null))}function P(b,c){var e;b=="fragment"?e=o.createShader(o.FRAGMENT_SHADER):b=="vertex"&&(e=o.createShader(o.VERTEX_SHADER));o.shaderSource(e,c);o.compileShader(e);if(!o.getShaderParameter(e,o.COMPILE_STATUS))return console.error(o.getShaderInfoLog(e)),console.error(c),null;return e}function U(b){switch(b){case THREE.NearestFilter:case THREE.NearestMipMapNearestFilter:case THREE.NearestMipMapLinearFilter:return o.NEAREST;default:return o.LINEAR}}function Y(b){switch(b){case THREE.RepeatWrapping:return o.REPEAT; +case THREE.ClampToEdgeWrapping:return o.CLAMP_TO_EDGE;case THREE.MirroredRepeatWrapping:return o.MIRRORED_REPEAT;case THREE.NearestFilter:return o.NEAREST;case THREE.NearestMipMapNearestFilter:return o.NEAREST_MIPMAP_NEAREST;case THREE.NearestMipMapLinearFilter:return o.NEAREST_MIPMAP_LINEAR;case THREE.LinearFilter:return o.LINEAR;case THREE.LinearMipMapNearestFilter:return o.LINEAR_MIPMAP_NEAREST;case THREE.LinearMipMapLinearFilter:return o.LINEAR_MIPMAP_LINEAR;case THREE.ByteType:return o.BYTE; +case THREE.UnsignedByteType:return o.UNSIGNED_BYTE;case THREE.ShortType:return o.SHORT;case THREE.UnsignedShortType:return o.UNSIGNED_SHORT;case THREE.IntType:return o.INT;case THREE.UnsignedShortType:return o.UNSIGNED_INT;case THREE.FloatType:return o.FLOAT;case THREE.AlphaFormat:return o.ALPHA;case THREE.RGBFormat:return o.RGB;case THREE.RGBAFormat:return o.RGBA;case THREE.LuminanceFormat:return o.LUMINANCE;case THREE.LuminanceAlphaFormat:return o.LUMINANCE_ALPHA}return 0}var X=this,o,ea=[],R=null, +pa=null,fa=-1,ma=null,da=0,la=null,ga=null,$=null,ca=null,aa=null,ha=null,ka=null,sa=null,J=0,Q=0,na=0,ra=0,va=[new THREE.Vector4,new THREE.Vector4,new THREE.Vector4,new THREE.Vector4,new THREE.Vector4,new THREE.Vector4],ua=new THREE.Matrix4,Ea=new Float32Array(16),Ba=new Float32Array(16),Da=new THREE.Vector4,Fa={ambient:[0,0,0],directional:{length:0,colors:[],positions:[]},point:{length:0,colors:[],positions:[],distances:[]}},b=b||{},V=b.canvas!==void 0?b.canvas:document.createElement("canvas"), +T=b.stencil!==void 0?b.stencil:!0,O=b.preserveDrawingBuffer!==void 0?b.preserveDrawingBuffer:!1,qa=b.antialias!==void 0?b.antialias:!1,ia=b.clearColor!==void 0?new THREE.Color(b.clearColor):new THREE.Color(0),ja=b.clearAlpha!==void 0?b.clearAlpha:0,ya=b.maxLights!==void 0?b.maxLights:4;this.info={memory:{programs:0,geometries:0,textures:0},render:{calls:0,vertices:0,faces:0}};this.maxMorphTargets=8;this.domElement=V;this.sortObjects=this.autoClearStencil=this.autoClearDepth=this.autoClearColor=this.autoClear= +!0;this.shadowMapBias=0.0039;this.shadowMapDarkness=0.5;this.shadowMapHeight=this.shadowMapWidth=512;this.shadowCameraNear=1;this.shadowCameraFar=5E3;this.shadowCameraFov=50;this.shadowMap=[];this.shadowMapEnabled=!1;this.shadowMapSoft=!0;var wa,oa=[],b=THREE.ShaderLib.depthRGBA,Ia=THREE.UniformsUtils.clone(b.uniforms),za=new THREE.ShaderMaterial({fragmentShader:b.fragmentShader,vertexShader:b.vertexShader,uniforms:Ia}),Ka=new THREE.ShaderMaterial({fragmentShader:b.fragmentShader,vertexShader:b.vertexShader, +uniforms:Ia,morphTargets:!0});za._shadowPass=!0;Ka._shadowPass=!0;try{if(!(o=V.getContext("experimental-webgl",{antialias:qa,stencil:T,preserveDrawingBuffer:O})))throw"Error creating WebGL context.";console.log(navigator.userAgent+" | "+o.getParameter(o.VERSION)+" | "+o.getParameter(o.VENDOR)+" | "+o.getParameter(o.RENDERER)+" | "+o.getParameter(o.SHADING_LANGUAGE_VERSION))}catch(Ca){console.error(Ca)}o.clearColor(0,0,0,1);o.clearDepth(1);o.clearStencil(0);o.enable(o.DEPTH_TEST);o.depthFunc(o.LEQUAL); +o.frontFace(o.CCW);o.cullFace(o.BACK);o.enable(o.CULL_FACE);o.enable(o.BLEND);o.blendEquation(o.FUNC_ADD);o.blendFunc(o.SRC_ALPHA,o.ONE_MINUS_SRC_ALPHA);o.clearColor(ia.r,ia.g,ia.b,ja);this.context=o;var Ga=o.getParameter(o.MAX_VERTEX_TEXTURE_IMAGE_UNITS)>0,W={};W.vertices=new Float32Array(16);W.faces=new Uint16Array(6);T=0;W.vertices[T++]=-1;W.vertices[T++]=-1;W.vertices[T++]=0;W.vertices[T++]=1;W.vertices[T++]=1;W.vertices[T++]=-1;W.vertices[T++]=1;W.vertices[T++]=1;W.vertices[T++]=1;W.vertices[T++]= +1;W.vertices[T++]=1;W.vertices[T++]=0;W.vertices[T++]=-1;W.vertices[T++]=1;W.vertices[T++]=0;T=W.vertices[T++]=0;W.faces[T++]=0;W.faces[T++]=1;W.faces[T++]=2;W.faces[T++]=0;W.faces[T++]=2;W.faces[T++]=3;W.vertexBuffer=o.createBuffer();W.elementBuffer=o.createBuffer();o.bindBuffer(o.ARRAY_BUFFER,W.vertexBuffer);o.bufferData(o.ARRAY_BUFFER,W.vertices,o.STATIC_DRAW);o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,W.elementBuffer);o.bufferData(o.ELEMENT_ARRAY_BUFFER,W.faces,o.STATIC_DRAW);W.program=o.createProgram(); +o.attachShader(W.program,P("fragment",THREE.ShaderLib.sprite.fragmentShader));o.attachShader(W.program,P("vertex",THREE.ShaderLib.sprite.vertexShader));o.linkProgram(W.program);W.attributes={};W.uniforms={};W.attributes.position=o.getAttribLocation(W.program,"position");W.attributes.uv=o.getAttribLocation(W.program,"uv");W.uniforms.uvOffset=o.getUniformLocation(W.program,"uvOffset");W.uniforms.uvScale=o.getUniformLocation(W.program,"uvScale");W.uniforms.rotation=o.getUniformLocation(W.program,"rotation"); +W.uniforms.scale=o.getUniformLocation(W.program,"scale");W.uniforms.alignment=o.getUniformLocation(W.program,"alignment");W.uniforms.color=o.getUniformLocation(W.program,"color");W.uniforms.map=o.getUniformLocation(W.program,"map");W.uniforms.opacity=o.getUniformLocation(W.program,"opacity");W.uniforms.useScreenCoordinates=o.getUniformLocation(W.program,"useScreenCoordinates");W.uniforms.affectedByDistance=o.getUniformLocation(W.program,"affectedByDistance");W.uniforms.screenPosition=o.getUniformLocation(W.program, +"screenPosition");W.uniforms.modelViewMatrix=o.getUniformLocation(W.program,"modelViewMatrix");W.uniforms.projectionMatrix=o.getUniformLocation(W.program,"projectionMatrix");var Ja=!1;this.setSize=function(b,c){V.width=b;V.height=c;this.setViewport(0,0,V.width,V.height)};this.setViewport=function(b,c,e,f){J=b;Q=c;na=e;ra=f;o.viewport(J,Q,na,ra)};this.setScissor=function(b,c,e,f){o.scissor(b,c,e,f)};this.enableScissorTest=function(b){b?o.enable(o.SCISSOR_TEST):o.disable(o.SCISSOR_TEST)};this.setClearColorHex= +function(b,c){ia.setHex(b);ja=c;o.clearColor(ia.r,ia.g,ia.b,ja)};this.setClearColor=function(b,c){ia.copy(b);ja=c;o.clearColor(ia.r,ia.g,ia.b,ja)};this.getClearColor=function(){return ia};this.getClearAlpha=function(){return ja};this.clear=function(b,c,e){var f=0;if(b==void 0||b)f|=o.COLOR_BUFFER_BIT;if(c==void 0||c)f|=o.DEPTH_BUFFER_BIT;if(e==void 0||e)f|=o.STENCIL_BUFFER_BIT;o.clear(f)};this.getContext=function(){return o};this.deallocateObject=function(b){if(b.__webglInit)if(b.__webglInit=!1,delete b._modelViewMatrix, +delete b._normalMatrixArray,delete b._modelViewMatrixArray,delete b._objectMatrixArray,b instanceof THREE.Mesh)for(g in b.geometry.geometryGroups){var c=b.geometry.geometryGroups[g];o.deleteBuffer(c.__webglVertexBuffer);o.deleteBuffer(c.__webglNormalBuffer);o.deleteBuffer(c.__webglTangentBuffer);o.deleteBuffer(c.__webglColorBuffer);o.deleteBuffer(c.__webglUVBuffer);o.deleteBuffer(c.__webglUV2Buffer);o.deleteBuffer(c.__webglSkinVertexABuffer);o.deleteBuffer(c.__webglSkinVertexBBuffer);o.deleteBuffer(c.__webglSkinIndicesBuffer); +o.deleteBuffer(c.__webglSkinWeightsBuffer);o.deleteBuffer(c.__webglFaceBuffer);o.deleteBuffer(c.__webglLineBuffer);if(c.numMorphTargets)for(var e=0,f=c.numMorphTargets;e<f;e++)o.deleteBuffer(c.__webglMorphTargetsBuffers[e]);X.info.memory.geometries--}else if(b instanceof THREE.Ribbon)b=b.geometry,o.deleteBuffer(b.__webglVertexBuffer),o.deleteBuffer(b.__webglColorBuffer),X.info.memory.geometries--;else if(b instanceof THREE.Line)b=b.geometry,o.deleteBuffer(b.__webglVertexBuffer),o.deleteBuffer(b.__webglColorBuffer), +X.info.memory.geometries--;else if(b instanceof THREE.ParticleSystem)b=b.geometry,o.deleteBuffer(b.__webglVertexBuffer),o.deleteBuffer(b.__webglColorBuffer),X.info.memory.geometries--};this.deallocateTexture=function(b){if(b.__webglInit)b.__webglInit=!1,o.deleteTexture(b.__webglTexture),X.info.memory.textures--};this.initMaterial=function(b,c,e,f){var h,k,m,n;b instanceof THREE.MeshDepthMaterial?n="depth":b instanceof THREE.MeshNormalMaterial?n="normal":b instanceof THREE.MeshBasicMaterial?n="basic": +b instanceof THREE.MeshLambertMaterial?n="lambert":b instanceof THREE.MeshPhongMaterial?n="phong":b instanceof THREE.LineBasicMaterial?n="basic":b instanceof THREE.ParticleBasicMaterial&&(n="particle_basic");if(n){var p=THREE.ShaderLib[n];b.uniforms=THREE.UniformsUtils.clone(p.uniforms);b.vertexShader=p.vertexShader;b.fragmentShader=p.fragmentShader}var t,u,w;t=w=p=0;for(u=c.length;t<u;t++)m=c[t],m instanceof THREE.SpotLight&&w++,m instanceof THREE.DirectionalLight&&w++,m instanceof THREE.PointLight&& +p++;p+w<=ya?t=w:(t=Math.ceil(ya*w/(p+w)),p=ya-t);m={directional:t,point:p};p=w=0;for(t=c.length;p<t;p++)u=c[p],u instanceof THREE.SpotLight&&u.castShadow&&w++;var v=50;if(f!==void 0&&f instanceof THREE.SkinnedMesh)v=f.bones.length;var x;a:{t=b.fragmentShader;u=b.vertexShader;var p=b.uniforms,c=b.attributes,e={map:!!b.map,envMap:!!b.envMap,lightMap:!!b.lightMap,vertexColors:b.vertexColors,fog:e,useFog:b.fog,sizeAttenuation:b.sizeAttenuation,skinning:b.skinning,morphTargets:b.morphTargets,maxMorphTargets:this.maxMorphTargets, +maxDirLights:m.directional,maxPointLights:m.point,maxBones:v,shadowMapEnabled:this.shadowMapEnabled&&f.receiveShadow,shadowMapSoft:this.shadowMapSoft,shadowMapWidth:this.shadowMapWidth,shadowMapHeight:this.shadowMapHeight,maxShadows:w,alphaTest:b.alphaTest},z,f=[];n?f.push(n):(f.push(t),f.push(u));for(z in e)f.push(z),f.push(e[z]);n=f.join();z=0;for(f=ea.length;z<f;z++)if(ea[z].code==n){x=ea[z].program;break a}z=o.createProgram();f=[Ga?"#define VERTEX_TEXTURES":"","#define MAX_DIR_LIGHTS "+e.maxDirLights, +"#define MAX_POINT_LIGHTS "+e.maxPointLights,"#define MAX_SHADOWS "+e.maxShadows,"#define MAX_BONES "+e.maxBones,e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.lightMap?"#define USE_LIGHTMAP":"",e.vertexColors?"#define USE_COLOR":"",e.skinning?"#define USE_SKINNING":"",e.morphTargets?"#define USE_MORPHTARGETS":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"",e.shadowMapSoft?"#define SHADOWMAP_SOFT":"",e.sizeAttenuation?"#define USE_SIZEATTENUATION":"","uniform mat4 objectMatrix;\nuniform mat4 modelViewMatrix;\nuniform mat4 projectionMatrix;\nuniform mat4 viewMatrix;\nuniform mat3 normalMatrix;\nuniform vec3 cameraPosition;\nuniform mat4 cameraInverseMatrix;\nattribute vec3 position;\nattribute vec3 normal;\nattribute vec2 uv;\nattribute vec2 uv2;\n#ifdef USE_COLOR\nattribute vec3 color;\n#endif\n#ifdef USE_MORPHTARGETS\nattribute vec3 morphTarget0;\nattribute vec3 morphTarget1;\nattribute vec3 morphTarget2;\nattribute vec3 morphTarget3;\nattribute vec3 morphTarget4;\nattribute vec3 morphTarget5;\nattribute vec3 morphTarget6;\nattribute vec3 morphTarget7;\n#endif\n#ifdef USE_SKINNING\nattribute vec4 skinVertexA;\nattribute vec4 skinVertexB;\nattribute vec4 skinIndex;\nattribute vec4 skinWeight;\n#endif\n"].join("\n"); +m=["#ifdef GL_ES\nprecision highp float;\n#endif","#define MAX_DIR_LIGHTS "+e.maxDirLights,"#define MAX_POINT_LIGHTS "+e.maxPointLights,"#define MAX_SHADOWS "+e.maxShadows,e.alphaTest?"#define ALPHATEST "+e.alphaTest:"",e.useFog&&e.fog?"#define USE_FOG":"",e.useFog&&e.fog instanceof THREE.FogExp2?"#define FOG_EXP2":"",e.map?"#define USE_MAP":"",e.envMap?"#define USE_ENVMAP":"",e.lightMap?"#define USE_LIGHTMAP":"",e.vertexColors?"#define USE_COLOR":"",e.shadowMapEnabled?"#define USE_SHADOWMAP":"", +e.shadowMapSoft?"#define SHADOWMAP_SOFT":"",e.shadowMapSoft?"#define SHADOWMAP_WIDTH "+e.shadowMapWidth.toFixed(1):"",e.shadowMapSoft?"#define SHADOWMAP_HEIGHT "+e.shadowMapHeight.toFixed(1):"","uniform mat4 viewMatrix;\nuniform vec3 cameraPosition;\n"].join("\n");o.attachShader(z,P("fragment",m+t));o.attachShader(z,P("vertex",f+u));o.linkProgram(z);o.getProgramParameter(z,o.LINK_STATUS)||console.error("Could not initialise shader\nVALIDATE_STATUS: "+o.getProgramParameter(z,o.VALIDATE_STATUS)+", gl error ["+ +o.getError()+"]");z.uniforms={};z.attributes={};var y,f=["viewMatrix","modelViewMatrix","projectionMatrix","normalMatrix","objectMatrix","cameraPosition","cameraInverseMatrix","boneGlobalMatrices","morphTargetInfluences"];for(y in p)f.push(y);y=f;f=0;for(p=y.length;f<p;f++)t=y[f],z.uniforms[t]=o.getUniformLocation(z,t);f=["position","normal","uv","uv2","tangent","color","skinVertexA","skinVertexB","skinIndex","skinWeight"];for(y=0;y<e.maxMorphTargets;y++)f.push("morphTarget"+y);for(x in c)f.push(x); +x=f;y=0;for(c=x.length;y<c;y++)e=x[y],z.attributes[e]=o.getAttribLocation(z,e);z.id=ea.length;ea.push({program:z,code:n});X.info.memory.programs=ea.length;x=z}b.program=x;x=b.program.attributes;x.position>=0&&o.enableVertexAttribArray(x.position);x.color>=0&&o.enableVertexAttribArray(x.color);x.normal>=0&&o.enableVertexAttribArray(x.normal);x.tangent>=0&&o.enableVertexAttribArray(x.tangent);b.skinning&&x.skinVertexA>=0&&x.skinVertexB>=0&&x.skinIndex>=0&&x.skinWeight>=0&&(o.enableVertexAttribArray(x.skinVertexA), +o.enableVertexAttribArray(x.skinVertexB),o.enableVertexAttribArray(x.skinIndex),o.enableVertexAttribArray(x.skinWeight));if(b.attributes)for(k in b.attributes)x[k]!==void 0&&x[k]>=0&&o.enableVertexAttribArray(x[k]);if(b.morphTargets)for(k=b.numSupportedMorphTargets=0;k<this.maxMorphTargets;k++)y="morphTarget"+k,x[y]>=0&&(o.enableVertexAttribArray(x[y]),b.numSupportedMorphTargets++);b.uniformsList=[];for(h in b.uniforms)b.uniformsList.push([b.uniforms[h],h])};this.clearTarget=function(b,c,e,f){Z(b); +this.clear(c,e,f)};this.render=function(b,c,p,V){var O,T,E,D,F,H,J,qa,K=b.lights,ja=b.fog;fa=-1;this.shadowMapEnabled&&z(b,c);X.info.render.calls=0;X.info.render.vertices=0;X.info.render.faces=0;c.matrixAutoUpdate&&c.update(void 0,!0);b.update(void 0,!1,c);c.matrixWorldInverse.flattenToArray(Ba);c.projectionMatrix.flattenToArray(Ea);ua.multiply(c.projectionMatrix,c.matrixWorldInverse);u(ua);this.initWebGLObjects(b);Z(p);(this.autoClear||V)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil); +F=b.__webglObjects.length;for(V=0;V<F;V++)if(O=b.__webglObjects[V],J=O.object,J.visible)if(!(J instanceof THREE.Mesh)||!J.frustumCulled||v(J)){if(J.matrixWorld.flattenToArray(J._objectMatrixArray),C(J,c,!0),w(O),O.render=!0,this.sortObjects)O.object.renderDepth?O.z=O.object.renderDepth:(Da.copy(J.position),ua.multiplyVector3(Da),O.z=Da.z)}else O.render=!1;else O.render=!1;this.sortObjects&&b.__webglObjects.sort(A);H=b.__webglObjectsImmediate.length;for(V=0;V<H;V++)O=b.__webglObjectsImmediate[V],J= +O.object,J.visible&&(J.matrixAutoUpdate&&J.matrixWorld.flattenToArray(J._objectMatrixArray),C(J,c,!0),x(O));if(b.overrideMaterial){m(b.overrideMaterial.depthTest);G(b.overrideMaterial.blending);for(V=0;V<F;V++)if(O=b.__webglObjects[V],O.render)J=O.object,qa=O.buffer,k(J),f(c,K,ja,b.overrideMaterial,qa,J);for(V=0;V<H;V++)O=b.__webglObjectsImmediate[V],J=O.object,J.visible&&(ma=-1,k(J),T=e(c,K,ja,b.overrideMaterial,J),J.immediateRenderCallback?J.immediateRenderCallback(T,o,va):J.render(function(c){h(c, +T,b.overrideMaterial.shading)}))}else{G(THREE.NormalBlending);for(V=F-1;V>=0;V--)if(O=b.__webglObjects[V],O.render){J=O.object;qa=O.buffer;E=O.opaque;k(J);for(O=0;O<E.count;O++)D=E.list[O],m(D.depthTest),n(D.depthWrite),t(D.polygonOffset,D.polygonOffsetFactor,D.polygonOffsetUnits),f(c,K,ja,D,qa,J)}for(V=0;V<H;V++)if(O=b.__webglObjectsImmediate[V],J=O.object,J.visible){ma=-1;E=O.opaque;k(J);for(O=0;O<E.count;O++)D=E.list[O],m(D.depthTest),n(D.depthWrite),t(D.polygonOffset,D.polygonOffsetFactor,D.polygonOffsetUnits), +T=e(c,K,ja,D,J),J.immediateRenderCallback?J.immediateRenderCallback(T,o,va):J.render(function(b){h(b,T,D.shading)})}for(V=0;V<F;V++)if(O=b.__webglObjects[V],O.render){J=O.object;qa=O.buffer;E=O.transparent;k(J);for(O=0;O<E.count;O++)D=E.list[O],G(D.blending),m(D.depthTest),n(D.depthWrite),t(D.polygonOffset,D.polygonOffsetFactor,D.polygonOffsetUnits),f(c,K,ja,D,qa,J)}for(V=0;V<H;V++)if(O=b.__webglObjectsImmediate[V],J=O.object,J.visible){ma=-1;E=O.transparent;k(J);for(O=0;O<E.count;O++)D=E.list[O], +G(D.blending),m(D.depthTest),n(D.depthWrite),t(D.polygonOffset,D.polygonOffsetFactor,D.polygonOffsetUnits),T=e(c,K,ja,D,J),J.immediateRenderCallback?J.immediateRenderCallback(T,o,va):J.render(function(b){h(b,T,D.shading)})}}b.__webglSprites.length&&y(b,c);p&&p.minFilter!==THREE.NearestFilter&&p.minFilter!==THREE.LinearFilter&&L(p)};this.initWebGLObjects=function(b){if(!b.__webglObjects)b.__webglObjects=[],b.__webglObjectsImmediate=[],b.__webglSprites=[];for(;b.__objectsAdded.length;){var e=b.__objectsAdded[0], +f=b,h=void 0,k=void 0,m=void 0;if(!e.__webglInit)if(e.__webglInit=!0,e._modelViewMatrix=new THREE.Matrix4,e._normalMatrixArray=new Float32Array(9),e._modelViewMatrixArray=new Float32Array(16),e._objectMatrixArray=new Float32Array(16),e.matrixWorld.flattenToArray(e._objectMatrixArray),e instanceof THREE.Mesh)for(h in k=e.geometry,k.geometryGroups==void 0&&M(k),k.geometryGroups){if(m=k.geometryGroups[h],!m.__webglVertexBuffer){var n=m;n.__webglVertexBuffer=o.createBuffer();n.__webglNormalBuffer=o.createBuffer(); +n.__webglTangentBuffer=o.createBuffer();n.__webglColorBuffer=o.createBuffer();n.__webglUVBuffer=o.createBuffer();n.__webglUV2Buffer=o.createBuffer();n.__webglSkinVertexABuffer=o.createBuffer();n.__webglSkinVertexBBuffer=o.createBuffer();n.__webglSkinIndicesBuffer=o.createBuffer();n.__webglSkinWeightsBuffer=o.createBuffer();n.__webglFaceBuffer=o.createBuffer();n.__webglLineBuffer=o.createBuffer();if(n.numMorphTargets){var p=void 0,t=void 0;n.__webglMorphTargetsBuffers=[];p=0;for(t=n.numMorphTargets;p< +t;p++)n.__webglMorphTargetsBuffers.push(o.createBuffer())}X.info.memory.geometries++;for(var n=e,u=void 0,w=void 0,x=void 0,v=x=void 0,z=void 0,y=void 0,V=y=p=0,O=x=w=void 0,x=t=O=w=u=void 0,v=n.geometry,z=v.faces,O=m.faces,u=0,w=O.length;u<w;u++)x=O[u],x=z[x],x instanceof THREE.Face3?(p+=3,y+=1,V+=3):x instanceof THREE.Face4&&(p+=4,y+=2,V+=4);for(var u=m,w=n,A=O=z=void 0,T=void 0,A=void 0,x=[],z=0,O=w.materials.length;z<O;z++)if(A=w.materials[z],A instanceof THREE.MeshFaceMaterial){A=0;for(l=u.materials.length;A< +l;A++)(T=u.materials[A])&&x.push(T)}else(T=A)&&x.push(T);u=x;m.__materials=u;a:{z=w=void 0;O=u.length;for(w=0;w<O;w++)if(z=u[w],z.map||z.lightMap||z instanceof THREE.ShaderMaterial){w=!0;break a}w=!1}a:{O=z=void 0;x=u.length;for(z=0;z<x;z++)if(O=u[z],!(O instanceof THREE.MeshBasicMaterial&&!O.envMap||O instanceof THREE.MeshDepthMaterial)){O=O&&O.shading!=void 0&&O.shading==THREE.SmoothShading?THREE.SmoothShading:THREE.FlatShading;break a}O=!1}a:{x=z=void 0;A=u.length;for(z=0;z<A;z++)if(x=u[z],x.vertexColors){x= +x.vertexColors;break a}x=!1}m.__vertexArray=new Float32Array(p*3);if(O)m.__normalArray=new Float32Array(p*3);if(v.hasTangents)m.__tangentArray=new Float32Array(p*4);if(x)m.__colorArray=new Float32Array(p*3);if(w){if(v.faceUvs.length>0||v.faceVertexUvs.length>0)m.__uvArray=new Float32Array(p*2);if(v.faceUvs.length>1||v.faceVertexUvs.length>1)m.__uv2Array=new Float32Array(p*2)}if(n.geometry.skinWeights.length&&n.geometry.skinIndices.length)m.__skinVertexAArray=new Float32Array(p*4),m.__skinVertexBArray= +new Float32Array(p*4),m.__skinIndexArray=new Float32Array(p*4),m.__skinWeightArray=new Float32Array(p*4);m.__faceArray=new Uint16Array(y*3+(n.geometry.edgeFaces?n.geometry.edgeFaces.length*6:0));m.__lineArray=new Uint16Array(V*2);if(m.numMorphTargets){m.__morphTargetsArrays=[];v=0;for(z=m.numMorphTargets;v<z;v++)m.__morphTargetsArrays.push(new Float32Array(p*3))}m.__needsSmoothNormals=O==THREE.SmoothShading;m.__uvType=w;m.__vertexColorType=x;m.__normalType=O;m.__webglFaceCount=y*3+(n.geometry.edgeFaces? +n.geometry.edgeFaces.length*6:0);m.__webglLineCount=V*2;v=0;for(z=u.length;v<z;v++)if(w=u[v],w.attributes){if(m.__webglCustomAttributes===void 0)m.__webglCustomAttributes={};for(a in w.attributes){x=w.attributes[a];O={};for(t in x)O[t]=x[t];if(!O.__webglInitialized||O.createUniqueBuffers)O.__webglInitialized=!0,y=1,O.type==="v2"?y=2:O.type==="v3"?y=3:O.type==="v4"?y=4:O.type==="c"&&(y=3),O.size=y,O.array=new Float32Array(p*y),O.buffer=o.createBuffer(),O.buffer.belongsToAttribute=a,x.needsUpdate=!0, +O.__original=x;m.__webglCustomAttributes[a]=O}}m.__inittedArrays=!0;k.__dirtyVertices=!0;k.__dirtyMorphTargets=!0;k.__dirtyElements=!0;k.__dirtyUvs=!0;k.__dirtyNormals=!0;k.__dirtyTangents=!0;k.__dirtyColors=!0}}else if(e instanceof THREE.Ribbon){if(k=e.geometry,!k.__webglVertexBuffer)m=k,m.__webglVertexBuffer=o.createBuffer(),m.__webglColorBuffer=o.createBuffer(),X.info.memory.geometries++,m=k,n=m.vertices.length,m.__vertexArray=new Float32Array(n*3),m.__colorArray=new Float32Array(n*3),m.__webglVertexCount= +n,k.__dirtyVertices=!0,k.__dirtyColors=!0}else if(e instanceof THREE.Line){if(k=e.geometry,!k.__webglVertexBuffer)m=k,m.__webglVertexBuffer=o.createBuffer(),m.__webglColorBuffer=o.createBuffer(),X.info.memory.geometries++,m=k,n=m.vertices.length,m.__vertexArray=new Float32Array(n*3),m.__colorArray=new Float32Array(n*3),m.__webglLineCount=n,k.__dirtyVertices=!0,k.__dirtyColors=!0}else if(e instanceof THREE.ParticleSystem&&(k=e.geometry,!k.__webglVertexBuffer)){m=k;m.__webglVertexBuffer=o.createBuffer(); +m.__webglColorBuffer=o.createBuffer();X.info.geometries++;m=k;n=e;p=m.vertices.length;m.__vertexArray=new Float32Array(p*3);m.__colorArray=new Float32Array(p*3);m.__sortArray=[];m.__webglParticleCount=p;m.__materials=n.materials;V=y=t=void 0;t=0;for(y=n.materials.length;t<y;t++)if(V=n.materials[t],V.attributes){if(m.__webglCustomAttributes===void 0)m.__webglCustomAttributes={};for(a in V.attributes){originalAttribute=V.attributes[a];attribute={};for(property in originalAttribute)attribute[property]= +originalAttribute[property];if(!attribute.__webglInitialized||attribute.createUniqueBuffers)attribute.__webglInitialized=!0,size=1,attribute.type==="v2"?size=2:attribute.type==="v3"?size=3:attribute.type==="v4"?size=4:attribute.type==="c"&&(size=3),attribute.size=size,attribute.array=new Float32Array(p*size),attribute.buffer=o.createBuffer(),attribute.buffer.belongsToAttribute=a,originalAttribute.needsUpdate=!0,attribute.__original=originalAttribute;m.__webglCustomAttributes[a]=attribute}}k.__dirtyVertices= +!0;k.__dirtyColors=!0}if(!e.__webglActive){if(e instanceof THREE.Mesh)for(h in k=e.geometry,k.geometryGroups)m=k.geometryGroups[h],N(f.__webglObjects,m,e);else e instanceof THREE.Ribbon||e instanceof THREE.Line||e instanceof THREE.ParticleSystem?(k=e.geometry,N(f.__webglObjects,k,e)):THREE.MarchingCubes!==void 0&&e instanceof THREE.MarchingCubes||e.immediateRenderCallback?f.__webglObjectsImmediate.push({object:e,opaque:{list:[],count:0},transparent:{list:[],count:0}}):e instanceof THREE.Sprite&&f.__webglSprites.push(e); +e.__webglActive=!0}b.__objectsAdded.splice(0,1)}for(;b.__objectsRemoved.length;){e=b.__objectsRemoved[0];f=b;if(e instanceof THREE.Mesh||e instanceof THREE.ParticleSystem||e instanceof THREE.Ribbon||e instanceof THREE.Line)F(f.__webglObjects,e);else if(e instanceof THREE.Sprite){f=f.__webglSprites;h=e;k=void 0;for(k=f.length-1;k>=0;k--)f[k]==h&&f.splice(k,1)}else(e instanceof THREE.MarchingCubes||e.immediateRenderCallback)&&F(f.__webglObjectsImmediate,e);e.__webglActive=!1;b.__objectsRemoved.splice(0, +1)}e=0;for(f=b.__webglObjects.length;e<f;e++)if(k=b.__webglObjects[e].object,t=m=h=void 0,k instanceof THREE.Mesh){h=k.geometry;n=0;for(p=h.geometryGroupsList.length;n<p;n++)if(m=h.geometryGroupsList[n],t=E(m),h.__dirtyVertices||h.__dirtyMorphTargets||h.__dirtyElements||h.__dirtyUvs||h.__dirtyNormals||h.__dirtyColors||h.__dirtyTangents||t)if(t=m,y=o.DYNAMIC_DRAW,V=!h.dynamic,t.__inittedArrays){var C=u=v=void 0,J=void 0,H=C=void 0,qa=void 0,K=void 0,ja=void 0,ia=T=A=x=O=z=w=void 0,G=void 0,L=void 0, +I=J=ja=J=K=qa=void 0,B=void 0,Q=B=I=qa=void 0,U=void 0,aa=Q=B=I=C=C=H=ja=J=Q=B=I=U=Q=B=I=U=Q=B=I=void 0,P=0,na=0,ca=0,Z=0,ra=0,Y=0,R=0,ya=0,W=0,S=0,oa=0,Q=I=0,Q=void 0,ha=t.__vertexArray,wa=t.__uvArray,va=t.__uv2Array,ma=t.__normalArray,ea=t.__tangentArray,fa=t.__colorArray,ka=t.__skinVertexAArray,$=t.__skinVertexBArray,da=t.__skinIndexArray,ga=t.__skinWeightArray,pa=t.__morphTargetsArrays,la=t.__webglCustomAttributes,B=void 0,za=t.__faceArray,sa=t.__lineArray,Ia=t.__needsSmoothNormals,z=t.__vertexColorType, +w=t.__uvType,O=t.__normalType,ua=k.geometry,Ea=ua.__dirtyVertices,Ca=ua.__dirtyElements,Ba=ua.__dirtyUvs,Ka=ua.__dirtyNormals,Ga=ua.__dirtyTangents,Da=ua.__dirtyColors,Fa=ua.__dirtyMorphTargets,Ja=ua.vertices,cb=t.faces,fb=ua.faces,db=ua.faceVertexUvs[0],eb=ua.faceVertexUvs[1],Sa=ua.skinVerticesA,Ta=ua.skinVerticesB,Ua=ua.skinIndices,Ma=ua.skinWeights,La=ua.morphTargets;if(la)for(aa in la)la[aa].offset=0,la[aa].offsetSrc=0;v=0;for(u=cb.length;v<u;v++)if(C=cb[v],J=fb[C],db&&(x=db[C]),eb&&(A=eb[C]), +C=J.vertexNormals,H=J.normal,qa=J.vertexColors,K=J.color,ja=J.vertexTangents,J instanceof THREE.Face3){if(Ea)T=Ja[J.a].position,ia=Ja[J.b].position,G=Ja[J.c].position,ha[na]=T.x,ha[na+1]=T.y,ha[na+2]=T.z,ha[na+3]=ia.x,ha[na+4]=ia.y,ha[na+5]=ia.z,ha[na+6]=G.x,ha[na+7]=G.y,ha[na+8]=G.z,na+=9;if(la)for(aa in la)if(B=la[aa],B.__original.needsUpdate)I=B.offset,Q=B.offsetSrc,B.size===1?(B.boundTo===void 0||B.boundTo==="vertices"?(B.array[I]=B.value[J.a],B.array[I+1]=B.value[J.b],B.array[I+2]=B.value[J.c]): +B.boundTo==="faces"?(Q=B.value[Q],B.array[I]=Q,B.array[I+1]=Q,B.array[I+2]=Q,B.offsetSrc++):B.boundTo==="faceVertices"&&(B.array[I]=B.value[Q],B.array[I+1]=B.value[Q+1],B.array[I+2]=B.value[Q+2],B.offsetSrc+=3),B.offset+=3):(B.boundTo===void 0||B.boundTo==="vertices"?(T=B.value[J.a],ia=B.value[J.b],G=B.value[J.c]):B.boundTo==="faces"?(G=ia=T=Q=B.value[Q],B.offsetSrc++):B.boundTo==="faceVertices"&&(T=B.value[Q],ia=B.value[Q+1],G=B.value[Q+2],B.offsetSrc+=3),B.size===2?(B.array[I]=T.x,B.array[I+1]= +T.y,B.array[I+2]=ia.x,B.array[I+3]=ia.y,B.array[I+4]=G.x,B.array[I+5]=G.y,B.offset+=6):B.size===3?(B.type==="c"?(B.array[I]=T.r,B.array[I+1]=T.g,B.array[I+2]=T.b,B.array[I+3]=ia.r,B.array[I+4]=ia.g,B.array[I+5]=ia.b,B.array[I+6]=G.r,B.array[I+7]=G.g,B.array[I+8]=G.b):(B.array[I]=T.x,B.array[I+1]=T.y,B.array[I+2]=T.z,B.array[I+3]=ia.x,B.array[I+4]=ia.y,B.array[I+5]=ia.z,B.array[I+6]=G.x,B.array[I+7]=G.y,B.array[I+8]=G.z),B.offset+=9):(B.array[I]=T.x,B.array[I+1]=T.y,B.array[I+2]=T.z,B.array[I+3]=T.w, +B.array[I+4]=ia.x,B.array[I+5]=ia.y,B.array[I+6]=ia.z,B.array[I+7]=ia.w,B.array[I+8]=G.x,B.array[I+9]=G.y,B.array[I+10]=G.z,B.array[I+11]=G.w,B.offset+=12));if(Fa){I=0;for(B=La.length;I<B;I++)T=La[I].vertices[J.a].position,ia=La[I].vertices[J.b].position,G=La[I].vertices[J.c].position,Q=pa[I],Q[oa]=T.x,Q[oa+1]=T.y,Q[oa+2]=T.z,Q[oa+3]=ia.x,Q[oa+4]=ia.y,Q[oa+5]=ia.z,Q[oa+6]=G.x,Q[oa+7]=G.y,Q[oa+8]=G.z;oa+=9}if(Ma.length)I=Ma[J.a],B=Ma[J.b],Q=Ma[J.c],ga[S]=I.x,ga[S+1]=I.y,ga[S+2]=I.z,ga[S+3]=I.w,ga[S+ +4]=B.x,ga[S+5]=B.y,ga[S+6]=B.z,ga[S+7]=B.w,ga[S+8]=Q.x,ga[S+9]=Q.y,ga[S+10]=Q.z,ga[S+11]=Q.w,I=Ua[J.a],B=Ua[J.b],Q=Ua[J.c],da[S]=I.x,da[S+1]=I.y,da[S+2]=I.z,da[S+3]=I.w,da[S+4]=B.x,da[S+5]=B.y,da[S+6]=B.z,da[S+7]=B.w,da[S+8]=Q.x,da[S+9]=Q.y,da[S+10]=Q.z,da[S+11]=Q.w,I=Sa[J.a],B=Sa[J.b],Q=Sa[J.c],ka[S]=I.x,ka[S+1]=I.y,ka[S+2]=I.z,ka[S+3]=1,ka[S+4]=B.x,ka[S+5]=B.y,ka[S+6]=B.z,ka[S+7]=1,ka[S+8]=Q.x,ka[S+9]=Q.y,ka[S+10]=Q.z,ka[S+11]=1,I=Ta[J.a],B=Ta[J.b],Q=Ta[J.c],$[S]=I.x,$[S+1]=I.y,$[S+2]=I.z,$[S+3]= +1,$[S+4]=B.x,$[S+5]=B.y,$[S+6]=B.z,$[S+7]=1,$[S+8]=Q.x,$[S+9]=Q.y,$[S+10]=Q.z,$[S+11]=1,S+=12;if(Da&&z)qa.length==3&&z==THREE.VertexColors?(J=qa[0],I=qa[1],B=qa[2]):B=I=J=K,fa[W]=J.r,fa[W+1]=J.g,fa[W+2]=J.b,fa[W+3]=I.r,fa[W+4]=I.g,fa[W+5]=I.b,fa[W+6]=B.r,fa[W+7]=B.g,fa[W+8]=B.b,W+=9;if(Ga&&ua.hasTangents)qa=ja[0],K=ja[1],J=ja[2],ea[R]=qa.x,ea[R+1]=qa.y,ea[R+2]=qa.z,ea[R+3]=qa.w,ea[R+4]=K.x,ea[R+5]=K.y,ea[R+6]=K.z,ea[R+7]=K.w,ea[R+8]=J.x,ea[R+9]=J.y,ea[R+10]=J.z,ea[R+11]=J.w,R+=12;if(Ka&&O)if(C.length== +3&&Ia)for(ja=0;ja<3;ja++)H=C[ja],ma[Y]=H.x,ma[Y+1]=H.y,ma[Y+2]=H.z,Y+=3;else for(ja=0;ja<3;ja++)ma[Y]=H.x,ma[Y+1]=H.y,ma[Y+2]=H.z,Y+=3;if(Ba&&x!==void 0&&w)for(ja=0;ja<3;ja++)C=x[ja],wa[ca]=C.u,wa[ca+1]=C.v,ca+=2;if(Ba&&A!==void 0&&w)for(ja=0;ja<3;ja++)C=A[ja],va[Z]=C.u,va[Z+1]=C.v,Z+=2;Ca&&(za[ra]=P,za[ra+1]=P+1,za[ra+2]=P+2,ra+=3,sa[ya]=P,sa[ya+1]=P+1,sa[ya+2]=P,sa[ya+3]=P+2,sa[ya+4]=P+1,sa[ya+5]=P+2,ya+=6,P+=3)}else if(J instanceof THREE.Face4){if(Ea)T=Ja[J.a].position,ia=Ja[J.b].position,G=Ja[J.c].position, +L=Ja[J.d].position,ha[na]=T.x,ha[na+1]=T.y,ha[na+2]=T.z,ha[na+3]=ia.x,ha[na+4]=ia.y,ha[na+5]=ia.z,ha[na+6]=G.x,ha[na+7]=G.y,ha[na+8]=G.z,ha[na+9]=L.x,ha[na+10]=L.y,ha[na+11]=L.z,na+=12;if(la)for(aa in la)if(B=la[aa],B.__original.needsUpdate)I=B.offset,Q=B.offsetSrc,B.size===1?(B.boundTo===void 0||B.boundTo==="vertices"?(B.array[I]=B.value[J.a],B.array[I+1]=B.value[J.b],B.array[I+2]=B.value[J.c],B.array[I+3]=B.value[J.d]):B.boundTo==="faces"?(Q=B.value[Q],B.array[I]=Q,B.array[I+1]=Q,B.array[I+2]=Q, +B.array[I+3]=Q,B.offsetSrc++):B.boundTo==="faceVertices"&&(B.array[I]=B.value[Q],B.array[I+1]=B.value[Q+1],B.array[I+2]=B.value[Q+2],B.array[I+3]=B.value[Q+3],B.offsetSrc+=4),B.offset+=4):(B.boundTo===void 0||B.boundTo==="vertices"?(T=B.value[J.a],ia=B.value[J.b],G=B.value[J.c],L=B.value[J.d]):B.boundTo==="faces"?(L=G=ia=T=Q=B.value[Q],B.offsetSrc++):B.boundTo==="faceVertices"&&(T=B.value[Q],ia=B.value[Q+1],G=B.value[Q+2],L=B.value[Q+3],B.offsetSrc+=4),B.size===2?(B.array[I]=T.x,B.array[I+1]=T.y, +B.array[I+2]=ia.x,B.array[I+3]=ia.y,B.array[I+4]=G.x,B.array[I+5]=G.y,B.array[I+6]=L.x,B.array[I+7]=L.y,B.offset+=8):B.size===3?(B.type==="c"?(B.array[I]=T.r,B.array[I+1]=T.g,B.array[I+2]=T.b,B.array[I+3]=ia.r,B.array[I+4]=ia.g,B.array[I+5]=ia.b,B.array[I+6]=G.r,B.array[I+7]=G.g,B.array[I+8]=G.b,B.array[I+9]=L.r,B.array[I+10]=L.g,B.array[I+11]=L.b):(B.array[I]=T.x,B.array[I+1]=T.y,B.array[I+2]=T.z,B.array[I+3]=ia.x,B.array[I+4]=ia.y,B.array[I+5]=ia.z,B.array[I+6]=G.x,B.array[I+7]=G.y,B.array[I+8]= +G.z,B.array[I+9]=L.x,B.array[I+10]=L.y,B.array[I+11]=L.z),B.offset+=12):(B.array[I]=T.x,B.array[I+1]=T.y,B.array[I+2]=T.z,B.array[I+3]=T.w,B.array[I+4]=ia.x,B.array[I+5]=ia.y,B.array[I+6]=ia.z,B.array[I+7]=ia.w,B.array[I+8]=G.x,B.array[I+9]=G.y,B.array[I+10]=G.z,B.array[I+11]=G.w,B.array[I+12]=L.x,B.array[I+13]=L.y,B.array[I+14]=L.z,B.array[I+15]=L.w,B.offset+=16));if(Fa){I=0;for(B=La.length;I<B;I++)T=La[I].vertices[J.a].position,ia=La[I].vertices[J.b].position,G=La[I].vertices[J.c].position,L=La[I].vertices[J.d].position, +Q=pa[I],Q[oa]=T.x,Q[oa+1]=T.y,Q[oa+2]=T.z,Q[oa+3]=ia.x,Q[oa+4]=ia.y,Q[oa+5]=ia.z,Q[oa+6]=G.x,Q[oa+7]=G.y,Q[oa+8]=G.z,Q[oa+9]=L.x,Q[oa+10]=L.y,Q[oa+11]=L.z;oa+=12}if(Ma.length)I=Ma[J.a],B=Ma[J.b],Q=Ma[J.c],U=Ma[J.d],ga[S]=I.x,ga[S+1]=I.y,ga[S+2]=I.z,ga[S+3]=I.w,ga[S+4]=B.x,ga[S+5]=B.y,ga[S+6]=B.z,ga[S+7]=B.w,ga[S+8]=Q.x,ga[S+9]=Q.y,ga[S+10]=Q.z,ga[S+11]=Q.w,ga[S+12]=U.x,ga[S+13]=U.y,ga[S+14]=U.z,ga[S+15]=U.w,I=Ua[J.a],B=Ua[J.b],Q=Ua[J.c],U=Ua[J.d],da[S]=I.x,da[S+1]=I.y,da[S+2]=I.z,da[S+3]=I.w,da[S+ +4]=B.x,da[S+5]=B.y,da[S+6]=B.z,da[S+7]=B.w,da[S+8]=Q.x,da[S+9]=Q.y,da[S+10]=Q.z,da[S+11]=Q.w,da[S+12]=U.x,da[S+13]=U.y,da[S+14]=U.z,da[S+15]=U.w,I=Sa[J.a],B=Sa[J.b],Q=Sa[J.c],U=Sa[J.d],ka[S]=I.x,ka[S+1]=I.y,ka[S+2]=I.z,ka[S+3]=1,ka[S+4]=B.x,ka[S+5]=B.y,ka[S+6]=B.z,ka[S+7]=1,ka[S+8]=Q.x,ka[S+9]=Q.y,ka[S+10]=Q.z,ka[S+11]=1,ka[S+12]=U.x,ka[S+13]=U.y,ka[S+14]=U.z,ka[S+15]=1,I=Ta[J.a],B=Ta[J.b],Q=Ta[J.c],J=Ta[J.d],$[S]=I.x,$[S+1]=I.y,$[S+2]=I.z,$[S+3]=1,$[S+4]=B.x,$[S+5]=B.y,$[S+6]=B.z,$[S+7]=1,$[S+8]= +Q.x,$[S+9]=Q.y,$[S+10]=Q.z,$[S+11]=1,$[S+12]=J.x,$[S+13]=J.y,$[S+14]=J.z,$[S+15]=1,S+=16;if(Da&&z)qa.length==4&&z==THREE.VertexColors?(J=qa[0],I=qa[1],B=qa[2],qa=qa[3]):qa=B=I=J=K,fa[W]=J.r,fa[W+1]=J.g,fa[W+2]=J.b,fa[W+3]=I.r,fa[W+4]=I.g,fa[W+5]=I.b,fa[W+6]=B.r,fa[W+7]=B.g,fa[W+8]=B.b,fa[W+9]=qa.r,fa[W+10]=qa.g,fa[W+11]=qa.b,W+=12;if(Ga&&ua.hasTangents)qa=ja[0],K=ja[1],J=ja[2],ja=ja[3],ea[R]=qa.x,ea[R+1]=qa.y,ea[R+2]=qa.z,ea[R+3]=qa.w,ea[R+4]=K.x,ea[R+5]=K.y,ea[R+6]=K.z,ea[R+7]=K.w,ea[R+8]=J.x,ea[R+ +9]=J.y,ea[R+10]=J.z,ea[R+11]=J.w,ea[R+12]=ja.x,ea[R+13]=ja.y,ea[R+14]=ja.z,ea[R+15]=ja.w,R+=16;if(Ka&&O)if(C.length==4&&Ia)for(ja=0;ja<4;ja++)H=C[ja],ma[Y]=H.x,ma[Y+1]=H.y,ma[Y+2]=H.z,Y+=3;else for(ja=0;ja<4;ja++)ma[Y]=H.x,ma[Y+1]=H.y,ma[Y+2]=H.z,Y+=3;if(Ba&&x!==void 0&&w)for(ja=0;ja<4;ja++)C=x[ja],wa[ca]=C.u,wa[ca+1]=C.v,ca+=2;if(Ba&&A!==void 0&&w)for(ja=0;ja<4;ja++)C=A[ja],va[Z]=C.u,va[Z+1]=C.v,Z+=2;Ca&&(za[ra]=P,za[ra+1]=P+1,za[ra+2]=P+3,za[ra+3]=P+1,za[ra+4]=P+2,za[ra+5]=P+3,ra+=6,sa[ya]=P,sa[ya+ +1]=P+1,sa[ya+2]=P,sa[ya+3]=P+3,sa[ya+4]=P+1,sa[ya+5]=P+2,sa[ya+6]=P+2,sa[ya+7]=P+3,ya+=8,P+=4)}Ea&&(o.bindBuffer(o.ARRAY_BUFFER,t.__webglVertexBuffer),o.bufferData(o.ARRAY_BUFFER,ha,y));if(la)for(aa in la)B=la[aa],B.__original.needsUpdate&&(o.bindBuffer(o.ARRAY_BUFFER,B.buffer),o.bufferData(o.ARRAY_BUFFER,B.array,y));if(Fa){I=0;for(B=La.length;I<B;I++)o.bindBuffer(o.ARRAY_BUFFER,t.__webglMorphTargetsBuffers[I]),o.bufferData(o.ARRAY_BUFFER,pa[I],y)}Da&&W>0&&(o.bindBuffer(o.ARRAY_BUFFER,t.__webglColorBuffer), +o.bufferData(o.ARRAY_BUFFER,fa,y));Ka&&(o.bindBuffer(o.ARRAY_BUFFER,t.__webglNormalBuffer),o.bufferData(o.ARRAY_BUFFER,ma,y));Ga&&ua.hasTangents&&(o.bindBuffer(o.ARRAY_BUFFER,t.__webglTangentBuffer),o.bufferData(o.ARRAY_BUFFER,ea,y));Ba&&ca>0&&(o.bindBuffer(o.ARRAY_BUFFER,t.__webglUVBuffer),o.bufferData(o.ARRAY_BUFFER,wa,y));Ba&&Z>0&&(o.bindBuffer(o.ARRAY_BUFFER,t.__webglUV2Buffer),o.bufferData(o.ARRAY_BUFFER,va,y));Ca&&(o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,t.__webglFaceBuffer),o.bufferData(o.ELEMENT_ARRAY_BUFFER, +za,y),o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,t.__webglLineBuffer),o.bufferData(o.ELEMENT_ARRAY_BUFFER,sa,y));S>0&&(o.bindBuffer(o.ARRAY_BUFFER,t.__webglSkinVertexABuffer),o.bufferData(o.ARRAY_BUFFER,ka,y),o.bindBuffer(o.ARRAY_BUFFER,t.__webglSkinVertexBBuffer),o.bufferData(o.ARRAY_BUFFER,$,y),o.bindBuffer(o.ARRAY_BUFFER,t.__webglSkinIndicesBuffer),o.bufferData(o.ARRAY_BUFFER,da,y),o.bindBuffer(o.ARRAY_BUFFER,t.__webglSkinWeightsBuffer),o.bufferData(o.ARRAY_BUFFER,ga,y));V&&(delete t.__inittedArrays, +delete t.__colorArray,delete t.__normalArray,delete t.__tangentArray,delete t.__uvArray,delete t.__uv2Array,delete t.__faceArray,delete t.__vertexArray,delete t.__lineArray,delete t.__skinVertexAArray,delete t.__skinVertexBArray,delete t.__skinIndexArray,delete t.__skinWeightArray)}h.__dirtyVertices=!1;h.__dirtyMorphTargets=!1;h.__dirtyElements=!1;h.__dirtyUvs=!1;h.__dirtyNormals=!1;h.__dirtyTangents=!1;h.__dirtyColors=!1;D(m)}else if(k instanceof THREE.Ribbon){h=k.geometry;if(h.__dirtyVertices|| +h.__dirtyColors){k=h;m=o.DYNAMIC_DRAW;n=v=V=V=void 0;u=k.vertices;p=k.colors;w=u.length;t=p.length;z=k.__vertexArray;y=k.__colorArray;O=k.__dirtyColors;if(k.__dirtyVertices){for(V=0;V<w;V++)v=u[V].position,n=V*3,z[n]=v.x,z[n+1]=v.y,z[n+2]=v.z;o.bindBuffer(o.ARRAY_BUFFER,k.__webglVertexBuffer);o.bufferData(o.ARRAY_BUFFER,z,m)}if(O){for(V=0;V<t;V++)color=p[V],n=V*3,y[n]=color.r,y[n+1]=color.g,y[n+2]=color.b;o.bindBuffer(o.ARRAY_BUFFER,k.__webglColorBuffer);o.bufferData(o.ARRAY_BUFFER,y,m)}}h.__dirtyVertices= +!1;h.__dirtyColors=!1}else if(k instanceof THREE.Line){h=k.geometry;if(h.__dirtyVertices||h.__dirtyColors){k=h;m=o.DYNAMIC_DRAW;n=v=V=V=void 0;u=k.vertices;p=k.colors;w=u.length;t=p.length;z=k.__vertexArray;y=k.__colorArray;O=k.__dirtyColors;if(k.__dirtyVertices){for(V=0;V<w;V++)v=u[V].position,n=V*3,z[n]=v.x,z[n+1]=v.y,z[n+2]=v.z;o.bindBuffer(o.ARRAY_BUFFER,k.__webglVertexBuffer);o.bufferData(o.ARRAY_BUFFER,z,m)}if(O){for(V=0;V<t;V++)color=p[V],n=V*3,y[n]=color.r,y[n+1]=color.g,y[n+2]=color.b;o.bindBuffer(o.ARRAY_BUFFER, +k.__webglColorBuffer);o.bufferData(o.ARRAY_BUFFER,y,m)}}h.__dirtyVertices=!1;h.__dirtyColors=!1}else if(k instanceof THREE.ParticleSystem)h=k.geometry,t=E(h),(h.__dirtyVertices||h.__dirtyColors||k.sortParticles||t)&&c(h,o.DYNAMIC_DRAW,k),h.__dirtyVertices=!1,h.__dirtyColors=!1,D(h)};this.setFaceCulling=function(b,e){b?(!e||e=="ccw"?o.frontFace(o.CCW):o.frontFace(o.CW),b=="back"?o.cullFace(o.BACK):b=="front"?o.cullFace(o.FRONT):o.cullFace(o.FRONT_AND_BACK),o.enable(o.CULL_FACE)):o.disable(o.CULL_FACE)}; +this.supportsVertexTextures=function(){return Ga}}; +THREE.WebGLRenderTarget=function(b,c,e){this.width=b;this.height=c;e=e||{};this.wrapS=e.wrapS!==void 0?e.wrapS:THREE.ClampToEdgeWrapping;this.wrapT=e.wrapT!==void 0?e.wrapT:THREE.ClampToEdgeWrapping;this.magFilter=e.magFilter!==void 0?e.magFilter:THREE.LinearFilter;this.minFilter=e.minFilter!==void 0?e.minFilter:THREE.LinearMipMapLinearFilter;this.offset=new THREE.Vector2(0,0);this.repeat=new THREE.Vector2(1,1);this.format=e.format!==void 0?e.format:THREE.RGBAFormat;this.type=e.type!==void 0?e.type: +THREE.UnsignedByteType;this.depthBuffer=e.depthBuffer!==void 0?e.depthBuffer:!0;this.stencilBuffer=e.stencilBuffer!==void 0?e.stencilBuffer:!0}; +THREE.WebGLRenderTarget.prototype.clone=function(){var b=new THREE.WebGLRenderTarget(this.width,this.height);b.wrapS=this.wrapS;b.wrapT=this.wrapT;b.magFilter=this.magFilter;b.minFilter=this.minFilter;b.offset.copy(this.offset);b.repeat.copy(this.repeat);b.format=this.format;b.type=this.type;b.depthBuffer=this.depthBuffer;b.stencilBuffer=this.stencilBuffer;return b};THREE.WebGLRenderTargetCube=function(b,c,e){THREE.WebGLRenderTarget.call(this,b,c,e);this.activeCubeFace=0}; +THREE.WebGLRenderTargetCube.prototype=new THREE.WebGLRenderTarget;THREE.WebGLRenderTargetCube.prototype.constructor=THREE.WebGLRenderTargetCube;THREE.RenderableVertex=function(){this.positionWorld=new THREE.Vector3;this.positionScreen=new THREE.Vector4;this.visible=!0};THREE.RenderableVertex.prototype.copy=function(b){this.positionWorld.copy(b.positionWorld);this.positionScreen.copy(b.positionScreen)}; +THREE.RenderableFace3=function(){this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.v3=new THREE.RenderableVertex;this.centroidWorld=new THREE.Vector3;this.centroidScreen=new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.vertexNormalsWorld=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.faceMaterials=this.meshMaterials=null;this.overdraw=!1;this.uvs=[[]];this.z=null}; +THREE.RenderableFace4=function(){this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.v3=new THREE.RenderableVertex;this.v4=new THREE.RenderableVertex;this.centroidWorld=new THREE.Vector3;this.centroidScreen=new THREE.Vector3;this.normalWorld=new THREE.Vector3;this.vertexNormalsWorld=[new THREE.Vector3,new THREE.Vector3,new THREE.Vector3,new THREE.Vector3];this.faceMaterials=this.meshMaterials=null;this.overdraw=!1;this.uvs=[[]];this.z=null}; +THREE.RenderableObject=function(){this.z=this.object=null};THREE.RenderableParticle=function(){this.rotation=this.z=this.y=this.x=null;this.scale=new THREE.Vector2;this.materials=null};THREE.RenderableLine=function(){this.z=null;this.v1=new THREE.RenderableVertex;this.v2=new THREE.RenderableVertex;this.materials=null}; +THREE.ColorUtils={adjustHSV:function(b,c,e,f){var h=THREE.ColorUtils.__hsv;THREE.ColorUtils.rgbToHsv(b,h);h.h=THREE.ColorUtils.clamp(h.h+c,0,1);h.s=THREE.ColorUtils.clamp(h.s+e,0,1);h.v=THREE.ColorUtils.clamp(h.v+f,0,1);b.setHSV(h.h,h.s,h.v)},rgbToHsv:function(b,c){var e=b.r,f=b.g,h=b.b,k=Math.max(Math.max(e,f),h),m=Math.min(Math.min(e,f),h);if(m==k)m=e=0;else{var n=k-m,m=n/k,e=e==k?(f-h)/n:f==k?2+(h-e)/n:4+(e-f)/n;e/=6;e<0&&(e+=1);e>1&&(e-=1)}c===void 0&&(c={h:0,s:0,v:0});c.h=e;c.s=m;c.v=k;return c}, +clamp:function(b,c,e){return b<c?c:b>e?e:b}};THREE.ColorUtils.__hsv={h:0,s:0,v:0}; +THREE.GeometryUtils={merge:function(b,c){var e,f,h=b.vertices.length,k=c instanceof THREE.Mesh?c.geometry:c,m=b.vertices,n=k.vertices,t=b.faces,u=k.faces,v=b.faceVertexUvs[0],k=k.faceVertexUvs[0];if(c instanceof THREE.Mesh)c.matrixAutoUpdate&&c.updateMatrix(),e=c.matrix,f=new THREE.Matrix4,f.extractRotation(e,c.scale);for(var p=0,x=n.length;p<x;p++){var w=new THREE.Vertex(n[p].position.clone());e&&e.multiplyVector3(w.position);m.push(w)}p=0;for(x=u.length;p<x;p++){var w=u[p],A,z,y=w.vertexNormals, +C=w.vertexColors;w instanceof THREE.Face3?A=new THREE.Face3(w.a+h,w.b+h,w.c+h):w instanceof THREE.Face4&&(A=new THREE.Face4(w.a+h,w.b+h,w.c+h,w.d+h));A.normal.copy(w.normal);f&&f.multiplyVector3(A.normal);m=0;for(n=y.length;m<n;m++)z=y[m].clone(),f&&f.multiplyVector3(z),A.vertexNormals.push(z);A.color.copy(w.color);m=0;for(n=C.length;m<n;m++)z=C[m],A.vertexColors.push(z.clone());A.materials=w.materials.slice();A.centroid.copy(w.centroid);e&&e.multiplyVector3(A.centroid);t.push(A)}p=0;for(x=k.length;p< +x;p++){e=k[p];f=[];m=0;for(n=e.length;m<n;m++)f.push(new THREE.UV(e[m].u,e[m].v));v.push(f)}},clone:function(b){var c=new THREE.Geometry,e,f=b.vertices,h=b.faces,k=b.faceVertexUvs[0],b=0;for(e=f.length;b<e;b++){var m=new THREE.Vertex(f[b].position.clone());c.vertices.push(m)}b=0;for(e=h.length;b<e;b++){var n=h[b],t,u,v=n.vertexNormals,p=n.vertexColors;n instanceof THREE.Face3?t=new THREE.Face3(n.a,n.b,n.c):n instanceof THREE.Face4&&(t=new THREE.Face4(n.a,n.b,n.c,n.d));t.normal.copy(n.normal);f=0; +for(m=v.length;f<m;f++)u=v[f],t.vertexNormals.push(u.clone());t.color.copy(n.color);f=0;for(m=p.length;f<m;f++)u=p[f],t.vertexColors.push(u.clone());t.materials=n.materials.slice();t.centroid.copy(n.centroid);c.faces.push(t)}b=0;for(e=k.length;b<e;b++){h=k[b];t=[];f=0;for(m=h.length;f<m;f++)t.push(new THREE.UV(h[f].u,h[f].v));c.faceVertexUvs[0].push(t)}return c},randomPointInTriangle:function(b,c,e){var f,h,k,m=new THREE.Vector3,n=THREE.GeometryUtils.__v1;f=THREE.GeometryUtils.random();h=THREE.GeometryUtils.random(); +f+h>1&&(f=1-f,h=1-h);k=1-f-h;m.copy(b);m.multiplyScalar(f);n.copy(c);n.multiplyScalar(h);m.addSelf(n);n.copy(e);n.multiplyScalar(k);m.addSelf(n);return m},randomPointInFace:function(b,c,e){var f,h,k;if(b instanceof THREE.Face3)return f=c.vertices[b.a].position,h=c.vertices[b.b].position,k=c.vertices[b.c].position,THREE.GeometryUtils.randomPointInTriangle(f,h,k);else if(b instanceof THREE.Face4){f=c.vertices[b.a].position;h=c.vertices[b.b].position;k=c.vertices[b.c].position;var c=c.vertices[b.d].position, +m;e?b._area1&&b._area2?(e=b._area1,m=b._area2):(e=THREE.GeometryUtils.triangleArea(f,h,c),m=THREE.GeometryUtils.triangleArea(h,k,c),b._area1=e,b._area2=m):(e=THREE.GeometryUtils.triangleArea(f,h,c),m=THREE.GeometryUtils.triangleArea(h,k,c));return THREE.GeometryUtils.random()*(e+m)<e?THREE.GeometryUtils.randomPointInTriangle(f,h,c):THREE.GeometryUtils.randomPointInTriangle(h,k,c)}},randomPointsInGeometry:function(b,c){function e(b){function e(c,f){if(f<c)return c;var h=c+Math.floor((f-c)/2);return u[h]> +b?e(c,h-1):u[h]<b?e(h+1,f):h}return e(0,u.length-1)}var f,h,k=b.faces,m=b.vertices,n=k.length,t=0,u=[],v,p,x,w;for(h=0;h<n;h++){f=k[h];if(f instanceof THREE.Face3)v=m[f.a].position,p=m[f.b].position,x=m[f.c].position,f._area=THREE.GeometryUtils.triangleArea(v,p,x);else if(f instanceof THREE.Face4)v=m[f.a].position,p=m[f.b].position,x=m[f.c].position,w=m[f.d].position,f._area1=THREE.GeometryUtils.triangleArea(v,p,w),f._area2=THREE.GeometryUtils.triangleArea(p,x,w),f._area=f._area1+f._area2;t+=f._area; +u[h]=t}f=[];m={};for(h=0;h<c;h++)n=THREE.GeometryUtils.random()*t,n=e(n),f[h]=THREE.GeometryUtils.randomPointInFace(k[n],b,!0),m[n]?m[n]+=1:m[n]=1;return f},triangleArea:function(b,c,e){var f,h=THREE.GeometryUtils.__v1;h.sub(b,c);f=h.length();h.sub(b,e);b=h.length();h.sub(c,e);e=h.length();c=0.5*(f+b+e);return Math.sqrt(c*(c-f)*(c-b)*(c-e))},random16:function(){return(65280*Math.random()+255*Math.random())/65535},center:function(b){b.computeBoundingBox();var c=new THREE.Matrix4;c.setTranslation(-0.5* +(b.boundingBox.x[1]+b.boundingBox.x[0]),-0.5*(b.boundingBox.y[1]+b.boundingBox.y[0]),-0.5*(b.boundingBox.z[1]+b.boundingBox.z[0]));b.applyMatrix(c);b.computeBoundingBox()}};THREE.GeometryUtils.random=THREE.GeometryUtils.random16;THREE.GeometryUtils.__v1=new THREE.Vector3; +THREE.ImageUtils={loadTexture:function(b,c,e){var f=new Image,h=new THREE.Texture(f,c);f.onload=function(){h.needsUpdate=!0;e&&e(this)};f.crossOrigin="";f.src=b;return h},loadTextureCube:function(b,c,e){var f,h=[],k=new THREE.Texture(h,c),c=h.loadCount=0;for(f=b.length;c<f;++c)h[c]=new Image,h[c].onload=function(){h.loadCount+=1;if(h.loadCount==6)k.needsUpdate=!0;e&&e(this)},h[c].crossOrigin="",h[c].src=b[c];return k},getNormalMap:function(b,c){var e=function(b){var e=Math.sqrt(b[0]*b[0]+b[1]*b[1]+ +b[2]*b[2]);return[b[0]/e,b[1]/e,b[2]/e]};c|=1;var f=b.width,h=b.height,k=document.createElement("canvas");k.width=f;k.height=h;var m=k.getContext("2d");m.drawImage(b,0,0);for(var n=m.getImageData(0,0,f,h).data,t=m.createImageData(f,h),u=t.data,v=0;v<f;v++)for(var p=1;p<h;p++){var x=p-1<0?h-1:p-1,w=(p+1)%h,A=v-1<0?f-1:v-1,z=(v+1)%f,y=[],C=[0,0,n[(p*f+v)*4]/255*c];y.push([-1,0,n[(p*f+A)*4]/255*c]);y.push([-1,-1,n[(x*f+A)*4]/255*c]);y.push([0,-1,n[(x*f+v)*4]/255*c]);y.push([1,-1,n[(x*f+z)*4]/255*c]); +y.push([1,0,n[(p*f+z)*4]/255*c]);y.push([1,1,n[(w*f+z)*4]/255*c]);y.push([0,1,n[(w*f+v)*4]/255*c]);y.push([-1,1,n[(w*f+A)*4]/255*c]);x=[];A=y.length;for(w=0;w<A;w++){var z=y[w],E=y[(w+1)%A],z=[z[0]-C[0],z[1]-C[1],z[2]-C[2]],E=[E[0]-C[0],E[1]-C[1],E[2]-C[2]];x.push(e([z[1]*E[2]-z[2]*E[1],z[2]*E[0]-z[0]*E[2],z[0]*E[1]-z[1]*E[0]]))}y=[0,0,0];for(w=0;w<x.length;w++)y[0]+=x[w][0],y[1]+=x[w][1],y[2]+=x[w][2];y[0]/=x.length;y[1]/=x.length;y[2]/=x.length;C=(p*f+v)*4;u[C]=(y[0]+1)/2*255|0;u[C+1]=(y[1]+0.5)* +255|0;u[C+2]=y[2]*255|0;u[C+3]=255}m.putImageData(t,0,0);return k}};THREE.SceneUtils={showHierarchy:function(b,c){THREE.SceneUtils.traverseHierarchy(b,function(b){b.visible=c})},traverseHierarchy:function(b,c){var e,f,h=b.children.length;for(f=0;f<h;f++)e=b.children[f],c(e),THREE.SceneUtils.traverseHierarchy(e,c)}}; +if(THREE.WebGLRenderer)THREE.ShaderUtils={lib:{fresnel:{uniforms:{mRefractionRatio:{type:"f",value:1.02},mFresnelBias:{type:"f",value:0.1},mFresnelPower:{type:"f",value:2},mFresnelScale:{type:"f",value:1},tCube:{type:"t",value:1,texture:null}},fragmentShader:"uniform samplerCube tCube;\nvarying vec3 vReflect;\nvarying vec3 vRefract[3];\nvarying float vReflectionFactor;\nvoid main() {\nvec4 reflectedColor = textureCube( tCube, vec3( -vReflect.x, vReflect.yz ) );\nvec4 refractedColor = vec4( 1.0, 1.0, 1.0, 1.0 );\nrefractedColor.r = textureCube( tCube, vec3( -vRefract[0].x, vRefract[0].yz ) ).r;\nrefractedColor.g = textureCube( tCube, vec3( -vRefract[1].x, vRefract[1].yz ) ).g;\nrefractedColor.b = textureCube( tCube, vec3( -vRefract[2].x, vRefract[2].yz ) ).b;\nrefractedColor.a = 1.0;\ngl_FragColor = mix( refractedColor, reflectedColor, clamp( vReflectionFactor, 0.0, 1.0 ) );\n}", +vertexShader:"uniform float mRefractionRatio;\nuniform float mFresnelBias;\nuniform float mFresnelScale;\nuniform float mFresnelPower;\nvarying vec3 vReflect;\nvarying vec3 vRefract[3];\nvarying float vReflectionFactor;\nvoid main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvec4 mPosition = objectMatrix * vec4( position, 1.0 );\nvec3 nWorld = normalize ( mat3( objectMatrix[0].xyz, objectMatrix[1].xyz, objectMatrix[2].xyz ) * normal );\nvec3 I = mPosition.xyz - cameraPosition;\nvReflect = reflect( I, nWorld );\nvRefract[0] = refract( normalize( I ), nWorld, mRefractionRatio );\nvRefract[1] = refract( normalize( I ), nWorld, mRefractionRatio * 0.99 );\nvRefract[2] = refract( normalize( I ), nWorld, mRefractionRatio * 0.98 );\nvReflectionFactor = mFresnelBias + mFresnelScale * pow( 1.0 + dot( normalize( I ), nWorld ), mFresnelPower );\ngl_Position = projectionMatrix * mvPosition;\n}"}, +normal:{uniforms:THREE.UniformsUtils.merge([THREE.UniformsLib.fog,THREE.UniformsLib.lights,THREE.UniformsLib.shadowmap,{enableAO:{type:"i",value:0},enableDiffuse:{type:"i",value:0},enableSpecular:{type:"i",value:0},enableReflection:{type:"i",value:0},tDiffuse:{type:"t",value:0,texture:null},tCube:{type:"t",value:1,texture:null},tNormal:{type:"t",value:2,texture:null},tSpecular:{type:"t",value:3,texture:null},tAO:{type:"t",value:4,texture:null},tDisplacement:{type:"t",value:5,texture:null},uNormalScale:{type:"f", +value:1},uDisplacementBias:{type:"f",value:0},uDisplacementScale:{type:"f",value:1},uDiffuseColor:{type:"c",value:new THREE.Color(15658734)},uSpecularColor:{type:"c",value:new THREE.Color(1118481)},uAmbientColor:{type:"c",value:new THREE.Color(328965)},uShininess:{type:"f",value:30},uOpacity:{type:"f",value:1},uReflectivity:{type:"f",value:0.5},uOffset:{type:"v2",value:new THREE.Vector2(0,0)},uRepeat:{type:"v2",value:new THREE.Vector2(1,1)}}]),fragmentShader:["uniform vec3 uAmbientColor;\nuniform vec3 uDiffuseColor;\nuniform vec3 uSpecularColor;\nuniform float uShininess;\nuniform float uOpacity;\nuniform bool enableDiffuse;\nuniform bool enableSpecular;\nuniform bool enableAO;\nuniform bool enableReflection;\nuniform sampler2D tDiffuse;\nuniform sampler2D tNormal;\nuniform sampler2D tSpecular;\nuniform sampler2D tAO;\nuniform samplerCube tCube;\nuniform float uNormalScale;\nuniform float uReflectivity;\nvarying vec3 vTangent;\nvarying vec3 vBinormal;\nvarying vec3 vNormal;\nvarying vec2 vUv;\nuniform vec3 ambientLightColor;\n#if MAX_DIR_LIGHTS > 0\nuniform vec3 directionalLightColor[ MAX_DIR_LIGHTS ];\nuniform vec3 directionalLightDirection[ MAX_DIR_LIGHTS ];\n#endif\n#if MAX_POINT_LIGHTS > 0\nuniform vec3 pointLightColor[ MAX_POINT_LIGHTS ];\nvarying vec4 vPointLight[ MAX_POINT_LIGHTS ];\n#endif\nvarying vec3 vViewPosition;", +THREE.ShaderChunk.shadowmap_pars_fragment,THREE.ShaderChunk.fog_pars_fragment,"void main() {\ngl_FragColor = vec4( vec3( 1.0 ), uOpacity );\nvec3 specularTex = vec3( 1.0 );\nvec3 normalTex = texture2D( tNormal, vUv ).xyz * 2.0 - 1.0;\nnormalTex.xy *= uNormalScale;\nnormalTex = normalize( normalTex );\nif( enableDiffuse )\ngl_FragColor = gl_FragColor * texture2D( tDiffuse, vUv );\nif( enableAO )\ngl_FragColor.xyz = gl_FragColor.xyz * texture2D( tAO, vUv ).xyz;\nif( enableSpecular )\nspecularTex = texture2D( tSpecular, vUv ).xyz;\nmat3 tsb = mat3( vTangent, vBinormal, vNormal );\nvec3 finalNormal = tsb * normalTex;\nvec3 normal = normalize( finalNormal );\nvec3 viewPosition = normalize( vViewPosition );\n#if MAX_POINT_LIGHTS > 0\nvec3 pointDiffuse = vec3( 0.0 );\nvec3 pointSpecular = vec3( 0.0 );\nfor ( int i = 0; i < MAX_POINT_LIGHTS; i ++ ) {\nvec3 pointVector = normalize( vPointLight[ i ].xyz );\nvec3 pointHalfVector = normalize( vPointLight[ i ].xyz + viewPosition );\nfloat pointDistance = vPointLight[ i ].w;\nfloat pointDotNormalHalf = dot( normal, pointHalfVector );\nfloat pointDiffuseWeight = max( dot( normal, pointVector ), 0.0 );\nfloat pointSpecularWeight = 0.0;\nif ( pointDotNormalHalf >= 0.0 )\npointSpecularWeight = specularTex.r * pow( pointDotNormalHalf, uShininess );\npointDiffuse += pointDistance * pointLightColor[ i ] * uDiffuseColor * pointDiffuseWeight;\npointSpecular += pointDistance * pointLightColor[ i ] * uSpecularColor * pointSpecularWeight;\n}\n#endif\n#if MAX_DIR_LIGHTS > 0\nvec3 dirDiffuse = vec3( 0.0 );\nvec3 dirSpecular = vec3( 0.0 );\nfor( int i = 0; i < MAX_DIR_LIGHTS; i++ ) {\nvec4 lDirection = viewMatrix * vec4( directionalLightDirection[ i ], 0.0 );\nvec3 dirVector = normalize( lDirection.xyz );\nvec3 dirHalfVector = normalize( lDirection.xyz + viewPosition );\nfloat dirDotNormalHalf = dot( normal, dirHalfVector );\nfloat dirDiffuseWeight = max( dot( normal, dirVector ), 0.0 );\nfloat dirSpecularWeight = 0.0;\nif ( dirDotNormalHalf >= 0.0 )\ndirSpecularWeight = specularTex.r * pow( dirDotNormalHalf, uShininess );\ndirDiffuse += directionalLightColor[ i ] * uDiffuseColor * dirDiffuseWeight;\ndirSpecular += directionalLightColor[ i ] * uSpecularColor * dirSpecularWeight;\n}\n#endif\nvec3 totalDiffuse = vec3( 0.0 );\nvec3 totalSpecular = vec3( 0.0 );\n#if MAX_DIR_LIGHTS > 0\ntotalDiffuse += dirDiffuse;\ntotalSpecular += dirSpecular;\n#endif\n#if MAX_POINT_LIGHTS > 0\ntotalDiffuse += pointDiffuse;\ntotalSpecular += pointSpecular;\n#endif\ngl_FragColor.xyz = gl_FragColor.xyz * totalDiffuse + totalSpecular + ambientLightColor * uAmbientColor;\nif ( enableReflection ) {\nvec3 wPos = cameraPosition - vViewPosition;\nvec3 vReflect = reflect( normalize( wPos ), normal );\nvec4 cubeColor = textureCube( tCube, vec3( -vReflect.x, vReflect.yz ) );\ngl_FragColor.xyz = mix( gl_FragColor.xyz, cubeColor.xyz, uReflectivity );\n}", +THREE.ShaderChunk.shadowmap_fragment,THREE.ShaderChunk.fog_fragment,"}"].join("\n"),vertexShader:["attribute vec4 tangent;\nuniform vec2 uOffset;\nuniform vec2 uRepeat;\n#ifdef VERTEX_TEXTURES\nuniform sampler2D tDisplacement;\nuniform float uDisplacementScale;\nuniform float uDisplacementBias;\n#endif\nvarying vec3 vTangent;\nvarying vec3 vBinormal;\nvarying vec3 vNormal;\nvarying vec2 vUv;\n#if MAX_POINT_LIGHTS > 0\nuniform vec3 pointLightPosition[ MAX_POINT_LIGHTS ];\nuniform float pointLightDistance[ MAX_POINT_LIGHTS ];\nvarying vec4 vPointLight[ MAX_POINT_LIGHTS ];\n#endif\nvarying vec3 vViewPosition;", +THREE.ShaderChunk.shadowmap_pars_vertex,"void main() {\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\nvViewPosition = -mvPosition.xyz;\nvNormal = normalize( normalMatrix * normal );\nvTangent = normalize( normalMatrix * tangent.xyz );\nvBinormal = cross( vNormal, vTangent ) * tangent.w;\nvBinormal = normalize( vBinormal );\nvUv = uv * uRepeat + uOffset;\n#if MAX_POINT_LIGHTS > 0\nfor( int i = 0; i < MAX_POINT_LIGHTS; i++ ) {\nvec4 lPosition = viewMatrix * vec4( pointLightPosition[ i ], 1.0 );\nvec3 lVector = lPosition.xyz - mvPosition.xyz;\nfloat lDistance = 1.0;\nif ( pointLightDistance[ i ] > 0.0 )\nlDistance = 1.0 - min( ( length( lVector ) / pointLightDistance[ i ] ), 1.0 );\nlVector = normalize( lVector );\nvPointLight[ i ] = vec4( lVector, lDistance );\n}\n#endif\n#ifdef VERTEX_TEXTURES\nvec3 dv = texture2D( tDisplacement, uv ).xyz;\nfloat df = uDisplacementScale * dv.x + uDisplacementBias;\nvec4 displacedPosition = vec4( vNormal.xyz * df, 0.0 ) + mvPosition;\ngl_Position = projectionMatrix * displacedPosition;\n#else\ngl_Position = projectionMatrix * mvPosition;\n#endif", +THREE.ShaderChunk.shadowmap_vertex,"}"].join("\n")},cube:{uniforms:{tCube:{type:"t",value:1,texture:null}},vertexShader:"varying vec3 vViewPosition;\nvoid main() {\nvec4 mPosition = objectMatrix * vec4( position, 1.0 );\nvViewPosition = cameraPosition - mPosition.xyz;\ngl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",fragmentShader:"uniform samplerCube tCube;\nvarying vec3 vViewPosition;\nvoid main() {\nvec3 wPos = cameraPosition - vViewPosition;\ngl_FragColor = textureCube( tCube, vec3( - wPos.x, wPos.yz ) );\n}"}}}; +THREE.Curve=function(){};THREE.Curve.prototype.getPoint=function(){console.log("Warning, getPoint() not implemented!");return null};THREE.Curve.prototype.getPointAt=function(b){return this.getPoint(this.getUtoTmapping(b))};THREE.Curve.prototype.getPoints=function(b){b||(b=5);var c,e=[];for(c=0;c<=b;c++)e.push(this.getPoint(c/b));return e};THREE.Curve.prototype.getSpacedPoints=function(b){b||(b=5);var c,e=[];for(c=0;c<=b;c++)e.push(this.getPointAt(c/b));return e}; +THREE.Curve.prototype.getLength=function(){var b=this.getLengths();return b[b.length-1]};THREE.Curve.prototype.getLengths=function(b){b||(b=200);if(this.cacheArcLengths&&this.cacheArcLengths.length==b+1)return this.cacheArcLengths;var c=[],e,f=this.getPoint(0),h,k=0;c.push(0);for(h=1;h<=b;h++)e=this.getPoint(h/b),k+=e.distanceTo(f),c.push(k),f=e;return this.cacheArcLengths=c}; +THREE.Curve.prototype.getUtoTmapping=function(b,c){var e=this.getLengths(),f=0,h=e.length,k;k=c?c:b*e[h-1];time=Date.now();for(var m=0,n=h-1,t;m<=n;)if(f=Math.floor(m+(n-m)/2),t=e[f]-k,t<0)m=f+1;else if(t>0)n=f-1;else{n=f;break}f=n;if(e[f]==k)return f/(h-1);m=e[f];return e=(f+(k-m)/(e[f+1]-m))/(h-1)};THREE.Curve.prototype.getNormalVector=function(b){b=this.getTangent(b);return new THREE.Vector2(-b.y,b.x)}; +THREE.Curve.prototype.getTangent=function(b){var c=b-1.0E-4;b+=1.0E-4;c<0&&(c=0);b>1&&(b=1);var c=this.getPoint(c),b=this.getPoint(b),e=new THREE.Vector2;e.sub(b,c);return e.unit()};THREE.LineCurve=function(b,c){b instanceof THREE.Vector2?(this.v1=b,this.v2=c):THREE.LineCurve.oldConstructor.apply(this,arguments)};THREE.LineCurve.oldConstructor=function(b,c,e,f){this.constructor(new THREE.Vector2(b,c),new THREE.Vector2(e,f))};THREE.LineCurve.prototype=new THREE.Curve; +THREE.LineCurve.prototype.constructor=THREE.LineCurve;THREE.LineCurve.prototype.getPoint=function(b){var c=new THREE.Vector2;c.sub(this.v2,this.v1);c.multiplyScalar(b).addSelf(this.v1);return c};THREE.LineCurve.prototype.getPointAt=function(b){return this.getPoint(b)};THREE.LineCurve.prototype.getTangent=function(){var b=new THREE.Vector2;b.sub(this.v2,this.v1);b.normalize();return b}; +THREE.QuadraticBezierCurve=function(b,c,e){if(!(c instanceof THREE.Vector2))var f=Array.prototype.slice.call(arguments),b=new THREE.Vector2(f[0],f[1]),c=new THREE.Vector2(f[2],f[3]),e=new THREE.Vector2(f[4],f[5]);this.v0=b;this.v1=c;this.v2=e};THREE.QuadraticBezierCurve.prototype=new THREE.Curve;THREE.QuadraticBezierCurve.prototype.constructor=THREE.QuadraticBezierCurve; +THREE.QuadraticBezierCurve.prototype.getPoint=function(b){var c;c=THREE.Shape.Utils.b2(b,this.v0.x,this.v1.x,this.v2.x);b=THREE.Shape.Utils.b2(b,this.v0.y,this.v1.y,this.v2.y);return new THREE.Vector2(c,b)};THREE.QuadraticBezierCurve.prototype.getTangent=function(b){var c;c=THREE.Curve.Utils.tangentQuadraticBezier(b,this.v0.x,this.v1.x,this.v2.x);b=THREE.Curve.Utils.tangentQuadraticBezier(b,this.v0.y,this.v1.y,this.v2.y);c=new THREE.Vector2(c,b);c.normalize();return c}; +THREE.CubicBezierCurve=function(b,c,e,f){if(!(c instanceof THREE.Vector2))var h=Array.prototype.slice.call(arguments),b=new THREE.Vector2(h[0],h[1]),c=new THREE.Vector2(h[2],h[3]),e=new THREE.Vector2(h[4],h[5]),f=new THREE.Vector2(h[6],h[7]);this.v0=b;this.v1=c;this.v2=e;this.v3=f};THREE.CubicBezierCurve.prototype=new THREE.Curve;THREE.CubicBezierCurve.prototype.constructor=THREE.CubicBezierCurve; +THREE.CubicBezierCurve.prototype.getPoint=function(b){var c;c=THREE.Shape.Utils.b3(b,this.v0.x,this.v1.x,this.v2.x,this.v3.x);b=THREE.Shape.Utils.b3(b,this.v0.y,this.v1.y,this.v2.y,this.v3.y);return new THREE.Vector2(c,b)};THREE.CubicBezierCurve.prototype.getTangent=function(b){var c;c=THREE.Curve.Utils.tangentCubicBezier(b,this.v0.x,this.v1.x,this.v2.x,this.v3.x);b=THREE.Curve.Utils.tangentCubicBezier(b,this.v0.y,this.v1.y,this.v2.y,this.v3.y);c=new THREE.Vector2(c,b);c.normalize();return c}; +THREE.SplineCurve=function(b){this.points=b};THREE.SplineCurve.prototype=new THREE.Curve;THREE.SplineCurve.prototype.constructor=THREE.SplineCurve; +THREE.SplineCurve.prototype.getPoint=function(b){var c=new THREE.Vector2,e=[],f=this.points,h;h=(f.length-1)*b;b=Math.floor(h);h-=b;e[0]=b==0?b:b-1;e[1]=b;e[2]=b>f.length-2?b:b+1;e[3]=b>f.length-3?b:b+2;c.x=THREE.Curve.Utils.interpolate(f[e[0]].x,f[e[1]].x,f[e[2]].x,f[e[3]].x,h);c.y=THREE.Curve.Utils.interpolate(f[e[0]].y,f[e[1]].y,f[e[2]].y,f[e[3]].y,h);return c};THREE.ArcCurve=function(b,c,e,f,h,k){this.aX=b;this.aY=c;this.aRadius=e;this.aStartAngle=f;this.aEndAngle=h;this.aClockwise=k}; +THREE.ArcCurve.prototype=new THREE.Curve;THREE.ArcCurve.prototype.constructor=THREE.ArcCurve;THREE.ArcCurve.prototype.getPoint=function(b){var c=this.aEndAngle-this.aStartAngle;this.aClockwise||(b=1-b);b=this.aStartAngle+b*c;return new THREE.Vector2(this.aX+this.aRadius*Math.cos(b),this.aY+this.aRadius*Math.sin(b))}; +THREE.Curve.Utils={tangentQuadraticBezier:function(b,c,e,f){return 2*(1-b)*(e-c)+2*b*(f-e)},tangentCubicBezier:function(b,c,e,f,h){return-3*c*(1-b)*(1-b)+3*e*(1-b)*(1-b)-6*b*e*(1-b)+6*b*f*(1-b)-3*b*b*f+3*b*b*h},tangentSpline:function(b){return 6*b*b-6*b+(3*b*b-4*b+1)+(-6*b*b+6*b)+(3*b*b-2*b)},interpolate:function(b,c,e,f,h){var b=(e-b)*0.5,f=(f-c)*0.5,k=h*h;return(2*c-2*e+b+f)*h*k+(-3*c+3*e-2*b-f)*k+b*h+c}}; +THREE.Curve.create=function(b,c){b.prototype=new THREE.Curve;b.prototype.constructor=b;b.prototype.getPoint=c;return b};THREE.LineCurve3=THREE.Curve.create(function(b,c){this.v1=b;this.v2=c},function(b){var c=new THREE.Vector3;c.sub(v2,v1);c.multiplyScalar(b);c.addSelf(this.v1);return c}); +THREE.QuadraticBezierCurve3=THREE.Curve.create(function(b,c,e){this.v0=b;this.v1=c;this.v2=e},function(b){var c,e;c=THREE.Shape.Utils.b2(b,this.v0.x,this.v1.x,this.v2.x);e=THREE.Shape.Utils.b2(b,this.v0.y,this.v1.y,this.v2.y);b=THREE.Shape.Utils.b2(b,this.v0.z,this.v1.z,this.v2.z);return new THREE.Vector3(c,e,b)}); +THREE.CubicBezierCurve3=THREE.Curve.create(function(b,c,e,f){this.v0=b;this.v1=c;this.v2=e;this.v3=f},function(b){var c,e;c=THREE.Shape.Utils.b3(b,this.v0.x,this.v1.x,this.v2.x,this.v3.x);e=THREE.Shape.Utils.b3(b,this.v0.y,this.v1.y,this.v2.y,this.v3.y);b=THREE.Shape.Utils.b3(b,this.v0.z,this.v1.z,this.v2.z,this.v3.z);return new THREE.Vector3(c,e,b)}); +THREE.SplineCurve3=THREE.Curve.create(function(b){this.points=b},function(b){var c=new THREE.Vector3,e=[],f=this.points,h;h=(f.length-1)*b;b=Math.floor(h);h-=b;e[0]=b==0?b:b-1;e[1]=b;e[2]=b>f.length-2?b:b+1;e[3]=b>f.length-3?b:b+2;c.x=THREE.Curve.Utils.interpolate(f[e[0]].x,f[e[1]].x,f[e[2]].x,f[e[3]].x,h);c.y=THREE.Curve.Utils.interpolate(f[e[0]].y,f[e[1]].y,f[e[2]].y,f[e[3]].y,h);c.z=THREE.Curve.Utils.interpolate(f[e[0]].z,f[e[1]].z,f[e[2]].z,f[e[3]].z,h);return c}); +THREE.CurvePath=function(){this.curves=[];this.bends=[]};THREE.CurvePath.prototype=new THREE.Curve;THREE.CurvePath.prototype.constructor=THREE.CurvePath;THREE.CurvePath.prototype.add=function(b){this.curves.push(b)};THREE.CurvePath.prototype.checkConnection=function(){};THREE.CurvePath.prototype.closePath=function(){}; +THREE.CurvePath.prototype.getPoint=function(b){for(var c=b*this.getLength(),e=this.getCurveLengths(),b=0;b<e.length;){if(e[b]>=c)return c=e[b]-c,b=this.curves[b],c=1-c/b.getLength(),b.getPointAt(c);b++}return null};THREE.CurvePath.prototype.getLength=function(){var b=this.getCurveLengths();return b[b.length-1]}; +THREE.CurvePath.prototype.getCurveLengths=function(){if(this.cacheLengths&&this.cacheLengths.length==this.curves.length)return this.cacheLengths;var b=[],c=0,e,f=this.curves.length;for(e=0;e<f;e++)c+=this.curves[e].getLength(),b.push(c);return this.cacheLengths=b}; +THREE.CurvePath.prototype.getBoundingBox=function(){var b=this.getPoints(),c,e,f,h;c=e=Number.NEGATIVE_INFINITY;f=h=Number.POSITIVE_INFINITY;var k,m,n,t;t=new THREE.Vector2;m=0;for(n=b.length;m<n;m++){k=b[m];if(k.x>c)c=k.x;else if(k.x<f)f=k.x;if(k.y>e)e=k.y;else if(k.y<e)h=k.y;t.addSelf(k.x,k.y)}return{minX:f,minY:h,maxX:c,maxY:e,centroid:t.divideScalar(n)}};THREE.CurvePath.prototype.createPointsGeometry=function(b){return this.createGeometry(this.getPoints(b,!0))}; +THREE.CurvePath.prototype.createSpacedPointsGeometry=function(b){return this.createGeometry(this.getSpacedPoints(b,!0))};THREE.CurvePath.prototype.createGeometry=function(b){for(var c=new THREE.Geometry,e=0;e<b.length;e++)c.vertices.push(new THREE.Vertex(new THREE.Vector3(b[e].x,b[e].y,0)));return c};THREE.CurvePath.prototype.addWrapPath=function(b){this.bends.push(b)}; +THREE.CurvePath.prototype.getTransformedPoints=function(b,c){var e=this.getPoints(b),f,h;if(!c)c=this.bends;f=0;for(h=c.length;f<h;f++)e=this.getWrapPoints(e,c[f]);return e};THREE.CurvePath.prototype.getTransformedSpacedPoints=function(b,c){var e=this.getSpacedPoints(b),f,h;if(!c)c=this.bends;f=0;for(h=c.length;f<h;f++)e=this.getWrapPoints(e,c[f]);return e}; +THREE.CurvePath.prototype.getWrapPoints=function(b,c){var e=this.getBoundingBox(),f,h,k,m,n,t;f=0;for(h=b.length;f<h;f++)k=b[f],m=k.x,n=k.y,t=m/e.maxX,t=c.getUtoTmapping(t,m),m=c.getPoint(t),n=c.getNormalVector(t).multiplyScalar(n),k.x=m.x+n.x,k.y=m.y+n.y;return b};THREE.Path=function(b){THREE.CurvePath.call(this);this.actions=[];b&&this.fromPoints(b)};THREE.Path.prototype=new THREE.CurvePath;THREE.Path.prototype.constructor=THREE.Path; +THREE.PathActions={MOVE_TO:"moveTo",LINE_TO:"lineTo",QUADRATIC_CURVE_TO:"quadraticCurveTo",BEZIER_CURVE_TO:"bezierCurveTo",CSPLINE_THRU:"splineThru",ARC:"arc"};THREE.Path.prototype.fromPoints=function(b){this.moveTo(b[0].x,b[0].y);var c,e=b.length;for(c=1;c<e;c++)this.lineTo(b[c].x,b[c].y)};THREE.Path.prototype.moveTo=function(){var b=Array.prototype.slice.call(arguments);this.actions.push({action:THREE.PathActions.MOVE_TO,args:b})}; +THREE.Path.prototype.lineTo=function(b,c){var e=Array.prototype.slice.call(arguments),f=this.actions[this.actions.length-1].args;this.curves.push(new THREE.LineCurve(new THREE.Vector2(f[f.length-2],f[f.length-1]),new THREE.Vector2(b,c)));this.actions.push({action:THREE.PathActions.LINE_TO,args:e})}; +THREE.Path.prototype.quadraticCurveTo=function(b,c,e,f){var h=Array.prototype.slice.call(arguments),k=this.actions[this.actions.length-1].args;this.curves.push(new THREE.QuadraticBezierCurve(new THREE.Vector2(k[k.length-2],k[k.length-1]),new THREE.Vector2(b,c),new THREE.Vector2(e,f)));this.actions.push({action:THREE.PathActions.QUADRATIC_CURVE_TO,args:h})}; +THREE.Path.prototype.bezierCurveTo=function(b,c,e,f,h,k){var m=Array.prototype.slice.call(arguments),n=this.actions[this.actions.length-1].args;this.curves.push(new THREE.CubicBezierCurve(new THREE.Vector2(n[n.length-2],n[n.length-1]),new THREE.Vector2(b,c),new THREE.Vector2(e,f),new THREE.Vector2(h,k)));this.actions.push({action:THREE.PathActions.BEZIER_CURVE_TO,args:m})}; +THREE.Path.prototype.splineThru=function(b){var c=Array.prototype.slice.call(arguments),e=this.actions[this.actions.length-1].args,e=[new THREE.Vector2(e[e.length-2],e[e.length-1])];Array.prototype.push.apply(e,b);this.curves.push(new THREE.SplineCurve(e));this.actions.push({action:THREE.PathActions.CSPLINE_THRU,args:c})}; +THREE.Path.prototype.arc=function(b,c,e,f,h,k){var m=Array.prototype.slice.call(arguments);this.curves.push(new THREE.ArcCurve(b,c,e,f,h,k));this.actions.push({action:THREE.PathActions.ARC,args:m})};THREE.Path.prototype.getSpacedPoints=function(b){b||(b=40);for(var c=[],e=0;e<b;e++)c.push(this.getPoint(e/b));return c}; +THREE.Path.prototype.getPoints=function(b,c){var b=b||12,e=[],f,h,k,m,n,t,u,v,p,x,w,A,z;f=0;for(h=this.actions.length;f<h;f++)switch(k=this.actions[f],m=k.action,k=k.args,m){case THREE.PathActions.LINE_TO:e.push(new THREE.Vector2(k[0],k[1]));break;case THREE.PathActions.QUADRATIC_CURVE_TO:n=k[2];t=k[3];p=k[0];x=k[1];e.length>0?(m=e[e.length-1],w=m.x,A=m.y):(m=this.actions[f-1].args,w=m[m.length-2],A=m[m.length-1]);for(m=1;m<=b;m++)z=m/b,k=THREE.Shape.Utils.b2(z,w,p,n),z=THREE.Shape.Utils.b2(z,A,x, +t),e.push(new THREE.Vector2(k,z));break;case THREE.PathActions.BEZIER_CURVE_TO:n=k[4];t=k[5];p=k[0];x=k[1];u=k[2];v=k[3];e.length>0?(m=e[e.length-1],w=m.x,A=m.y):(m=this.actions[f-1].args,w=m[m.length-2],A=m[m.length-1]);for(m=1;m<=b;m++)z=m/b,k=THREE.Shape.Utils.b3(z,w,p,u,n),z=THREE.Shape.Utils.b3(z,A,x,v,t),e.push(new THREE.Vector2(k,z));break;case THREE.PathActions.CSPLINE_THRU:m=this.actions[f-1].args;m=[new THREE.Vector2(m[m.length-2],m[m.length-1])];z=b*k[0].length;m=m.concat(k[0]);k=new THREE.SplineCurve(m); +for(m=1;m<=z;m++)e.push(k.getPointAt(m/z));break;case THREE.PathActions.ARC:m=this.actions[f-1].args;n=k[0];t=k[1];u=k[2];p=k[3];z=k[4];x=!!k[5];v=m[m.length-2];w=m[m.length-1];m.length==0&&(v=w=0);A=z-p;var y=b*2;for(m=1;m<=y;m++)z=m/y,x||(z=1-z),z=p+z*A,k=v+n+u*Math.cos(z),z=w+t+u*Math.sin(z),e.push(new THREE.Vector2(k,z))}c&&e.push(e[0]);return e};THREE.Path.prototype.transform=function(b,c){this.getBoundingBox();return this.getWrapPoints(this.getPoints(c),b)}; +THREE.Path.prototype.nltransform=function(b,c,e,f,h,k){var m=this.getPoints(),n,t,u,v,p;n=0;for(t=m.length;n<t;n++)u=m[n],v=u.x,p=u.y,u.x=b*v+c*p+e,u.y=f*p+h*v+k;return m}; +THREE.Path.prototype.debug=function(b){var c=this.getBoundingBox();b||(b=document.createElement("canvas"),b.setAttribute("width",c.maxX+100),b.setAttribute("height",c.maxY+100),document.body.appendChild(b));c=b.getContext("2d");c.fillStyle="white";c.fillRect(0,0,b.width,b.height);c.strokeStyle="black";c.beginPath();var e,f,h,b=0;for(e=this.actions.length;b<e;b++)f=this.actions[b],h=f.args,f=f.action,f!=THREE.PathActions.CSPLINE_THRU&&c[f].apply(c,h);c.stroke();c.closePath();c.strokeStyle="red";f= +this.getPoints();b=0;for(e=f.length;b<e;b++)h=f[b],c.beginPath(),c.arc(h.x,h.y,1.5,0,Math.PI*2,!1),c.stroke(),c.closePath()}; +THREE.Path.prototype.toShapes=function(){var b,c,e,f,h=[],k=new THREE.Path;b=0;for(c=this.actions.length;b<c;b++)e=this.actions[b],f=e.args,e=e.action,e==THREE.PathActions.MOVE_TO&&k.actions.length!=0&&(h.push(k),k=new THREE.Path),k[e].apply(k,f);k.actions.length!=0&&h.push(k);if(h.length==0)return[];var m,k=[];if(THREE.Shape.Utils.isClockWise(h[0].getPoints())){b=0;for(c=h.length;b<c;b++)f=h[b],THREE.Shape.Utils.isClockWise(f.getPoints())?(m&&k.push(m),m=new THREE.Shape,m.actions=f.actions,m.curves= +f.curves):m.holes.push(f);k.push(m)}else{m=new THREE.Shape;b=0;for(c=h.length;b<c;b++)f=h[b],THREE.Shape.Utils.isClockWise(f.getPoints())?(m.actions=f.actions,m.curves=f.curves,k.push(m),m=new THREE.Shape):m.holes.push(f)}return k};THREE.Shape=function(){THREE.Path.apply(this,arguments);this.holes=[]};THREE.Shape.prototype=new THREE.Path;THREE.Shape.prototype.constructor=THREE.Path;THREE.Shape.prototype.extrude=function(b){return new THREE.ExtrudeGeometry(this,b)}; +THREE.Shape.prototype.getPointsHoles=function(b){var c,e=this.holes.length,f=[];for(c=0;c<e;c++)f[c]=this.holes[c].getTransformedPoints(b,this.bends);return f};THREE.Shape.prototype.getSpacedPointsHoles=function(b){var c,e=this.holes.length,f=[];for(c=0;c<e;c++)f[c]=this.holes[c].getTransformedSpacedPoints(b,this.bends);return f};THREE.Shape.prototype.extractAllPoints=function(b){return{shape:this.getTransformedPoints(b),holes:this.getPointsHoles(b)}}; +THREE.Shape.prototype.extractAllSpacedPoints=function(b){return{shape:this.getTransformedSpacedPoints(b),holes:this.getSpacedPointsHoles(b)}}; +THREE.Shape.Utils={removeHoles:function(b,c){var e=b.concat(),f=e.concat(),h,k,m,n,t,u,v,p,x,w,A=[];for(t=0;t<c.length;t++){u=c[t];Array.prototype.push.apply(f,u);k=Number.POSITIVE_INFINITY;for(h=0;h<u.length;h++){x=u[h];w=[];for(p=0;p<e.length;p++)v=e[p],v=x.distanceToSquared(v),w.push(v),v<k&&(k=v,m=h,n=p)}h=n-1>=0?n-1:e.length-1;k=m-1>=0?m-1:u.length-1;var z=[u[m],e[n],e[h]];p=THREE.FontUtils.Triangulate.area(z);var y=[u[m],u[k],e[n]];x=THREE.FontUtils.Triangulate.area(y);w=n;v=m;n+=1;m+=-1;n< +0&&(n+=e.length);n%=e.length;m<0&&(m+=u.length);m%=u.length;h=n-1>=0?n-1:e.length-1;k=m-1>=0?m-1:u.length-1;z=[u[m],e[n],e[h]];z=THREE.FontUtils.Triangulate.area(z);y=[u[m],u[k],e[n]];y=THREE.FontUtils.Triangulate.area(y);p+x>z+y&&(n=w,m=v,n<0&&(n+=e.length),n%=e.length,m<0&&(m+=u.length),m%=u.length,h=n-1>=0?n-1:e.length-1,k=m-1>=0?m-1:u.length-1);p=e.slice(0,n);x=e.slice(n);w=u.slice(m);v=u.slice(0,m);k=[u[m],u[k],e[n]];A.push([u[m],e[n],e[h]]);A.push(k);e=p.concat(w).concat(v).concat(x)}return{shape:e, +isolatedPts:A,allpoints:f}},triangulateShape:function(b,c){var e=THREE.Shape.Utils.removeHoles(b,c),f=e.allpoints,h=e.isolatedPts,e=THREE.FontUtils.Triangulate(e.shape,!1),k,m,n,t,u={};k=0;for(m=f.length;k<m;k++)t=f[k].x+":"+f[k].y,u[t]!==void 0&&console.log("Duplicate point",t),u[t]=k;k=0;for(m=e.length;k<m;k++){n=e[k];for(f=0;f<3;f++)t=n[f].x+":"+n[f].y,t=u[t],t!==void 0&&(n[f]=t)}k=0;for(m=h.length;k<m;k++){n=h[k];for(f=0;f<3;f++)t=n[f].x+":"+n[f].y,t=u[t],t!==void 0&&(n[f]=t)}return e.concat(h)}, +isClockWise:function(b){return THREE.FontUtils.Triangulate.area(b)<0},b2p0:function(b,c){var e=1-b;return e*e*c},b2p1:function(b,c){return 2*(1-b)*b*c},b2p2:function(b,c){return b*b*c},b2:function(b,c,e,f){return this.b2p0(b,c)+this.b2p1(b,e)+this.b2p2(b,f)},b3p0:function(b,c){var e=1-b;return e*e*e*c},b3p1:function(b,c){var e=1-b;return 3*e*e*b*c},b3p2:function(b,c){return 3*(1-b)*b*b*c},b3p3:function(b,c){return b*b*b*c},b3:function(b,c,e,f,h){return this.b3p0(b,c)+this.b3p1(b,e)+this.b3p2(b,f)+ +this.b3p3(b,h)}};THREE.TextPath=function(b,c){THREE.Path.call(this);this.parameters=c||{};this.set(b)};THREE.TextPath.prototype.set=function(b,c){this.text=b;var c=c||this.parameters,e=c.curveSegments!==void 0?c.curveSegments:4,f=c.font!==void 0?c.font:"helvetiker",h=c.weight!==void 0?c.weight:"normal",k=c.style!==void 0?c.style:"normal";THREE.FontUtils.size=c.size!==void 0?c.size:100;THREE.FontUtils.divisions=e;THREE.FontUtils.face=f;THREE.FontUtils.weight=h;THREE.FontUtils.style=k}; +THREE.TextPath.prototype.toShapes=function(){for(var b=THREE.FontUtils.drawText(this.text).paths,c=[],e=0,f=b.length;e<f;e++)Array.prototype.push.apply(c,b[e].toShapes());return c}; +THREE.AnimationHandler=function(){var b=[],c={},e={update:function(e){for(var c=0;c<b.length;c++)b[c].update(e)},addToUpdate:function(e){b.indexOf(e)===-1&&b.push(e)},removeFromUpdate:function(e){e=b.indexOf(e);e!==-1&&b.splice(e,1)},add:function(b){c[b.name]!==void 0&&console.log("THREE.AnimationHandler.add: Warning! "+b.name+" already exists in library. Overwriting.");c[b.name]=b;if(b.initialized!==!0){for(var e=0;e<b.hierarchy.length;e++){for(var f=0;f<b.hierarchy[e].keys.length;f++){if(b.hierarchy[e].keys[f].time< +0)b.hierarchy[e].keys[f].time=0;if(b.hierarchy[e].keys[f].rot!==void 0&&!(b.hierarchy[e].keys[f].rot instanceof THREE.Quaternion)){var n=b.hierarchy[e].keys[f].rot;b.hierarchy[e].keys[f].rot=new THREE.Quaternion(n[0],n[1],n[2],n[3])}}if(b.hierarchy[e].keys[0].morphTargets!==void 0){n={};for(f=0;f<b.hierarchy[e].keys.length;f++)for(var t=0;t<b.hierarchy[e].keys[f].morphTargets.length;t++){var u=b.hierarchy[e].keys[f].morphTargets[t];n[u]=-1}b.hierarchy[e].usedMorphTargets=n;for(f=0;f<b.hierarchy[e].keys.length;f++){var v= +{};for(u in n){for(t=0;t<b.hierarchy[e].keys[f].morphTargets.length;t++)if(b.hierarchy[e].keys[f].morphTargets[t]===u){v[u]=b.hierarchy[e].keys[f].morphTargetsInfluences[t];break}t===b.hierarchy[e].keys[f].morphTargets.length&&(v[u]=0)}b.hierarchy[e].keys[f].morphTargetsInfluences=v}}for(f=1;f<b.hierarchy[e].keys.length;f++)b.hierarchy[e].keys[f].time===b.hierarchy[e].keys[f-1].time&&(b.hierarchy[e].keys.splice(f,1),f--);for(f=1;f<b.hierarchy[e].keys.length;f++)b.hierarchy[e].keys[f].index=f}f=parseInt(b.length* +b.fps,10);b.JIT={};b.JIT.hierarchy=[];for(e=0;e<b.hierarchy.length;e++)b.JIT.hierarchy.push(Array(f));b.initialized=!0}},get:function(b){if(typeof b==="string")return c[b]?c[b]:(console.log("THREE.AnimationHandler.get: Couldn't find animation "+b),null)},parse:function(b){var e=[];if(b instanceof THREE.SkinnedMesh)for(var c=0;c<b.bones.length;c++)e.push(b.bones[c]);else f(b,e);return e}},f=function(b,e){e.push(b);for(var c=0;c<b.children.length;c++)f(b.children[c],e)};e.LINEAR=0;e.CATMULLROM=1;e.CATMULLROM_FORWARD= +2;return e}();THREE.Animation=function(b,c,e,f){this.root=b;this.data=THREE.AnimationHandler.get(c);this.hierarchy=THREE.AnimationHandler.parse(b);this.currentTime=0;this.timeScale=1;this.isPlaying=!1;this.loop=this.isPaused=!0;this.interpolationType=e!==void 0?e:THREE.AnimationHandler.LINEAR;this.JITCompile=f!==void 0?f:!0;this.points=[];this.target=new THREE.Vector3}; +THREE.Animation.prototype.play=function(b,c){if(!this.isPlaying){this.isPlaying=!0;this.loop=b!==void 0?b:!0;this.currentTime=c!==void 0?c:0;var e,f=this.hierarchy.length,h;for(e=0;e<f;e++){h=this.hierarchy[e];if(this.interpolationType!==THREE.AnimationHandler.CATMULLROM_FORWARD)h.useQuaternion=!0;h.matrixAutoUpdate=!0;if(h.animationCache===void 0)h.animationCache={},h.animationCache.prevKey={pos:0,rot:0,scl:0},h.animationCache.nextKey={pos:0,rot:0,scl:0},h.animationCache.originalMatrix=h instanceof +THREE.Bone?h.skinMatrix:h.matrix;var k=h.animationCache.prevKey;h=h.animationCache.nextKey;k.pos=this.data.hierarchy[e].keys[0];k.rot=this.data.hierarchy[e].keys[0];k.scl=this.data.hierarchy[e].keys[0];h.pos=this.getNextKeyWith("pos",e,1);h.rot=this.getNextKeyWith("rot",e,1);h.scl=this.getNextKeyWith("scl",e,1)}this.update(0)}this.isPaused=!1;THREE.AnimationHandler.addToUpdate(this)}; +THREE.Animation.prototype.pause=function(){this.isPaused?THREE.AnimationHandler.addToUpdate(this):THREE.AnimationHandler.removeFromUpdate(this);this.isPaused=!this.isPaused}; +THREE.Animation.prototype.stop=function(){this.isPaused=this.isPlaying=!1;THREE.AnimationHandler.removeFromUpdate(this);for(var b=0;b<this.hierarchy.length;b++)if(this.hierarchy[b].animationCache!==void 0)this.hierarchy[b]instanceof THREE.Bone?this.hierarchy[b].skinMatrix=this.hierarchy[b].animationCache.originalMatrix:this.hierarchy[b].matrix=this.hierarchy[b].animationCache.originalMatrix,delete this.hierarchy[b].animationCache}; +THREE.Animation.prototype.update=function(b){if(this.isPlaying){var c=["pos","rot","scl"],e,f,h,k,m,n,t,u,v=this.data.JIT.hierarchy,p,x;this.currentTime+=b*this.timeScale;x=this.currentTime;p=this.currentTime%=this.data.length;u=parseInt(Math.min(p*this.data.fps,this.data.length*this.data.fps),10);for(var w=0,A=this.hierarchy.length;w<A;w++)if(b=this.hierarchy[w],t=b.animationCache,this.JITCompile&&v[w][u]!==void 0)b instanceof THREE.Bone?(b.skinMatrix=v[w][u],b.matrixAutoUpdate=!1,b.matrixWorldNeedsUpdate= +!1):(b.matrix=v[w][u],b.matrixAutoUpdate=!1,b.matrixWorldNeedsUpdate=!0);else{if(this.JITCompile)b instanceof THREE.Bone?b.skinMatrix=b.animationCache.originalMatrix:b.matrix=b.animationCache.originalMatrix;for(var z=0;z<3;z++){e=c[z];m=t.prevKey[e];n=t.nextKey[e];if(n.time<=x){if(p<x)if(this.loop){m=this.data.hierarchy[w].keys[0];for(n=this.getNextKeyWith(e,w,1);n.time<p;)m=n,n=this.getNextKeyWith(e,w,n.index+1)}else{this.stop();return}else{do m=n,n=this.getNextKeyWith(e,w,n.index+1);while(n.time< +p)}t.prevKey[e]=m;t.nextKey[e]=n}b.matrixAutoUpdate=!0;b.matrixWorldNeedsUpdate=!0;f=(p-m.time)/(n.time-m.time);h=m[e];k=n[e];if(f<0||f>1)console.log("THREE.Animation.update: Warning! Scale out of bounds:"+f+" on bone "+w),f=f<0?0:1;if(e==="pos")if(e=b.position,this.interpolationType===THREE.AnimationHandler.LINEAR)e.x=h[0]+(k[0]-h[0])*f,e.y=h[1]+(k[1]-h[1])*f,e.z=h[2]+(k[2]-h[2])*f;else{if(this.interpolationType===THREE.AnimationHandler.CATMULLROM||this.interpolationType===THREE.AnimationHandler.CATMULLROM_FORWARD)if(this.points[0]= +this.getPrevKeyWith("pos",w,m.index-1).pos,this.points[1]=h,this.points[2]=k,this.points[3]=this.getNextKeyWith("pos",w,n.index+1).pos,f=f*0.33+0.33,h=this.interpolateCatmullRom(this.points,f),e.x=h[0],e.y=h[1],e.z=h[2],this.interpolationType===THREE.AnimationHandler.CATMULLROM_FORWARD)f=this.interpolateCatmullRom(this.points,f*1.01),this.target.set(f[0],f[1],f[2]),this.target.subSelf(e),this.target.y=0,this.target.normalize(),f=Math.atan2(this.target.x,this.target.z),b.rotation.set(0,f,0)}else if(e=== +"rot")THREE.Quaternion.slerp(h,k,b.quaternion,f);else if(e==="scl")e=b.scale,e.x=h[0]+(k[0]-h[0])*f,e.y=h[1]+(k[1]-h[1])*f,e.z=h[2]+(k[2]-h[2])*f}}if(this.JITCompile&&v[0][u]===void 0){this.hierarchy[0].update(void 0,!0);for(w=0;w<this.hierarchy.length;w++)v[w][u]=this.hierarchy[w]instanceof THREE.Bone?this.hierarchy[w].skinMatrix.clone():this.hierarchy[w].matrix.clone()}}}; +THREE.Animation.prototype.interpolateCatmullRom=function(b,c){var e=[],f=[],h,k,m,n,t,u;h=(b.length-1)*c;k=Math.floor(h);h-=k;e[0]=k==0?k:k-1;e[1]=k;e[2]=k>b.length-2?k:k+1;e[3]=k>b.length-3?k:k+2;k=b[e[0]];n=b[e[1]];t=b[e[2]];u=b[e[3]];e=h*h;m=h*e;f[0]=this.interpolate(k[0],n[0],t[0],u[0],h,e,m);f[1]=this.interpolate(k[1],n[1],t[1],u[1],h,e,m);f[2]=this.interpolate(k[2],n[2],t[2],u[2],h,e,m);return f}; +THREE.Animation.prototype.interpolate=function(b,c,e,f,h,k,m){b=(e-b)*0.5;f=(f-c)*0.5;return(2*(c-e)+b+f)*m+(-3*(c-e)-2*b-f)*k+b*h+c};THREE.Animation.prototype.getNextKeyWith=function(b,c,e){var f=this.data.hierarchy[c].keys;for(this.interpolationType===THREE.AnimationHandler.CATMULLROM||this.interpolationType===THREE.AnimationHandler.CATMULLROM_FORWARD?e=e<f.length-1?e:f.length-1:e%=f.length;e<f.length;e++)if(f[e][b]!==void 0)return f[e];return this.data.hierarchy[c].keys[0]}; +THREE.Animation.prototype.getPrevKeyWith=function(b,c,e){for(var f=this.data.hierarchy[c].keys,e=this.interpolationType===THREE.AnimationHandler.CATMULLROM||this.interpolationType===THREE.AnimationHandler.CATMULLROM_FORWARD?e>0?e:0:e>=0?e:e+f.length;e>=0;e--)if(f[e][b]!==void 0)return f[e];return this.data.hierarchy[c].keys[f.length-1]}; +THREE.CubeCamera=function(b,c,e,f){this.cameraPX=new THREE.PerspectiveCamera(90,1,b,c);this.cameraNX=new THREE.PerspectiveCamera(90,1,b,c);this.cameraPY=new THREE.PerspectiveCamera(90,1,b,c);this.cameraNY=new THREE.PerspectiveCamera(90,1,b,c);this.cameraPZ=new THREE.PerspectiveCamera(90,1,b,c);this.cameraNZ=new THREE.PerspectiveCamera(90,1,b,c);this.cameraPXTarget=new THREE.Vector3(0,0,0);this.cameraNXTarget=new THREE.Vector3(0,0,0);this.cameraPYTarget=new THREE.Vector3(0,0,0);this.cameraNYTarget= +new THREE.Vector3(0,0,0);this.cameraPZTarget=new THREE.Vector3(0,0,0);this.cameraNZTarget=new THREE.Vector3(0,0,0);this.height=e;this.position=new THREE.Vector3(0,e,0);this.cameraPX.position=this.position;this.cameraNX.position=this.position;this.cameraPY.position=this.position;this.cameraNY.position=this.position;this.cameraPZ.position=this.position;this.cameraNZ.position=this.position;this.cameraPY.up.set(0,0,1);this.cameraPZ.up.set(0,-1,0);this.cameraNZ.up.set(0,-1,0);this.renderTarget=new THREE.WebGLRenderTargetCube(f, +f,{format:THREE.RGBFormat,magFilter:THREE.LinearFilter,minFilter:THREE.LinearFilter});this.updatePosition=function(b){this.position.x=b.x;this.position.z=b.z;this.cameraPXTarget.add(this.position,new THREE.Vector3(-1,0,0));this.cameraNXTarget.add(this.position,new THREE.Vector3(1,0,0));this.cameraPYTarget.add(this.position,new THREE.Vector3(0,1,0));this.cameraNYTarget.add(this.position,new THREE.Vector3(0,-1,0));this.cameraPZTarget.add(this.position,new THREE.Vector3(0,0,1));this.cameraNZTarget.add(this.position, +new THREE.Vector3(0,0,-1));this.cameraPX.lookAt(this.cameraPXTarget);this.cameraNX.lookAt(this.cameraNXTarget);this.cameraPY.lookAt(this.cameraPYTarget);this.cameraNY.lookAt(this.cameraNYTarget);this.cameraPZ.lookAt(this.cameraPZTarget);this.cameraNZ.lookAt(this.cameraNZTarget)};this.updateCubeMap=function(b,e){var c=this.renderTarget;b.setFaceCulling("back","cw");e.scale.y=-1;e.position.y=2*this.height;e.updateMatrix();c.activeCubeFace=0;b.render(e,this.cameraPX,c);c.activeCubeFace=1;b.render(e, +this.cameraNX,c);e.scale.y=1;e.position.y=0;e.updateMatrix();e.scale.x=-1;e.updateMatrix();c.activeCubeFace=2;b.render(e,this.cameraPY,c);e.scale.x=1;e.updateMatrix();b.setFaceCulling("back","ccw");c.activeCubeFace=3;b.render(e,this.cameraNY,c);e.scale.x=-1;e.updateMatrix();b.setFaceCulling("back","cw");c.activeCubeFace=4;b.render(e,this.cameraPZ,c);c.activeCubeFace=5;b.render(e,this.cameraNZ,c);e.scale.x=1;e.updateMatrix();b.setFaceCulling("back","ccw")}};THREE.FirstPersonCamera=function(){console.warn("DEPRECATED: FirstPersonCamera() is FirstPersonControls().")}; +THREE.PathCamera=function(){console.warn("DEPRECATED: PathCamera() is PathControls().")};THREE.FlyCamera=function(){console.warn("DEPRECATED: FlyCamera() is FlyControls().")};THREE.RollCamera=function(){console.warn("DEPRECATED: RollCamera() is RollControls().")};THREE.TrackballCamera=function(){console.warn("DEPRECATED: TrackballCamera() is TrackballControls().")}; +THREE.CombinedCamera=function(b,c,e,f,h,k,m){THREE.Camera.call(this);this.cameraO=new THREE.OrthographicCamera(b/-2,b/2,c/2,c/-2,k,m);this.cameraP=new THREE.PerspectiveCamera(e,b/c,f,h);this.toPerspective()};THREE.CombinedCamera.prototype=new THREE.Camera;THREE.CombinedCamera.prototype.constructor=THREE.CoolCamera;THREE.CombinedCamera.prototype.toPerspective=function(){this.near=this.cameraP.near;this.far=this.cameraP.far;this.projectionMatrix=this.cameraP.projectionMatrix}; +THREE.CombinedCamera.prototype.toOrthographic=function(){this.near=this.cameraO.near;this.far=this.cameraO.far;this.projectionMatrix=this.cameraO.projectionMatrix};THREE.CombinedCamera.prototype.setFov=function(b){this.cameraP.fov=b;this.cameraP.updateProjectionMatrix();this.toPerspective()};THREE.CombinedCamera.prototype.setLens=function(b,c){c||(c=43.25);var e=2*Math.atan(c/(b*2));e*=180/Math.PI;this.setFov(e);return e}; +THREE.FirstPersonControls=function(b,c){function e(b,e){return function(){e.apply(b,arguments)}}this.object=b;this.target=new THREE.Vector3(0,0,0);this.domElement=c!==void 0?c:document;this.movementSpeed=1;this.lookSpeed=0.005;this.noFly=!1;this.lookVertical=!0;this.autoForward=!1;this.activeLook=!0;this.heightSpeed=!1;this.heightCoef=1;this.heightMin=0;this.constrainVertical=!1;this.verticalMin=0;this.verticalMax=Math.PI;this.lastUpdate=(new Date).getTime();this.theta=this.phi=this.lon=this.lat= +this.mouseY=this.mouseX=this.autoSpeedFactor=this.tdiff=0;this.mouseDragOn=this.freeze=this.moveRight=this.moveLeft=this.moveBackward=this.moveForward=!1;this.domElement===document?(this.viewHalfX=window.innerWidth/2,this.viewHalfY=window.innerHeight/2):(this.viewHalfX=this.domElement.offsetWidth/2,this.viewHalfY=this.domElement.offsetHeight/2,this.domElement.setAttribute("tabindex",-1));this.onMouseDown=function(b){this.domElement!==document&&this.domElement.focus();b.preventDefault();b.stopPropagation(); +if(this.activeLook)switch(b.button){case 0:this.moveForward=!0;break;case 2:this.moveBackward=!0}this.mouseDragOn=!0};this.onMouseUp=function(b){b.preventDefault();b.stopPropagation();if(this.activeLook)switch(b.button){case 0:this.moveForward=!1;break;case 2:this.moveBackward=!1}this.mouseDragOn=!1};this.onMouseMove=function(b){this.domElement===document?(this.mouseX=b.pageX-this.viewHalfX,this.mouseY=b.pageY-this.viewHalfY):(this.mouseX=b.pageX-this.domElement.offsetLeft-this.viewHalfX,this.mouseY= +b.pageY-this.domElement.offsetTop-this.viewHalfY)};this.onKeyDown=function(b){switch(b.keyCode){case 38:case 87:this.moveForward=!0;break;case 37:case 65:this.moveLeft=!0;break;case 40:case 83:this.moveBackward=!0;break;case 39:case 68:this.moveRight=!0;break;case 82:this.moveUp=!0;break;case 70:this.moveDown=!0;break;case 81:this.freeze=!this.freeze}};this.onKeyUp=function(b){switch(b.keyCode){case 38:case 87:this.moveForward=!1;break;case 37:case 65:this.moveLeft=!1;break;case 40:case 83:this.moveBackward= +!1;break;case 39:case 68:this.moveRight=!1;break;case 82:this.moveUp=!1;break;case 70:this.moveDown=!1}};this.update=function(){var b=(new Date).getTime();this.tdiff=(b-this.lastUpdate)/1E3;this.lastUpdate=b;if(!this.freeze){this.autoSpeedFactor=this.heightSpeed?this.tdiff*((this.object.position.y<this.heightMin?this.heightMin:this.object.position.y>this.heightMax?this.heightMax:this.object.position.y)-this.heightMin)*this.heightCoef:0;var e=this.tdiff*this.movementSpeed;(this.moveForward||this.autoForward&& +!this.moveBackward)&&this.object.translateZ(-(e+this.autoSpeedFactor));this.moveBackward&&this.object.translateZ(e);this.moveLeft&&this.object.translateX(-e);this.moveRight&&this.object.translateX(e);this.moveUp&&this.object.translateY(e);this.moveDown&&this.object.translateY(-e);e=this.tdiff*this.lookSpeed;this.activeLook||(e=0);this.lon+=this.mouseX*e;this.lookVertical&&(this.lat-=this.mouseY*e);this.lat=Math.max(-85,Math.min(85,this.lat));this.phi=(90-this.lat)*Math.PI/180;this.theta=this.lon* +Math.PI/180;var b=this.target,c=this.object.position;b.x=c.x+100*Math.sin(this.phi)*Math.cos(this.theta);b.y=c.y+100*Math.cos(this.phi);b.z=c.z+100*Math.sin(this.phi)*Math.sin(this.theta)}b=1;this.constrainVertical&&(b=Math.PI/(this.verticalMax-this.verticalMin));this.lon+=this.mouseX*e;this.lookVertical&&(this.lat-=this.mouseY*e*b);this.lat=Math.max(-85,Math.min(85,this.lat));this.phi=(90-this.lat)*Math.PI/180;this.theta=this.lon*Math.PI/180;if(this.constrainVertical)this.phi=(this.phi-0)*(this.verticalMax- +this.verticalMin)/(Math.PI-0)+this.verticalMin;b=this.target;c=this.object.position;b.x=c.x+100*Math.sin(this.phi)*Math.cos(this.theta);b.y=c.y+100*Math.cos(this.phi);b.z=c.z+100*Math.sin(this.phi)*Math.sin(this.theta);this.object.lookAt(b)};this.domElement.addEventListener("contextmenu",function(b){b.preventDefault()},!1);this.domElement.addEventListener("mousemove",e(this,this.onMouseMove),!1);this.domElement.addEventListener("mousedown",e(this,this.onMouseDown),!1);this.domElement.addEventListener("mouseup", +e(this,this.onMouseUp),!1);this.domElement.addEventListener("keydown",e(this,this.onKeyDown),!1);this.domElement.addEventListener("keyup",e(this,this.onKeyUp),!1)}; +THREE.PathControls=function(b,c){function e(b){if((b*=2)<1)return 0.5*b*b;return-0.5*(--b*(b-2)-1)}function f(b,e){return function(){e.apply(b,arguments)}}function h(b,e,c,f){var h={name:c,fps:0.6,length:f,hierarchy:[]},k,m=e.getControlPointsArray(),n=e.getLength(),y=m.length,C=0;k=y-1;e={parent:-1,keys:[]};e.keys[0]={time:0,pos:m[0],rot:[0,0,0,1],scl:[1,1,1]};e.keys[k]={time:f,pos:m[k],rot:[0,0,0,1],scl:[1,1,1]};for(k=1;k<y-1;k++)C=f*n.chunks[k]/n.total,e.keys[k]={time:C,pos:m[k]};h.hierarchy[0]= +e;THREE.AnimationHandler.add(h);return new THREE.Animation(b,c,THREE.AnimationHandler.CATMULLROM_FORWARD,!1)}function k(b,e){var c,f,h=new THREE.Geometry;for(c=0;c<b.points.length*e;c++)f=c/(b.points.length*e),f=b.getPoint(f),h.vertices[c]=new THREE.Vertex(new THREE.Vector3(f.x,f.y,f.z));return h}this.object=b;this.domElement=c!==void 0?c:document;this.id="PathControls"+THREE.PathControlsIdCounter++;this.duration=1E4;this.waypoints=[];this.useConstantSpeed=!0;this.resamplingCoef=50;this.debugPath= +new THREE.Object3D;this.debugDummy=new THREE.Object3D;this.animationParent=new THREE.Object3D;this.lookSpeed=0.005;this.lookHorizontal=this.lookVertical=!0;this.verticalAngleMap={srcRange:[0,2*Math.PI],dstRange:[0,2*Math.PI]};this.horizontalAngleMap={srcRange:[0,2*Math.PI],dstRange:[0,2*Math.PI]};this.target=new THREE.Object3D;this.theta=this.phi=this.lon=this.lat=this.mouseY=this.mouseX=0;this.domElement===document?(this.viewHalfX=window.innerWidth/2,this.viewHalfY=window.innerHeight/2):(this.viewHalfX= +this.domElement.offsetWidth/2,this.viewHalfY=this.domElement.offsetHeight/2,this.domElement.setAttribute("tabindex",-1));var m=Math.PI*2,n=Math.PI/180;this.update=function(){var b,c;this.lookHorizontal&&(this.lon+=this.mouseX*this.lookSpeed);this.lookVertical&&(this.lat-=this.mouseY*this.lookSpeed);this.lon=Math.max(0,Math.min(360,this.lon));this.lat=Math.max(-85,Math.min(85,this.lat));this.phi=(90-this.lat)*n;this.theta=this.lon*n;b=this.phi%m;this.phi=b>=0?b:b+m;b=this.verticalAngleMap.srcRange; +c=this.verticalAngleMap.dstRange;var f=c[1]-c[0];this.phi=e(((this.phi-b[0])*(c[1]-c[0])/(b[1]-b[0])+c[0]-c[0])/f)*f+c[0];b=this.horizontalAngleMap.srcRange;c=this.horizontalAngleMap.dstRange;f=c[1]-c[0];this.theta=e(((this.theta-b[0])*(c[1]-c[0])/(b[1]-b[0])+c[0]-c[0])/f)*f+c[0];b=this.target.position;b.x=100*Math.sin(this.phi)*Math.cos(this.theta);b.y=100*Math.cos(this.phi);b.z=100*Math.sin(this.phi)*Math.sin(this.theta);this.object.lookAt(this.target.position)};this.onMouseMove=function(b){this.domElement=== +document?(this.mouseX=b.pageX-this.viewHalfX,this.mouseY=b.pageY-this.viewHalfY):(this.mouseX=b.pageX-this.domElement.offsetLeft-this.viewHalfX,this.mouseY=b.pageY-this.domElement.offsetTop-this.viewHalfY)};this.init=function(){this.spline=new THREE.Spline;this.spline.initFromArray(this.waypoints);this.useConstantSpeed&&this.spline.reparametrizeByArcLength(this.resamplingCoef);if(this.createDebugDummy){var b=new THREE.MeshLambertMaterial({color:30719}),e=new THREE.MeshLambertMaterial({color:65280}), +c=new THREE.CubeGeometry(10,10,20),m=new THREE.CubeGeometry(2,2,10);this.animationParent=new THREE.Mesh(c,b);b=new THREE.Mesh(m,e);b.position.set(0,10,0);this.animation=h(this.animationParent,this.spline,this.id,this.duration);this.animationParent.add(this.object);this.animationParent.add(this.target);this.animationParent.add(b)}else this.animation=h(this.animationParent,this.spline,this.id,this.duration),this.animationParent.add(this.target),this.animationParent.add(this.object);if(this.createDebugPath){var b= +this.debugPath,e=this.spline,c=k(e,10),m=k(e,10),n=new THREE.LineBasicMaterial({color:16711680,linewidth:3});lineObj=new THREE.Line(c,n);particleObj=new THREE.ParticleSystem(m,new THREE.ParticleBasicMaterial({color:16755200,size:3}));lineObj.scale.set(1,1,1);b.add(lineObj);particleObj.scale.set(1,1,1);b.add(particleObj);m=new THREE.SphereGeometry(1,16,8);n=new THREE.MeshBasicMaterial({color:65280});for(i=0;i<e.points.length;i++)c=new THREE.Mesh(m,n),c.position.copy(e.points[i]),b.add(c)}this.domElement.addEventListener("mousemove", +f(this,this.onMouseMove),!1)}};THREE.PathControlsIdCounter=0; +THREE.FlyControls=function(b,c){function e(b,e){return function(){e.apply(b,arguments)}}this.object=b;this.domElement=c!==void 0?c:document;c&&this.domElement.setAttribute("tabindex",-1);this.movementSpeed=1;this.rollSpeed=0.005;this.autoForward=this.dragToLook=!1;this.object.useQuaternion=!0;this.tmpQuaternion=new THREE.Quaternion;this.mouseStatus=0;this.moveState={up:0,down:0,left:0,right:0,forward:0,back:0,pitchUp:0,pitchDown:0,yawLeft:0,yawRight:0,rollLeft:0,rollRight:0};this.moveVector=new THREE.Vector3(0, +0,0);this.rotationVector=new THREE.Vector3(0,0,0);this.lastUpdate=-1;this.tdiff=0;this.handleEvent=function(b){if(typeof this[b.type]=="function")this[b.type](b)};this.keydown=function(b){if(!b.altKey){switch(b.keyCode){case 16:this.movementSpeedMultiplier=0.1;break;case 87:this.moveState.forward=1;break;case 83:this.moveState.back=1;break;case 65:this.moveState.left=1;break;case 68:this.moveState.right=1;break;case 82:this.moveState.up=1;break;case 70:this.moveState.down=1;break;case 38:this.moveState.pitchUp= +1;break;case 40:this.moveState.pitchDown=1;break;case 37:this.moveState.yawLeft=1;break;case 39:this.moveState.yawRight=1;break;case 81:this.moveState.rollLeft=1;break;case 69:this.moveState.rollRight=1}this.updateMovementVector();this.updateRotationVector()}};this.keyup=function(b){switch(b.keyCode){case 16:this.movementSpeedMultiplier=1;break;case 87:this.moveState.forward=0;break;case 83:this.moveState.back=0;break;case 65:this.moveState.left=0;break;case 68:this.moveState.right=0;break;case 82:this.moveState.up= +0;break;case 70:this.moveState.down=0;break;case 38:this.moveState.pitchUp=0;break;case 40:this.moveState.pitchDown=0;break;case 37:this.moveState.yawLeft=0;break;case 39:this.moveState.yawRight=0;break;case 81:this.moveState.rollLeft=0;break;case 69:this.moveState.rollRight=0}this.updateMovementVector();this.updateRotationVector()};this.mousedown=function(b){this.domElement!==document&&this.domElement.focus();b.preventDefault();b.stopPropagation();if(this.dragToLook)this.mouseStatus++;else switch(b.button){case 0:this.object.moveForward= +!0;break;case 2:this.object.moveBackward=!0}};this.mousemove=function(b){if(!this.dragToLook||this.mouseStatus>0){var e=this.getContainerDimensions(),c=e.size[0]/2,m=e.size[1]/2;this.moveState.yawLeft=-(b.pageX-e.offset[0]-c)/c;this.moveState.pitchDown=(b.pageY-e.offset[1]-m)/m;this.updateRotationVector()}};this.mouseup=function(b){b.preventDefault();b.stopPropagation();if(this.dragToLook)this.mouseStatus--,this.moveState.yawLeft=this.moveState.pitchDown=0;else switch(b.button){case 0:this.moveForward= +!1;break;case 2:this.moveBackward=!1}this.updateRotationVector()};this.update=function(){var b=(new Date).getTime();if(this.lastUpdate==-1)this.lastUpdate=b;this.tdiff=(b-this.lastUpdate)/1E3;this.lastUpdate=b;var b=this.tdiff*this.movementSpeed,e=this.tdiff*this.rollSpeed;this.object.translateX(this.moveVector.x*b);this.object.translateY(this.moveVector.y*b);this.object.translateZ(this.moveVector.z*b);this.tmpQuaternion.set(this.rotationVector.x*e,this.rotationVector.y*e,this.rotationVector.z*e, +1).normalize();this.object.quaternion.multiplySelf(this.tmpQuaternion);this.object.matrix.setPosition(this.object.position);this.object.matrix.setRotationFromQuaternion(this.object.quaternion);this.object.matrixWorldNeedsUpdate=!0};this.updateMovementVector=function(){var b=this.moveState.forward||this.autoForward&&!this.moveState.back?1:0;this.moveVector.x=-this.moveState.left+this.moveState.right;this.moveVector.y=-this.moveState.down+this.moveState.up;this.moveVector.z=-b+this.moveState.back}; +this.updateRotationVector=function(){this.rotationVector.x=-this.moveState.pitchDown+this.moveState.pitchUp;this.rotationVector.y=-this.moveState.yawRight+this.moveState.yawLeft;this.rotationVector.z=-this.moveState.rollRight+this.moveState.rollLeft};this.getContainerDimensions=function(){return this.domElement!=document?{size:[this.domElement.offsetWidth,this.domElement.offsetHeight],offset:[this.domElement.offsetLeft,this.domElement.offsetTop]}:{size:[window.innerWidth,window.innerHeight],offset:[0, +0]}};this.domElement.addEventListener("mousemove",e(this,this.mousemove),!1);this.domElement.addEventListener("mousedown",e(this,this.mousedown),!1);this.domElement.addEventListener("mouseup",e(this,this.mouseup),!1);this.domElement.addEventListener("keydown",e(this,this.keydown),!1);this.domElement.addEventListener("keyup",e(this,this.keyup),!1);this.updateMovementVector();this.updateRotationVector()}; +THREE.RollControls=function(b,c){this.object=b;this.domElement=c!==void 0?c:document;this.mouseLook=!0;this.autoForward=!1;this.rollSpeed=this.movementSpeed=this.lookSpeed=1;this.constrainVertical=[-0.9,0.9];this.object.matrixAutoUpdate=!1;this.forward=new THREE.Vector3(0,0,1);this.roll=0;this.lastUpdate=-1;this.delta=0;var e=new THREE.Vector3,f=new THREE.Vector3,h=new THREE.Vector3,k=new THREE.Matrix4,m=!1,n=1,t=0,u=0,v=0,p=0,x=0,w=window.innerWidth/2,A=window.innerHeight/2;this.update=function(){var b= +(new Date).getTime();if(this.lastUpdate==-1)this.lastUpdate=b;this.delta=(b-this.lastUpdate)/1E3;this.lastUpdate=b;this.mouseLook&&(b=this.delta*this.lookSpeed,this.rotateHorizontally(b*p),this.rotateVertically(b*x));b=this.delta*this.movementSpeed;this.object.translateZ(-b*(t>0||this.autoForward&&!(t<0)?1:t));this.object.translateX(b*u);this.object.translateY(b*v);m&&(this.roll+=this.rollSpeed*this.delta*n);if(this.forward.y>this.constrainVertical[1])this.forward.y=this.constrainVertical[1],this.forward.normalize(); +else if(this.forward.y<this.constrainVertical[0])this.forward.y=this.constrainVertical[0],this.forward.normalize();h.copy(this.forward);f.set(0,1,0);e.cross(f,h).normalize();f.cross(h,e).normalize();this.object.matrix.n11=e.x;this.object.matrix.n12=f.x;this.object.matrix.n13=h.x;this.object.matrix.n21=e.y;this.object.matrix.n22=f.y;this.object.matrix.n23=h.y;this.object.matrix.n31=e.z;this.object.matrix.n32=f.z;this.object.matrix.n33=h.z;k.identity();k.n11=Math.cos(this.roll);k.n12=-Math.sin(this.roll); +k.n21=Math.sin(this.roll);k.n22=Math.cos(this.roll);this.object.matrix.multiplySelf(k);this.object.matrixWorldNeedsUpdate=!0;this.object.matrix.n14=this.object.position.x;this.object.matrix.n24=this.object.position.y;this.object.matrix.n34=this.object.position.z};this.translateX=function(b){this.object.position.x+=this.object.matrix.n11*b;this.object.position.y+=this.object.matrix.n21*b;this.object.position.z+=this.object.matrix.n31*b};this.translateY=function(b){this.object.position.x+=this.object.matrix.n12* +b;this.object.position.y+=this.object.matrix.n22*b;this.object.position.z+=this.object.matrix.n32*b};this.translateZ=function(b){this.object.position.x-=this.object.matrix.n13*b;this.object.position.y-=this.object.matrix.n23*b;this.object.position.z-=this.object.matrix.n33*b};this.rotateHorizontally=function(b){e.set(this.object.matrix.n11,this.object.matrix.n21,this.object.matrix.n31);e.multiplyScalar(b);this.forward.subSelf(e);this.forward.normalize()};this.rotateVertically=function(b){f.set(this.object.matrix.n12, +this.object.matrix.n22,this.object.matrix.n32);f.multiplyScalar(b);this.forward.addSelf(f);this.forward.normalize()};this.domElement.addEventListener("contextmenu",function(b){b.preventDefault()},!1);this.domElement.addEventListener("mousemove",function(b){p=(b.clientX-w)/window.innerWidth;x=(b.clientY-A)/window.innerHeight},!1);this.domElement.addEventListener("mousedown",function(b){b.preventDefault();b.stopPropagation();switch(b.button){case 0:t=1;break;case 2:t=-1}},!1);this.domElement.addEventListener("mouseup", +function(b){b.preventDefault();b.stopPropagation();switch(b.button){case 0:t=0;break;case 2:t=0}},!1);this.domElement.addEventListener("keydown",function(b){switch(b.keyCode){case 38:case 87:t=1;break;case 37:case 65:u=-1;break;case 40:case 83:t=-1;break;case 39:case 68:u=1;break;case 81:m=!0;n=1;break;case 69:m=!0;n=-1;break;case 82:v=1;break;case 70:v=-1}},!1);this.domElement.addEventListener("keyup",function(b){switch(b.keyCode){case 38:case 87:t=0;break;case 37:case 65:u=0;break;case 40:case 83:t= +0;break;case 39:case 68:u=0;break;case 81:m=!1;break;case 69:m=!1;break;case 82:v=0;break;case 70:v=0}},!1)}; +THREE.TrackballControls=function(b,c){function e(b,e){return function(){e.apply(b,arguments)}}this.object=b;this.domElement=c!==void 0?c:document;this.screen={width:window.innerWidth,height:window.innerHeight,offsetLeft:0,offsetTop:0};this.radius=(this.screen.width+this.screen.height)/4;this.rotateSpeed=1;this.zoomSpeed=1.2;this.panSpeed=0.3;this.staticMoving=this.noPan=this.noZoom=!1;this.dynamicDampingFactor=0.2;this.minDistance=0;this.maxDistance=Infinity;this.keys=[65,83,68];this.target=new THREE.Vector3(0, +0,0);var f=!1,h=this.STATE.NONE,k=new THREE.Vector3,m=new THREE.Vector3,n=new THREE.Vector3,t=new THREE.Vector2,u=new THREE.Vector2,v=new THREE.Vector2,p=new THREE.Vector2;this.handleEvent=function(b){if(typeof this[b.type]=="function")this[b.type](b)};this.getMouseOnScreen=function(b,e){return new THREE.Vector2((b-this.screen.offsetLeft)/this.radius*0.5,(e-this.screen.offsetTop)/this.radius*0.5)};this.getMouseProjectionOnBall=function(b,e){var c=new THREE.Vector3((b-this.screen.width*0.5-this.screen.offsetLeft)/ +this.radius,(this.screen.height*0.5+this.screen.offsetTop-e)/this.radius,0),f=c.length();f>1?c.normalize():c.z=Math.sqrt(1-f*f);k.copy(this.object.position).subSelf(this.target);f=this.object.up.clone().setLength(c.y);f.addSelf(this.object.up.clone().crossSelf(k).setLength(c.x));f.addSelf(k.setLength(c.z));return f};this.rotateCamera=function(){var b=Math.acos(m.dot(n)/m.length()/n.length());if(b){var e=(new THREE.Vector3).cross(m,n).normalize(),c=new THREE.Quaternion;b*=this.rotateSpeed;c.setFromAxisAngle(e, +-b);c.multiplyVector3(k);c.multiplyVector3(this.object.up);c.multiplyVector3(n);this.staticMoving?m=n:(c.setFromAxisAngle(e,b*(this.dynamicDampingFactor-1)),c.multiplyVector3(m))}};this.zoomCamera=function(){var b=1+(u.y-t.y)*this.zoomSpeed;b!==1&&b>0&&(k.multiplyScalar(b),this.staticMoving?t=u:t.y+=(u.y-t.y)*this.dynamicDampingFactor)};this.panCamera=function(){var b=p.clone().subSelf(v);if(b.lengthSq()){b.multiplyScalar(k.length()*this.panSpeed);var e=k.clone().crossSelf(this.object.up).setLength(b.x); +e.addSelf(this.object.up.clone().setLength(b.y));this.object.position.addSelf(e);this.target.addSelf(e);this.staticMoving?v=p:v.addSelf(b.sub(p,v).multiplyScalar(this.dynamicDampingFactor))}};this.checkDistances=function(){if(!this.noZoom||!this.noPan)this.object.position.lengthSq()>this.maxDistance*this.maxDistance&&this.object.position.setLength(this.maxDistance),k.lengthSq()<this.minDistance*this.minDistance&&this.object.position.add(this.target,k.setLength(this.minDistance))};this.update=function(){k.copy(this.object.position).subSelf(this.target); +this.rotateCamera();this.noZoom||this.zoomCamera();this.noPan||this.panCamera();this.object.position.add(this.target,k);this.checkDistances();this.object.lookAt(this.target)};this.domElement.addEventListener("contextmenu",function(b){b.preventDefault()},!1);this.domElement.addEventListener("mousemove",e(this,function(b){f&&(m=n=this.getMouseProjectionOnBall(b.clientX,b.clientY),t=u=this.getMouseOnScreen(b.clientX,b.clientY),v=p=this.getMouseOnScreen(b.clientX,b.clientY),f=!1);h!==this.STATE.NONE&& +(h===this.STATE.ROTATE?n=this.getMouseProjectionOnBall(b.clientX,b.clientY):h===this.STATE.ZOOM&&!this.noZoom?u=this.getMouseOnScreen(b.clientX,b.clientY):h===this.STATE.PAN&&!this.noPan&&(p=this.getMouseOnScreen(b.clientX,b.clientY)))}),!1);this.domElement.addEventListener("mousedown",e(this,function(b){b.preventDefault();b.stopPropagation();if(h===this.STATE.NONE)h=b.button,h===this.STATE.ROTATE?m=n=this.getMouseProjectionOnBall(b.clientX,b.clientY):h===this.STATE.ZOOM&&!this.noZoom?t=u=this.getMouseOnScreen(b.clientX, +b.clientY):this.noPan||(v=p=this.getMouseOnScreen(b.clientX,b.clientY))}),!1);this.domElement.addEventListener("mouseup",e(this,function(b){b.preventDefault();b.stopPropagation();h=this.STATE.NONE}),!1);window.addEventListener("keydown",e(this,function(b){if(h===this.STATE.NONE){if(b.keyCode===this.keys[this.STATE.ROTATE])h=this.STATE.ROTATE;else if(b.keyCode===this.keys[this.STATE.ZOOM]&&!this.noZoom)h=this.STATE.ZOOM;else if(b.keyCode===this.keys[this.STATE.PAN]&&!this.noPan)h=this.STATE.PAN;h!== +this.STATE.NONE&&(f=!0)}}),!1);window.addEventListener("keyup",e(this,function(){if(h!==this.STATE.NONE)h=this.STATE.NONE}),!1)};THREE.TrackballControls.prototype.STATE={NONE:-1,ROTATE:0,ZOOM:1,PAN:2}; +THREE.CubeGeometry=function(b,c,e,f,h,k,m,n){function t(b,e,c,m,n,p,t,w){var v,x,A=f||1,Z=h||1,L=n/2,P=p/2,U=u.vertices.length;if(b=="x"&&e=="y"||b=="y"&&e=="x")v="z";else if(b=="x"&&e=="z"||b=="z"&&e=="x")v="y",Z=k||1;else if(b=="z"&&e=="y"||b=="y"&&e=="z")v="x",A=k||1;var Y=A+1,X=Z+1;n/=A;var o=p/Z;for(x=0;x<X;x++)for(p=0;p<Y;p++){var ea=new THREE.Vector3;ea[b]=(p*n-L)*c;ea[e]=(x*o-P)*m;ea[v]=t;u.vertices.push(new THREE.Vertex(ea))}for(x=0;x<Z;x++)for(p=0;p<A;p++)u.faces.push(new THREE.Face4(p+ +Y*x+U,p+Y*(x+1)+U,p+1+Y*(x+1)+U,p+1+Y*x+U,null,null,w)),u.faceVertexUvs[0].push([new THREE.UV(p/A,x/Z),new THREE.UV(p/A,(x+1)/Z),new THREE.UV((p+1)/A,(x+1)/Z),new THREE.UV((p+1)/A,x/Z)])}THREE.Geometry.call(this);var u=this,v=b/2,p=c/2,x=e/2;if(m!==void 0)if(m instanceof Array)this.materials=m;else{this.materials=[];for(var w=0;w<6;w++)this.materials.push([m])}else this.materials=[];this.sides={px:!0,nx:!0,py:!0,ny:!0,pz:!0,nz:!0};if(n!=void 0)for(var A in n)this.sides[A]!=void 0&&(this.sides[A]= +n[A]);this.sides.px&&t("z","y",-1,-1,e,c,v,this.materials[0]);this.sides.nx&&t("z","y",1,-1,e,c,-v,this.materials[1]);this.sides.py&&t("x","z",1,1,b,e,p,this.materials[2]);this.sides.ny&&t("x","z",1,-1,b,e,-p,this.materials[3]);this.sides.pz&&t("x","y",1,-1,b,c,x,this.materials[4]);this.sides.nz&&t("x","y",-1,-1,b,c,-x,this.materials[5]);this.mergeVertices();this.computeCentroids();this.computeFaceNormals()};THREE.CubeGeometry.prototype=new THREE.Geometry; +THREE.CubeGeometry.prototype.constructor=THREE.CubeGeometry; +THREE.CylinderGeometry=function(b,c,e,f,h,k){THREE.Geometry.call(this);var b=b!=null?b:20,c=c!=null?c:20,e=e||100,m=e/2,f=f||8,h=h||1,n,t,u=[],v=[];for(t=0;t<=h;t++){var p=[],x=[],w=t/h,A=w*(c-b)+b;for(n=0;n<=f;n++){var z=n/f;this.vertices.push(new THREE.Vertex(new THREE.Vector3(A*Math.sin(z*Math.PI*2),-w*e+m,A*Math.cos(z*Math.PI*2))));p.push(this.vertices.length-1);x.push(new THREE.UV(z,w))}u.push(p);v.push(x)}for(t=0;t<h;t++)for(n=0;n<f;n++){var e=u[t][n],p=u[t+1][n],x=u[t+1][n+1],w=u[t][n+1],A= +this.vertices[e].position.clone().setY(0).normalize(),z=this.vertices[p].position.clone().setY(0).normalize(),y=this.vertices[x].position.clone().setY(0).normalize(),C=this.vertices[w].position.clone().setY(0).normalize(),E=v[t][n].clone(),D=v[t+1][n].clone(),F=v[t+1][n+1].clone(),M=v[t][n+1].clone();this.faces.push(new THREE.Face4(e,p,x,w,[A,z,y,C]));this.faceVertexUvs[0].push([E,D,F,M])}if(!k&&b>0){this.vertices.push(new THREE.Vertex(new THREE.Vector3(0,m,0)));for(n=0;n<f;n++)e=u[0][n],p=u[0][n+ +1],x=this.vertices.length-1,A=new THREE.Vector3(0,1,0),z=new THREE.Vector3(0,1,0),y=new THREE.Vector3(0,1,0),E=v[0][n].clone(),D=v[0][n+1].clone(),F=new THREE.UV(D.u,0),this.faces.push(new THREE.Face3(e,p,x,[A,z,y])),this.faceVertexUvs[0].push([E,D,F])}if(!k&&c>0){this.vertices.push(new THREE.Vertex(new THREE.Vector3(0,-m,0)));for(n=0;n<f;n++)e=u[t][n+1],p=u[t][n],x=this.vertices.length-1,A=new THREE.Vector3(0,-1,0),z=new THREE.Vector3(0,-1,0),y=new THREE.Vector3(0,-1,0),E=v[t][n+1].clone(),D=v[t][n].clone(), +F=new THREE.UV(D.u,1),this.faces.push(new THREE.Face3(e,p,x,[A,z,y])),this.faceVertexUvs[0].push([E,D,F])}this.computeCentroids();this.computeFaceNormals()};THREE.CylinderGeometry.prototype=new THREE.Geometry;THREE.CylinderGeometry.prototype.constructor=THREE.CylinderGeometry; +THREE.ExtrudeGeometry=function(b,c){if(typeof b!="undefined"){THREE.Geometry.call(this);var b=b instanceof Array?b:[b],e,f=b.length,h;this.shapebb=b[f-1].getBoundingBox();for(e=0;e<f;e++)h=b[e],this.addShape(h,c);this.computeCentroids();this.computeFaceNormals()}};THREE.ExtrudeGeometry.prototype=new THREE.Geometry;THREE.ExtrudeGeometry.prototype.constructor=THREE.ExtrudeGeometry; +THREE.ExtrudeGeometry.prototype.addShape=function(b,c){function e(b,e,c){e||console.log("die");return e.clone().multiplyScalar(c).addSelf(b)}function f(b,e,c){var f=THREE.ExtrudeGeometry.__v1,h=THREE.ExtrudeGeometry.__v2,k=THREE.ExtrudeGeometry.__v3,m=THREE.ExtrudeGeometry.__v4,n=THREE.ExtrudeGeometry.__v5,o=THREE.ExtrudeGeometry.__v6;f.set(b.x-e.x,b.y-e.y);h.set(b.x-c.x,b.y-c.y);f=f.normalize();h=h.normalize();k.set(-f.y,f.x);m.set(h.y,-h.x);n.copy(b).addSelf(k);o.copy(b).addSelf(m);if(n.equals(o))return m.clone(); +n.copy(e).addSelf(k);o.copy(c).addSelf(m);k=f.dot(m);m=o.subSelf(n).dot(m);k==0&&(console.log("Either infinite or no solutions!"),m==0?console.log("Its finite solutions."):console.log("Too bad, no solutions."));m/=k;if(m<0)return e=Math.atan2(e.y-b.y,e.x-b.x),b=Math.atan2(c.y-b.y,c.x-b.x),e>b&&(b+=Math.PI*2),anglec=(e+b)/2,new THREE.Vector2(-Math.cos(anglec),-Math.sin(anglec));return f.multiplyScalar(m).addSelf(n).subSelf(b).clone()}function h(b){for(L=b.length;--L>=0;){la=L;ga=L-1;ga<0&&(ga=b.length- +1);for(var e=0,c=w+v*2,e=0;e<c;e++){var f=ea*e,h=ea*(e+1),k=$+la+f,m=$+la+h,o=k,f=$+ga+f,h=$+ga+h,p=m;o+=Z;f+=Z;h+=Z;p+=Z;K.faces.push(new THREE.Face4(o,f,h,p,null,null,F));F&&(o=e/c,f=(e+1)/c,h=n+t*2,k=(K.vertices[k].position.z+t)/h,m=(K.vertices[m].position.z+t)/h,K.faceVertexUvs[0].push([new THREE.UV(k,o),new THREE.UV(m,o),new THREE.UV(m,f),new THREE.UV(k,f)]))}}}function k(b,e,c){K.vertices.push(new THREE.Vertex(new THREE.Vector3(b,e,c)))}function m(b,e,c){b+=Z;e+=Z;c+=Z;K.faces.push(new THREE.Face3(b, +e,c,null,null,D));if(D){var f=M.maxY,h=M.maxX,k=K.vertices[e].position.x,e=K.vertices[e].position.y,m=K.vertices[c].position.x,c=K.vertices[c].position.y;K.faceVertexUvs[0].push([new THREE.UV(K.vertices[b].position.x/h,K.vertices[b].position.y/f),new THREE.UV(k/h,e/f),new THREE.UV(m/h,c/f)])}}var n=c.amount!==void 0?c.amount:100,t=c.bevelThickness!==void 0?c.bevelThickness:6,u=c.bevelSize!==void 0?c.bevelSize:t-2,v=c.bevelSegments!==void 0?c.bevelSegments:3,p=c.bevelEnabled!==void 0?c.bevelEnabled: +!0,x=c.curveSegments!==void 0?c.curveSegments:12,w=c.steps!==void 0?c.steps:1,A=c.bendPath,z=c.extrudePath,y,C=!1,E=c.useSpacedPoints!==void 0?c.useSpacedPoints:!1,D=c.material,F=c.extrudeMaterial,M=this.shapebb;if(z)y=z.getPoints(x),w=y.length,C=!0,p=!1;p||(u=t=v=0);var N,G,H,K=this,Z=this.vertices.length;A&&b.addWrapPath(A);x=E?b.extractAllSpacedPoints(x):b.extractAllPoints(x);A=x.shape;x=x.holes;if(z=!THREE.Shape.Utils.isClockWise(A)){A=A.reverse();G=0;for(H=x.length;G<H;G++)N=x[G],THREE.Shape.Utils.isClockWise(N)&& +(x[G]=N.reverse());z=!1}z=THREE.Shape.Utils.triangulateShape(A,x);E=A;G=0;for(H=x.length;G<H;G++)N=x[G],A=A.concat(N);var L,P,U,Y,X,o,ea=A.length,R=z.length,pa=[];L=0;P=E.length;la=P-1;for(ga=L+1;L<P;L++,la++,ga++)la==P&&(la=0),ga==P&&(ga=0),pa[L]=f(E[L],E[la],E[ga]);var fa=[],ma,da=pa.concat();G=0;for(H=x.length;G<H;G++){N=x[G];ma=[];L=0;P=N.length;la=P-1;for(ga=L+1;L<P;L++,la++,ga++)la==P&&(la=0),ga==P&&(ga=0),ma[L]=f(N[L],N[la],N[ga]);fa.push(ma);da=da.concat(ma)}for(U=0;U<v;U++){Y=U/v;X=t*(1- +Y);Y=u*Math.sin(Y*Math.PI/2);L=0;for(P=E.length;L<P;L++)o=e(E[L],pa[L],Y),k(o.x,o.y,-X);G=0;for(H=x.length;G<H;G++){N=x[G];ma=fa[G];L=0;for(P=N.length;L<P;L++)o=e(N[L],ma[L],Y),k(o.x,o.y,-X)}}Y=u;for(L=0;L<ea;L++)o=p?e(A[L],da[L],Y):A[L],C?k(o.x,o.y+y[0].y,y[0].x):k(o.x,o.y,0);for(U=1;U<=w;U++)for(L=0;L<ea;L++)o=p?e(A[L],da[L],Y):A[L],C?k(o.x,o.y+y[U-1].y,y[U-1].x):k(o.x,o.y,n/w*U);for(U=v-1;U>=0;U--){Y=U/v;X=t*(1-Y);Y=u*Math.sin(Y*Math.PI/2);L=0;for(P=E.length;L<P;L++)o=e(E[L],pa[L],Y),k(o.x,o.y, +n+X);G=0;for(H=x.length;G<H;G++){N=x[G];ma=fa[G];L=0;for(P=N.length;L<P;L++)o=e(N[L],ma[L],Y),C?k(o.x,o.y+y[w-1].y,y[w-1].x+X):k(o.x,o.y,n+X)}}if(p){p=ea*0;for(L=0;L<R;L++)u=z[L],m(u[2]+p,u[1]+p,u[0]+p);p=ea*(w+v*2);for(L=0;L<R;L++)u=z[L],m(u[0]+p,u[1]+p,u[2]+p)}else{for(L=0;L<R;L++)u=z[L],m(u[2],u[1],u[0]);for(L=0;L<R;L++)u=z[L],m(u[0]+ea*w,u[1]+ea*w,u[2]+ea*w)}var la,ga,$=0;h(E);$+=E.length;G=0;for(H=x.length;G<H;G++)N=x[G],h(N),$+=N.length};THREE.ExtrudeGeometry.__v1=new THREE.Vector2; +THREE.ExtrudeGeometry.__v2=new THREE.Vector2;THREE.ExtrudeGeometry.__v3=new THREE.Vector2;THREE.ExtrudeGeometry.__v4=new THREE.Vector2;THREE.ExtrudeGeometry.__v5=new THREE.Vector2;THREE.ExtrudeGeometry.__v6=new THREE.Vector2; +THREE.IcosahedronGeometry=function(b){function c(b,e,c){var f=Math.sqrt(b*b+e*e+c*c);return h.vertices.push(new THREE.Vertex(new THREE.Vector3(b/f,e/f,c/f)))-1}function e(b,e,c,f){f.faces.push(new THREE.Face3(b,e,c))}function f(b,e){var f=h.vertices[b].position,k=h.vertices[e].position;return c((f.x+k.x)/2,(f.y+k.y)/2,(f.z+k.z)/2)}var h=this,k=new THREE.Geometry;this.subdivisions=b||0;THREE.Geometry.call(this);b=(1+Math.sqrt(5))/2;c(-1,b,0);c(1,b,0);c(-1,-b,0);c(1,-b,0);c(0,-1,b);c(0,1,b);c(0,-1, +-b);c(0,1,-b);c(b,0,-1);c(b,0,1);c(-b,0,-1);c(-b,0,1);e(0,11,5,k);e(0,5,1,k);e(0,1,7,k);e(0,7,10,k);e(0,10,11,k);e(1,5,9,k);e(5,11,4,k);e(11,10,2,k);e(10,7,6,k);e(7,1,8,k);e(3,9,4,k);e(3,4,2,k);e(3,2,6,k);e(3,6,8,k);e(3,8,9,k);e(4,9,5,k);e(2,4,11,k);e(6,2,10,k);e(8,6,7,k);e(9,8,1,k);for(var m=0;m<this.subdivisions;m++){var b=new THREE.Geometry,n;for(n in k.faces){var t=f(k.faces[n].a,k.faces[n].b),u=f(k.faces[n].b,k.faces[n].c),v=f(k.faces[n].c,k.faces[n].a);e(k.faces[n].a,t,v,b);e(k.faces[n].b,u, +t,b);e(k.faces[n].c,v,u,b);e(t,u,v,b)}k.faces=b.faces}h.faces=k.faces;this.computeCentroids();this.computeFaceNormals();this.computeVertexNormals()};THREE.IcosahedronGeometry.prototype=new THREE.Geometry;THREE.IcosahedronGeometry.prototype.constructor=THREE.IcosahedronGeometry; +THREE.LatheGeometry=function(b,c,e){THREE.Geometry.call(this);this.steps=c||12;this.angle=e||2*Math.PI;for(var c=this.angle/this.steps,e=[],f=[],h=[],k=[],m=(new THREE.Matrix4).setRotationZ(c),n=0;n<b.length;n++)this.vertices.push(new THREE.Vertex(b[n])),e[n]=b[n].clone(),f[n]=this.vertices.length-1;for(var t=0;t<=this.angle+0.001;t+=c){for(n=0;n<e.length;n++)t<this.angle?(e[n]=m.multiplyVector3(e[n].clone()),this.vertices.push(new THREE.Vertex(e[n])),h[n]=this.vertices.length-1):h=k;t==0&&(k=f); +for(n=0;n<f.length-1;n++)this.faces.push(new THREE.Face4(h[n],h[n+1],f[n+1],f[n])),this.faceVertexUvs[0].push([new THREE.UV(1-t/this.angle,n/b.length),new THREE.UV(1-t/this.angle,(n+1)/b.length),new THREE.UV(1-(t-c)/this.angle,(n+1)/b.length),new THREE.UV(1-(t-c)/this.angle,n/b.length)]);f=h;h=[]}this.computeCentroids();this.computeFaceNormals();this.computeVertexNormals()};THREE.LatheGeometry.prototype=new THREE.Geometry;THREE.LatheGeometry.prototype.constructor=THREE.LatheGeometry; +THREE.OctahedronGeometry=function(b,c){function e(e){var c=e.clone().normalize(),c=new THREE.Vertex(c.clone().multiplyScalar(b));c.index=m.vertices.push(c)-1;c.uv=new THREE.UV(Math.atan2(e.z,-e.x)/2/Math.PI+0.5,Math.atan2(-e.y,Math.sqrt(e.x*e.x+e.z*e.z))/Math.PI+0.5);return c}function f(b,e,c,n){n<1?(n=new THREE.Face3(b.index,e.index,c.index,[b.position,e.position,c.position]),n.centroid.addSelf(b.position).addSelf(e.position).addSelf(c.position).divideScalar(3),n.normal=n.centroid.clone().normalize(), +m.faces.push(n),n=Math.atan2(n.centroid.z,-n.centroid.x),m.faceVertexUvs[0].push([k(b.uv,b.position,n),k(e.uv,e.position,n),k(c.uv,c.position,n)])):(n-=1,f(b,h(b,e),h(b,c),n),f(h(b,e),e,h(e,c),n),f(h(b,c),h(e,c),c,n),f(h(b,e),h(e,c),h(b,c),n))}function h(b,c){n[b.index]||(n[b.index]=[]);n[c.index]||(n[c.index]=[]);var f=n[b.index][c.index];f===void 0&&(n[b.index][c.index]=n[c.index][b.index]=f=e((new THREE.Vector3).add(b.position,c.position).divideScalar(2)));return f}function k(b,e,c){c<0&&b.u=== +1&&(b=new THREE.UV(b.u-1,b.v));e.x===0&&e.z===0&&(b=new THREE.UV(c/2/Math.PI+0.5,b.v));return b}THREE.Geometry.call(this);var c=isFinite(c)?c:3,m=this;e(new THREE.Vector3(1,0,0));e(new THREE.Vector3(-1,0,0));e(new THREE.Vector3(0,1,0));e(new THREE.Vector3(0,-1,0));e(new THREE.Vector3(0,0,1));e(new THREE.Vector3(0,0,-1));var n=[],t=this.vertices;f(t[0],t[2],t[4],c);f(t[0],t[4],t[3],c);f(t[0],t[3],t[5],c);f(t[0],t[5],t[2],c);f(t[1],t[2],t[5],c);f(t[1],t[5],t[3],c);f(t[1],t[3],t[4],c);f(t[1],t[4],t[2], +c);this.boundingSphere={radius:b}};THREE.OctahedronGeometry.prototype=new THREE.Geometry;THREE.OctahedronGeometry.prototype.constructor=THREE.OctahedronGeometry; +THREE.PlaneGeometry=function(b,c,e,f){THREE.Geometry.call(this);var h,k=b/2,m=c/2,e=e||1,f=f||1,n=e+1,t=f+1;b/=e;var u=c/f;for(h=0;h<t;h++)for(c=0;c<n;c++)this.vertices.push(new THREE.Vertex(new THREE.Vector3(c*b-k,-(h*u-m),0)));for(h=0;h<f;h++)for(c=0;c<e;c++)this.faces.push(new THREE.Face4(c+n*h,c+n*(h+1),c+1+n*(h+1),c+1+n*h)),this.faceVertexUvs[0].push([new THREE.UV(c/e,h/f),new THREE.UV(c/e,(h+1)/f),new THREE.UV((c+1)/e,(h+1)/f),new THREE.UV((c+1)/e,h/f)]);this.computeCentroids();this.computeFaceNormals()}; +THREE.PlaneGeometry.prototype=new THREE.Geometry;THREE.PlaneGeometry.prototype.constructor=THREE.PlaneGeometry; +THREE.SphereGeometry=function(b,c,e){THREE.Geometry.call(this);for(var b=b||50,f,h=Math.PI,k=Math.max(3,c||8),m=Math.max(2,e||6),c=[],e=0;e<m+1;e++){f=e/m;var n=b*Math.cos(f*h),t=b*Math.sin(f*h),u=[],v=0;for(f=0;f<k;f++){var p=2*f/k,x=t*Math.sin(p*h),p=t*Math.cos(p*h);(e==0||e==m)&&f>0||(v=this.vertices.push(new THREE.Vertex(new THREE.Vector3(p,n,x)))-1);u.push(v)}c.push(u)}for(var w,A,z,h=c.length,e=0;e<h;e++)if(k=c[e].length,e>0)for(f=0;f<k;f++){u=f==k-1;m=c[e][u?0:f+1];n=c[e][u?k-1:f];t=c[e-1][u? +k-1:f];u=c[e-1][u?0:f+1];x=e/(h-1);w=(e-1)/(h-1);A=(f+1)/k;var p=f/k,v=new THREE.UV(1-A,x),x=new THREE.UV(1-p,x),p=new THREE.UV(1-p,w),y=new THREE.UV(1-A,w);e<c.length-1&&(w=this.vertices[m].position.clone(),A=this.vertices[n].position.clone(),z=this.vertices[t].position.clone(),w.normalize(),A.normalize(),z.normalize(),this.faces.push(new THREE.Face3(m,n,t,[new THREE.Vector3(w.x,w.y,w.z),new THREE.Vector3(A.x,A.y,A.z),new THREE.Vector3(z.x,z.y,z.z)])),this.faceVertexUvs[0].push([v,x,p]));e>1&&(w= +this.vertices[m].position.clone(),A=this.vertices[t].position.clone(),z=this.vertices[u].position.clone(),w.normalize(),A.normalize(),z.normalize(),this.faces.push(new THREE.Face3(m,t,u,[new THREE.Vector3(w.x,w.y,w.z),new THREE.Vector3(A.x,A.y,A.z),new THREE.Vector3(z.x,z.y,z.z)])),this.faceVertexUvs[0].push([v,p,y]))}this.computeCentroids();this.computeFaceNormals();this.computeVertexNormals();this.boundingSphere={radius:b}};THREE.SphereGeometry.prototype=new THREE.Geometry; +THREE.SphereGeometry.prototype.constructor=THREE.SphereGeometry; +THREE.TextGeometry=function(b,c){var e=(new THREE.TextPath(b,c)).toShapes();c.amount=c.height!==void 0?c.height:50;if(c.bevelThickness===void 0)c.bevelThickness=10;if(c.bevelSize===void 0)c.bevelSize=8;if(c.bevelEnabled===void 0)c.bevelEnabled=!1;if(c.bend){var f=e[e.length-1].getBoundingBox().maxX;c.bendPath=new THREE.QuadraticBezierCurve(new THREE.Vector2(0,0),new THREE.Vector2(f/2,120),new THREE.Vector2(f,0))}THREE.ExtrudeGeometry.call(this,e,c)};THREE.TextGeometry.prototype=new THREE.ExtrudeGeometry; +THREE.TextGeometry.prototype.constructor=THREE.TextGeometry; +THREE.FontUtils={faces:{},face:"helvetiker",weight:"normal",style:"normal",size:150,divisions:10,getFace:function(){return this.faces[this.face][this.weight][this.style]},getTextShapes:function(b,c){return(new TextPath(b,c)).toShapes()},loadFace:function(b){var c=b.familyName.toLowerCase();this.faces[c]=this.faces[c]||{};this.faces[c][b.cssFontWeight]=this.faces[c][b.cssFontWeight]||{};this.faces[c][b.cssFontWeight][b.cssFontStyle]=b;return this.faces[c][b.cssFontWeight][b.cssFontStyle]=b},drawText:function(b){for(var c= +this.getFace(),e=this.size/c.resolution,f=0,h=String(b).split(""),k=h.length,m=[],b=0;b<k;b++){var n=new THREE.Path,n=this.extractGlyphPoints(h[b],c,e,f,n);f+=n.offset;m.push(n.path)}return{paths:m,offset:f/2}},extractGlyphPoints:function(b,c,e,f,h){var k=[],m,n,t,u,v,p,x,w,A,z,y=c.glyphs[b]||c.glyphs[ctxt.options.fallbackCharacter];if(y){if(y.o){c=y._cachedOutline||(y._cachedOutline=y.o.split(" "));t=c.length;for(b=0;b<t;)switch(n=c[b++],n){case "m":n=c[b++]*e+f;u=c[b++]*e;k.push(new THREE.Vector2(n, +u));h.moveTo(n,u);break;case "l":n=c[b++]*e+f;u=c[b++]*e;k.push(new THREE.Vector2(n,u));h.lineTo(n,u);break;case "q":n=c[b++]*e+f;u=c[b++]*e;x=c[b++]*e+f;w=c[b++]*e;h.quadraticCurveTo(x,w,n,u);if(m=k[k.length-1]){v=m.x;p=m.y;m=1;for(divisions=this.divisions;m<=divisions;m++){var C=m/divisions,E=THREE.Shape.Utils.b2(C,v,x,n),C=THREE.Shape.Utils.b2(C,p,w,u);k.push(new THREE.Vector2(E,C))}}break;case "b":if(n=c[b++]*e+f,u=c[b++]*e,x=c[b++]*e+f,w=c[b++]*-e,A=c[b++]*e+f,z=c[b++]*-e,h.bezierCurveTo(n,u, +x,w,A,z),m=k[k.length-1]){v=m.x;p=m.y;m=1;for(divisions=this.divisions;m<=divisions;m++)C=m/divisions,E=THREE.Shape.Utils.b3(C,v,x,A,n),C=THREE.Shape.Utils.b3(C,p,w,z,u),k.push(new THREE.Vector2(E,C))}}}return{offset:y.ha*e,points:k,path:h}}}}; +(function(b){var c=function(b){for(var c=b.length,h=0,k=c-1,m=0;m<c;k=m++)h+=b[k].x*b[m].y-b[m].x*b[k].y;return h*0.5};b.Triangulate=function(b,f){var h=b.length;if(h<3)return null;var k=[],m=[],n=[],t,u,v;if(c(b)>0)for(u=0;u<h;u++)m[u]=u;else for(u=0;u<h;u++)m[u]=h-1-u;var p=2*h;for(u=h-1;h>2;){if(p--<=0){console.log("Warning, unable to triangulate polygon!");if(f)return n;return k}t=u;h<=t&&(t=0);u=t+1;h<=u&&(u=0);v=u+1;h<=v&&(v=0);var x;a:{x=b;var w=t,A=u,z=v,y=h,C=m,E=void 0,D=void 0,F=void 0, +M=void 0,N=void 0,G=void 0,H=void 0,K=void 0,Z=void 0,D=x[C[w]].x,F=x[C[w]].y,M=x[C[A]].x,N=x[C[A]].y,G=x[C[z]].x,H=x[C[z]].y;if(1.0E-10>(M-D)*(H-F)-(N-F)*(G-D))x=!1;else{for(E=0;E<y;E++)if(!(E==w||E==A||E==z)){var K=x[C[E]].x,Z=x[C[E]].y,L=void 0,P=void 0,U=void 0,Y=void 0,X=void 0,o=void 0,ea=void 0,R=void 0,pa=void 0,fa=void 0,ma=void 0,da=void 0,L=U=X=void 0,L=G-M,P=H-N,U=D-G,Y=F-H,X=M-D,o=N-F,ea=K-D,R=Z-F,pa=K-M,fa=Z-N,ma=K-G,da=Z-H,L=L*fa-P*pa,X=X*R-o*ea,U=U*da-Y*ma;if(L>=0&&U>=0&&X>=0){x=!1; +break a}}x=!0}}if(x){k.push([b[m[t]],b[m[u]],b[m[v]]]);n.push([m[t],m[u],m[v]]);t=u;for(v=u+1;v<h;t++,v++)m[t]=m[v];h--;p=2*h}}if(f)return n;return k};b.Triangulate.area=c;return b})(THREE.FontUtils);self._typeface_js={faces:THREE.FontUtils.faces,loadFace:THREE.FontUtils.loadFace}; +THREE.TorusGeometry=function(b,c,e,f,h){THREE.Geometry.call(this);this.radius=b||100;this.tube=c||40;this.segmentsR=e||8;this.segmentsT=f||6;this.arc=h||Math.PI*2;h=new THREE.Vector3;b=[];c=[];for(e=0;e<=this.segmentsR;e++)for(f=0;f<=this.segmentsT;f++){var k=f/this.segmentsT*this.arc,m=e/this.segmentsR*Math.PI*2;h.x=this.radius*Math.cos(k);h.y=this.radius*Math.sin(k);var n=new THREE.Vector3;n.x=(this.radius+this.tube*Math.cos(m))*Math.cos(k);n.y=(this.radius+this.tube*Math.cos(m))*Math.sin(k);n.z= +this.tube*Math.sin(m);this.vertices.push(new THREE.Vertex(n));b.push(new THREE.UV(f/this.segmentsT,1-e/this.segmentsR));c.push(n.clone().subSelf(h).normalize())}for(e=1;e<=this.segmentsR;e++)for(f=1;f<=this.segmentsT;f++){var h=(this.segmentsT+1)*e+f-1,k=(this.segmentsT+1)*(e-1)+f-1,m=(this.segmentsT+1)*(e-1)+f,n=(this.segmentsT+1)*e+f,t=new THREE.Face4(h,k,m,n,[c[h],c[k],c[m],c[n]]);t.normal.addSelf(c[h]);t.normal.addSelf(c[k]);t.normal.addSelf(c[m]);t.normal.addSelf(c[n]);t.normal.normalize();this.faces.push(t); +this.faceVertexUvs[0].push([b[h].clone(),b[k].clone(),b[m].clone(),b[n].clone()])}this.computeCentroids()};THREE.TorusGeometry.prototype=new THREE.Geometry;THREE.TorusGeometry.prototype.constructor=THREE.TorusGeometry; +THREE.TorusKnotGeometry=function(b,c,e,f,h,k,m){function n(b,e,c,f,h,k){e=c/f*b;c=Math.cos(e);return new THREE.Vector3(h*(2+c)*0.5*Math.cos(b),h*(2+c)*Math.sin(b)*0.5,k*h*Math.sin(e)*0.5)}THREE.Geometry.call(this);this.radius=b||200;this.tube=c||40;this.segmentsR=e||64;this.segmentsT=f||8;this.p=h||2;this.q=k||3;this.heightScale=m||1;this.grid=Array(this.segmentsR);e=new THREE.Vector3;f=new THREE.Vector3;k=new THREE.Vector3;for(b=0;b<this.segmentsR;++b){this.grid[b]=Array(this.segmentsT);for(c=0;c< +this.segmentsT;++c){var t=b/this.segmentsR*2*this.p*Math.PI,m=c/this.segmentsT*2*Math.PI,h=n(t,m,this.q,this.p,this.radius,this.heightScale),t=n(t+0.01,m,this.q,this.p,this.radius,this.heightScale);e.x=t.x-h.x;e.y=t.y-h.y;e.z=t.z-h.z;f.x=t.x+h.x;f.y=t.y+h.y;f.z=t.z+h.z;k.cross(e,f);f.cross(k,e);k.normalize();f.normalize();t=-this.tube*Math.cos(m);m=this.tube*Math.sin(m);h.x+=t*f.x+m*k.x;h.y+=t*f.y+m*k.y;h.z+=t*f.z+m*k.z;this.grid[b][c]=this.vertices.push(new THREE.Vertex(new THREE.Vector3(h.x,h.y, +h.z)))-1}}for(b=0;b<this.segmentsR;++b)for(c=0;c<this.segmentsT;++c){var f=(b+1)%this.segmentsR,k=(c+1)%this.segmentsT,h=this.grid[b][c],e=this.grid[f][c],f=this.grid[f][k],k=this.grid[b][k],m=new THREE.UV(b/this.segmentsR,c/this.segmentsT),t=new THREE.UV((b+1)/this.segmentsR,c/this.segmentsT),u=new THREE.UV((b+1)/this.segmentsR,(c+1)/this.segmentsT),v=new THREE.UV(b/this.segmentsR,(c+1)/this.segmentsT);this.faces.push(new THREE.Face4(h,e,f,k));this.faceVertexUvs[0].push([m,t,u,v])}this.computeCentroids(); +this.computeFaceNormals();this.computeVertexNormals()};THREE.TorusKnotGeometry.prototype=new THREE.Geometry;THREE.TorusKnotGeometry.prototype.constructor=THREE.TorusKnotGeometry;THREE.SubdivisionModifier=function(b){this.subdivisions=b===void 0?1:b;this.useOldVertexColors=!1;this.supportUVs=!0};THREE.SubdivisionModifier.prototype.constructor=THREE.SubdivisionModifier;THREE.SubdivisionModifier.prototype.modify=function(b){for(var c=this.subdivisions;c-- >0;)this.smooth(b)}; +THREE.SubdivisionModifier.prototype.smooth=function(b){function c(b,e,c,f,n,t){var w=new THREE.Face4(b,e,c,f,null,n.color,n.material);if(m.useOldVertexColors){w.vertexColors=[];for(var o,u,v,x=0;x<4;x++){v=t[x];o=new THREE.Color;o.setRGB(0,0,0);for(var y=0;y<v.length;y++)u=n.vertexColors[v[y]-1],o.r+=u.r,o.g+=u.g,o.b+=u.b;o.r/=v.length;o.g/=v.length;o.b/=v.length;w.vertexColors[x]=o}}h.push(w);(!m.supportUVs||p.length!=0)&&k.push([p[b],p[e],p[c],p[f]])}function e(b,e){return Math.min(b,e)+"_"+Math.max(b, +e)}var f=[],h=[],k=[],m=this,n=b.vertices,f=b.faces,t=n.concat(),u=[],v={},p=[],x,w,A,z,y,C=b.faceVertexUvs[0];x=0;for(w=C.length;x<w;x++){A=0;for(z=C[x].length;A<z;A++)y=f[x]["abcd".charAt(A)],p[y]||(p[y]=C[x][A])}var E;x=0;for(w=f.length;x<w;x++)if(y=f[x],u.push(y.centroid),t.push(new THREE.Vertex(y.centroid)),m.supportUVs&&p.length!=0){E=new THREE.UV;if(y instanceof THREE.Face3)E.u=p[y.a].u+p[y.b].u+p[y.c].u,E.v=p[y.a].v+p[y.b].v+p[y.c].v,E.u/=3,E.v/=3;else if(y instanceof THREE.Face4)E.u=p[y.a].u+ +p[y.b].u+p[y.c].u+p[y.d].u,E.v=p[y.a].v+p[y.b].v+p[y.c].v+p[y.d].v,E.u/=4,E.v/=4;p.push(E)}z=function(b){function c(b,e,f){b[e]===void 0&&(b[e]=[]);b[e].push(f)}var f,h,k,m,n={};f=0;for(h=b.faces.length;f<h;f++)k=b.faces[f],k instanceof THREE.Face3?(m=e(k.a,k.b),c(n,m,f),m=e(k.b,k.c),c(n,m,f),m=e(k.c,k.a),c(n,m,f)):k instanceof THREE.Face4&&(m=e(k.a,k.b),c(n,m,f),m=e(k.b,k.c),c(n,m,f),m=e(k.c,k.d),c(n,m,f),m=e(k.d,k.a),c(n,m,f));return n}(b);var D,F,M=0,C=n.length,N;for(x in z)if(y=z[x],E=y[0],D= +y[1],N=x.split("_"),w=N[0],N=N[1],F=new THREE.Vector3,y.length!=2?(F.addSelf(n[w].position),F.addSelf(n[N].position),F.multiplyScalar(0.5)):(F.addSelf(u[E]),F.addSelf(u[D]),F.addSelf(n[w].position),F.addSelf(n[N].position),F.multiplyScalar(0.25)),v[x]=C+f.length+M,t.push(new THREE.Vertex(F)),M++,m.supportUVs&&p.length!=0)E=new THREE.UV,E.u=p[w].u+p[N].u,E.v=p[w].v+p[N].v,E.u/=2,E.v/=2,p.push(E);x=0;for(w=u.length;x<w;x++)y=f[x],E=C+x,y instanceof THREE.Face3?(D=e(y.a,y.b),N=e(y.b,y.c),M=e(y.c,y.a), +c(E,v[D],y.b,v[N],y,["123","12","2","23"]),c(E,v[N],y.c,v[M],y,["123","23","3","31"]),c(E,v[M],y.a,v[D],y,["123","31","1","12"])):y instanceof THREE.Face4?(D=e(y.a,y.b),N=e(y.b,y.c),M=e(y.c,y.d),F=e(y.d,y.a),c(E,v[D],y.b,v[N],y,["1234","12","2","23"]),c(E,v[N],y.c,v[M],y,["1234","23","3","34"]),c(E,v[M],y.d,v[F],y,["1234","34","4","41"]),c(E,v[F],y.a,v[D],y,["1234","41","1","12"])):console.log("face should be a face!",y);var f=t,G={},H={},t=function(b,e){G[b]===void 0&&(G[b]=[]);G[b].push(e)},v=function(b, +e){H[b]===void 0&&(H[b]={});H[b][e]=null};for(x in z)y=z[x],N=x.split("_"),w=N[0],N=N[1],t(w,[w,N]),t(N,[w,N]),E=y[0],D=y[1],v(w,E),D?v(w,D):v(w,E),v(N,E),D?v(N,D):v(N,E);t=new THREE.Vector3;v=new THREE.Vector3;x=0;for(w=n.length;x<w;x++)if(G[x]!==void 0){t.set(0,0,0);v.set(0,0,0);z=new THREE.Vector3(0,0,0);C=0;for(A in H[x])t.addSelf(u[A]),C++;t.divideScalar(C);C=G[x].length;for(A=0;A<C;A++)y=G[x][A],y=n[y[0]].position.clone().addSelf(n[y[1]].position).divideScalar(2),v.addSelf(y);v.divideScalar(C); +z.addSelf(n[x].position);z.multiplyScalar(C-3);z.addSelf(t);z.addSelf(v.multiplyScalar(2));z.divideScalar(C);f[x].position=z}b.vertices=f;b.faces=h;b.faceVertexUvs[0]=k;delete b.__tmpVertices;b.computeCentroids();b.computeFaceNormals();b.computeVertexNormals()};THREE.Loader=function(b){this.statusDomElement=(this.showStatus=b)?THREE.Loader.prototype.addStatusElement():null;this.onLoadStart=function(){};this.onLoadProgress=function(){};this.onLoadComplete=function(){}}; +THREE.Loader.prototype={constructor:THREE.Loader,addStatusElement:function(){var b=document.createElement("div");b.style.position="absolute";b.style.right="0px";b.style.top="0px";b.style.fontSize="0.8em";b.style.textAlign="left";b.style.background="rgba(0,0,0,0.25)";b.style.color="#fff";b.style.width="120px";b.style.padding="0.5em 0.5em 0.5em 0.5em";b.style.zIndex=1E3;b.innerHTML="Loading ...";return b},updateProgress:function(b){var c="Loaded ";c+=b.total?(100*b.loaded/b.total).toFixed(0)+"%":(b.loaded/ +1E3).toFixed(2)+" KB";this.statusDomElement.innerHTML=c},extractUrlbase:function(b){b=b.split("/");b.pop();return b.length<1?"":b.join("/")+"/"},init_materials:function(b,c,e){b.materials=[];for(var f=0;f<c.length;++f)b.materials[f]=[THREE.Loader.prototype.createMaterial(c[f],e)]},hasNormals:function(b){var c,e,f=b.materials.length;for(e=0;e<f;e++)if(c=b.materials[e][0],c instanceof THREE.ShaderMaterial)return!0;return!1},createMaterial:function(b,c){function e(b){b=Math.log(b)/Math.LN2;return Math.floor(b)== +b}function f(b,c){var f=new Image;f.onload=function(){if(!e(this.width)||!e(this.height)){var c=Math.pow(2,Math.round(Math.log(this.width)/Math.LN2)),f=Math.pow(2,Math.round(Math.log(this.height)/Math.LN2));b.image.width=c;b.image.height=f;b.image.getContext("2d").drawImage(this,0,0,c,f)}else b.image=this;b.needsUpdate=!0};f.src=c}function h(b,e,k,h,m,n){var p=document.createElement("canvas");b[e]=new THREE.Texture(p);b[e].sourceFile=k;if(h){b[e].repeat.set(h[0],h[1]);if(h[0]!=1)b[e].wrapS=THREE.RepeatWrapping; +if(h[1]!=1)b[e].wrapT=THREE.RepeatWrapping}m&&b[e].offset.set(m[0],m[1]);if(n){h={repeat:THREE.RepeatWrapping,mirror:THREE.MirroredRepeatWrapping};if(h[n[0]]!==void 0)b[e].wrapS=h[n[0]];if(h[n[1]]!==void 0)b[e].wrapT=h[n[1]]}f(b[e],c+"/"+k)}function k(b){return(b[0]*255<<16)+(b[1]*255<<8)+b[2]*255}var m,n,t;n="MeshLambertMaterial";m={color:15658734,opacity:1,map:null,lightMap:null,normalMap:null,wireframe:b.wireframe};b.shading&&(b.shading=="Phong"?n="MeshPhongMaterial":b.shading=="Basic"&&(n="MeshBasicMaterial")); +if(b.blending)if(b.blending=="Additive")m.blending=THREE.AdditiveBlending;else if(b.blending=="Subtractive")m.blending=THREE.SubtractiveBlending;else if(b.blending=="Multiply")m.blending=THREE.MultiplyBlending;if(b.transparent!==void 0||b.opacity<1)m.transparent=b.transparent;if(b.depthTest!==void 0)m.depthTest=b.depthTest;if(b.vertexColors!==void 0)if(b.vertexColors=="face")m.vertexColors=THREE.FaceColors;else if(b.vertexColors)m.vertexColors=THREE.VertexColors;if(b.colorDiffuse)m.color=k(b.colorDiffuse); +else if(b.DbgColor)m.color=b.DbgColor;if(b.colorSpecular)m.specular=k(b.colorSpecular);if(b.colorAmbient)m.ambient=k(b.colorAmbient);if(b.transparency)m.opacity=b.transparency;if(b.specularCoef)m.shininess=b.specularCoef;b.mapDiffuse&&c&&h(m,"map",b.mapDiffuse,b.mapDiffuseRepeat,b.mapDiffuseOffset,b.mapDiffuseWrap);b.mapLight&&c&&h(m,"lightMap",b.mapLight,b.mapLightRepeat,b.mapLightOffset,b.mapLightWrap);b.mapNormal&&c&&h(m,"normalMap",b.mapNormal,b.mapNormalRepeat,b.mapNormalOffset,b.mapNormalWrap); +b.mapSpecular&&c&&h(m,"specularMap",b.mapSpecular,b.mapSpecularRepeat,b.mapSpecularOffset,b.mapSpecularWrap);if(b.mapNormal){var u=THREE.ShaderUtils.lib.normal,v=THREE.UniformsUtils.clone(u.uniforms),p=m.color;n=m.specular;t=m.ambient;var x=m.shininess;v.tNormal.texture=m.normalMap;if(b.mapNormalFactor)v.uNormalScale.value=b.mapNormalFactor;if(m.map)v.tDiffuse.texture=m.map,v.enableDiffuse.value=!0;if(m.specularMap)v.tSpecular.texture=m.specularMap,v.enableSpecular.value=!0;if(m.lightMap)v.tAO.texture= +m.lightMap,v.enableAO.value=!0;v.uDiffuseColor.value.setHex(p);v.uSpecularColor.value.setHex(n);v.uAmbientColor.value.setHex(t);v.uShininess.value=x;if(m.opacity)v.uOpacity.value=m.opacity;m=new THREE.ShaderMaterial({fragmentShader:u.fragmentShader,vertexShader:u.vertexShader,uniforms:v,lights:!0,fog:!0})}else m=new THREE[n](m);return m}};THREE.BinaryLoader=function(b){THREE.Loader.call(this,b)};THREE.BinaryLoader.prototype=new THREE.Loader;THREE.BinaryLoader.prototype.constructor=THREE.BinaryLoader; +THREE.BinaryLoader.prototype.supr=THREE.Loader.prototype; +THREE.BinaryLoader.prototype.load=function(b){var c=b.model,e=b.callback,f=b.texture_path?b.texture_path:THREE.Loader.prototype.extractUrlbase(c),h=b.bin_path?b.bin_path:THREE.Loader.prototype.extractUrlbase(c),b=(new Date).getTime(),c=new Worker(c),k=this.showProgress?THREE.Loader.prototype.updateProgress:null;c.onmessage=function(b){THREE.BinaryLoader.prototype.loadAjaxBuffers(b.data.buffers,b.data.materials,e,h,f,k)};c.onerror=function(b){alert("worker.onerror: "+b.message+"\n"+b.data);b.preventDefault()}; +c.postMessage(b)}; +THREE.BinaryLoader.prototype.loadAjaxBuffers=function(b,c,e,f,h,k){var m=new XMLHttpRequest,n=f+"/"+b,t=0;m.onreadystatechange=function(){m.readyState==4?m.status==200||m.status==0?THREE.BinaryLoader.prototype.createBinModel(m.responseText,e,h,c):alert("Couldn't load ["+n+"] ["+m.status+"]"):m.readyState==3?k&&(t==0&&(t=m.getResponseHeader("Content-Length")),k({total:t,loaded:m.responseText.length})):m.readyState==2&&(t=m.getResponseHeader("Content-Length"))};m.open("GET",n,!0);m.overrideMimeType("text/plain; charset=x-user-defined"); +m.setRequestHeader("Content-Type","text/plain");m.send(null)}; +THREE.BinaryLoader.prototype.createBinModel=function(b,c,e,f){var h=function(e){function c(b,e){var f=v(b,e),h=v(b,e+1),k=v(b,e+2),m=v(b,e+3),n=(m<<1&255|k>>7)-127;f|=(k&127)<<16|h<<8;if(f==0&&n==-127)return 0;return(1-2*(m>>7))*(1+f*Math.pow(2,-23))*Math.pow(2,n)}function h(b,e){var c=v(b,e),f=v(b,e+1),k=v(b,e+2);return(v(b,e+3)<<24)+(k<<16)+(f<<8)+c}function t(b,e){var c=v(b,e);return(v(b,e+1)<<8)+c}function u(b,e){var c=v(b,e);return c>127?c-256:c}function v(b,e){return b.charCodeAt(e)&255}function p(e){var c, +f,k;c=h(b,e);f=h(b,e+N);k=h(b,e+G);e=t(b,e+H);C.faces.push(new THREE.Face3(c,f,k,null,null,C.materials[e]))}function x(e){var c,f,k,m,o,p;c=h(b,e);f=h(b,e+N);k=h(b,e+G);m=t(b,e+H);o=h(b,e+K);p=h(b,e+Z);e=h(b,e+L);m=C.materials[m];var w=F[p*3],u=F[p*3+1];p=F[p*3+2];var v=F[e*3],x=F[e*3+1],e=F[e*3+2];C.faces.push(new THREE.Face3(c,f,k,[new THREE.Vector3(F[o*3],F[o*3+1],F[o*3+2]),new THREE.Vector3(w,u,p),new THREE.Vector3(v,x,e)],null,m))}function w(e){var c,f,k,m;c=h(b,e);f=h(b,e+P);k=h(b,e+U);m=h(b, +e+Y);e=t(b,e+X);C.faces.push(new THREE.Face4(c,f,k,m,null,null,C.materials[e]))}function A(e){var c,f,k,m,p,w,u,v;c=h(b,e);f=h(b,e+P);k=h(b,e+U);m=h(b,e+Y);p=t(b,e+X);w=h(b,e+o);u=h(b,e+ea);v=h(b,e+R);e=h(b,e+pa);p=C.materials[p];var x=F[u*3],V=F[u*3+1];u=F[u*3+2];var y=F[v*3],O=F[v*3+1];v=F[v*3+2];var z=F[e*3],A=F[e*3+1],e=F[e*3+2];C.faces.push(new THREE.Face4(c,f,k,m,[new THREE.Vector3(F[w*3],F[w*3+1],F[w*3+2]),new THREE.Vector3(x,V,u),new THREE.Vector3(y,O,v),new THREE.Vector3(z,A,e)],null,p))} +function z(e){var c,f,k,m;c=h(b,e);f=h(b,e+fa);k=h(b,e+ma);e=M[c*2];m=M[c*2+1];c=M[f*2];var o=C.faceVertexUvs[0];f=M[f*2+1];var p=M[k*2];k=M[k*2+1];var t=[];t.push(new THREE.UV(e,m));t.push(new THREE.UV(c,f));t.push(new THREE.UV(p,k));o.push(t)}function y(e){var c,f,k,m,o,p;c=h(b,e);f=h(b,e+da);k=h(b,e+la);m=h(b,e+ga);e=M[c*2];o=M[c*2+1];c=M[f*2];p=M[f*2+1];f=M[k*2];var t=C.faceVertexUvs[0];k=M[k*2+1];var w=M[m*2];m=M[m*2+1];var u=[];u.push(new THREE.UV(e,o));u.push(new THREE.UV(c,p));u.push(new THREE.UV(f, +k));u.push(new THREE.UV(w,m));t.push(u)}var C=this,E=0,D,F=[],M=[],N,G,H,K,Z,L,P,U,Y,X,o,ea,R,pa,fa,ma,da,la,ga,$,ca,aa,ha,ka,sa;THREE.Geometry.call(this);THREE.Loader.prototype.init_materials(C,f,e);D={signature:b.substr(E,8),header_bytes:v(b,E+8),vertex_coordinate_bytes:v(b,E+9),normal_coordinate_bytes:v(b,E+10),uv_coordinate_bytes:v(b,E+11),vertex_index_bytes:v(b,E+12),normal_index_bytes:v(b,E+13),uv_index_bytes:v(b,E+14),material_index_bytes:v(b,E+15),nvertices:h(b,E+16),nnormals:h(b,E+16+4), +nuvs:h(b,E+16+8),ntri_flat:h(b,E+16+12),ntri_smooth:h(b,E+16+16),ntri_flat_uv:h(b,E+16+20),ntri_smooth_uv:h(b,E+16+24),nquad_flat:h(b,E+16+28),nquad_smooth:h(b,E+16+32),nquad_flat_uv:h(b,E+16+36),nquad_smooth_uv:h(b,E+16+40)};E+=D.header_bytes;N=D.vertex_index_bytes;G=D.vertex_index_bytes*2;H=D.vertex_index_bytes*3;K=D.vertex_index_bytes*3+D.material_index_bytes;Z=D.vertex_index_bytes*3+D.material_index_bytes+D.normal_index_bytes;L=D.vertex_index_bytes*3+D.material_index_bytes+D.normal_index_bytes* +2;P=D.vertex_index_bytes;U=D.vertex_index_bytes*2;Y=D.vertex_index_bytes*3;X=D.vertex_index_bytes*4;o=D.vertex_index_bytes*4+D.material_index_bytes;ea=D.vertex_index_bytes*4+D.material_index_bytes+D.normal_index_bytes;R=D.vertex_index_bytes*4+D.material_index_bytes+D.normal_index_bytes*2;pa=D.vertex_index_bytes*4+D.material_index_bytes+D.normal_index_bytes*3;fa=D.uv_index_bytes;ma=D.uv_index_bytes*2;da=D.uv_index_bytes;la=D.uv_index_bytes*2;ga=D.uv_index_bytes*3;e=D.vertex_index_bytes*3+D.material_index_bytes; +sa=D.vertex_index_bytes*4+D.material_index_bytes;$=D.ntri_flat*e;ca=D.ntri_smooth*(e+D.normal_index_bytes*3);aa=D.ntri_flat_uv*(e+D.uv_index_bytes*3);ha=D.ntri_smooth_uv*(e+D.normal_index_bytes*3+D.uv_index_bytes*3);ka=D.nquad_flat*sa;e=D.nquad_smooth*(sa+D.normal_index_bytes*4);sa=D.nquad_flat_uv*(sa+D.uv_index_bytes*4);E+=function(e){for(var f,h,k,n=D.vertex_coordinate_bytes*3,o=e+D.nvertices*n;e<o;e+=n)f=c(b,e),h=c(b,e+D.vertex_coordinate_bytes),k=c(b,e+D.vertex_coordinate_bytes*2),C.vertices.push(new THREE.Vertex(new THREE.Vector3(f, +h,k)));return D.nvertices*n}(E);E+=function(e){for(var c,f,h,k=D.normal_coordinate_bytes*3,m=e+D.nnormals*k;e<m;e+=k)c=u(b,e),f=u(b,e+D.normal_coordinate_bytes),h=u(b,e+D.normal_coordinate_bytes*2),F.push(c/127,f/127,h/127);return D.nnormals*k}(E);E+=function(e){for(var f,h,k=D.uv_coordinate_bytes*2,n=e+D.nuvs*k;e<n;e+=k)f=c(b,e),h=c(b,e+D.uv_coordinate_bytes),M.push(f,h);return D.nuvs*k}(E);$=E+$;ca=$+ca;aa=ca+aa;ha=aa+ha;ka=ha+ka;e=ka+e;sa=e+sa;(function(b){var e,c=D.vertex_index_bytes*3+D.material_index_bytes, +f=c+D.uv_index_bytes*3,h=b+D.ntri_flat_uv*f;for(e=b;e<h;e+=f)p(e),z(e+c);return h-b})(ca);(function(b){var e,c=D.vertex_index_bytes*3+D.material_index_bytes+D.normal_index_bytes*3,f=c+D.uv_index_bytes*3,h=b+D.ntri_smooth_uv*f;for(e=b;e<h;e+=f)x(e),z(e+c);return h-b})(aa);(function(b){var e,c=D.vertex_index_bytes*4+D.material_index_bytes,f=c+D.uv_index_bytes*4,h=b+D.nquad_flat_uv*f;for(e=b;e<h;e+=f)w(e),y(e+c);return h-b})(e);(function(b){var e,c=D.vertex_index_bytes*4+D.material_index_bytes+D.normal_index_bytes* +4,f=c+D.uv_index_bytes*4,h=b+D.nquad_smooth_uv*f;for(e=b;e<h;e+=f)A(e),y(e+c);return h-b})(sa);(function(b){var e,c=D.vertex_index_bytes*3+D.material_index_bytes,f=b+D.ntri_flat*c;for(e=b;e<f;e+=c)p(e);return f-b})(E);(function(b){var e,c=D.vertex_index_bytes*3+D.material_index_bytes+D.normal_index_bytes*3,f=b+D.ntri_smooth*c;for(e=b;e<f;e+=c)x(e);return f-b})($);(function(b){var e,c=D.vertex_index_bytes*4+D.material_index_bytes,f=b+D.nquad_flat*c;for(e=b;e<f;e+=c)w(e);return f-b})(ha);(function(b){var e, +c=D.vertex_index_bytes*4+D.material_index_bytes+D.normal_index_bytes*4,f=b+D.nquad_smooth*c;for(e=b;e<f;e+=c)A(e);return f-b})(ka);this.computeCentroids();this.computeFaceNormals();THREE.Loader.prototype.hasNormals(this)&&this.computeTangents()};h.prototype=new THREE.Geometry;h.prototype.constructor=h;c(new h(e))}; +THREE.ColladaLoader=function(){function b(b,e,c){for(var b=$.evaluate(b,$,R,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null),f={},h=b.iterateNext(),k=0;h;){h=(new e).parse(h);if(h.id.length==0)h.id=c+k++;f[h.id]=h;h=b.iterateNext()}return f}function c(){var b=1E6,e=-b,c=0,f;for(f in J)for(var h=J[f],k=0;k<h.sampler.length;k++){var m=h.sampler[k];m.create();b=Math.min(b,m.startTime);e=Math.max(e,m.endTime);c=Math.max(c,m.input.length)}return{start:b,end:e,frames:c}}function e(b,c,f,h){b.world=b.world|| +new THREE.Matrix4;b.world.copy(b.matrix);if(b.channels&&b.channels.length){var k=b.channels[0].sampler.output[f];k instanceof THREE.Matrix4&&b.world.copy(k)}h&&b.world.multiply(h,b.world);c.push(b);for(h=0;h<b.nodes.length;h++)e(b.nodes[h],c,f,b.world)}function f(b,f,h){var k=Q[f.url];if(!k||!k.skin)console.log("ColladaLoader: Could not find skin controller.");else if(!f.skeleton||!f.skeleton.length)console.log("ColladaLoader: Could not find the skeleton for the skin. ");else{var m=c(),f=aa.getChildById(f.skeleton[0], +!0)||aa.getChildBySid(f.skeleton[0],!0),n,o,p,t,w=new THREE.Vector3,u;for(n=0;n<b.vertices.length;n++)k.skin.bindShapeMatrix.multiplyVector3(b.vertices[n].position);for(h=0;h<m.frames;h++){var v=[],x=[];for(n=0;n<b.vertices.length;n++)x.push(new THREE.Vertex(new THREE.Vector3));e(f,v,h);n=v;o=k.skin;for(t=0;t<n.length;t++)if(p=n[t],u=-1,p.type=="JOINT"){for(var y=0;y<o.joints.length;y++)if(p.sid==o.joints[y]){u=y;break}if(u>=0){y=o.invBindMatrices[u];p.invBindMatrix=y;p.skinningMatrix=new THREE.Matrix4; +p.skinningMatrix.multiply(p.world,y);p.weights=[];for(y=0;y<o.weights.length;y++)for(var z=0;z<o.weights[y].length;z++){var A=o.weights[y][z];A.joint==u&&p.weights.push(A)}}else throw"ColladaLoader: Could not find joint '"+p.sid+"'.";}for(n=0;n<v.length;n++)if(v[n].type=="JOINT")for(o=0;o<v[n].weights.length;o++)p=v[n].weights[o],t=p.index,p=p.weight,u=b.vertices[t],t=x[t],w.x=u.position.x,w.y=u.position.y,w.z=u.position.z,v[n].skinningMatrix.multiplyVector3(w),t.position.x+=w.x*p,t.position.y+=w.y* +p,t.position.z+=w.z*p;b.morphTargets.push({name:"target_"+h,vertices:x})}}}function h(b){var e=new THREE.Object3D,c,k,m;e.name=b.id||"";e.matrixAutoUpdate=!1;e.matrix=b.matrix;for(m=0;m<b.controllers.length;m++){var n=Q[b.controllers[m].url];switch(n.type){case "skin":if(na[n.skin.source]){var o=new A;o.url=n.skin.source;o.instance_material=b.controllers[m].instance_material;b.geometries.push(o);c=b.controllers[m]}else if(Q[n.skin.source]&&(k=n=Q[n.skin.source],n.morph&&na[n.morph.source]))o=new A, +o.url=n.morph.source,o.instance_material=b.controllers[m].instance_material,b.geometries.push(o);break;case "morph":if(na[n.morph.source])o=new A,o.url=n.morph.source,o.instance_material=b.controllers[m].instance_material,b.geometries.push(o),k=b.controllers[m];console.log("ColladaLoader: Morph-controller partially supported.")}}for(m=0;m<b.geometries.length;m++){var n=b.geometries[m],o=n.instance_material,n=na[n.url],p={},t=0,w;if(n&&n.mesh&&n.mesh.primitives){if(e.name.length==0)e.name=n.id;if(o)for(j= +0;j<o.length;j++){w=o[j];var u=va[ra[w.target].instance_effect.url].shader;u.material.opacity=!u.material.opacity?1:u.material.opacity;w=p[w.symbol]=u.material;t++}o=w||new THREE.MeshLambertMaterial({color:14540253,shading:THREE.FlatShading});n=n.mesh.geometry3js;if(t>1){o=new THREE.MeshFaceMaterial;for(j=0;j<n.faces.length;j++)t=n.faces[j],t.materials=[p[t.daeMaterial]]}if(c!==void 0)f(n,c),o.morphTargets=!0,o=new THREE.SkinnedMesh(n,o),o.skeleton=c.skeleton,o.skinController=Q[c.url],o.skinInstanceController= +c,o.name="skin_"+Da.length,Da.push(o);else if(k!==void 0){p=n;t=k instanceof x?Q[k.url]:k;if(!t||!t.morph)console.log("could not find morph controller!");else{t=t.morph;for(u=0;u<t.targets.length;u++){var v=na[t.targets[u]];if(v.mesh&&v.mesh.primitives&&v.mesh.primitives.length)v=v.mesh.primitives[0].geometry,v.vertices.length===p.vertices.length&&p.morphTargets.push({name:"target_1",vertices:v.vertices})}p.morphTargets.push({name:"target_Z",vertices:p.vertices})}o.morphTargets=!0;o=new THREE.Mesh(n, +o);o.name="morph_"+Ba.length;Ba.push(o)}else o=new THREE.Mesh(n,o);e.add(o)}}for(m=0;m<b.nodes.length;m++)e.add(h(b.nodes[m],b));return e}function k(){this.init_from=this.id=""}function m(){this.type=this.name=this.id="";this.morph=this.skin=null}function n(){this.weights=this.targets=this.source=this.method=null}function t(){this.source="";this.bindShapeMatrix=null;this.invBindMatrices=[];this.joints=[];this.weights=[]}function u(){this.name=this.id="";this.nodes=[];this.scene=new THREE.Object3D} +function v(){this.sid=this.name=this.id="";this.nodes=[];this.controllers=[];this.transforms=[];this.geometries=[];this.channels=[];this.matrix=new THREE.Matrix4}function p(){this.type=this.sid="";this.data=[];this.matrix=new THREE.Matrix4}function x(){this.url="";this.skeleton=[];this.instance_material=[]}function w(){this.target=this.symbol=""}function A(){this.url="";this.instance_material=[]}function z(){this.id="";this.mesh=null}function y(b){this.geometry=b.id;this.primitives=[];this.geometry3js= +this.vertices=null}function C(){}function E(){this.material="";this.count=0;this.inputs=[];this.vcount=null;this.p=[];this.geometry=new THREE.Geometry}function D(){this.source="";this.stride=this.count=0;this.params=[]}function F(){this.input={}}function M(){this.semantic="";this.offset=0;this.source="";this.set=0}function N(b){this.id=b;this.type=null}function G(){this.name=this.id="";this.instance_effect=null}function H(){this.color=new THREE.Color(0);this.color.setRGB(Math.random(),Math.random(), +Math.random());this.color.a=1;this.texcoord=this.texture=null}function K(b,e){this.type=b;this.effect=e;this.material=null}function Z(b){this.effect=b;this.format=this.init_from=null}function L(b){this.effect=b;this.mipfilter=this.magfilter=this.minfilter=this.wrap_t=this.wrap_s=this.source=null}function P(){this.name=this.id="";this.sampler=this.surface=this.shader=null}function U(){this.url=""}function Y(){this.name=this.id="";this.source={};this.sampler=[];this.channel=[]}function X(b){this.animation= +b;this.target=this.source="";this.member=this.arrIndices=this.arrSyntax=this.dotSyntax=this.sid=null}function o(b){this.id="";this.animation=b;this.inputs=[];this.endTime=this.startTime=this.interpolation=this.output=this.input=null;this.duration=0}function ea(b){var e=b.getAttribute("id");if(ka[e]!=void 0)return ka[e];ka[e]=(new N(e)).parse(b);return ka[e]}function R(b){if(b=="dae")return"http://www.collada.org/2005/11/COLLADASchema";return null}function pa(b){for(var b=ma(b),e=[],c=0;c<b.length;c++)e.push(parseFloat(b[c])); +return e}function fa(b){for(var b=ma(b),e=[],c=0;c<b.length;c++)e.push(parseInt(b[c],10));return e}function ma(b){return b.replace(/^\s+/,"").replace(/\s+$/,"").split(/\s+/)}function da(b,e,c){return b.hasAttribute(e)?parseInt(b.getAttribute(e),10):c}function la(b,e){if(b===void 0){for(var c="0.";c.length<e+2;)c+="0";return c}e=e||2;c=b.toString().split(".");for(c[1]=c.length>1?c[1].substr(0,e):"0";c[1].length<e;)c[1]+="0";return c.join(".")}function ga(b,e){var c="";c+=la(b.x,e)+",";c+=la(b.y,e)+ +",";c+=la(b.z,e);return c}var $=null,ca=null,aa,ha=null,ka={},sa={},J={},Q={},na={},ra={},va={},ua,Ea,Ba,Da,Fa=THREE.SmoothShading;k.prototype.parse=function(b){this.id=b.getAttribute("id");for(var e=0;e<b.childNodes.length;e++){var c=b.childNodes[e];if(c.nodeName=="init_from")this.init_from=c.textContent}return this};m.prototype.parse=function(b){this.id=b.getAttribute("id");this.name=b.getAttribute("name");this.type="none";for(var e=0;e<b.childNodes.length;e++){var c=b.childNodes[e];switch(c.nodeName){case "skin":this.skin= +(new t).parse(c);this.type=c.nodeName;break;case "morph":this.morph=(new n).parse(c),this.type=c.nodeName}}return this};n.prototype.parse=function(b){var e={},c=[],f;this.method=b.getAttribute("method");this.source=b.getAttribute("source").replace(/^#/,"");for(f=0;f<b.childNodes.length;f++){var h=b.childNodes[f];if(h.nodeType==1)switch(h.nodeName){case "source":h=(new N).parse(h);e[h.id]=h;break;case "targets":c=this.parseInputs(h);break;default:console.log(h.nodeName)}}for(f=0;f<c.length;f++)switch(b= +c[f],h=e[b.source],b.semantic){case "MORPH_TARGET":this.targets=h.read();break;case "MORPH_WEIGHT":this.weights=h.read()}return this};n.prototype.parseInputs=function(b){for(var e=[],c=0;c<b.childNodes.length;c++){var f=b.childNodes[c];if(f.nodeType==1)switch(f.nodeName){case "input":e.push((new M).parse(f))}}return e};t.prototype.parse=function(b){var e={},c,f;this.source=b.getAttribute("source").replace(/^#/,"");this.invBindMatrices=[];this.joints=[];this.weights=[];for(var h=0;h<b.childNodes.length;h++){var k= +b.childNodes[h];if(k.nodeType==1)switch(k.nodeName){case "bind_shape_matrix":k=pa(k.textContent);this.bindShapeMatrix=new THREE.Matrix4;this.bindShapeMatrix.set(k[0],k[1],k[2],k[3],k[4],k[5],k[6],k[7],k[8],k[9],k[10],k[11],k[12],k[13],k[14],k[15]);break;case "source":k=(new N).parse(k);e[k.id]=k;break;case "joints":c=k;break;case "vertex_weights":f=k;break;default:console.log(k.nodeName)}}this.parseJoints(c,e);this.parseWeights(f,e);return this};t.prototype.parseJoints=function(b,e){for(var c=0;c< +b.childNodes.length;c++){var f=b.childNodes[c];if(f.nodeType==1)switch(f.nodeName){case "input":var f=(new M).parse(f),h=e[f.source];if(f.semantic=="JOINT")this.joints=h.read();else if(f.semantic=="INV_BIND_MATRIX")this.invBindMatrices=h.read()}}};t.prototype.parseWeights=function(b,e){for(var c,f,h=[],k=0;k<b.childNodes.length;k++){var m=b.childNodes[k];if(m.nodeType==1)switch(m.nodeName){case "input":h.push((new M).parse(m));break;case "v":c=fa(m.textContent);break;case "vcount":f=fa(m.textContent)}}for(k= +m=0;k<f.length;k++){for(var n=f[k],o=[],p=0;p<n;p++){for(var t={},u=0;u<h.length;u++){var w=h[u],v=c[m+w.offset];switch(w.semantic){case "JOINT":t.joint=v;break;case "WEIGHT":t.weight=e[w.source].data[v]}}o.push(t);m+=h.length}for(p=0;p<o.length;p++)o[p].index=k;this.weights.push(o)}};u.prototype.getChildById=function(b,e){for(var c=0;c<this.nodes.length;c++){var f=this.nodes[c].getChildById(b,e);if(f)return f}return null};u.prototype.getChildBySid=function(b,e){for(var c=0;c<this.nodes.length;c++){var f= +this.nodes[c].getChildBySid(b,e);if(f)return f}return null};u.prototype.parse=function(b){this.id=b.getAttribute("id");this.name=b.getAttribute("name");this.nodes=[];for(var e=0;e<b.childNodes.length;e++){var c=b.childNodes[e];if(c.nodeType==1)switch(c.nodeName){case "node":this.nodes.push((new v).parse(c))}}return this};v.prototype.getChannelForTransform=function(b){for(var e=0;e<this.channels.length;e++){var c=this.channels[e],f=c.target.split("/");f.shift();var h=f.shift(),k=h.indexOf(".")>=0, +m=h.indexOf("(")>=0,n;if(k)f=h.split("."),h=f.shift(),f.shift();else if(m){n=h.split("(");h=n.shift();for(f=0;f<n.length;f++)n[f]=parseInt(n[f].replace(/\)/,""))}if(h==b)return c.info={sid:h,dotSyntax:k,arrSyntax:m,arrIndices:n},c}return null};v.prototype.getChildById=function(b,e){if(this.id==b)return this;if(e)for(var c=0;c<this.nodes.length;c++){var f=this.nodes[c].getChildById(b,e);if(f)return f}return null};v.prototype.getChildBySid=function(b,e){if(this.sid==b)return this;if(e)for(var c=0;c< +this.nodes.length;c++){var f=this.nodes[c].getChildBySid(b,e);if(f)return f}return null};v.prototype.getTransformBySid=function(b){for(var e=0;e<this.transforms.length;e++)if(this.transforms[e].sid==b)return this.transforms[e];return null};v.prototype.parse=function(b){var e;this.id=b.getAttribute("id");this.sid=b.getAttribute("sid");this.name=b.getAttribute("name");this.type=b.getAttribute("type");this.type=this.type=="JOINT"?this.type:"NODE";this.nodes=[];this.transforms=[];this.geometries=[];this.controllers= +[];this.matrix=new THREE.Matrix4;for(var c=0;c<b.childNodes.length;c++)if(e=b.childNodes[c],e.nodeType==1)switch(e.nodeName){case "node":this.nodes.push((new v).parse(e));break;case "instance_camera":break;case "instance_controller":this.controllers.push((new x).parse(e));break;case "instance_geometry":this.geometries.push((new A).parse(e));break;case "instance_light":break;case "instance_node":e=e.getAttribute("url").replace(/^#/,"");(e=$.evaluate(".//dae:library_nodes//dae:node[@id='"+e+"']",$, +R,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null).iterateNext())&&this.nodes.push((new v).parse(e));break;case "rotate":case "translate":case "scale":case "matrix":case "lookat":case "skew":this.transforms.push((new p).parse(e));break;case "extra":break;default:console.log(e.nodeName)}b=[];c=1E6;e=-1E6;for(var f in J)for(var h=J[f],k=0;k<h.channel.length;k++){var m=h.channel[k],n=h.sampler[k];f=m.target.split("/")[0];if(f==this.id)n.create(),m.sampler=n,c=Math.min(c,n.startTime),e=Math.max(e,n.endTime), +b.push(m)}if(b.length)this.startTime=c,this.endTime=e;if((this.channels=b)&&this.channels.length){f=1E7;for(i=0;i<this.channels.length;i++){b=this.channels[i].sampler;for(c=0;c<b.input.length-1;c++)f=Math.min(f,b.input[c+1]-b.input[c])}c=[];for(b=this.startTime;b<this.endTime;b+=f){e=b;for(var h={},o=k=void 0,k=0;k<this.channels.length;k++)o=this.channels[k],h[o.sid]=o;m=new THREE.Matrix4;for(k=0;k<this.transforms.length;k++)if(n=this.transforms[k],o=h[n.sid],o!==void 0){for(var t=o.sampler,u,o=0;o< +t.input.length-1;o++)if(t.input[o+1]>e){u=t.output[o];break}m=u!==void 0?u instanceof THREE.Matrix4?m.multiply(m,u):m.multiply(m,n.matrix):m.multiply(m,n.matrix)}else m=m.multiply(m,n.matrix);e=m;c.push({time:b,pos:[e.n14,e.n24,e.n34],rotq:[0,0,0,1],scl:[1,1,1]})}this.keys=c}this.updateMatrix();return this};v.prototype.updateMatrix=function(){this.matrix.identity();for(var b=0;b<this.transforms.length;b++)this.matrix.multiply(this.matrix,this.transforms[b].matrix)};p.prototype.parse=function(b){this.sid= +b.getAttribute("sid");this.type=b.nodeName;this.data=pa(b.textContent);this.updateMatrix();return this};p.prototype.updateMatrix=function(){var b=0;this.matrix.identity();switch(this.type){case "matrix":this.matrix.set(this.data[0],this.data[1],this.data[2],this.data[3],this.data[4],this.data[5],this.data[6],this.data[7],this.data[8],this.data[9],this.data[10],this.data[11],this.data[12],this.data[13],this.data[14],this.data[15]);break;case "translate":this.matrix.setTranslation(this.data[0],this.data[1], +this.data[2]);break;case "rotate":b=this.data[3]*(Math.PI/180);this.matrix.setRotationAxis(new THREE.Vector3(this.data[0],this.data[1],this.data[2]),b);break;case "scale":this.matrix.setScale(this.data[0],this.data[1],this.data[2])}return this.matrix};x.prototype.parse=function(b){this.url=b.getAttribute("url").replace(/^#/,"");this.skeleton=[];this.instance_material=[];for(var e=0;e<b.childNodes.length;e++){var c=b.childNodes[e];if(c.nodeType==1)switch(c.nodeName){case "skeleton":this.skeleton.push(c.textContent.replace(/^#/, +""));break;case "bind_material":if(c=$.evaluate(".//dae:instance_material",c,R,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null))for(var f=c.iterateNext();f;)this.instance_material.push((new w).parse(f)),f=c.iterateNext()}}return this};w.prototype.parse=function(b){this.symbol=b.getAttribute("symbol");this.target=b.getAttribute("target").replace(/^#/,"");return this};A.prototype.parse=function(b){this.url=b.getAttribute("url").replace(/^#/,"");this.instance_material=[];for(var e=0;e<b.childNodes.length;e++){var c= +b.childNodes[e];if(c.nodeType==1&&c.nodeName=="bind_material"){if(b=$.evaluate(".//dae:instance_material",c,R,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null))for(e=b.iterateNext();e;)this.instance_material.push((new w).parse(e)),e=b.iterateNext();break}}return this};z.prototype.parse=function(b){this.id=b.getAttribute("id");for(var e=0;e<b.childNodes.length;e++){var c=b.childNodes[e];switch(c.nodeName){case "mesh":this.mesh=(new y(this)).parse(c)}}return this};y.prototype.parse=function(b){function e(b, +c){var f=ga(b.position);h[f]===void 0&&(h[f]={v:b,index:c});return h[f]}this.primitives=[];var c;for(c=0;c<b.childNodes.length;c++){var f=b.childNodes[c];switch(f.nodeName){case "source":ea(f);break;case "vertices":this.vertices=(new F).parse(f);break;case "triangles":this.primitives.push((new E).parse(f));break;case "polygons":console.warn("polygon holes not yet supported!");case "polylist":this.primitives.push((new C).parse(f))}}var h={};this.geometry3js=new THREE.Geometry;f=ka[this.vertices.input.POSITION.source].data; +for(b=c=0;c<f.length;c+=3,b++){var k=new THREE.Vertex(new THREE.Vector3(f[c],f[c+1],f[c+2]));e(k,b);this.geometry3js.vertices.push(k)}for(c=0;c<this.primitives.length;c++)primitive=this.primitives[c],primitive.setVertices(this.vertices),this.handlePrimitive(primitive,this.geometry3js,h);this.geometry3js.computeCentroids();this.geometry3js.computeFaceNormals();this.geometry3js.computeVertexNormals();this.geometry3js.computeBoundingBox();return this};y.prototype.handlePrimitive=function(b,e,c){var f= +0,h,k,m=b.p,n=b.inputs,o,p,t,u=0,w=3,v=[];for(h=0;h<n.length;h++)switch(o=n[h],o.semantic){case "TEXCOORD":v.push(o.set)}for(;f<m.length;){var x=[],y=[],z={},A=[];b.vcount&&(w=b.vcount[u++]);for(h=0;h<w;h++)for(k=0;k<n.length;k++)switch(o=n[k],source=ka[o.source],p=m[f+h*n.length+o.offset],numParams=source.accessor.params.length,t=p*numParams,o.semantic){case "VERTEX":o=ga(e.vertices[p].position);x.push(c[o].index);break;case "NORMAL":y.push(new THREE.Vector3(source.data[t],source.data[t+1],source.data[t+ +2]));break;case "TEXCOORD":z[o.set]===void 0&&(z[o.set]=[]);z[o.set].push(new THREE.UV(source.data[t],source.data[t+1]));break;case "COLOR":A.push((new THREE.Color).setRGB(source.data[t],source.data[t+1],source.data[t+2]))}var C;w==3?C=new THREE.Face3(x[0],x[1],x[2],[y[0],y[1],y[2]],A.length?A:new THREE.Color):w==4&&(C=new THREE.Face4(x[0],x[1],x[2],x[3],[y[0],y[1],y[2],y[3]],A.length?A:new THREE.Color));C.daeMaterial=b.material;e.faces.push(C);for(k=0;k<v.length;k++)h=z[v[k]],e.faceVertexUvs[k].push([h[0], +h[1],h[2]]);f+=n.length*w}};C.prototype=new E;C.prototype.constructor=C;E.prototype.setVertices=function(b){for(var e=0;e<this.inputs.length;e++)if(this.inputs[e].source==b.id)this.inputs[e].source=b.input.POSITION.source};E.prototype.parse=function(b){this.inputs=[];this.material=b.getAttribute("material");this.count=da(b,"count",0);for(var e=0;e<b.childNodes.length;e++){var c=b.childNodes[e];switch(c.nodeName){case "input":this.inputs.push((new M).parse(b.childNodes[e]));break;case "vcount":this.vcount= +fa(c.textContent);break;case "p":this.p=fa(c.textContent)}}return this};D.prototype.parse=function(b){this.params=[];this.source=b.getAttribute("source");this.count=da(b,"count",0);this.stride=da(b,"stride",0);for(var e=0;e<b.childNodes.length;e++){var c=b.childNodes[e];if(c.nodeName=="param"){var f={};f.name=c.getAttribute("name");f.type=c.getAttribute("type");this.params.push(f)}}return this};F.prototype.parse=function(b){this.id=b.getAttribute("id");for(var e=0;e<b.childNodes.length;e++)b.childNodes[e].nodeName== +"input"&&(input=(new M).parse(b.childNodes[e]),this.input[input.semantic]=input);return this};M.prototype.parse=function(b){this.semantic=b.getAttribute("semantic");this.source=b.getAttribute("source").replace(/^#/,"");this.set=da(b,"set",-1);this.offset=da(b,"offset",0);if(this.semantic=="TEXCOORD"&&this.set<0)this.set=0;return this};N.prototype.parse=function(b){this.id=b.getAttribute("id");for(var e=0;e<b.childNodes.length;e++){var c=b.childNodes[e];switch(c.nodeName){case "bool_array":for(var f= +ma(c.textContent),h=[],k=0;k<f.length;k++)h.push(f[k]=="true"||f[k]=="1"?!0:!1);this.data=h;this.type=c.nodeName;break;case "float_array":this.data=pa(c.textContent);this.type=c.nodeName;break;case "int_array":this.data=fa(c.textContent);this.type=c.nodeName;break;case "IDREF_array":case "Name_array":this.data=ma(c.textContent);this.type=c.nodeName;break;case "technique_common":for(f=0;f<c.childNodes.length;f++)if(c.childNodes[f].nodeName=="accessor"){this.accessor=(new D).parse(c.childNodes[f]); +break}}}return this};N.prototype.read=function(){var b=[],e=this.accessor.params[0];switch(e.type){case "IDREF":case "Name":case "name":case "float":return this.data;case "float4x4":for(e=0;e<this.data.length;e+=16){var c=this.data.slice(e,e+16),f=new THREE.Matrix4;f.set(c[0],c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9],c[10],c[11],c[12],c[13],c[14],c[15]);b.push(f)}break;default:console.log("ColladaLoader: Source: Read dont know how to read "+e.type+".")}return b};G.prototype.parse=function(b){this.id= +b.getAttribute("id");this.name=b.getAttribute("name");for(var e=0;e<b.childNodes.length;e++)if(b.childNodes[e].nodeName=="instance_effect"){this.instance_effect=(new U).parse(b.childNodes[e]);break}return this};H.prototype.isColor=function(){return this.texture==null};H.prototype.isTexture=function(){return this.texture!=null};H.prototype.parse=function(b){for(var e=0;e<b.childNodes.length;e++){var c=b.childNodes[e];if(c.nodeType==1)switch(c.nodeName){case "color":c=pa(c.textContent);this.color=new THREE.Color(0); +this.color.setRGB(c[0],c[1],c[2]);this.color.a=c[3];break;case "texture":this.texture=c.getAttribute("texture"),this.texcoord=c.getAttribute("texcoord")}}return this};K.prototype.parse=function(b){for(var e=0;e<b.childNodes.length;e++){var c=b.childNodes[e];if(c.nodeType==1)switch(c.nodeName){case "ambient":case "emission":case "diffuse":case "specular":case "transparent":this[c.nodeName]=(new H).parse(c);break;case "shininess":case "reflectivity":case "transparency":var f;f=$.evaluate(".//dae:float", +c,R,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);for(var h=f.iterateNext(),k=[];h;)k.push(h),h=f.iterateNext();f=k;f.length>0&&(this[c.nodeName]=parseFloat(f[0].textContent))}}this.create();return this};K.prototype.create=function(){var b={},e=this.transparency!==void 0&&this.transparency<1,c;for(c in this)switch(c){case "ambient":case "emission":case "diffuse":case "specular":var f=this[c];if(f instanceof H)if(f.isTexture()){if(this.effect.sampler&&this.effect.surface&&this.effect.sampler.source== +this.effect.surface.sid&&(f=sa[this.effect.surface.init_from]))b.map=THREE.ImageUtils.loadTexture(Ea+f.init_from),b.map.wrapS=THREE.RepeatWrapping,b.map.wrapT=THREE.RepeatWrapping,b.map.repeat.x=1,b.map.repeat.y=-1}else c=="diffuse"?b.color=f.color.getHex():e||(b[c]=f.color.getHex());break;case "shininess":case "reflectivity":b[c]=this[c];break;case "transparency":if(e)b.transparent=!0,b.opacity=this[c],e=!0}b.shading=Fa;return this.material=new THREE.MeshLambertMaterial(b)};Z.prototype.parse=function(b){for(var e= +0;e<b.childNodes.length;e++){var c=b.childNodes[e];if(c.nodeType==1)switch(c.nodeName){case "init_from":this.init_from=c.textContent;break;case "format":this.format=c.textContent;break;default:console.log("unhandled Surface prop: "+c.nodeName)}}return this};L.prototype.parse=function(b){for(var e=0;e<b.childNodes.length;e++){var c=b.childNodes[e];if(c.nodeType==1)switch(c.nodeName){case "source":this.source=c.textContent;break;case "minfilter":this.minfilter=c.textContent;break;case "magfilter":this.magfilter= +c.textContent;break;case "mipfilter":this.mipfilter=c.textContent;break;case "wrap_s":this.wrap_s=c.textContent;break;case "wrap_t":this.wrap_t=c.textContent;break;default:console.log("unhandled Sampler2D prop: "+c.nodeName)}}return this};P.prototype.create=function(){if(this.shader==null)return null};P.prototype.parse=function(b){this.id=b.getAttribute("id");this.name=b.getAttribute("name");this.shader=null;for(var e=0;e<b.childNodes.length;e++){var c=b.childNodes[e];if(c.nodeType==1)switch(c.nodeName){case "profile_COMMON":this.parseTechnique(this.parseProfileCOMMON(c))}}return this}; +P.prototype.parseNewparam=function(b){for(var e=b.getAttribute("sid"),c=0;c<b.childNodes.length;c++){var f=b.childNodes[c];if(f.nodeType==1)switch(f.nodeName){case "surface":this.surface=(new Z(this)).parse(f);this.surface.sid=e;break;case "sampler2D":this.sampler=(new L(this)).parse(f);this.sampler.sid=e;break;case "extra":break;default:console.log(f.nodeName)}}};P.prototype.parseProfileCOMMON=function(b){for(var e,c=0;c<b.childNodes.length;c++){var f=b.childNodes[c];if(f.nodeType==1)switch(f.nodeName){case "profile_COMMON":this.parseProfileCOMMON(f); +break;case "technique":e=f;break;case "newparam":this.parseNewparam(f);break;case "extra":break;default:console.log(f.nodeName)}}return e};P.prototype.parseTechnique=function(b){for(var e=0;e<b.childNodes.length;e++){var c=b.childNodes[e];if(c.nodeType==1)switch(c.nodeName){case "lambert":case "blinn":case "phong":this.shader=(new K(c.nodeName,this)).parse(c)}}};U.prototype.parse=function(b){this.url=b.getAttribute("url").replace(/^#/,"");return this};Y.prototype.parse=function(b){this.id=b.getAttribute("id"); +this.name=b.getAttribute("name");this.source={};for(var e=0;e<b.childNodes.length;e++){var c=b.childNodes[e];if(c.nodeType==1)switch(c.nodeName){case "source":c=(new N).parse(c);this.source[c.id]=c;break;case "sampler":this.sampler.push((new o(this)).parse(c));break;case "channel":this.channel.push((new X(this)).parse(c))}}return this};X.prototype.parse=function(b){this.source=b.getAttribute("source").replace(/^#/,"");this.target=b.getAttribute("target");var e=this.target.split("/");e.shift();var b= +e.shift(),c=b.indexOf(".")>=0,f=b.indexOf("(")>=0,h,k;if(c)e=b.split("."),b=e.shift(),k=e.shift();else if(f){h=b.split("(");b=h.shift();for(e=0;e<h.length;e++)h[e]=parseInt(h[e].replace(/\)/,""))}this.sid=b;this.dotSyntax=c;this.arrSyntax=f;this.arrIndices=h;this.member=k;return this};o.prototype.parse=function(b){this.id=b.getAttribute("id");this.inputs=[];for(var e=0;e<b.childNodes.length;e++){var c=b.childNodes[e];if(c.nodeType==1)switch(c.nodeName){case "input":this.inputs.push((new M).parse(c))}}return this}; +o.prototype.create=function(){for(var b=0;b<this.inputs.length;b++){var e=this.inputs[b],c=this.animation.source[e.source];switch(e.semantic){case "INPUT":this.input=c.read();break;case "OUTPUT":this.output=c.read();break;case "INTERPOLATION":this.interpolation=c.read();break;case "IN_TANGENT":break;case "OUT_TANGENT":break;default:console.log(e.semantic)}}this.duration=this.endTime=this.startTime=0;if(this.input.length){this.startTime=1E8;this.endTime=-1E8;for(b=0;b<this.input.length;b++)this.startTime= +Math.min(this.startTime,this.input[b]),this.endTime=Math.max(this.endTime,this.input[b]);this.duration=this.endTime-this.startTime}};return{load:function(e,f){if(document.implementation&&document.implementation.createDocument){document.implementation.createDocument("http://www.collada.org/2005/11/COLLADASchema","COLLADA",null);e+="?rnd="+Math.random();var n=new XMLHttpRequest;n.overrideMimeType&&n.overrideMimeType("text/xml");n.onreadystatechange=function(){if(n.readyState==4&&(n.status==0||n.status== +200)){ha=f;var o,p=e;$=n.responseXML;o=ha;p!==void 0&&(p=p.split("/"),p.pop(),Ea=p.length<1?"":p.join("/")+"/");sa=b("//dae:library_images/dae:image",k,"image");ra=b("//dae:library_materials/dae:material",G,"material");va=b("//dae:library_effects/dae:effect",P,"effect");na=b("//dae:library_geometries/dae:geometry",z,"geometry");Q=b("//dae:library_controllers/dae:controller",m,"controller");J=b("//dae:library_animations/dae:animation",Y,"animation");ua=b(".//dae:library_visual_scenes/dae:visual_scene", +u,"visual_scene");Ba=[];Da=[];(p=$.evaluate(".//dae:scene/dae:instance_visual_scene",$,R,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null).iterateNext())?(p=p.getAttribute("url").replace(/^#/,""),aa=ua[p]):aa=null;ca=new THREE.Object3D;for(p=0;p<aa.nodes.length;p++)ca.add(h(aa.nodes[p]));c();for(var t in J);t={scene:ca,morphs:Ba,skins:Da,dae:{images:sa,materials:ra,effects:va,geometries:na,controllers:Q,animations:J,visualScenes:ua,scene:aa}};o&&o(t)}};n.open("GET",e,!0);n.send(null)}else alert("Don't know how to parse XML!")}, +setPreferredShading:function(b){Fa=b},applySkin:f,geometries:na}};THREE.JSONLoader=function(b){THREE.Loader.call(this,b)};THREE.JSONLoader.prototype=new THREE.Loader;THREE.JSONLoader.prototype.constructor=THREE.JSONLoader;THREE.JSONLoader.prototype.supr=THREE.Loader.prototype; +THREE.JSONLoader.prototype.load=function(b){var c=this,e=b.model,f=b.callback,h=b.texture_path?b.texture_path:this.extractUrlbase(e),b=new Worker(e);b.onmessage=function(b){c.createModel(b.data,f,h);c.onLoadComplete()};this.onLoadStart();b.postMessage((new Date).getTime())}; +THREE.JSONLoader.prototype.createModel=function(b,c,e){var f=new THREE.Geometry,h=b.scale!==void 0?1/b.scale:1;this.init_materials(f,b.materials,e);(function(e){if(b.version===void 0||b.version!=2)console.error("Deprecated file format.");else{var c,h,t,u,v,p,x,w,A,z,y,C,E,D,F=b.faces;p=b.vertices;var M=b.normals,N=b.colors,G=0;for(c=0;c<b.uvs.length;c++)b.uvs[c].length&&G++;for(c=0;c<G;c++)f.faceUvs[c]=[],f.faceVertexUvs[c]=[];u=0;for(v=p.length;u<v;)x=new THREE.Vertex,x.position.x=p[u++]*e,x.position.y= +p[u++]*e,x.position.z=p[u++]*e,f.vertices.push(x);u=0;for(v=F.length;u<v;){e=F[u++];p=e&1;t=e&2;c=e&4;h=e&8;w=e&16;x=e&32;z=e&64;e&=128;p?(y=new THREE.Face4,y.a=F[u++],y.b=F[u++],y.c=F[u++],y.d=F[u++],p=4):(y=new THREE.Face3,y.a=F[u++],y.b=F[u++],y.c=F[u++],p=3);if(t)t=F[u++],y.materials=f.materials[t];t=f.faces.length;if(c)for(c=0;c<G;c++)C=b.uvs[c],A=F[u++],D=C[A*2],A=C[A*2+1],f.faceUvs[c][t]=new THREE.UV(D,A);if(h)for(c=0;c<G;c++){C=b.uvs[c];E=[];for(h=0;h<p;h++)A=F[u++],D=C[A*2],A=C[A*2+1],E[h]= +new THREE.UV(D,A);f.faceVertexUvs[c][t]=E}if(w)w=F[u++]*3,h=new THREE.Vector3,h.x=M[w++],h.y=M[w++],h.z=M[w],y.normal=h;if(x)for(c=0;c<p;c++)w=F[u++]*3,h=new THREE.Vector3,h.x=M[w++],h.y=M[w++],h.z=M[w],y.vertexNormals.push(h);if(z)x=F[u++],x=new THREE.Color(N[x]),y.color=x;if(e)for(c=0;c<p;c++)x=F[u++],x=new THREE.Color(N[x]),y.vertexColors.push(x);f.faces.push(y)}}})(h);(function(){var e,c,h,t;if(b.skinWeights){e=0;for(c=b.skinWeights.length;e<c;e+=2)h=b.skinWeights[e],t=b.skinWeights[e+1],f.skinWeights.push(new THREE.Vector4(h, +t,0,0))}if(b.skinIndices){e=0;for(c=b.skinIndices.length;e<c;e+=2)h=b.skinIndices[e],t=b.skinIndices[e+1],f.skinIndices.push(new THREE.Vector4(h,t,0,0))}f.bones=b.bones;f.animation=b.animation})();(function(e){if(b.morphTargets!==void 0){var c,h,t,u,v,p,x,w,A;c=0;for(h=b.morphTargets.length;c<h;c++){f.morphTargets[c]={};f.morphTargets[c].name=b.morphTargets[c].name;f.morphTargets[c].vertices=[];w=f.morphTargets[c].vertices;A=b.morphTargets[c].vertices;t=0;for(u=A.length;t<u;t+=3)v=A[t]*e,p=A[t+1]* +e,x=A[t+2]*e,w.push(new THREE.Vertex(new THREE.Vector3(v,p,x)))}}if(b.morphColors!==void 0){c=0;for(h=b.morphColors.length;c<h;c++){f.morphColors[c]={};f.morphColors[c].name=b.morphColors[c].name;f.morphColors[c].colors=[];u=f.morphColors[c].colors;v=b.morphColors[c].colors;e=0;for(t=v.length;e<t;e+=3)p=new THREE.Color(16755200),p.setRGB(v[e],v[e+1],v[e+2]),u.push(p)}}})(h);f.computeCentroids();f.computeFaceNormals();this.hasNormals(f)&&f.computeTangents();c(f)}; +THREE.SceneLoader=function(){this.onLoadStart=function(){};this.onLoadProgress=function(){};this.onLoadComplete=function(){};this.callbackSync=function(){};this.callbackProgress=function(){}}; +THREE.SceneLoader.prototype={load:function(b,c){var e=this,f=new Worker(b);f.postMessage(0);var h=THREE.Loader.prototype.extractUrlbase(b);f.onmessage=function(b){function f(b,e){return e=="relativeToHTML"?b:h+"/"+b}function n(){for(w in P.objects)if(!R.objects[w])if(E=P.objects[w],E.geometry!==void 0){if(N=R.geometries[E.geometry]){var b=!1;Z=[];for(fa=0;fa<E.materials.length;fa++)Z[fa]=R.materials[E.materials[fa]],b=Z[fa]instanceof THREE.ShaderMaterial;b&&N.computeTangents();D=E.position;r=E.rotation; +q=E.quaternion;s=E.scale;q=0;Z.length==0&&(Z[0]=new THREE.MeshFaceMaterial);Z.length>1&&(Z=[new THREE.MeshFaceMaterial]);object=new THREE.Mesh(N,Z);object.name=w;object.position.set(D[0],D[1],D[2]);q?(object.quaternion.set(q[0],q[1],q[2],q[3]),object.useQuaternion=!0):object.rotation.set(r[0],r[1],r[2]);object.scale.set(s[0],s[1],s[2]);object.visible=E.visible;R.scene.add(object);R.objects[w]=object;E.meshCollider&&(b=THREE.CollisionUtils.MeshColliderWBox(object),R.scene.collisions.colliders.push(b)); +if(E.castsShadow)b=new THREE.ShadowVolume(N),R.scene.add(b),b.position=object.position,b.rotation=object.rotation,b.scale=object.scale;E.trigger&&E.trigger.toLowerCase()!="none"&&(b={type:E.trigger,object:E},R.triggers[object.name]=b)}}else D=E.position,r=E.rotation,q=E.quaternion,s=E.scale,q=0,object=new THREE.Object3D,object.name=w,object.position.set(D[0],D[1],D[2]),q?(object.quaternion.set(q[0],q[1],q[2],q[3]),object.useQuaternion=!0):object.rotation.set(r[0],r[1],r[2]),object.scale.set(s[0], +s[1],s[2]),object.visible=E.visible!==void 0?E.visible:!1,R.scene.add(object),R.objects[w]=object,R.empties[w]=object,E.trigger&&E.trigger.toLowerCase()!="none"&&(b={type:E.trigger,object:E},R.triggers[object.name]=b)}function t(b){return function(c){R.geometries[b]=c;n();Y-=1;e.onLoadComplete();v()}}function u(b){return function(e){R.geometries[b]=e}}function v(){e.callbackProgress({totalModels:o,totalTextures:ea,loadedModels:o-Y,loadedTextures:ea-X},R);e.onLoadProgress();Y==0&&X==0&&c(R)}var p, +x,w,A,z,y,C,E,D,F,M,N,G,H,K,Z,L,P,U,Y,X,o,ea,R;P=b.data;K=new THREE.BinaryLoader;U=new THREE.JSONLoader;X=Y=0;R={scene:new THREE.Scene,geometries:{},materials:{},textures:{},objects:{},cameras:{},lights:{},fogs:{},triggers:{},empties:{}};b=!1;for(w in P.objects)if(E=P.objects[w],E.meshCollider){b=!0;break}if(b)R.scene.collisions=new THREE.CollisionSystem;if(P.transform){b=P.transform.position;F=P.transform.rotation;var pa=P.transform.scale;b&&R.scene.position.set(b[0],b[1],b[2]);F&&R.scene.rotation.set(F[0], +F[1],F[2]);pa&&R.scene.scale.set(pa[0],pa[1],pa[2]);(b||F||pa)&&R.scene.updateMatrix()}b=function(){X-=1;v();e.onLoadComplete()};for(z in P.cameras)F=P.cameras[z],F.type=="perspective"?G=new THREE.PerspectiveCamera(F.fov,F.aspect,F.near,F.far):F.type=="ortho"&&(G=new THREE.OrthographicCamera(F.left,F.right,F.top,F.bottom,F.near,F.far)),D=F.position,F=F.target,G.position.set(D[0],D[1],D[2]),G.target=new THREE.Vector3(F[0],F[1],F[2]),R.cameras[z]=G;for(A in P.lights)z=P.lights[A],G=z.color!==void 0? +z.color:16777215,F=z.intensity!==void 0?z.intensity:1,z.type=="directional"?(D=z.direction,L=new THREE.DirectionalLight(G,F),L.position.set(D[0],D[1],D[2]),L.position.normalize()):z.type=="point"?(D=z.position,d=z.distance,L=new THREE.PointLight(G,F,d),L.position.set(D[0],D[1],D[2])):z.type=="ambient"&&(L=new THREE.AmbientLight(G)),R.scene.add(L),R.lights[A]=L;for(y in P.fogs)A=P.fogs[y],A.type=="linear"?H=new THREE.Fog(0,A.near,A.far):A.type=="exp2"&&(H=new THREE.FogExp2(0,A.density)),F=A.color, +H.color.setRGB(F[0],F[1],F[2]),R.fogs[y]=H;if(R.cameras&&P.defaults.camera)R.currentCamera=R.cameras[P.defaults.camera];if(R.fogs&&P.defaults.fog)R.scene.fog=R.fogs[P.defaults.fog];F=P.defaults.bgcolor;R.bgColor=new THREE.Color;R.bgColor.setRGB(F[0],F[1],F[2]);R.bgColorAlpha=P.defaults.bgalpha;for(p in P.geometries)if(y=P.geometries[p],y.type=="bin_mesh"||y.type=="ascii_mesh")Y+=1,e.onLoadStart();o=Y;for(p in P.geometries)y=P.geometries[p],y.type=="cube"?(N=new THREE.CubeGeometry(y.width,y.height, +y.depth,y.segmentsWidth,y.segmentsHeight,y.segmentsDepth,null,y.flipped,y.sides),R.geometries[p]=N):y.type=="plane"?(N=new THREE.PlaneGeometry(y.width,y.height,y.segmentsWidth,y.segmentsHeight),R.geometries[p]=N):y.type=="sphere"?(N=new THREE.SphereGeometry(y.radius,y.segmentsWidth,y.segmentsHeight),R.geometries[p]=N):y.type=="cylinder"?(N=new THREE.CylinderGeometry(y.topRad,y.botRad,y.height,y.radSegs,y.heightSegs),R.geometries[p]=N):y.type=="torus"?(N=new THREE.TorusGeometry(y.radius,y.tube,y.segmentsR, +y.segmentsT),R.geometries[p]=N):y.type=="icosahedron"?(N=new THREE.IcosahedronGeometry(y.subdivisions),R.geometries[p]=N):y.type=="bin_mesh"?K.load({model:f(y.url,P.urlBaseType),callback:t(p)}):y.type=="ascii_mesh"?U.load({model:f(y.url,P.urlBaseType),callback:t(p)}):y.type=="embedded_mesh"&&(y=P.embeds[y.id])&&U.createModel(y,u(p),"");for(C in P.textures)if(p=P.textures[C],p.url instanceof Array){X+=p.url.length;for(K=0;K<p.url.length;K++)e.onLoadStart()}else X+=1,e.onLoadStart();ea=X;for(C in P.textures){p= +P.textures[C];if(p.mapping!=void 0&&THREE[p.mapping]!=void 0)p.mapping=new THREE[p.mapping];if(p.url instanceof Array){K=[];for(var fa=0;fa<p.url.length;fa++)K[fa]=f(p.url[fa],P.urlBaseType);K=THREE.ImageUtils.loadTextureCube(K,p.mapping,b)}else{K=THREE.ImageUtils.loadTexture(f(p.url,P.urlBaseType),p.mapping,b);if(THREE[p.minFilter]!=void 0)K.minFilter=THREE[p.minFilter];if(THREE[p.magFilter]!=void 0)K.magFilter=THREE[p.magFilter];if(p.repeat){K.repeat.set(p.repeat[0],p.repeat[1]);if(p.repeat[0]!= +1)K.wrapS=THREE.RepeatWrapping;if(p.repeat[1]!=1)K.wrapT=THREE.RepeatWrapping}p.offset&&K.offset.set(p.offset[0],p.offset[1]);if(p.wrap){U={repeat:THREE.RepeatWrapping,mirror:THREE.MirroredRepeatWrapping};if(U[p.wrap[0]]!==void 0)K.wrapS=U[p.wrap[0]];if(U[p.wrap[1]]!==void 0)K.wrapT=U[p.wrap[1]]}}R.textures[C]=K}for(x in P.materials){C=P.materials[x];for(M in C.parameters)if(M=="envMap"||M=="map"||M=="lightMap")C.parameters[M]=R.textures[C.parameters[M]];else if(M=="shading")C.parameters[M]=C.parameters[M]== +"flat"?THREE.FlatShading:THREE.SmoothShading;else if(M=="blending")C.parameters[M]=THREE[C.parameters[M]]?THREE[C.parameters[M]]:THREE.NormalBlending;else if(M=="combine")C.parameters[M]=C.parameters[M]=="MixOperation"?THREE.MixOperation:THREE.MultiplyOperation;else if(M=="vertexColors")if(C.parameters[M]=="face")C.parameters[M]=THREE.FaceColors;else if(C.parameters[M])C.parameters[M]=THREE.VertexColors;if(C.parameters.opacity!==void 0&&C.parameters.opacity<1)C.parameters.transparent=!0;if(C.parameters.normalMap){p= +THREE.ShaderUtils.lib.normal;b=THREE.UniformsUtils.clone(p.uniforms);K=C.parameters.color;U=C.parameters.specular;y=C.parameters.ambient;H=C.parameters.shininess;b.tNormal.texture=R.textures[C.parameters.normalMap];if(C.parameters.normalMapFactor)b.uNormalScale.value=C.parameters.normalMapFactor;if(C.parameters.map)b.tDiffuse.texture=C.parameters.map,b.enableDiffuse.value=!0;if(C.parameters.lightMap)b.tAO.texture=C.parameters.lightMap,b.enableAO.value=!0;if(C.parameters.specularMap)b.tSpecular.texture= +R.textures[C.parameters.specularMap],b.enableSpecular.value=!0;b.uDiffuseColor.value.setHex(K);b.uSpecularColor.value.setHex(U);b.uAmbientColor.value.setHex(y);b.uShininess.value=H;if(C.parameters.opacity)b.uOpacity.value=C.parameters.opacity;C=new THREE.ShaderMaterial({fragmentShader:p.fragmentShader,vertexShader:p.vertexShader,uniforms:b,lights:!0,fog:!0})}else C=new THREE[C.type](C.parameters);R.materials[x]=C}n();e.callbackSync(R)}},constructor:THREE.SceneLoader};THREE.UTF8Loader=function(){}; +THREE.UTF8Loader.prototype=new THREE.UTF8Loader;THREE.UTF8Loader.prototype.constructor=THREE.UTF8Loader; +THREE.UTF8Loader.prototype.load=function(b){var c=new XMLHttpRequest,e=b.model,f=b.callback,h=b.scale!==void 0?b.scale:1,k=b.offsetX!==void 0?b.offsetX:0,m=b.offsetY!==void 0?b.offsetY:0,n=b.offsetZ!==void 0?b.offsetZ:0;c.onreadystatechange=function(){c.readyState==4?c.status==200||c.status==0?THREE.UTF8Loader.prototype.createModel(c.responseText,f,h,k,m,n):alert("Couldn't load ["+e+"] ["+c.status+"]"):c.readyState!=3&&c.readyState==2&&c.getResponseHeader("Content-Length")};c.open("GET",e,!0);c.send(null)}; +THREE.UTF8Loader.prototype.decompressMesh=function(b){var c=b.charCodeAt(0);c>=57344&&(c-=2048);c++;for(var e=new Float32Array(8*c),f=1,h=0;h<8;h++){for(var k=0,m=0;m<c;++m){var n=b.charCodeAt(m+f);k+=n>>1^-(n&1);e[8*m+h]=k}f+=c}c=b.length-f;k=new Uint16Array(c);for(h=m=0;h<c;h++)n=b.charCodeAt(h+f),k[h]=m-n,n==0&&m++;return[e,k]}; +THREE.UTF8Loader.prototype.createModel=function(b,c,e,f,h,k){var m=function(){var c=this;c.materials=[];THREE.Geometry.call(this);var m=THREE.UTF8Loader.prototype.decompressMesh(b),u=[],v=[];(function(b,m,t){for(var u,v,y,C=b.length;t<C;t+=m)u=b[t],v=b[t+1],y=b[t+2],u=u/16383*e,v=v/16383*e,y=y/16383*e,u+=f,v+=h,y+=k,c.vertices.push(new THREE.Vertex(new THREE.Vector3(u,v,y)))})(m[0],8,0);(function(b,e,c){for(var f,h,k=b.length;c<k;c+=e)f=b[c],h=b[c+1],f/=1023,h/=1023,v.push(f,1-h)})(m[0],8,3);(function(b, +e,c){for(var f,h,k,m=b.length;c<m;c+=e)f=b[c],h=b[c+1],k=b[c+2],f=(f-512)/511,h=(h-512)/511,k=(k-512)/511,u.push(f,h,k)})(m[0],8,5);(function(b){var e,f,h,k,m,t,E,D,F,M=b.length;for(e=0;e<M;e+=3){f=b[e];h=b[e+1];k=b[e+2];m=c;D=f;F=h;t=k;E=f;var N=h,G=k,H=m.materials[0],K=u[N*3],Z=u[N*3+1],N=u[N*3+2],L=u[G*3],P=u[G*3+1],G=u[G*3+2];E=new THREE.Vector3(u[E*3],u[E*3+1],u[E*3+2]);N=new THREE.Vector3(K,Z,N);G=new THREE.Vector3(L,P,G);m.faces.push(new THREE.Face3(D,F,t,[E,N,G],null,H));m=v[f*2];f=v[f*2+ +1];t=v[h*2];E=v[h*2+1];D=v[k*2];F=v[k*2+1];k=c.faceVertexUvs[0];h=t;t=E;E=[];E.push(new THREE.UV(m,f));E.push(new THREE.UV(h,t));E.push(new THREE.UV(D,F));k.push(E)}})(m[1]);this.computeCentroids();this.computeFaceNormals()};m.prototype=new THREE.Geometry;m.prototype.constructor=m;c(new m)}; +THREE.Axes=function(){THREE.Object3D.call(this);var b=new THREE.Geometry;b.vertices.push(new THREE.Vertex);b.vertices.push(new THREE.Vertex(new THREE.Vector3(0,100,0)));var c=new THREE.CylinderGeometry(0,5,25,5,1),e=new THREE.Line(b,new THREE.LineBasicMaterial({color:16711680}));e.rotation.z=-Math.PI/2;this.add(e);e=new THREE.Mesh(c,new THREE.MeshBasicMaterial({color:16711680}));e.position.x=100;e.rotation.z=-Math.PI/2;this.add(e);e=new THREE.Line(b,new THREE.LineBasicMaterial({color:65280}));this.add(e); +e=new THREE.Mesh(c,new THREE.MeshBasicMaterial({color:65280}));e.position.y=100;this.add(e);e=new THREE.Line(b,new THREE.LineBasicMaterial({color:255}));e.rotation.x=Math.PI/2;this.add(e);e=new THREE.Mesh(c,new THREE.MeshBasicMaterial({color:255}));e.position.z=100;e.rotation.x=Math.PI/2;this.add(e)};THREE.Axes.prototype=new THREE.Object3D;THREE.Axes.prototype.constructor=THREE.Axes; +THREE.MarchingCubes=function(b,c){THREE.Object3D.call(this);this.materials=c instanceof Array?c:[c];this.init=function(b){this.isolation=80;this.size=b;this.size2=this.size*this.size;this.size3=this.size2*this.size;this.halfsize=this.size/2;this.delta=2/this.size;this.yd=this.size;this.zd=this.size2;this.field=new Float32Array(this.size3);this.normal_cache=new Float32Array(this.size3*3);this.vlist=new Float32Array(36);this.nlist=new Float32Array(36);this.firstDraw=!0;this.maxCount=4096;this.count= +0;this.hasNormal=this.hasPos=!1;this.positionArray=new Float32Array(this.maxCount*3);this.normalArray=new Float32Array(this.maxCount*3)};this.lerp=function(b,c,h){return b+(c-b)*h};this.VIntX=function(b,c,h,k,m,n,t,u,v,p){m=(m-v)/(p-v);v=this.normal_cache;c[k]=n+m*this.delta;c[k+1]=t;c[k+2]=u;h[k]=this.lerp(v[b],v[b+3],m);h[k+1]=this.lerp(v[b+1],v[b+4],m);h[k+2]=this.lerp(v[b+2],v[b+5],m)};this.VIntY=function(b,c,h,k,m,n,t,u,v,p){m=(m-v)/(p-v);v=this.normal_cache;c[k]=n;c[k+1]=t+m*this.delta;c[k+ +2]=u;c=b+this.yd*3;h[k]=this.lerp(v[b],v[c],m);h[k+1]=this.lerp(v[b+1],v[c+1],m);h[k+2]=this.lerp(v[b+2],v[c+2],m)};this.VIntZ=function(b,c,h,k,m,n,t,u,v,p){m=(m-v)/(p-v);v=this.normal_cache;c[k]=n;c[k+1]=t;c[k+2]=u+m*this.delta;c=b+this.zd*3;h[k]=this.lerp(v[b],v[c],m);h[k+1]=this.lerp(v[b+1],v[c+1],m);h[k+2]=this.lerp(v[b+2],v[c+2],m)};this.compNorm=function(b){var c=b*3;this.normal_cache[c]==0&&(this.normal_cache[c]=this.field[b-1]-this.field[b+1],this.normal_cache[c+1]=this.field[b-this.yd]-this.field[b+ +this.yd],this.normal_cache[c+2]=this.field[b-this.zd]-this.field[b+this.zd])};this.polygonize=function(b,c,h,k,m,n){var t=k+1,u=k+this.yd,v=k+this.zd,p=t+this.yd,x=t+this.zd,w=k+this.yd+this.zd,A=t+this.yd+this.zd,z=0,y=this.field[k],C=this.field[t],E=this.field[u],D=this.field[p],F=this.field[v],M=this.field[x],N=this.field[w],G=this.field[A];y<m&&(z|=1);C<m&&(z|=2);E<m&&(z|=8);D<m&&(z|=4);F<m&&(z|=16);M<m&&(z|=32);N<m&&(z|=128);G<m&&(z|=64);var H=THREE.edgeTable[z];if(H==0)return 0;var K=this.delta, +Z=b+K,L=c+K,K=h+K;H&1&&(this.compNorm(k),this.compNorm(t),this.VIntX(k*3,this.vlist,this.nlist,0,m,b,c,h,y,C));H&2&&(this.compNorm(t),this.compNorm(p),this.VIntY(t*3,this.vlist,this.nlist,3,m,Z,c,h,C,D));H&4&&(this.compNorm(u),this.compNorm(p),this.VIntX(u*3,this.vlist,this.nlist,6,m,b,L,h,E,D));H&8&&(this.compNorm(k),this.compNorm(u),this.VIntY(k*3,this.vlist,this.nlist,9,m,b,c,h,y,E));H&16&&(this.compNorm(v),this.compNorm(x),this.VIntX(v*3,this.vlist,this.nlist,12,m,b,c,K,F,M));H&32&&(this.compNorm(x), +this.compNorm(A),this.VIntY(x*3,this.vlist,this.nlist,15,m,Z,c,K,M,G));H&64&&(this.compNorm(w),this.compNorm(A),this.VIntX(w*3,this.vlist,this.nlist,18,m,b,L,K,N,G));H&128&&(this.compNorm(v),this.compNorm(w),this.VIntY(v*3,this.vlist,this.nlist,21,m,b,c,K,F,N));H&256&&(this.compNorm(k),this.compNorm(v),this.VIntZ(k*3,this.vlist,this.nlist,24,m,b,c,h,y,F));H&512&&(this.compNorm(t),this.compNorm(x),this.VIntZ(t*3,this.vlist,this.nlist,27,m,Z,c,h,C,M));H&1024&&(this.compNorm(p),this.compNorm(A),this.VIntZ(p* +3,this.vlist,this.nlist,30,m,Z,L,h,D,G));H&2048&&(this.compNorm(u),this.compNorm(w),this.VIntZ(u*3,this.vlist,this.nlist,33,m,b,L,h,E,N));z<<=4;for(m=k=0;THREE.triTable[z+m]!=-1;)b=z+m,c=b+1,h=b+2,this.posnormtriv(this.vlist,this.nlist,3*THREE.triTable[b],3*THREE.triTable[c],3*THREE.triTable[h],n),m+=3,k++;return k};this.posnormtriv=function(b,c,h,k,m,n){var t=this.count*3;this.positionArray[t]=b[h];this.positionArray[t+1]=b[h+1];this.positionArray[t+2]=b[h+2];this.positionArray[t+3]=b[k];this.positionArray[t+ +4]=b[k+1];this.positionArray[t+5]=b[k+2];this.positionArray[t+6]=b[m];this.positionArray[t+7]=b[m+1];this.positionArray[t+8]=b[m+2];this.normalArray[t]=c[h];this.normalArray[t+1]=c[h+1];this.normalArray[t+2]=c[h+2];this.normalArray[t+3]=c[k];this.normalArray[t+4]=c[k+1];this.normalArray[t+5]=c[k+2];this.normalArray[t+6]=c[m];this.normalArray[t+7]=c[m+1];this.normalArray[t+8]=c[m+2];this.hasNormal=this.hasPos=!0;this.count+=3;this.count>=this.maxCount-3&&n(this)};this.begin=function(){this.count=0; +this.hasNormal=this.hasPos=!1};this.end=function(b){if(this.count!=0){for(var c=this.count*3;c<this.positionArray.length;c++)this.positionArray[c]=0;b(this)}};this.addBall=function(b,c,h,k,m){var n=this.size*Math.sqrt(k/m),t=h*this.size,u=c*this.size,v=b*this.size,p=Math.floor(t-n);p<1&&(p=1);t=Math.floor(t+n);t>this.size-1&&(t=this.size-1);var x=Math.floor(u-n);x<1&&(x=1);u=Math.floor(u+n);u>this.size-1&&(u=this.size-1);var w=Math.floor(v-n);w<1&&(w=1);n=Math.floor(v+n);n>this.size-1&&(n=this.size- +1);for(var A,z,y,C,E,D;p<t;p++){v=this.size2*p;z=p/this.size-h;E=z*z;for(z=x;z<u;z++){y=v+this.size*z;A=z/this.size-c;D=A*A;for(A=w;A<n;A++)C=A/this.size-b,C=k/(1.0E-6+C*C+D+E)-m,C>0&&(this.field[y+A]+=C)}}};this.addPlaneX=function(b,c){var h,k,m,n,t,u=this.size,v=this.yd,p=this.zd,x=this.field,w=u*Math.sqrt(b/c);w>u&&(w=u);for(h=0;h<w;h++)if(k=h/u,k*=k,n=b/(1.0E-4+k)-c,n>0)for(k=0;k<u;k++){t=h+k*v;for(m=0;m<u;m++)x[p*m+t]+=n}};this.addPlaneY=function(b,c){var h,k,m,n,t,u,v=this.size,p=this.yd,x= +this.zd,w=this.field,A=v*Math.sqrt(b/c);A>v&&(A=v);for(k=0;k<A;k++)if(h=k/v,h*=h,n=b/(1.0E-4+h)-c,n>0){t=k*p;for(h=0;h<v;h++){u=t+h;for(m=0;m<v;m++)w[x*m+u]+=n}}};this.addPlaneZ=function(b,c){var h,k,m,n,t,u;size=this.size;yd=this.yd;zd=this.zd;field=this.field;dist=size*Math.sqrt(b/c);dist>size&&(dist=size);for(m=0;m<dist;m++)if(h=m/size,h*=h,n=b/(1.0E-4+h)-c,n>0){t=zd*m;for(k=0;k<size;k++){u=t+k*yd;for(h=0;h<size;h++)field[u+h]+=n}}};this.reset=function(){var b;for(b=0;b<this.size3;b++)this.normal_cache[b* +3]=0,this.field[b]=0};this.render=function(b){this.begin();var c,h,k,m,n,t,u,v,p,x=this.size-2;for(m=1;m<x;m++){p=this.size2*m;u=(m-this.halfsize)/this.halfsize;for(k=1;k<x;k++){v=p+this.size*k;t=(k-this.halfsize)/this.halfsize;for(h=1;h<x;h++)n=(h-this.halfsize)/this.halfsize,c=v+h,this.polygonize(n,t,u,c,this.isolation,b)}}this.end(b)};this.generateGeometry=function(){var b=0,c=new THREE.Geometry,h=[];this.render(function(k){var m,n,t,u,v,p,x,w;for(m=0;m<k.count;m++)x=m*3,v=x+1,w=x+2,n=k.positionArray[x], +t=k.positionArray[v],u=k.positionArray[w],p=new THREE.Vector3(n,t,u),n=k.normalArray[x],t=k.normalArray[v],u=k.normalArray[w],x=new THREE.Vector3(n,t,u),x.normalize(),v=new THREE.Vertex(p),c.vertices.push(v),h.push(x);nfaces=k.count/3;for(m=0;m<nfaces;m++)x=(b+m)*3,v=x+1,w=x+2,p=h[x],n=h[v],t=h[w],x=new THREE.Face3(x,v,w,[p,n,t]),c.faces.push(x);b+=nfaces;k.count=0});return c};this.init(b)};THREE.MarchingCubes.prototype=new THREE.Object3D;THREE.MarchingCubes.prototype.constructor=THREE.MarchingCubes; +THREE.edgeTable=new Int32Array([0,265,515,778,1030,1295,1541,1804,2060,2309,2575,2822,3082,3331,3593,3840,400,153,915,666,1430,1183,1941,1692,2460,2197,2975,2710,3482,3219,3993,3728,560,825,51,314,1590,1855,1077,1340,2620,2869,2111,2358,3642,3891,3129,3376,928,681,419,170,1958,1711,1445,1196,2988,2725,2479,2214,4010,3747,3497,3232,1120,1385,1635,1898,102,367,613,876,3180,3429,3695,3942,2154,2403,2665,2912,1520,1273,2035,1786,502,255,1013,764,3580,3317,4095,3830,2554,2291,3065,2800,1616,1881,1107, +1370,598,863,85,348,3676,3925,3167,3414,2650,2899,2137,2384,1984,1737,1475,1226,966,719,453,204,4044,3781,3535,3270,3018,2755,2505,2240,2240,2505,2755,3018,3270,3535,3781,4044,204,453,719,966,1226,1475,1737,1984,2384,2137,2899,2650,3414,3167,3925,3676,348,85,863,598,1370,1107,1881,1616,2800,3065,2291,2554,3830,4095,3317,3580,764,1013,255,502,1786,2035,1273,1520,2912,2665,2403,2154,3942,3695,3429,3180,876,613,367,102,1898,1635,1385,1120,3232,3497,3747,4010,2214,2479,2725,2988,1196,1445,1711,1958,170, +419,681,928,3376,3129,3891,3642,2358,2111,2869,2620,1340,1077,1855,1590,314,51,825,560,3728,3993,3219,3482,2710,2975,2197,2460,1692,1941,1183,1430,666,915,153,400,3840,3593,3331,3082,2822,2575,2309,2060,1804,1541,1295,1030,778,515,265,0]); +THREE.triTable=new Int32Array([-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,8,3,9,8,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,2,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,1,2,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,2,10,0,2,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,8,3,2,10,8,10,9,8,-1,-1,-1,-1,-1,-1,-1,3,11,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,11,2,8,11,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,9,0,2,3,11,-1,-1,-1,-1,-1, +-1,-1,-1,-1,-1,1,11,2,1,9,11,9,8,11,-1,-1,-1,-1,-1,-1,-1,3,10,1,11,10,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,10,1,0,8,10,8,11,10,-1,-1,-1,-1,-1,-1,-1,3,9,0,3,11,9,11,10,9,-1,-1,-1,-1,-1,-1,-1,9,8,10,10,8,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,7,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,3,0,7,3,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,9,8,4,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,1,9,4,7,1,7,3,1,-1,-1,-1,-1,-1,-1,-1,1,2,10,8,4,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,4,7,3,0,4,1,2,10,-1,-1,-1,-1,-1,-1,-1,9,2,10,9,0,2,8,4,7, +-1,-1,-1,-1,-1,-1,-1,2,10,9,2,9,7,2,7,3,7,9,4,-1,-1,-1,-1,8,4,7,3,11,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,4,7,11,2,4,2,0,4,-1,-1,-1,-1,-1,-1,-1,9,0,1,8,4,7,2,3,11,-1,-1,-1,-1,-1,-1,-1,4,7,11,9,4,11,9,11,2,9,2,1,-1,-1,-1,-1,3,10,1,3,11,10,7,8,4,-1,-1,-1,-1,-1,-1,-1,1,11,10,1,4,11,1,0,4,7,11,4,-1,-1,-1,-1,4,7,8,9,0,11,9,11,10,11,0,3,-1,-1,-1,-1,4,7,11,4,11,9,9,11,10,-1,-1,-1,-1,-1,-1,-1,9,5,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,5,4,0,8,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,5,4,1,5,0,-1,-1,-1,-1,-1,-1, +-1,-1,-1,-1,8,5,4,8,3,5,3,1,5,-1,-1,-1,-1,-1,-1,-1,1,2,10,9,5,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,0,8,1,2,10,4,9,5,-1,-1,-1,-1,-1,-1,-1,5,2,10,5,4,2,4,0,2,-1,-1,-1,-1,-1,-1,-1,2,10,5,3,2,5,3,5,4,3,4,8,-1,-1,-1,-1,9,5,4,2,3,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,11,2,0,8,11,4,9,5,-1,-1,-1,-1,-1,-1,-1,0,5,4,0,1,5,2,3,11,-1,-1,-1,-1,-1,-1,-1,2,1,5,2,5,8,2,8,11,4,8,5,-1,-1,-1,-1,10,3,11,10,1,3,9,5,4,-1,-1,-1,-1,-1,-1,-1,4,9,5,0,8,1,8,10,1,8,11,10,-1,-1,-1,-1,5,4,0,5,0,11,5,11,10,11,0,3,-1,-1,-1,-1,5,4,8,5, +8,10,10,8,11,-1,-1,-1,-1,-1,-1,-1,9,7,8,5,7,9,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,3,0,9,5,3,5,7,3,-1,-1,-1,-1,-1,-1,-1,0,7,8,0,1,7,1,5,7,-1,-1,-1,-1,-1,-1,-1,1,5,3,3,5,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,7,8,9,5,7,10,1,2,-1,-1,-1,-1,-1,-1,-1,10,1,2,9,5,0,5,3,0,5,7,3,-1,-1,-1,-1,8,0,2,8,2,5,8,5,7,10,5,2,-1,-1,-1,-1,2,10,5,2,5,3,3,5,7,-1,-1,-1,-1,-1,-1,-1,7,9,5,7,8,9,3,11,2,-1,-1,-1,-1,-1,-1,-1,9,5,7,9,7,2,9,2,0,2,7,11,-1,-1,-1,-1,2,3,11,0,1,8,1,7,8,1,5,7,-1,-1,-1,-1,11,2,1,11,1,7,7,1,5,-1,-1,-1,-1,-1,-1, +-1,9,5,8,8,5,7,10,1,3,10,3,11,-1,-1,-1,-1,5,7,0,5,0,9,7,11,0,1,0,10,11,10,0,-1,11,10,0,11,0,3,10,5,0,8,0,7,5,7,0,-1,11,10,5,7,11,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,6,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,5,10,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,0,1,5,10,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,8,3,1,9,8,5,10,6,-1,-1,-1,-1,-1,-1,-1,1,6,5,2,6,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,6,5,1,2,6,3,0,8,-1,-1,-1,-1,-1,-1,-1,9,6,5,9,0,6,0,2,6,-1,-1,-1,-1,-1,-1,-1,5,9,8,5,8,2,5,2,6,3,2,8,-1,-1,-1,-1,2,3,11,10,6, +5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,0,8,11,2,0,10,6,5,-1,-1,-1,-1,-1,-1,-1,0,1,9,2,3,11,5,10,6,-1,-1,-1,-1,-1,-1,-1,5,10,6,1,9,2,9,11,2,9,8,11,-1,-1,-1,-1,6,3,11,6,5,3,5,1,3,-1,-1,-1,-1,-1,-1,-1,0,8,11,0,11,5,0,5,1,5,11,6,-1,-1,-1,-1,3,11,6,0,3,6,0,6,5,0,5,9,-1,-1,-1,-1,6,5,9,6,9,11,11,9,8,-1,-1,-1,-1,-1,-1,-1,5,10,6,4,7,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,3,0,4,7,3,6,5,10,-1,-1,-1,-1,-1,-1,-1,1,9,0,5,10,6,8,4,7,-1,-1,-1,-1,-1,-1,-1,10,6,5,1,9,7,1,7,3,7,9,4,-1,-1,-1,-1,6,1,2,6,5,1,4,7,8,-1,-1,-1,-1, +-1,-1,-1,1,2,5,5,2,6,3,0,4,3,4,7,-1,-1,-1,-1,8,4,7,9,0,5,0,6,5,0,2,6,-1,-1,-1,-1,7,3,9,7,9,4,3,2,9,5,9,6,2,6,9,-1,3,11,2,7,8,4,10,6,5,-1,-1,-1,-1,-1,-1,-1,5,10,6,4,7,2,4,2,0,2,7,11,-1,-1,-1,-1,0,1,9,4,7,8,2,3,11,5,10,6,-1,-1,-1,-1,9,2,1,9,11,2,9,4,11,7,11,4,5,10,6,-1,8,4,7,3,11,5,3,5,1,5,11,6,-1,-1,-1,-1,5,1,11,5,11,6,1,0,11,7,11,4,0,4,11,-1,0,5,9,0,6,5,0,3,6,11,6,3,8,4,7,-1,6,5,9,6,9,11,4,7,9,7,11,9,-1,-1,-1,-1,10,4,9,6,4,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,10,6,4,9,10,0,8,3,-1,-1,-1,-1,-1,-1,-1, +10,0,1,10,6,0,6,4,0,-1,-1,-1,-1,-1,-1,-1,8,3,1,8,1,6,8,6,4,6,1,10,-1,-1,-1,-1,1,4,9,1,2,4,2,6,4,-1,-1,-1,-1,-1,-1,-1,3,0,8,1,2,9,2,4,9,2,6,4,-1,-1,-1,-1,0,2,4,4,2,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,3,2,8,2,4,4,2,6,-1,-1,-1,-1,-1,-1,-1,10,4,9,10,6,4,11,2,3,-1,-1,-1,-1,-1,-1,-1,0,8,2,2,8,11,4,9,10,4,10,6,-1,-1,-1,-1,3,11,2,0,1,6,0,6,4,6,1,10,-1,-1,-1,-1,6,4,1,6,1,10,4,8,1,2,1,11,8,11,1,-1,9,6,4,9,3,6,9,1,3,11,6,3,-1,-1,-1,-1,8,11,1,8,1,0,11,6,1,9,1,4,6,4,1,-1,3,11,6,3,6,0,0,6,4,-1,-1,-1,-1,-1,-1,-1, +6,4,8,11,6,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,10,6,7,8,10,8,9,10,-1,-1,-1,-1,-1,-1,-1,0,7,3,0,10,7,0,9,10,6,7,10,-1,-1,-1,-1,10,6,7,1,10,7,1,7,8,1,8,0,-1,-1,-1,-1,10,6,7,10,7,1,1,7,3,-1,-1,-1,-1,-1,-1,-1,1,2,6,1,6,8,1,8,9,8,6,7,-1,-1,-1,-1,2,6,9,2,9,1,6,7,9,0,9,3,7,3,9,-1,7,8,0,7,0,6,6,0,2,-1,-1,-1,-1,-1,-1,-1,7,3,2,6,7,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,11,10,6,8,10,8,9,8,6,7,-1,-1,-1,-1,2,0,7,2,7,11,0,9,7,6,7,10,9,10,7,-1,1,8,0,1,7,8,1,10,7,6,7,10,2,3,11,-1,11,2,1,11,1,7,10,6,1,6,7,1,-1,-1,-1,-1, +8,9,6,8,6,7,9,1,6,11,6,3,1,3,6,-1,0,9,1,11,6,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,8,0,7,0,6,3,11,0,11,6,0,-1,-1,-1,-1,7,11,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,6,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,0,8,11,7,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,9,11,7,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,1,9,8,3,1,11,7,6,-1,-1,-1,-1,-1,-1,-1,10,1,2,6,11,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,2,10,3,0,8,6,11,7,-1,-1,-1,-1,-1,-1,-1,2,9,0,2,10,9,6,11,7,-1,-1,-1,-1,-1,-1,-1,6,11,7,2,10,3,10,8,3,10,9,8,-1,-1,-1,-1,7, +2,3,6,2,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,7,0,8,7,6,0,6,2,0,-1,-1,-1,-1,-1,-1,-1,2,7,6,2,3,7,0,1,9,-1,-1,-1,-1,-1,-1,-1,1,6,2,1,8,6,1,9,8,8,7,6,-1,-1,-1,-1,10,7,6,10,1,7,1,3,7,-1,-1,-1,-1,-1,-1,-1,10,7,6,1,7,10,1,8,7,1,0,8,-1,-1,-1,-1,0,3,7,0,7,10,0,10,9,6,10,7,-1,-1,-1,-1,7,6,10,7,10,8,8,10,9,-1,-1,-1,-1,-1,-1,-1,6,8,4,11,8,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,6,11,3,0,6,0,4,6,-1,-1,-1,-1,-1,-1,-1,8,6,11,8,4,6,9,0,1,-1,-1,-1,-1,-1,-1,-1,9,4,6,9,6,3,9,3,1,11,3,6,-1,-1,-1,-1,6,8,4,6,11,8,2,10,1,-1,-1,-1, +-1,-1,-1,-1,1,2,10,3,0,11,0,6,11,0,4,6,-1,-1,-1,-1,4,11,8,4,6,11,0,2,9,2,10,9,-1,-1,-1,-1,10,9,3,10,3,2,9,4,3,11,3,6,4,6,3,-1,8,2,3,8,4,2,4,6,2,-1,-1,-1,-1,-1,-1,-1,0,4,2,4,6,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,9,0,2,3,4,2,4,6,4,3,8,-1,-1,-1,-1,1,9,4,1,4,2,2,4,6,-1,-1,-1,-1,-1,-1,-1,8,1,3,8,6,1,8,4,6,6,10,1,-1,-1,-1,-1,10,1,0,10,0,6,6,0,4,-1,-1,-1,-1,-1,-1,-1,4,6,3,4,3,8,6,10,3,0,3,9,10,9,3,-1,10,9,4,6,10,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,9,5,7,6,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,3,4,9,5,11,7,6, +-1,-1,-1,-1,-1,-1,-1,5,0,1,5,4,0,7,6,11,-1,-1,-1,-1,-1,-1,-1,11,7,6,8,3,4,3,5,4,3,1,5,-1,-1,-1,-1,9,5,4,10,1,2,7,6,11,-1,-1,-1,-1,-1,-1,-1,6,11,7,1,2,10,0,8,3,4,9,5,-1,-1,-1,-1,7,6,11,5,4,10,4,2,10,4,0,2,-1,-1,-1,-1,3,4,8,3,5,4,3,2,5,10,5,2,11,7,6,-1,7,2,3,7,6,2,5,4,9,-1,-1,-1,-1,-1,-1,-1,9,5,4,0,8,6,0,6,2,6,8,7,-1,-1,-1,-1,3,6,2,3,7,6,1,5,0,5,4,0,-1,-1,-1,-1,6,2,8,6,8,7,2,1,8,4,8,5,1,5,8,-1,9,5,4,10,1,6,1,7,6,1,3,7,-1,-1,-1,-1,1,6,10,1,7,6,1,0,7,8,7,0,9,5,4,-1,4,0,10,4,10,5,0,3,10,6,10,7,3,7,10, +-1,7,6,10,7,10,8,5,4,10,4,8,10,-1,-1,-1,-1,6,9,5,6,11,9,11,8,9,-1,-1,-1,-1,-1,-1,-1,3,6,11,0,6,3,0,5,6,0,9,5,-1,-1,-1,-1,0,11,8,0,5,11,0,1,5,5,6,11,-1,-1,-1,-1,6,11,3,6,3,5,5,3,1,-1,-1,-1,-1,-1,-1,-1,1,2,10,9,5,11,9,11,8,11,5,6,-1,-1,-1,-1,0,11,3,0,6,11,0,9,6,5,6,9,1,2,10,-1,11,8,5,11,5,6,8,0,5,10,5,2,0,2,5,-1,6,11,3,6,3,5,2,10,3,10,5,3,-1,-1,-1,-1,5,8,9,5,2,8,5,6,2,3,8,2,-1,-1,-1,-1,9,5,6,9,6,0,0,6,2,-1,-1,-1,-1,-1,-1,-1,1,5,8,1,8,0,5,6,8,3,8,2,6,2,8,-1,1,5,6,2,1,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, +1,3,6,1,6,10,3,8,6,5,6,9,8,9,6,-1,10,1,0,10,0,6,9,5,0,5,6,0,-1,-1,-1,-1,0,3,8,5,6,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,5,6,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,5,10,7,5,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,11,5,10,11,7,5,8,3,0,-1,-1,-1,-1,-1,-1,-1,5,11,7,5,10,11,1,9,0,-1,-1,-1,-1,-1,-1,-1,10,7,5,10,11,7,9,8,1,8,3,1,-1,-1,-1,-1,11,1,2,11,7,1,7,5,1,-1,-1,-1,-1,-1,-1,-1,0,8,3,1,2,7,1,7,5,7,2,11,-1,-1,-1,-1,9,7,5,9,2,7,9,0,2,2,11,7,-1,-1,-1,-1,7,5,2,7,2,11,5,9,2,3,2,8,9,8,2,-1,2,5,10,2,3,5,3,7,5,-1,-1, +-1,-1,-1,-1,-1,8,2,0,8,5,2,8,7,5,10,2,5,-1,-1,-1,-1,9,0,1,5,10,3,5,3,7,3,10,2,-1,-1,-1,-1,9,8,2,9,2,1,8,7,2,10,2,5,7,5,2,-1,1,3,5,3,7,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,8,7,0,7,1,1,7,5,-1,-1,-1,-1,-1,-1,-1,9,0,3,9,3,5,5,3,7,-1,-1,-1,-1,-1,-1,-1,9,8,7,5,9,7,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,5,8,4,5,10,8,10,11,8,-1,-1,-1,-1,-1,-1,-1,5,0,4,5,11,0,5,10,11,11,3,0,-1,-1,-1,-1,0,1,9,8,4,10,8,10,11,10,4,5,-1,-1,-1,-1,10,11,4,10,4,5,11,3,4,9,4,1,3,1,4,-1,2,5,1,2,8,5,2,11,8,4,5,8,-1,-1,-1,-1,0,4,11,0,11,3,4,5,11, +2,11,1,5,1,11,-1,0,2,5,0,5,9,2,11,5,4,5,8,11,8,5,-1,9,4,5,2,11,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,5,10,3,5,2,3,4,5,3,8,4,-1,-1,-1,-1,5,10,2,5,2,4,4,2,0,-1,-1,-1,-1,-1,-1,-1,3,10,2,3,5,10,3,8,5,4,5,8,0,1,9,-1,5,10,2,5,2,4,1,9,2,9,4,2,-1,-1,-1,-1,8,4,5,8,5,3,3,5,1,-1,-1,-1,-1,-1,-1,-1,0,4,5,1,0,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,8,4,5,8,5,3,9,0,5,0,3,5,-1,-1,-1,-1,9,4,5,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,11,7,4,9,11,9,10,11,-1,-1,-1,-1,-1,-1,-1,0,8,3,4,9,7,9,11,7,9,10,11,-1,-1,-1,-1,1,10,11,1,11, +4,1,4,0,7,4,11,-1,-1,-1,-1,3,1,4,3,4,8,1,10,4,7,4,11,10,11,4,-1,4,11,7,9,11,4,9,2,11,9,1,2,-1,-1,-1,-1,9,7,4,9,11,7,9,1,11,2,11,1,0,8,3,-1,11,7,4,11,4,2,2,4,0,-1,-1,-1,-1,-1,-1,-1,11,7,4,11,4,2,8,3,4,3,2,4,-1,-1,-1,-1,2,9,10,2,7,9,2,3,7,7,4,9,-1,-1,-1,-1,9,10,7,9,7,4,10,2,7,8,7,0,2,0,7,-1,3,7,10,3,10,2,7,4,10,1,10,0,4,0,10,-1,1,10,2,8,7,4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,9,1,4,1,7,7,1,3,-1,-1,-1,-1,-1,-1,-1,4,9,1,4,1,7,0,8,1,8,7,1,-1,-1,-1,-1,4,0,3,7,4,3,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,4,8,7,-1,-1,-1, +-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,10,8,10,11,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,0,9,3,9,11,11,9,10,-1,-1,-1,-1,-1,-1,-1,0,1,10,0,10,8,8,10,11,-1,-1,-1,-1,-1,-1,-1,3,1,10,11,3,10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,2,11,1,11,9,9,11,8,-1,-1,-1,-1,-1,-1,-1,3,0,9,3,9,11,1,2,9,2,11,9,-1,-1,-1,-1,0,2,11,8,0,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,3,2,11,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,8,2,8,10,10,8,9,-1,-1,-1,-1,-1,-1,-1,9,10,2,0,9,2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,2,3,8,2,8,10,0,1,8,1,10,8,-1,-1,-1,-1,1,10, +2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,1,3,8,9,1,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,9,1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,3,8,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1]);THREE.PlaneCollider=function(b,c){this.point=b;this.normal=c};THREE.SphereCollider=function(b,c){this.center=b;this.radius=c;this.radiusSq=c*c};THREE.BoxCollider=function(b,c){this.min=b;this.max=c;this.dynamic=!0;this.normal=new THREE.Vector3}; +THREE.MeshCollider=function(b,c){this.mesh=b;this.box=c;this.numFaces=this.mesh.geometry.faces.length;this.normal=new THREE.Vector3};THREE.CollisionSystem=function(){this.collisionNormal=new THREE.Vector3;this.colliders=[];this.hits=[]};THREE.Collisions=new THREE.CollisionSystem;THREE.CollisionSystem.prototype.merge=function(b){Array.prototype.push.apply(this.colliders,b.colliders);Array.prototype.push.apply(this.hits,b.hits)}; +THREE.CollisionSystem.prototype.rayCastAll=function(b){b.direction.normalize();this.hits.length=0;var c,e,f,h,k=0;c=0;for(e=this.colliders.length;c<e;c++)if(h=this.colliders[c],f=this.rayCast(b,h),f<Number.MAX_VALUE)h.distance=f,f>k?this.hits.push(h):this.hits.unshift(h),k=f;return this.hits}; +THREE.CollisionSystem.prototype.rayCastNearest=function(b){var c=this.rayCastAll(b);if(c.length==0)return null;for(var e=0;c[e]instanceof THREE.MeshCollider;){var f=this.rayMesh(b,c[e]);if(f.dist<Number.MAX_VALUE){c[e].distance=f.dist;c[e].faceIndex=f.faceIndex;break}e++}if(e>c.length)return null;return c[e]}; +THREE.CollisionSystem.prototype.rayCast=function(b,c){if(c instanceof THREE.PlaneCollider)return this.rayPlane(b,c);else if(c instanceof THREE.SphereCollider)return this.raySphere(b,c);else if(c instanceof THREE.BoxCollider)return this.rayBox(b,c);else if(c instanceof THREE.MeshCollider&&c.box)return this.rayBox(b,c.box)}; +THREE.CollisionSystem.prototype.rayMesh=function(b,c){for(var e=this.makeRayLocal(b,c.mesh),f=Number.MAX_VALUE,h,k=0;k<c.numFaces;k++){var m=c.mesh.geometry.faces[k],n=c.mesh.geometry.vertices[m.a].position,t=c.mesh.geometry.vertices[m.b].position,u=c.mesh.geometry.vertices[m.c].position,v=m instanceof THREE.Face4?c.mesh.geometry.vertices[m.d].position:null;m instanceof THREE.Face3?(m=this.rayTriangle(e,n,t,u,f,this.collisionNormal,c.mesh),m<f&&(f=m,h=k,c.normal.copy(this.collisionNormal),c.normal.normalize())): +m instanceof THREE.Face4&&(m=this.rayTriangle(e,n,t,v,f,this.collisionNormal,c.mesh),m<f&&(f=m,h=k,c.normal.copy(this.collisionNormal),c.normal.normalize()),m=this.rayTriangle(e,t,u,v,f,this.collisionNormal,c.mesh),m<f&&(f=m,h=k,c.normal.copy(this.collisionNormal),c.normal.normalize()))}return{dist:f,faceIndex:h}}; +THREE.CollisionSystem.prototype.rayTriangle=function(b,c,e,f,h,k,m){var n=THREE.CollisionSystem.__v1,t=THREE.CollisionSystem.__v2;k.set(0,0,0);n.sub(e,c);t.sub(f,e);k.cross(n,t);n=k.dot(b.direction);if(!(n<0))if(m.doubleSided||m.flipSided)k.multiplyScalar(-1),n*=-1;else return Number.MAX_VALUE;m=k.dot(c)-k.dot(b.origin);if(!(m<=0))return Number.MAX_VALUE;if(!(m>=n*h))return Number.MAX_VALUE;m/=n;n=THREE.CollisionSystem.__v3;n.copy(b.direction);n.multiplyScalar(m);n.addSelf(b.origin);Math.abs(k.x)> +Math.abs(k.y)?Math.abs(k.x)>Math.abs(k.z)?(b=n.y-c.y,k=e.y-c.y,h=f.y-c.y,n=n.z-c.z,e=e.z-c.z,f=f.z-c.z):(b=n.x-c.x,k=e.x-c.x,h=f.x-c.x,n=n.y-c.y,e=e.y-c.y,f=f.y-c.y):Math.abs(k.y)>Math.abs(k.z)?(b=n.x-c.x,k=e.x-c.x,h=f.x-c.x,n=n.z-c.z,e=e.z-c.z,f=f.z-c.z):(b=n.x-c.x,k=e.x-c.x,h=f.x-c.x,n=n.y-c.y,e=e.y-c.y,f=f.y-c.y);c=k*f-e*h;if(c==0)return Number.MAX_VALUE;c=1/c;f=(b*f-n*h)*c;if(!(f>=0))return Number.MAX_VALUE;c*=k*n-e*b;if(!(c>=0))return Number.MAX_VALUE;if(!(1-f-c>=0))return Number.MAX_VALUE;return m}; +THREE.CollisionSystem.prototype.makeRayLocal=function(b,c){var e=THREE.CollisionSystem.__m;THREE.Matrix4.makeInvert(c.matrixWorld,e);var f=THREE.CollisionSystem.__r;f.origin.copy(b.origin);f.direction.copy(b.direction);e.multiplyVector3(f.origin);e.rotateAxis(f.direction);f.direction.normalize();return f}; +THREE.CollisionSystem.prototype.rayBox=function(b,c){var e;c.dynamic&&c.mesh&&c.mesh.matrixWorld?e=this.makeRayLocal(b,c.mesh):(e=THREE.CollisionSystem.__r,e.origin.copy(b.origin),e.direction.copy(b.direction));var f=0,h=0,k=0,m=0,n=0,t=0,u=!0;e.origin.x<c.min.x?(f=c.min.x-e.origin.x,f/=e.direction.x,u=!1,m=-1):e.origin.x>c.max.x&&(f=c.max.x-e.origin.x,f/=e.direction.x,u=!1,m=1);e.origin.y<c.min.y?(h=c.min.y-e.origin.y,h/=e.direction.y,u=!1,n=-1):e.origin.y>c.max.y&&(h=c.max.y-e.origin.y,h/=e.direction.y, +u=!1,n=1);e.origin.z<c.min.z?(k=c.min.z-e.origin.z,k/=e.direction.z,u=!1,t=-1):e.origin.z>c.max.z&&(k=c.max.z-e.origin.z,k/=e.direction.z,u=!1,t=1);if(u)return-1;u=0;h>f&&(u=1,f=h);k>f&&(u=2,f=k);switch(u){case 0:n=e.origin.y+e.direction.y*f;if(n<c.min.y||n>c.max.y)return Number.MAX_VALUE;e=e.origin.z+e.direction.z*f;if(e<c.min.z||e>c.max.z)return Number.MAX_VALUE;c.normal.set(m,0,0);break;case 1:m=e.origin.x+e.direction.x*f;if(m<c.min.x||m>c.max.x)return Number.MAX_VALUE;e=e.origin.z+e.direction.z* +f;if(e<c.min.z||e>c.max.z)return Number.MAX_VALUE;c.normal.set(0,n,0);break;case 2:m=e.origin.x+e.direction.x*f;if(m<c.min.x||m>c.max.x)return Number.MAX_VALUE;n=e.origin.y+e.direction.y*f;if(n<c.min.y||n>c.max.y)return Number.MAX_VALUE;c.normal.set(0,0,t)}return f};THREE.CollisionSystem.prototype.rayPlane=function(b,c){var e=b.direction.dot(c.normal),f=c.point.dot(c.normal);if(e<0)e=(f-b.origin.dot(c.normal))/e;else return Number.MAX_VALUE;return e>0?e:Number.MAX_VALUE}; +THREE.CollisionSystem.prototype.raySphere=function(b,c){var e=c.center.clone().subSelf(b.origin);if(e.lengthSq<c.radiusSq)return-1;var f=e.dot(b.direction.clone());if(f<=0)return Number.MAX_VALUE;e=c.radiusSq-(e.lengthSq()-f*f);if(e>=0)return Math.abs(f)-Math.sqrt(e);return Number.MAX_VALUE};THREE.CollisionSystem.__v1=new THREE.Vector3;THREE.CollisionSystem.__v2=new THREE.Vector3;THREE.CollisionSystem.__v3=new THREE.Vector3;THREE.CollisionSystem.__nr=new THREE.Vector3;THREE.CollisionSystem.__m=new THREE.Matrix4; +THREE.CollisionSystem.__r=new THREE.Ray;THREE.CollisionUtils={};THREE.CollisionUtils.MeshOBB=function(b){b.geometry.computeBoundingBox();var c=b.geometry.boundingBox,e=new THREE.Vector3(c.x[0],c.y[0],c.z[0]),c=new THREE.Vector3(c.x[1],c.y[1],c.z[1]),e=new THREE.BoxCollider(e,c);e.mesh=b;return e};THREE.CollisionUtils.MeshAABB=function(b){var c=THREE.CollisionUtils.MeshOBB(b);c.min.addSelf(b.position);c.max.addSelf(b.position);c.dynamic=!1;return c}; +THREE.CollisionUtils.MeshColliderWBox=function(b){return new THREE.MeshCollider(b,THREE.CollisionUtils.MeshOBB(b))}; +if(THREE.WebGLRenderer)THREE.AnaglyphWebGLRenderer=function(b){THREE.WebGLRenderer.call(this,b);var c=this,e=this.setSize,f=this.render,h=new THREE.PerspectiveCamera,k=new THREE.PerspectiveCamera,m=new THREE.Matrix4,n=new THREE.Matrix4,t,u,v;h.matrixAutoUpdate=k.matrixAutoUpdate=!1;var b={minFilter:THREE.LinearFilter,magFilter:THREE.NearestFilter,format:THREE.RGBAFormat},p=new THREE.WebGLRenderTarget(512,512,b),x=new THREE.WebGLRenderTarget(512,512,b),w=new THREE.PerspectiveCamera(53,1,1,1E4);w.position.z= +2;_material=new THREE.ShaderMaterial({uniforms:{mapLeft:{type:"t",value:0,texture:p},mapRight:{type:"t",value:1,texture:x}},vertexShader:"varying vec2 vUv;\nvoid main() {\nvUv = vec2( uv.x, 1.0 - uv.y );\ngl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n}",fragmentShader:"uniform sampler2D mapLeft;\nuniform sampler2D mapRight;\nvarying vec2 vUv;\nvoid main() {\nvec4 colorL, colorR;\nvec2 uv = vUv;\ncolorL = texture2D( mapLeft, uv );\ncolorR = texture2D( mapRight, uv );\ngl_FragColor = vec4( colorL.g * 0.7 + colorL.b * 0.3, colorR.g, colorR.b, colorL.a + colorR.a ) * 1.1;\n}"}); +var A=new THREE.Scene;A.add(new THREE.Mesh(new THREE.PlaneGeometry(2,2),_material));this.setSize=function(b,f){e.call(c,b,f);p.width=b;p.height=f;x.width=b;x.height=f};this.render=function(b,e){e.update(null,!0);if(t!==e.aspect||u!==e.near||v!==e.fov){t=e.aspect;u=e.near;v=e.fov;var C=e.projectionMatrix.clone(),E=125/30*0.5,D=E*u/125,F=u*Math.tan(v*Math.PI/360),M;m.n14=E;n.n14=-E;E=-F*t+D;M=F*t+D;C.n11=2*u/(M-E);C.n13=(M+E)/(M-E);h.projectionMatrix=C.clone();E=-F*t-D;M=F*t-D;C.n11=2*u/(M-E);C.n13= +(M+E)/(M-E);k.projectionMatrix=C.clone()}h.matrix=e.matrixWorld.clone().multiplySelf(n);h.update(null,!0);h.position.copy(e.position);h.near=u;h.far=e.far;f.call(c,b,h,p,!0);k.matrix=e.matrixWorld.clone().multiplySelf(m);k.update(null,!0);k.position.copy(e.position);k.near=u;k.far=e.far;f.call(c,b,k,x,!0);f.call(c,A,w)}}; +if(THREE.WebGLRenderer)THREE.CrosseyedWebGLRenderer=function(b){THREE.WebGLRenderer.call(this,b);this.autoClear=!1;var c=this,e=this.setSize,f=this.render,h,k,m=new THREE.PerspectiveCamera;m.target=new THREE.Vector3(0,0,0);var n=new THREE.PerspectiveCamera;n.target=new THREE.Vector3(0,0,0);c.separation=10;if(b&&b.separation!==void 0)c.separation=b.separation;this.setSize=function(b,f){e.call(c,b,f);h=b/2;k=f};this.render=function(b,e){this.clear();m.fov=e.fov;m.aspect=0.5*e.aspect;m.near=e.near;m.far= +e.far;m.updateProjectionMatrix();m.position.copy(e.position);m.target.copy(e.target);m.translateX(c.separation);m.lookAt(m.target);n.projectionMatrix=m.projectionMatrix;n.position.copy(e.position);n.target.copy(e.target);n.translateX(-c.separation);n.lookAt(n.target);this.setViewport(0,0,h,k);f.call(c,b,m);this.setViewport(h,0,h,k);f.call(c,b,n,!1)}}; diff --git a/frontend/imlandscape/js/generating.js b/frontend/imlandscape/js/generating.js new file mode 100644 index 0000000..1b1cf03 --- /dev/null +++ b/frontend/imlandscape/js/generating.js @@ -0,0 +1,8 @@ +var is_generating = false; +function toggle_background(){ + if (is_generating){ + $('body').css("background", "url(img/generating_background.gif)"); + }else{ + $('body').css("background", "whitesmoke"); + } +} diff --git a/frontend/imlandscape/js/jquery.min.js b/frontend/imlandscape/js/jquery.min.js new file mode 100644 index 0000000..25714ed --- /dev/null +++ b/frontend/imlandscape/js/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v2.1.3 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.3",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)+1>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=hb(),z=hb(),A=hb(),B=function(a,b){return a===b&&(l=!0),0},C=1<<31,D={}.hasOwnProperty,E=[],F=E.pop,G=E.push,H=E.push,I=E.slice,J=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},K="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N=M.replace("w","w#"),O="\\["+L+"*("+M+")(?:"+L+"*([*^$|!~]?=)"+L+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+N+"))|)"+L+"*\\]",P=":("+M+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+O+")*)|.*)\\)|)",Q=new RegExp(L+"+","g"),R=new RegExp("^"+L+"+|((?:^|[^\\\\])(?:\\\\.)*)"+L+"+$","g"),S=new RegExp("^"+L+"*,"+L+"*"),T=new RegExp("^"+L+"*([>+~]|"+L+")"+L+"*"),U=new RegExp("="+L+"*([^\\]'\"]*?)"+L+"*\\]","g"),V=new RegExp(P),W=new RegExp("^"+N+"$"),X={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+O),PSEUDO:new RegExp("^"+P),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+"*(even|odd|(([+-]|)(\\d*)n|)"+L+"*(?:([+-]|)"+L+"*(\\d+)|))"+L+"*\\)|)","i"),bool:new RegExp("^(?:"+K+")$","i"),needsContext:new RegExp("^"+L+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+"*((?:-\\d)?\\d*)"+L+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+L+"?|("+L+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},eb=function(){m()};try{H.apply(E=I.call(v.childNodes),v.childNodes),E[v.childNodes.length].nodeType}catch(fb){H={apply:E.length?function(a,b){G.apply(a,I.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function gb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],k=b.nodeType,"string"!=typeof a||!a||1!==k&&9!==k&&11!==k)return d;if(!e&&p){if(11!==k&&(f=_.exec(a)))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return H.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName)return H.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=1!==k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+rb(o[l]);w=ab.test(a)&&pb(b.parentNode)||b,x=o.join(",")}if(x)try{return H.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function hb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ib(a){return a[u]=!0,a}function jb(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function kb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function lb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||C)-(~a.sourceIndex||C);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function nb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function ob(a){return ib(function(b){return b=+b,ib(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function pb(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=gb.support={},f=gb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=gb.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=g.documentElement,e=g.defaultView,e&&e!==e.top&&(e.addEventListener?e.addEventListener("unload",eb,!1):e.attachEvent&&e.attachEvent("onunload",eb)),p=!f(g),c.attributes=jb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=jb(function(a){return a.appendChild(g.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(g.getElementsByClassName),c.getById=jb(function(a){return o.appendChild(a).id=u,!g.getElementsByName||!g.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(g.querySelectorAll))&&(jb(function(a){o.appendChild(a).innerHTML="<a id='"+u+"'></a><select id='"+u+"-\f]' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+L+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+L+"*(?:value|"+K+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),jb(function(a){var b=g.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+L+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&jb(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",P)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===g||a.ownerDocument===v&&t(v,a)?-1:b===g||b.ownerDocument===v&&t(v,b)?1:k?J(k,a)-J(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===g?-1:b===g?1:e?-1:f?1:k?J(k,a)-J(k,b):0;if(e===f)return lb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?lb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},g):n},gb.matches=function(a,b){return gb(a,null,null,b)},gb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return gb(b,n,null,[a]).length>0},gb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},gb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&D.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},gb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=gb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=gb.selectors={cacheLength:50,createPseudo:ib,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||gb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&gb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+L+")"+a+"("+L+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=gb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(Q," ")+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||gb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ib(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=J(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ib(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?ib(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ib(function(a){return function(b){return gb(a,b).length>0}}),contains:ib(function(a){return a=a.replace(cb,db),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ib(function(a){return W.test(a||"")||gb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:ob(function(){return[0]}),last:ob(function(a,b){return[b-1]}),eq:ob(function(a,b,c){return[0>c?c+b:c]}),even:ob(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:ob(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:ob(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:ob(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=mb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=nb(b);function qb(){}qb.prototype=d.filters=d.pseudos,d.setFilters=new qb,g=gb.tokenize=function(a,b){var c,e,f,g,h,i,j,k=z[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=S.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=T.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(R," ")}),h=h.slice(c.length));for(g in d.filter)!(e=X[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?gb.error(a):z(a,i).slice(0)};function rb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function sb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function tb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function ub(a,b,c){for(var d=0,e=b.length;e>d;d++)gb(a,b[d],c);return c}function vb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function wb(a,b,c,d,e,f){return d&&!d[u]&&(d=wb(d)),e&&!e[u]&&(e=wb(e,f)),ib(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||ub(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:vb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=vb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?J(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=vb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):H.apply(g,r)})}function xb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=sb(function(a){return a===b},h,!0),l=sb(function(a){return J(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];f>i;i++)if(c=d.relative[a[i].type])m=[sb(tb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return wb(i>1&&tb(m),i>1&&rb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&xb(a.slice(i,e)),f>e&&xb(a=a.slice(e)),f>e&&rb(a))}m.push(c)}return tb(m)}function yb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=F.call(i));s=vb(s)}H.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&gb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?ib(f):f}return h=gb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=xb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,yb(e,d)),f.selector=a}return f},i=gb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&pb(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&rb(j),!a)return H.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&pb(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=jb(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),jb(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||kb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&jb(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||kb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),jb(function(a){return null==a.getAttribute("disabled")})||kb(K,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),gb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+K.uid++}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c) +},removeData:function(a,b){M.remove(a,b)},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=L.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var Q=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,R=["Top","Right","Bottom","Left"],S=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},T=/^(?:checkbox|radio)$/i;!function(){var a=l.createDocumentFragment(),b=a.appendChild(l.createElement("div")),c=l.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button;return null==a.pageX&&null!=b.clientX&&(c=a.target.ownerDocument||l,d=c.documentElement,e=c.body,a.pageX=b.clientX+(d&&d.scrollLeft||e&&e.scrollLeft||0)-(d&&d.clientLeft||e&&e.clientLeft||0),a.pageY=b.clientY+(d&&d.scrollTop||e&&e.scrollTop||0)-(d&&d.clientTop||e&&e.clientTop||0)),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=W.test(e)?this.mouseHooks:V.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=l),3===a.target.nodeType&&(a.target=a.target.parentNode),g.filter?g.filter(a,f):a},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==_()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===_()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&n.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?Z:$):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:$,isPropagationStopped:$,isImmediatePropagationStopped:$,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=Z,a&&a.preventDefault&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=Z,a&&a.stopPropagation&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=Z,a&&a.stopImmediatePropagation&&a.stopImmediatePropagation(),this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),k.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=L.access(d,b);e||d.addEventListener(a,c,!0),L.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=L.access(d,b)-1;e?L.access(d,b,e):(d.removeEventListener(a,c,!0),L.remove(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(g in a)this.on(g,b,c,a[g],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=$;else if(!d)return this;return 1===e&&(f=d,d=function(a){return n().off(a),f.apply(this,arguments)},d.guid=f.guid||(f.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=$),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});var ab=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,ib={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1></$2>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=qb[0].contentDocument,b.write(),b.close(),c=sb(a,b),qb.detach()),rb[a]=c),c}var ub=/^margin/,vb=new RegExp("^("+Q+")(?!px)[a-z%]+$","i"),wb=function(b){return b.ownerDocument.defaultView.opener?b.ownerDocument.defaultView.getComputedStyle(b,null):a.getComputedStyle(b,null)};function xb(a,b,c){var d,e,f,g,h=a.style;return c=c||wb(a),c&&(g=c.getPropertyValue(b)||c[b]),c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),vb.test(g)&&ub.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function yb(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d=l.documentElement,e=l.createElement("div"),f=l.createElement("div");if(f.style){f.style.backgroundClip="content-box",f.cloneNode(!0).style.backgroundClip="",k.clearCloneStyle="content-box"===f.style.backgroundClip,e.style.cssText="border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;position:absolute",e.appendChild(f);function g(){f.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute",f.innerHTML="",d.appendChild(e);var g=a.getComputedStyle(f,null);b="1%"!==g.top,c="4px"===g.width,d.removeChild(e)}a.getComputedStyle&&n.extend(k,{pixelPosition:function(){return g(),b},boxSizingReliable:function(){return null==c&&g(),c},reliableMarginRight:function(){var b,c=f.appendChild(l.createElement("div"));return c.style.cssText=f.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",c.style.marginRight=c.style.width="0",f.style.width="1px",d.appendChild(e),b=!parseFloat(a.getComputedStyle(c,null).marginRight),d.removeChild(e),f.removeChild(c),b}})}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var zb=/^(none|table(?!-c[ea]).+)/,Ab=new RegExp("^("+Q+")(.*)$","i"),Bb=new RegExp("^([+-])=("+Q+")","i"),Cb={position:"absolute",visibility:"hidden",display:"block"},Db={letterSpacing:"0",fontWeight:"400"},Eb=["Webkit","O","Moz","ms"];function Fb(a,b){if(b in a)return b;var c=b[0].toUpperCase()+b.slice(1),d=b,e=Eb.length;while(e--)if(b=Eb[e]+c,b in a)return b;return d}function Gb(a,b,c){var d=Ab.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Hb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+R[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+R[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+R[f]+"Width",!0,e))):(g+=n.css(a,"padding"+R[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+R[f]+"Width",!0,e)));return g}function Ib(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=wb(a),g="border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=xb(a,b,f),(0>e||null==e)&&(e=a.style[b]),vb.test(e))return e;d=g&&(k.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Hb(a,b,c||(g?"border":"content"),d,f)+"px"}function Jb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=L.get(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&S(d)&&(f[g]=L.access(d,"olddisplay",tb(d.nodeName)))):(e=S(d),"none"===c&&e||L.set(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=xb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;return b=n.cssProps[h]||(n.cssProps[h]=Fb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Bb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),k.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Fb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=xb(a,b,d)),"normal"===e&&b in Db&&(e=Db[b]),""===c||c?(f=parseFloat(e),c===!0||n.isNumeric(f)?f||0:e):e}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?zb.test(n.css(a,"display"))&&0===a.offsetWidth?n.swap(a,Cb,function(){return Ib(a,b,d)}):Ib(a,b,d):void 0},set:function(a,c,d){var e=d&&wb(a);return Gb(a,c,d?Hb(a,b,d,"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),n.cssHooks.marginRight=yb(k.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},xb,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+R[d]+b]=f[d]||f[d-2]||f[0];return e}},ub.test(a)||(n.cssHooks[a+b].set=Gb)}),n.fn.extend({css:function(a,b){return J(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=wb(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)},a,b,arguments.length>1)},show:function(){return Jb(this,!0)},hide:function(){return Jb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){S(this)?n(this).show():n(this).hide()})}});function Kb(a,b,c,d,e){return new Kb.prototype.init(a,b,c,d,e)}n.Tween=Kb,Kb.prototype={constructor:Kb,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=Kb.propHooks[this.prop];return a&&a.get?a.get(this):Kb.propHooks._default.get(this)},run:function(a){var b,c=Kb.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Kb.propHooks._default.set(this),this}},Kb.prototype.init.prototype=Kb.prototype,Kb.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},Kb.propHooks.scrollTop=Kb.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=Kb.prototype.init,n.fx.step={};var Lb,Mb,Nb=/^(?:toggle|show|hide)$/,Ob=new RegExp("^(?:([+-])=|)("+Q+")([a-z%]*)$","i"),Pb=/queueHooks$/,Qb=[Vb],Rb={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=Ob.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&Ob.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function Sb(){return setTimeout(function(){Lb=void 0}),Lb=n.now()}function Tb(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=R[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function Ub(a,b,c){for(var d,e=(Rb[b]||[]).concat(Rb["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function Vb(a,b,c){var d,e,f,g,h,i,j,k,l=this,m={},o=a.style,p=a.nodeType&&S(a),q=L.get(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,l.always(function(){l.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=n.css(a,"display"),k="none"===j?L.get(a,"olddisplay")||tb(a.nodeName):j,"inline"===k&&"none"===n.css(a,"float")&&(o.display="inline-block")),c.overflow&&(o.overflow="hidden",l.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],Nb.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(p?"hide":"show")){if("show"!==e||!q||void 0===q[d])continue;p=!0}m[d]=q&&q[d]||n.style(a,d)}else j=void 0;if(n.isEmptyObject(m))"inline"===("none"===j?tb(a.nodeName):j)&&(o.display=j);else{q?"hidden"in q&&(p=q.hidden):q=L.access(a,"fxshow",{}),f&&(q.hidden=!p),p?n(a).show():l.done(function(){n(a).hide()}),l.done(function(){var b;L.remove(a,"fxshow");for(b in m)n.style(a,b,m[b])});for(d in m)g=Ub(p?q[d]:0,d,l),d in q||(q[d]=g.start,p&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function Wb(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function Xb(a,b,c){var d,e,f=0,g=Qb.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=Lb||Sb(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:Lb||Sb(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Wb(k,j.opts.specialEasing);g>f;f++)if(d=Qb[f].call(j,a,k,j.opts))return d;return n.map(k,Ub,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(Xb,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],Rb[c]=Rb[c]||[],Rb[c].unshift(b)},prefilter:function(a,b){b?Qb.unshift(a):Qb.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(S).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=Xb(this,n.extend({},a),f);(e||L.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=L.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&Pb.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=L.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(Tb(b,!0),a,d,e)}}),n.each({slideDown:Tb("show"),slideUp:Tb("hide"),slideToggle:Tb("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=0,c=n.timers;for(Lb=n.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||n.fx.stop(),Lb=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){Mb||(Mb=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(Mb),Mb=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a=l.createElement("input"),b=l.createElement("select"),c=b.appendChild(l.createElement("option"));a.type="checkbox",k.checkOn=""!==a.value,k.optSelected=c.selected,b.disabled=!0,k.optDisabled=!c.disabled,a=l.createElement("input"),a.value="t",a.type="radio",k.radioValue="t"===a.value}();var Yb,Zb,$b=n.expr.attrHandle;n.fn.extend({attr:function(a,b){return J(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===U?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?Zb:Yb)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b)) +},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(E);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)&&(a[d]=!1),a.removeAttribute(c)},attrHooks:{type:{set:function(a,b){if(!k.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),Zb={set:function(a,b,c){return b===!1?n.removeAttr(a,c):a.setAttribute(c,c),c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=$b[b]||n.find.attr;$b[b]=function(a,b,d){var e,f;return d||(f=$b[b],$b[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,$b[b]=f),e}});var _b=/^(?:input|select|textarea|button)$/i;n.fn.extend({prop:function(a,b){return J(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[n.propFix[a]||a]})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){return a.hasAttribute("tabindex")||_b.test(a.nodeName)||a.href?a.tabIndex:-1}}}}),k.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this});var ac=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h="string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0===arguments.length||"string"==typeof a&&a,i=0,j=this.length;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(h)for(b=(a||"").match(E)||[];j>i;i++)if(c=this[i],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(ac," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(E)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===U||"boolean"===c)&&(this.className&&L.set(this,"__className__",this.className),this.className=this.className||a===!1?"":L.get(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(ac," ").indexOf(b)>=0)return!0;return!1}});var bc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(bc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.trim(n.text(a))}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(k.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)d=e[g],(d.selected=n.inArray(d.value,f)>=0)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},k.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var cc=n.now(),dc=/\?/;n.parseJSON=function(a){return JSON.parse(a+"")},n.parseXML=function(a){var b,c;if(!a||"string"!=typeof a)return null;try{c=new DOMParser,b=c.parseFromString(a,"text/xml")}catch(d){b=void 0}return(!b||b.getElementsByTagName("parsererror").length)&&n.error("Invalid XML: "+a),b};var ec=/#.*$/,fc=/([?&])_=[^&]*/,gc=/^(.*?):[ \t]*([^\r\n]*)$/gm,hc=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ic=/^(?:GET|HEAD)$/,jc=/^\/\//,kc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,lc={},mc={},nc="*/".concat("*"),oc=a.location.href,pc=kc.exec(oc.toLowerCase())||[];function qc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(E)||[];if(n.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function rc(a,b,c,d){var e={},f=a===mc;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function sc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&n.extend(!0,a,d),a}function tc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function uc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:oc,type:"GET",isLocal:hc.test(pc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":nc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?sc(sc(a,n.ajaxSettings),b):sc(n.ajaxSettings,a)},ajaxPrefilter:qc(lc),ajaxTransport:qc(mc),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!f){f={};while(b=gc.exec(e))f[b[1].toLowerCase()]=b[2]}b=f[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?e:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return c&&c.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||oc)+"").replace(ec,"").replace(jc,pc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(E)||[""],null==k.crossDomain&&(h=kc.exec(k.url.toLowerCase()),k.crossDomain=!(!h||h[1]===pc[1]&&h[2]===pc[2]&&(h[3]||("http:"===h[1]?"80":"443"))===(pc[3]||("http:"===pc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),rc(lc,k,b,v),2===t)return v;i=n.event&&k.global,i&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!ic.test(k.type),d=k.url,k.hasContent||(k.data&&(d=k.url+=(dc.test(d)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=fc.test(d)?d.replace(fc,"$1_="+cc++):d+(dc.test(d)?"&":"?")+"_="+cc++)),k.ifModified&&(n.lastModified[d]&&v.setRequestHeader("If-Modified-Since",n.lastModified[d]),n.etag[d]&&v.setRequestHeader("If-None-Match",n.etag[d])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+nc+"; q=0.01":""):k.accepts["*"]);for(j in k.headers)v.setRequestHeader(j,k.headers[j]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(j in{success:1,error:1,complete:1})v[j](k[j]);if(c=rc(mc,k,b,v)){v.readyState=1,i&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,c.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,f,h){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),c=void 0,e=h||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,f&&(u=tc(k,v,f)),u=uc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[d]=w),w=v.getResponseHeader("etag"),w&&(n.etag[d]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,i&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),i&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){var b;return n.isFunction(a)?this.each(function(b){n(this).wrapAll(a.call(this,b))}):(this[0]&&(b=n(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this)},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var vc=/%20/g,wc=/\[\]$/,xc=/\r?\n/g,yc=/^(?:submit|button|image|reset|file)$/i,zc=/^(?:input|select|textarea|keygen)/i;function Ac(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||wc.test(a)?d(a,e):Ac(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Ac(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Ac(c,a[c],b,e);return d.join("&").replace(vc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&zc.test(this.nodeName)&&!yc.test(a)&&(this.checked||!T.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(xc,"\r\n")}}):{name:b.name,value:c.replace(xc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=function(){try{return new XMLHttpRequest}catch(a){}};var Bc=0,Cc={},Dc={0:200,1223:204},Ec=n.ajaxSettings.xhr();a.attachEvent&&a.attachEvent("onunload",function(){for(var a in Cc)Cc[a]()}),k.cors=!!Ec&&"withCredentials"in Ec,k.ajax=Ec=!!Ec,n.ajaxTransport(function(a){var b;return k.cors||Ec&&!a.crossDomain?{send:function(c,d){var e,f=a.xhr(),g=++Bc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)f.setRequestHeader(e,c[e]);b=function(a){return function(){b&&(delete Cc[g],b=f.onload=f.onerror=null,"abort"===a?f.abort():"error"===a?d(f.status,f.statusText):d(Dc[f.status]||f.status,f.statusText,"string"==typeof f.responseText?{text:f.responseText}:void 0,f.getAllResponseHeaders()))}},f.onload=b(),f.onerror=b("error"),b=Cc[g]=b("abort");try{f.send(a.hasContent&&a.data||null)}catch(h){if(b)throw h}},abort:function(){b&&b()}}:void 0}),n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=n("<script>").prop({async:!0,charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),l.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Fc=[],Gc=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Fc.pop()||n.expando+"_"+cc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Gc.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Gc.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Gc,"$1"+e):b.jsonp!==!1&&(b.url+=(dc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Fc.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||l;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var Hc=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&Hc)return Hc.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=n.trim(a.slice(h)),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&n.ajax({url:a,type:e,dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,f||[a.responseText,b,a])}),this},n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var Ic=a.document.documentElement;function Jc(a){return n.isWindow(a)?a:9===a.nodeType&&a.defaultView}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d=this[0],e={top:0,left:0},f=d&&d.ownerDocument;if(f)return b=f.documentElement,n.contains(b,d)?(typeof d.getBoundingClientRect!==U&&(e=d.getBoundingClientRect()),c=Jc(f),{top:e.top+c.pageYOffset-b.clientTop,left:e.left+c.pageXOffset-b.clientLeft}):e},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===n.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(d=a.offset()),d.top+=n.css(a[0],"borderTopWidth",!0),d.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-d.top-n.css(c,"marginTop",!0),left:b.left-d.left-n.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||Ic;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||Ic})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(b,c){var d="pageYOffset"===c;n.fn[b]=function(e){return J(this,function(b,e,f){var g=Jc(b);return void 0===f?g?g[c]:b[e]:void(g?g.scrollTo(d?a.pageXOffset:f,d?f:a.pageYOffset):b[e]=f)},b,e,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=yb(k.pixelPosition,function(a,c){return c?(c=xb(a,b),vb.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return J(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var Kc=a.jQuery,Lc=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=Lc),b&&a.jQuery===n&&(a.jQuery=Kc),n},typeof b===U&&(a.jQuery=a.$=n),n}); diff --git a/frontend/imlandscape/js/keypress.js b/frontend/imlandscape/js/keypress.js new file mode 100644 index 0000000..3a6b053 --- /dev/null +++ b/frontend/imlandscape/js/keypress.js @@ -0,0 +1,1132 @@ +// Generated by CoffeeScript 1.8.0 + +/* +Copyright 2014 David Mauro + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +Keypress is a robust keyboard input capturing Javascript utility +focused on input for games. + +version 2.1.0 + */ + + +/* +Combo options available and their defaults: + keys : [] - An array of the keys pressed together to activate combo. + count : 0 - The number of times a counting combo has been pressed. Reset on release. + is_unordered : false - Unless this is set to true, the keys can be pressed down in any order. + is_counting : false - Makes this a counting combo (see documentation). + is_exclusive : false - This combo will replace other exclusive combos when true. + is_solitary : false - This combo will only fire if ONLY it's keys are pressed down. + is_sequence : false - Rather than a key combo, this is an ordered key sequence. + prevent_default : false - Prevent default behavior for all component key keypresses. + prevent_repeat : false - Prevent the combo from repeating when keydown is held. + on_keydown : null - A function that is called when the combo is pressed. + on_keyup : null - A function that is called when the combo is released. + on_release : null - A function that is called when all keys in the combo are released. + this : undefined - Defines the scope for your callback functions. + */ + +(function() { + var Combo, keypress, _change_keycodes_by_browser, _compare_arrays, _compare_arrays_sorted, _convert_key_to_readable, _convert_to_shifted_key, _decide_meta_key, _factory_defaults, _filter_array, _index_of_in_array, _is_array_in_array, _is_array_in_array_sorted, _key_is_valid, _keycode_alternate_names, _keycode_dictionary, _keycode_shifted_keys, _log_error, _metakey, _modifier_event_mapping, _modifier_keys, _validate_combo, + __hasProp = {}.hasOwnProperty, + __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; + + _factory_defaults = { + is_unordered: false, + is_counting: false, + is_exclusive: false, + is_solitary: false, + prevent_default: false, + prevent_repeat: false + }; + + _modifier_keys = ["meta", "alt", "option", "ctrl", "shift", "cmd"]; + + _metakey = "ctrl"; + + keypress = {}; + + keypress.debug = false; + + Combo = (function() { + function Combo(dictionary) { + var property, value; + for (property in dictionary) { + if (!__hasProp.call(dictionary, property)) continue; + value = dictionary[property]; + if (value !== false) { + this[property] = value; + } + } + this.keys = this.keys || []; + this.count = this.count || 0; + } + + Combo.prototype.allows_key_repeat = function() { + return !this.prevent_repeat && typeof this.on_keydown === "function"; + }; + + Combo.prototype.reset = function() { + this.count = 0; + return this.keyup_fired = null; + }; + + return Combo; + + })(); + + keypress.Listener = (function() { + function Listener(element, defaults) { + var attach_handler, property, value; + this.should_suppress_event_defaults = false; + this.should_force_event_defaults = false; + this.sequence_delay = 800; + this._registered_combos = []; + this._keys_down = []; + this._active_combos = []; + this._sequence = []; + this._sequence_timer = null; + this._prevent_capture = false; + this._defaults = defaults || {}; + for (property in _factory_defaults) { + if (!__hasProp.call(_factory_defaults, property)) continue; + value = _factory_defaults[property]; + this._defaults[property] = this._defaults[property] || value; + } + this.element = element || document.body; + attach_handler = function(target, event, handler) { + if (target.addEventListener) { + target.addEventListener(event, handler); + } else if (target.attachEvent) { + target.attachEvent("on" + event, handler); + } + return handler; + }; + this.keydown_event = attach_handler(this.element, "keydown", (function(_this) { + return function(e) { + e = e || window.event; + _this._receive_input(e, true); + return _this._bug_catcher(e); + }; + })(this)); + this.keyup_event = attach_handler(this.element, "keyup", (function(_this) { + return function(e) { + e = e || window.event; + return _this._receive_input(e, false); + }; + })(this)); + this.blur_event = attach_handler(window, "blur", (function(_this) { + return function() { + var key, _i, _len, _ref; + _ref = _this._keys_down; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + key = _ref[_i]; + _this._key_up(key, {}); + } + return _this._keys_down = []; + }; + })(this)); + } + + Listener.prototype.destroy = function() { + var remove_handler; + remove_handler = function(target, event, handler) { + if (target.removeEventListener != null) { + return target.removeEventListener(event, handler); + } else if (target.removeEvent != null) { + return target.removeEvent("on" + event, handler); + } + }; + remove_handler(this.element, "keydown", this.keydown_event); + remove_handler(this.element, "keyup", this.keyup_event); + return remove_handler(window, "blur", this.blur_event); + }; + + Listener.prototype._bug_catcher = function(e) { + var _ref; + if (_metakey === "cmd" && __indexOf.call(this._keys_down, "cmd") >= 0 && ((_ref = _convert_key_to_readable(e.keyCode)) !== "cmd" && _ref !== "shift" && _ref !== "alt" && _ref !== "caps" && _ref !== "tab")) { + return this._receive_input(e, false); + } + }; + + Listener.prototype._cmd_bug_check = function(combo_keys) { + if (_metakey === "cmd" && __indexOf.call(this._keys_down, "cmd") >= 0 && __indexOf.call(combo_keys, "cmd") < 0) { + return false; + } + return true; + }; + + Listener.prototype._prevent_default = function(e, should_prevent) { + if ((should_prevent || this.should_suppress_event_defaults) && !this.should_force_event_defaults) { + if (e.preventDefault) { + e.preventDefault(); + } else { + e.returnValue = false; + } + if (e.stopPropagation) { + return e.stopPropagation(); + } + } + }; + + Listener.prototype._get_active_combos = function(key) { + var active_combos, keys_down; + active_combos = []; + keys_down = _filter_array(this._keys_down, function(down_key) { + return down_key !== key; + }); + keys_down.push(key); + this._match_combo_arrays(keys_down, (function(_this) { + return function(match) { + if (_this._cmd_bug_check(match.keys)) { + return active_combos.push(match); + } + }; + })(this)); + this._fuzzy_match_combo_arrays(keys_down, (function(_this) { + return function(match) { + if (__indexOf.call(active_combos, match) >= 0) { + return; + } + if (!(match.is_solitary || !_this._cmd_bug_check(match.keys))) { + return active_combos.push(match); + } + }; + })(this)); + return active_combos; + }; + + Listener.prototype._get_potential_combos = function(key) { + var combo, potentials, _i, _len, _ref; + potentials = []; + _ref = this._registered_combos; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + combo = _ref[_i]; + if (combo.is_sequence) { + continue; + } + if (__indexOf.call(combo.keys, key) >= 0 && this._cmd_bug_check(combo.keys)) { + potentials.push(combo); + } + } + return potentials; + }; + + Listener.prototype._add_to_active_combos = function(combo) { + var active_combo, active_key, active_keys, already_replaced, combo_key, i, should_prepend, should_replace, _i, _j, _k, _len, _len1, _ref, _ref1; + should_replace = false; + should_prepend = true; + already_replaced = false; + if (__indexOf.call(this._active_combos, combo) >= 0) { + return true; + } else if (this._active_combos.length) { + for (i = _i = 0, _ref = this._active_combos.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + active_combo = this._active_combos[i]; + if (!(active_combo && active_combo.is_exclusive && combo.is_exclusive)) { + continue; + } + active_keys = active_combo.keys; + if (!should_replace) { + for (_j = 0, _len = active_keys.length; _j < _len; _j++) { + active_key = active_keys[_j]; + should_replace = true; + if (__indexOf.call(combo.keys, active_key) < 0) { + should_replace = false; + break; + } + } + } + if (should_prepend && !should_replace) { + _ref1 = combo.keys; + for (_k = 0, _len1 = _ref1.length; _k < _len1; _k++) { + combo_key = _ref1[_k]; + should_prepend = false; + if (__indexOf.call(active_keys, combo_key) < 0) { + should_prepend = true; + break; + } + } + } + if (should_replace) { + if (already_replaced) { + active_combo = this._active_combos.splice(i, 1)[0]; + if (active_combo != null) { + active_combo.reset(); + } + } else { + active_combo = this._active_combos.splice(i, 1, combo)[0]; + if (active_combo != null) { + active_combo.reset(); + } + already_replaced = true; + } + should_prepend = false; + } + } + } + if (should_prepend) { + this._active_combos.unshift(combo); + } + return should_replace || should_prepend; + }; + + Listener.prototype._remove_from_active_combos = function(combo) { + var active_combo, i, _i, _ref; + for (i = _i = 0, _ref = this._active_combos.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + active_combo = this._active_combos[i]; + if (active_combo === combo) { + combo = this._active_combos.splice(i, 1)[0]; + combo.reset(); + break; + } + } + }; + + Listener.prototype._get_possible_sequences = function() { + var combo, i, j, match, matches, sequence, _i, _j, _k, _len, _ref, _ref1, _ref2; + matches = []; + _ref = this._registered_combos; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + combo = _ref[_i]; + for (j = _j = 1, _ref1 = this._sequence.length; 1 <= _ref1 ? _j <= _ref1 : _j >= _ref1; j = 1 <= _ref1 ? ++_j : --_j) { + sequence = this._sequence.slice(-j); + if (!combo.is_sequence) { + continue; + } + if (__indexOf.call(combo.keys, "shift") < 0) { + sequence = _filter_array(sequence, function(key) { + return key !== "shift"; + }); + if (!sequence.length) { + continue; + } + } + for (i = _k = 0, _ref2 = sequence.length; 0 <= _ref2 ? _k < _ref2 : _k > _ref2; i = 0 <= _ref2 ? ++_k : --_k) { + if (combo.keys[i] === sequence[i]) { + match = true; + } else { + match = false; + break; + } + } + if (match) { + matches.push(combo); + } + } + } + return matches; + }; + + Listener.prototype._add_key_to_sequence = function(key, e) { + var combo, sequence_combos, _i, _len; + this._sequence.push(key); + sequence_combos = this._get_possible_sequences(); + if (sequence_combos.length) { + for (_i = 0, _len = sequence_combos.length; _i < _len; _i++) { + combo = sequence_combos[_i]; + this._prevent_default(e, combo.prevent_default); + } + if (this._sequence_timer) { + clearTimeout(this._sequence_timer); + } + if (this.sequence_delay > -1) { + this._sequence_timer = setTimeout(function() { + return this._sequence = []; + }, this.sequence_delay); + } + } else { + this._sequence = []; + } + }; + + Listener.prototype._get_sequence = function(key) { + var combo, i, j, match, seq_key, sequence, _i, _j, _k, _len, _ref, _ref1, _ref2; + _ref = this._registered_combos; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + combo = _ref[_i]; + if (!combo.is_sequence) { + continue; + } + for (j = _j = 1, _ref1 = this._sequence.length; 1 <= _ref1 ? _j <= _ref1 : _j >= _ref1; j = 1 <= _ref1 ? ++_j : --_j) { + sequence = (_filter_array(this._sequence, function(seq_key) { + if (__indexOf.call(combo.keys, "shift") >= 0) { + return true; + } + return seq_key !== "shift"; + })).slice(-j); + if (combo.keys.length !== sequence.length) { + continue; + } + for (i = _k = 0, _ref2 = sequence.length; 0 <= _ref2 ? _k < _ref2 : _k > _ref2; i = 0 <= _ref2 ? ++_k : --_k) { + seq_key = sequence[i]; + if (__indexOf.call(combo.keys, "shift") < 0) { + if (seq_key === "shift") { + continue; + } + } + if (key === "shift" && __indexOf.call(combo.keys, "shift") < 0) { + continue; + } + if (combo.keys[i] === seq_key) { + match = true; + } else { + match = false; + break; + } + } + } + if (match) { + return combo; + } + } + return false; + }; + + Listener.prototype._receive_input = function(e, is_keydown) { + var key; + if (this._prevent_capture) { + if (this._keys_down.length) { + this._keys_down = []; + } + return; + } + key = _convert_key_to_readable(e.keyCode); + if (!is_keydown && !this._keys_down.length && (key === "alt" || key === _metakey)) { + return; + } + if (!key) { + return; + } + if (is_keydown) { + return this._key_down(key, e); + } else { + return this._key_up(key, e); + } + }; + + Listener.prototype._fire = function(event, combo, key_event, is_autorepeat) { + if (typeof combo["on_" + event] === "function") { + this._prevent_default(key_event, combo["on_" + event].call(combo["this"], key_event, combo.count, is_autorepeat) !== true); + } + if (event === "release") { + combo.count = 0; + } + if (event === "keyup") { + return combo.keyup_fired = true; + } + }; + + Listener.prototype._match_combo_arrays = function(potential_match, match_handler) { + var source_combo, _i, _len, _ref; + _ref = this._registered_combos; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + source_combo = _ref[_i]; + if ((!source_combo.is_unordered && _compare_arrays_sorted(potential_match, source_combo.keys)) || (source_combo.is_unordered && _compare_arrays(potential_match, source_combo.keys))) { + match_handler(source_combo); + } + } + }; + + Listener.prototype._fuzzy_match_combo_arrays = function(potential_match, match_handler) { + var source_combo, _i, _len, _ref; + _ref = this._registered_combos; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + source_combo = _ref[_i]; + if ((!source_combo.is_unordered && _is_array_in_array_sorted(source_combo.keys, potential_match)) || (source_combo.is_unordered && _is_array_in_array(source_combo.keys, potential_match))) { + match_handler(source_combo); + } + } + }; + + Listener.prototype._keys_remain = function(combo) { + var key, keys_remain, _i, _len, _ref; + _ref = combo.keys; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + key = _ref[_i]; + if (__indexOf.call(this._keys_down, key) >= 0) { + keys_remain = true; + break; + } + } + return keys_remain; + }; + + Listener.prototype._key_down = function(key, e) { + var combo, combos, event_mod, i, mod, potential, potential_combos, sequence_combo, shifted_key, _i, _j, _k, _len, _len1, _ref; + shifted_key = _convert_to_shifted_key(key, e); + if (shifted_key) { + key = shifted_key; + } + this._add_key_to_sequence(key, e); + sequence_combo = this._get_sequence(key); + if (sequence_combo) { + this._fire("keydown", sequence_combo, e); + } + for (mod in _modifier_event_mapping) { + event_mod = _modifier_event_mapping[mod]; + if (!e[event_mod]) { + continue; + } + if (mod === key || __indexOf.call(this._keys_down, mod) >= 0) { + continue; + } + this._keys_down.push(mod); + } + for (mod in _modifier_event_mapping) { + event_mod = _modifier_event_mapping[mod]; + if (mod === key) { + continue; + } + if (__indexOf.call(this._keys_down, mod) >= 0 && !e[event_mod]) { + if (mod === "cmd" && _metakey !== "cmd") { + continue; + } + for (i = _i = 0, _ref = this._keys_down.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + if (this._keys_down[i] === mod) { + this._keys_down.splice(i, 1); + } + } + } + } + combos = this._get_active_combos(key); + potential_combos = this._get_potential_combos(key); + for (_j = 0, _len = combos.length; _j < _len; _j++) { + combo = combos[_j]; + this._handle_combo_down(combo, potential_combos, key, e); + } + if (potential_combos.length) { + for (_k = 0, _len1 = potential_combos.length; _k < _len1; _k++) { + potential = potential_combos[_k]; + this._prevent_default(e, potential.prevent_default); + } + } + if (__indexOf.call(this._keys_down, key) < 0) { + this._keys_down.push(key); + } + }; + + Listener.prototype._handle_combo_down = function(combo, potential_combos, key, e) { + var is_autorepeat, is_other_exclusive, potential_combo, result, _i, _len; + if (__indexOf.call(combo.keys, key) < 0) { + return false; + } + this._prevent_default(e, combo && combo.prevent_default); + is_autorepeat = false; + if (__indexOf.call(this._keys_down, key) >= 0) { + is_autorepeat = true; + if (!combo.allows_key_repeat()) { + return false; + } + } + result = this._add_to_active_combos(combo, key); + combo.keyup_fired = false; + is_other_exclusive = false; + if (combo.is_exclusive) { + for (_i = 0, _len = potential_combos.length; _i < _len; _i++) { + potential_combo = potential_combos[_i]; + if (potential_combo.is_exclusive && potential_combo.keys.length > combo.keys.length) { + is_other_exclusive = true; + break; + } + } + } + if (!is_other_exclusive) { + if (combo.is_counting && typeof combo.on_keydown === "function") { + combo.count += 1; + } + if (result) { + return this._fire("keydown", combo, e, is_autorepeat); + } + } + }; + + Listener.prototype._key_up = function(key, e) { + var active_combo, active_combos_length, combo, combos, i, sequence_combo, shifted_key, unshifted_key, _i, _j, _k, _l, _len, _len1, _len2, _ref, _ref1, _ref2, _ref3; + unshifted_key = key; + shifted_key = _convert_to_shifted_key(key, e); + if (shifted_key) { + key = shifted_key; + } + shifted_key = _keycode_shifted_keys[unshifted_key]; + if (e.shiftKey) { + if (!(shifted_key && __indexOf.call(this._keys_down, shifted_key) >= 0)) { + key = unshifted_key; + } + } else { + if (!(unshifted_key && __indexOf.call(this._keys_down, unshifted_key) >= 0)) { + key = shifted_key; + } + } + sequence_combo = this._get_sequence(key); + if (sequence_combo) { + this._fire("keyup", sequence_combo, e); + } + if (__indexOf.call(this._keys_down, key) < 0) { + return false; + } + for (i = _i = 0, _ref = this._keys_down.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + if ((_ref1 = this._keys_down[i]) === key || _ref1 === shifted_key || _ref1 === unshifted_key) { + this._keys_down.splice(i, 1); + break; + } + } + active_combos_length = this._active_combos.length; + combos = []; + _ref2 = this._active_combos; + for (_j = 0, _len = _ref2.length; _j < _len; _j++) { + active_combo = _ref2[_j]; + if (__indexOf.call(active_combo.keys, key) >= 0) { + combos.push(active_combo); + } + } + for (_k = 0, _len1 = combos.length; _k < _len1; _k++) { + combo = combos[_k]; + this._handle_combo_up(combo, e, key); + } + if (active_combos_length > 1) { + _ref3 = this._active_combos; + for (_l = 0, _len2 = _ref3.length; _l < _len2; _l++) { + active_combo = _ref3[_l]; + if (active_combo === void 0 || __indexOf.call(combos, active_combo) >= 0) { + continue; + } + if (!this._keys_remain(active_combo)) { + this._remove_from_active_combos(active_combo); + } + } + } + }; + + Listener.prototype._handle_combo_up = function(combo, e, key) { + var keys_down, keys_remaining; + this._prevent_default(e, combo && combo.prevent_default); + keys_remaining = this._keys_remain(combo); + if (!combo.keyup_fired) { + keys_down = this._keys_down.slice(); + keys_down.push(key); + if (!combo.is_solitary || _compare_arrays(keys_down, combo.keys)) { + this._fire("keyup", combo, e); + if (combo.is_counting && typeof combo.on_keyup === "function" && typeof combo.on_keydown !== "function") { + combo.count += 1; + } + } + } + if (!keys_remaining) { + this._fire("release", combo, e); + this._remove_from_active_combos(combo); + } + }; + + Listener.prototype.simple_combo = function(keys, callback) { + return this.register_combo({ + keys: keys, + on_keydown: callback + }); + }; + + Listener.prototype.counting_combo = function(keys, count_callback) { + return this.register_combo({ + keys: keys, + is_counting: true, + is_unordered: false, + on_keydown: count_callback + }); + }; + + Listener.prototype.sequence_combo = function(keys, callback) { + return this.register_combo({ + keys: keys, + on_keydown: callback, + is_sequence: true + }); + }; + + Listener.prototype.register_combo = function(combo_dictionary) { + var combo, property, value, _ref; + if (typeof combo_dictionary["keys"] === "string") { + combo_dictionary["keys"] = combo_dictionary["keys"].split(" "); + } + _ref = this._defaults; + for (property in _ref) { + if (!__hasProp.call(_ref, property)) continue; + value = _ref[property]; + if (combo_dictionary[property] === void 0) { + combo_dictionary[property] = value; + } + } + combo = new Combo(combo_dictionary); + if (_validate_combo(combo)) { + this._registered_combos.push(combo); + return combo; + } + }; + + Listener.prototype.register_many = function(combo_array) { + var combo, _i, _len, _results; + _results = []; + for (_i = 0, _len = combo_array.length; _i < _len; _i++) { + combo = combo_array[_i]; + _results.push(this.register_combo(combo)); + } + return _results; + }; + + Listener.prototype.unregister_combo = function(keys_or_combo) { + var combo, unregister_combo, _i, _len, _ref, _results; + if (!keys_or_combo) { + return false; + } + unregister_combo = (function(_this) { + return function(combo) { + var i, _i, _ref, _results; + _results = []; + for (i = _i = 0, _ref = _this._registered_combos.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + if (combo === _this._registered_combos[i]) { + _this._registered_combos.splice(i, 1); + break; + } else { + _results.push(void 0); + } + } + return _results; + }; + })(this); + if (keys_or_combo instanceof Combo) { + return unregister_combo(keys_or_combo); + } else { + if (typeof keys_or_combo === "string") { + keys_or_combo = keys_or_combo.split(" "); + } + _ref = this._registered_combos; + _results = []; + for (_i = 0, _len = _ref.length; _i < _len; _i++) { + combo = _ref[_i]; + if (combo == null) { + continue; + } + if ((combo.is_unordered && _compare_arrays(keys_or_combo, combo.keys)) || (!combo.is_unordered && _compare_arrays_sorted(keys_or_combo, combo.keys))) { + _results.push(unregister_combo(combo)); + } else { + _results.push(void 0); + } + } + return _results; + } + }; + + Listener.prototype.unregister_many = function(combo_array) { + var combo, _i, _len, _results; + _results = []; + for (_i = 0, _len = combo_array.length; _i < _len; _i++) { + combo = combo_array[_i]; + _results.push(this.unregister_combo(combo)); + } + return _results; + }; + + Listener.prototype.get_registered_combos = function() { + return this._registered_combos; + }; + + Listener.prototype.reset = function() { + return this._registered_combos = []; + }; + + Listener.prototype.listen = function() { + return this._prevent_capture = false; + }; + + Listener.prototype.stop_listening = function() { + return this._prevent_capture = true; + }; + + Listener.prototype.get_meta_key = function() { + return _metakey; + }; + + return Listener; + + })(); + + _decide_meta_key = function() { + if (navigator.userAgent.indexOf("Mac OS X") !== -1) { + _metakey = "cmd"; + } + }; + + _change_keycodes_by_browser = function() { + if (navigator.userAgent.indexOf("Opera") !== -1) { + _keycode_dictionary["17"] = "cmd"; + } + }; + + _convert_key_to_readable = function(k) { + return _keycode_dictionary[k]; + }; + + _filter_array = function(array, callback) { + var element; + if (array.filter) { + return array.filter(callback); + } else { + return (function() { + var _i, _len, _results; + _results = []; + for (_i = 0, _len = array.length; _i < _len; _i++) { + element = array[_i]; + if (callback(element)) { + _results.push(element); + } + } + return _results; + })(); + } + }; + + _compare_arrays = function(a1, a2) { + var item, _i, _len; + if (a1.length !== a2.length) { + return false; + } + for (_i = 0, _len = a1.length; _i < _len; _i++) { + item = a1[_i]; + if (__indexOf.call(a2, item) >= 0) { + continue; + } + return false; + } + return true; + }; + + _compare_arrays_sorted = function(a1, a2) { + var i, _i, _ref; + if (a1.length !== a2.length) { + return false; + } + for (i = _i = 0, _ref = a1.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + if (a1[i] !== a2[i]) { + return false; + } + } + return true; + }; + + _is_array_in_array = function(a1, a2) { + var item, _i, _len; + for (_i = 0, _len = a1.length; _i < _len; _i++) { + item = a1[_i]; + if (__indexOf.call(a2, item) < 0) { + return false; + } + } + return true; + }; + + _index_of_in_array = Array.prototype.indexOf || function(a, item) { + var i, _i, _ref; + for (i = _i = 0, _ref = a.length; 0 <= _ref ? _i <= _ref : _i >= _ref; i = 0 <= _ref ? ++_i : --_i) { + if (a[i] === item) { + return i; + } + } + return -1; + }; + + _is_array_in_array_sorted = function(a1, a2) { + var index, item, prev, _i, _len; + prev = 0; + for (_i = 0, _len = a1.length; _i < _len; _i++) { + item = a1[_i]; + index = _index_of_in_array.call(a2, item); + if (index >= prev) { + prev = index; + } else { + return false; + } + } + return true; + }; + + _log_error = function() { + if (keypress.debug) { + return console.log.apply(console, arguments); + } + }; + + _key_is_valid = function(key) { + var valid, valid_key, _; + valid = false; + for (_ in _keycode_dictionary) { + valid_key = _keycode_dictionary[_]; + if (key === valid_key) { + valid = true; + break; + } + } + if (!valid) { + for (_ in _keycode_shifted_keys) { + valid_key = _keycode_shifted_keys[_]; + if (key === valid_key) { + valid = true; + break; + } + } + } + return valid; + }; + + _validate_combo = function(combo) { + var alt_name, i, key, mod_key, non_modifier_keys, property, validated, value, _i, _j, _k, _len, _len1, _ref, _ref1; + validated = true; + if (!combo.keys.length) { + _log_error("You're trying to bind a combo with no keys:", combo); + } + for (i = _i = 0, _ref = combo.keys.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) { + key = combo.keys[i]; + alt_name = _keycode_alternate_names[key]; + if (alt_name) { + key = combo.keys[i] = alt_name; + } + if (key === "meta") { + combo.keys.splice(i, 1, _metakey); + } + if (key === "cmd") { + _log_error("Warning: use the \"meta\" key rather than \"cmd\" for Windows compatibility"); + } + } + _ref1 = combo.keys; + for (_j = 0, _len = _ref1.length; _j < _len; _j++) { + key = _ref1[_j]; + if (!_key_is_valid(key)) { + _log_error("Do not recognize the key \"" + key + "\""); + validated = false; + } + } + if (__indexOf.call(combo.keys, "meta") >= 0 || __indexOf.call(combo.keys, "cmd") >= 0) { + non_modifier_keys = combo.keys.slice(); + for (_k = 0, _len1 = _modifier_keys.length; _k < _len1; _k++) { + mod_key = _modifier_keys[_k]; + if ((i = _index_of_in_array.call(non_modifier_keys, mod_key)) > -1) { + non_modifier_keys.splice(i, 1); + } + } + if (non_modifier_keys.length > 1) { + _log_error("META and CMD key combos cannot have more than 1 non-modifier keys", combo, non_modifier_keys); + validated = false; + } + } + for (property in combo) { + value = combo[property]; + if (_factory_defaults[property] === "undefined") { + _log_error("The property " + property + " is not a valid combo property. Your combo has still been registered."); + } + } + return validated; + }; + + _convert_to_shifted_key = function(key, e) { + var k; + if (!e.shiftKey) { + return false; + } + k = _keycode_shifted_keys[key]; + if (k != null) { + return k; + } + return false; + }; + + _modifier_event_mapping = { + "cmd": "metaKey", + "ctrl": "ctrlKey", + "shift": "shiftKey", + "alt": "altKey" + }; + + _keycode_alternate_names = { + "escape": "esc", + "control": "ctrl", + "command": "cmd", + "break": "pause", + "windows": "cmd", + "option": "alt", + "caps_lock": "caps", + "apostrophe": "\'", + "semicolon": ";", + "tilde": "~", + "accent": "`", + "scroll_lock": "scroll", + "num_lock": "num" + }; + + _keycode_shifted_keys = { + "/": "?", + ".": ">", + ",": "<", + "\'": "\"", + ";": ":", + "[": "{", + "]": "}", + "\\": "|", + "`": "~", + "=": "+", + "-": "_", + "1": "!", + "2": "@", + "3": "#", + "4": "$", + "5": "%", + "6": "^", + "7": "&", + "8": "*", + "9": "(", + "0": ")" + }; + + _keycode_dictionary = { + 0: "\\", + 8: "backspace", + 9: "tab", + 12: "num", + 13: "enter", + 16: "shift", + 17: "ctrl", + 18: "alt", + 19: "pause", + 20: "caps", + 27: "esc", + 32: "space", + 33: "pageup", + 34: "pagedown", + 35: "end", + 36: "home", + 37: "left", + 38: "up", + 39: "right", + 40: "down", + 44: "print", + 45: "insert", + 46: "delete", + 48: "0", + 49: "1", + 50: "2", + 51: "3", + 52: "4", + 53: "5", + 54: "6", + 55: "7", + 56: "8", + 57: "9", + 65: "a", + 66: "b", + 67: "c", + 68: "d", + 69: "e", + 70: "f", + 71: "g", + 72: "h", + 73: "i", + 74: "j", + 75: "k", + 76: "l", + 77: "m", + 78: "n", + 79: "o", + 80: "p", + 81: "q", + 82: "r", + 83: "s", + 84: "t", + 85: "u", + 86: "v", + 87: "w", + 88: "x", + 89: "y", + 90: "z", + 91: "cmd", + 92: "cmd", + 93: "cmd", + 96: "num_0", + 97: "num_1", + 98: "num_2", + 99: "num_3", + 100: "num_4", + 101: "num_5", + 102: "num_6", + 103: "num_7", + 104: "num_8", + 105: "num_9", + 106: "num_multiply", + 107: "num_add", + 108: "num_enter", + 109: "num_subtract", + 110: "num_decimal", + 111: "num_divide", + 112: "f1", + 113: "f2", + 114: "f3", + 115: "f4", + 116: "f5", + 117: "f6", + 118: "f7", + 119: "f8", + 120: "f9", + 121: "f10", + 122: "f11", + 123: "f12", + 124: "print", + 144: "num", + 145: "scroll", + 186: ";", + 187: "=", + 188: ",", + 189: "-", + 190: ".", + 191: "/", + 192: "`", + 219: "[", + 220: "\\", + 221: "]", + 222: "\'", + 223: "`", + 224: "cmd", + 225: "alt", + 57392: "ctrl", + 63289: "num", + 59: ";", + 61: "-", + 173: "=" + }; + + keypress._keycode_dictionary = _keycode_dictionary; + + keypress._is_array_in_array_sorted = _is_array_in_array_sorted; + + _decide_meta_key(); + + _change_keycodes_by_browser(); + + if (typeof define === "function" && define.amd) { + define([], function() { + return keypress; + }); + } else if (typeof exports !== "undefined" && exports !== null) { + exports.keypress = keypress; + } else { + window.keypress = keypress; + } + +}).call(this); diff --git a/frontend/imlandscape/js/pb.js b/frontend/imlandscape/js/pb.js new file mode 100644 index 0000000..46c0bd6 --- /dev/null +++ b/frontend/imlandscape/js/pb.js @@ -0,0 +1,71 @@ +var loadUrl = '/img/load'; +var saveUrl = '/cgi-bin/im/landscape'; +var textureURL, heightmapURL; +function saveScene(){ + if (!renderer) { + alert("WebGL Rendering was not started yet!"); + } else { + // Prepare data + var imageData = renderer.domElement.toDataURL("image/png"); + //Remove header + var seconds = new Date() / 1000; + seconds = seconds.toFixed(0); + var userName = $("#username").val() + update_username(userName); + var filename; + if (!userName) { + filename = seconds + "_imlandscape"; + } else { + filename = seconds + "_imglandscape_" + userName; + } + filename += ".png"; + is_generating = true; + toggle_background(); + // Send post request + $.post( + saveUrl, + { + name: $("#username").val(), //FIXME + imgdata: imageData, + texture: $("#texture").val(), + heightmap: $("#heightmap").val(), + }, + function(response) { + console.log(response); + is_generating = false; + toggle_background(); + resp = response.split("\n"); + url = resp[3] + loadUrlResult(resp[3]) + } + ); + } +} + +function loadUrlResult(url){ + $(".url_result").show(); + url_shortened = "...."+ url.slice(url.length-10); + + $("a.url_result").attr("href", url); + $("a.url_result").html(url_shortened); + +}; +function loadNew() { + //Get values for url + textureURL = document.getElementById("texture").value.replace(/\s/,""); + heightmapURL = document.getElementById("heightmap").value.replace(/\s/,""); + + is_generating = true; + toggle_background(); + console.log(textureURL); + console.log(heightmapURL); + stop_animating(); + var new_texture = '/cgi-bin/proxy?'+textureURL; + var new_heightmap = '/cgi-bin/proxy?'+heightmapURL; + initGraphics(new_texture, new_heightmap, function(){ animate() } ); +} + +function isUrl(s) { + var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?\.(jpg|JPG|jpeg|JPEG)/; + return regexp.test(s); +} diff --git a/frontend/imlandscape/js/username.js b/frontend/imlandscape/js/username.js new file mode 100644 index 0000000..eb89ed0 --- /dev/null +++ b/frontend/imlandscape/js/username.js @@ -0,0 +1,30 @@ +$(document).ready(function(){ + var name = get_name_from_cookie() + $("#username").val(name) +}); + +function get_name_from_cookie() + { + if (document.cookie) + { + var cookies = document.cookie.split(";") + for (i in cookies) + { + var cookie = cookies[i].split("=") + if (cookie[0].indexOf("imname") !== -1) + { + if (cookie[1] !== 'false' && cookie[1] !== 'undefined' && cookie[1].length) + { + return cookie[1] + } + } + } + } + return "" +}; + +function update_username(username){ + if (username.length > 0){ + document.cookie = "imname="+username+";path=/;domain=.asdf.us;max-age=1086400" + } +} diff --git a/frontend/imlandscape/simple_proxy.py b/frontend/imlandscape/simple_proxy.py new file mode 100644 index 0000000..cde43e8 --- /dev/null +++ b/frontend/imlandscape/simple_proxy.py @@ -0,0 +1,29 @@ +#!/usr/bin/env python3 +import http.server +import urllib.request +import re +import sys + +class MyHTTPRequestHandler(http.server.CGIHTTPRequestHandler ): + def end_headers(self): + self.send_my_headers() + + http.server.CGIHTTPRequestHandler .end_headers(self) + + def send_my_headers(self): + self.send_header("Access-Control-Allow-Origin", "*") + + def do_GET(self): + if self.path[0:14] == "/cgi-bin/proxy": + sys.stderr.write(self.path[15:]); + self.copyfile(urllib.request.urlopen(self.path[15:]), self.wfile) + super().do_GET(); + else: + super().do_GET() + + def do_POST(self): + super().do_POST(); + +if __name__ == '__main__': + http.server.test(port=8181, HandlerClass=MyHTTPRequestHandler) + diff --git a/frontend/impattern/app.pl b/frontend/impattern/app.pl new file mode 100644 index 0000000..b1bfc3c --- /dev/null +++ b/frontend/impattern/app.pl @@ -0,0 +1,34 @@ +#!/usr/bin/env perl +use Dancer2; +use Data::Dumper; +set public => './'; + +get '/download/*.*' => sub { + my ($file, $ext) = splat; + # do something with $file.$ext here +}; + +get qr{/img/([\w\.\-_]+)} => sub { + my ($filename) = splat; + send_file sprintf("/img/%s", $filename); +}; +get qr{/patterns/([\w\.\-_]+)} => sub { + my ($filename) = splat; + send_file sprintf("/patterns/%s", $filename); +}; +get qr{/css/([\w\.\-_]+)} => sub { + my ($filename) = splat; + send_file sprintf("/css/%s", $filename); +}; +get qr{/js/([\w\.\-_]+)} => sub { + my ($filename) = splat; + send_file sprintf("/js/%s", $filename); +}; +get qr{/fonts/([\w\.\-_]+)} => sub { + my ($filename) = splat; + send_file sprintf("/fonts/%s", $filename); +}; +get '/' => sub { + send_file ("index.html"); +}; +dance; diff --git a/frontend/impattern/css/main.css b/frontend/impattern/css/main.css new file mode 100644 index 0000000..de2a782 --- /dev/null +++ b/frontend/impattern/css/main.css @@ -0,0 +1,101 @@ +html,body{ + min-height: 100%; +} +body{ +padding-top:5px; +font-family: 'Roboto', sans-serif; + position: relative; +} +.title{ + font-family: 'Orienta', sans-serif; + font-size:3em; + text-shadow: 2px 4px 3px rgba(153,153,153,0.3); + color: #1C1C1C; +} +#impattern{ + text-align:center; + display:inline-block; +} +#submit_wrapper{ + padding-top:30px; +} + +#choose_your_image{ + margin-left: -10px; + margin-bottom: 15px; +} +.image_input{ + min-width:300px; + +} + +#submit{ + font-size:30px; + +} + +#sample + { + display:inline-block; + border-style: outset; + border-color: gray; + border-width: 5px; + height:100px; + } +table.dithertable { + border-width: 5px; + border-spacing: 3px; + border-style: outset; + border-color: gray; + border-collapse: separate; + background-color: whitesmoke; +} +table.dithertable th { + border-width: medium; + padding: 2px; + border-style: ridge; + border-color: gray; + background-color: rgb(255, 255, 240); + -moz-border-radius: ; +} +table.dithertable td { + border-width: 3px; + padding: 2px; + border-style: ridge; + border-color: gray; + background-color: rgb(255, 255, 240); +// -moz-border-radius: ; + background-color:white; +} +.patterns + { + width:10px; + height:10px; +//border-color:#99aacc; border-style:ridge; +//border-width:3px 3px 6px 3px; + cursor:pointer; + } +#dithertable + { + width:100%; + display:inline-block; + } +tr + { + height:40px; + } +.dontshowme{ + display: none; +} +#acknowledgments{ + position: absolute; + font-size: 10px; + float: right; + bottom:1%; +} +#acknowledgments > a{ + color: gray; +} +#acknowledgments > a:active{ + color: gray; +} diff --git a/frontend/impattern/css/normalize.css b/frontend/impattern/css/normalize.css new file mode 100644 index 0000000..458eea1 --- /dev/null +++ b/frontend/impattern/css/normalize.css @@ -0,0 +1,427 @@ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ + +/** + * 1. Set default font family to sans-serif. + * 2. Prevent iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-family: sans-serif; /* 1 */ + -ms-text-size-adjust: 100%; /* 2 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/** + * Remove default margin. + */ + +body { + margin: 0; +} + +/* HTML5 display definitions + ========================================================================== */ + +/** + * Correct `block` display not defined for any HTML5 element in IE 8/9. + * Correct `block` display not defined for `details` or `summary` in IE 10/11 + * and Firefox. + * Correct `block` display not defined for `main` in IE 11. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +menu, +nav, +section, +summary { + display: block; +} + +/** + * 1. Correct `inline-block` display not defined in IE 8/9. + * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. + */ + +audio, +canvas, +progress, +video { + display: inline-block; /* 1 */ + vertical-align: baseline; /* 2 */ +} + +/** + * Prevent modern browsers from displaying `audio` without controls. + * Remove excess height in iOS 5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/** + * Address `[hidden]` styling not present in IE 8/9/10. + * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. + */ + +[hidden], +template { + display: none; +} + +/* Links + ========================================================================== */ + +/** + * Remove the gray background color from active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * Improve readability when focused and also mouse hovered in all browsers. + */ + +a:active, +a:hover { + outline: 0; +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Address styling not present in IE 8/9/10/11, Safari, and Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/** + * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. + */ + +b, +strong { + font-weight: bold; +} + +/** + * Address styling not present in Safari and Chrome. + */ + +dfn { + font-style: italic; +} + +/** + * Address variable `h1` font-size and margin within `section` and `article` + * contexts in Firefox 4+, Safari, and Chrome. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/** + * Address styling not present in IE 8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/** + * Address inconsistent and variable font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` affecting `line-height` in all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove border when inside `a` element in IE 8/9/10. + */ + +img { + border: 0; +} + +/** + * Correct overflow not hidden in IE 9/10/11. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* Grouping content + ========================================================================== */ + +/** + * Address margin not present in IE 8/9 and Safari. + */ + +figure { + margin: 1em 40px; +} + +/** + * Address differences between Firefox and other browsers. + */ + +hr { + -moz-box-sizing: content-box; + box-sizing: content-box; + height: 0; +} + +/** + * Contain overflow in all browsers. + */ + +pre { + overflow: auto; +} + +/** + * Address odd `em`-unit font size rendering in all browsers. + */ + +code, +kbd, +pre, +samp { + font-family: monospace, monospace; + font-size: 1em; +} + +/* Forms + ========================================================================== */ + +/** + * Known limitation: by default, Chrome and Safari on OS X allow very limited + * styling of `select`, unless a `border` property is set. + */ + +/** + * 1. Correct color not being inherited. + * Known issue: affects color of disabled elements. + * 2. Correct font properties not being inherited. + * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. + */ + +button, +input, +optgroup, +select, +textarea { + color: inherit; /* 1 */ + font: inherit; /* 2 */ + margin: 0; /* 3 */ +} + +/** + * Address `overflow` set to `hidden` in IE 8/9/10/11. + */ + +button { + overflow: visible; +} + +/** + * Address inconsistent `text-transform` inheritance for `button` and `select`. + * All other form control elements do not inherit `text-transform` values. + * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. + * Correct `select` style inheritance in Firefox. + */ + +button, +select { + text-transform: none; +} + +/** + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Correct inability to style clickable `input` types in iOS. + * 3. Improve usability and consistency of cursor style between image-type + * `input` and others. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ +} + +/** + * Re-set default cursor for disabled elements. + */ + +button[disabled], +html input[disabled] { + cursor: default; +} + +/** + * Remove inner padding and border in Firefox 4+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/** + * Address Firefox 4+ setting `line-height` on `input` using `!important` in + * the UA stylesheet. + */ + +input { + line-height: normal; +} + +/** + * It's recommended that you don't attempt to style these elements. + * Firefox's implementation doesn't respect box-sizing, padding, or width. + * + * 1. Address box sizing set to `content-box` in IE 8/9/10. + * 2. Remove excess padding in IE 8/9/10. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Fix the cursor style for Chrome's increment/decrement buttons. For certain + * `font-size` values of the `input`, it causes the cursor style of the + * decrement button to change from `default` to `text`. + */ + +input[type="number"]::-webkit-inner-spin-button, +input[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Address `appearance` set to `searchfield` in Safari and Chrome. + * 2. Address `box-sizing` set to `border-box` in Safari and Chrome + * (include `-moz` to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/** + * Remove inner padding and search cancel button in Safari and Chrome on OS X. + * Safari (but not Chrome) clips the cancel button when the search input has + * padding (and `textfield` appearance). + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/** + * 1. Correct `color` not being inherited in IE 8/9/10/11. + * 2. Remove padding so people aren't caught out if they zero out fieldsets. + */ + +legend { + border: 0; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Remove default vertical scrollbar in IE 8/9/10/11. + */ + +textarea { + overflow: auto; +} + +/** + * Don't inherit the `font-weight` (applied by a rule above). + * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. + */ + +optgroup { + font-weight: bold; +} + +/* Tables + ========================================================================== */ + +/** + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + +td, +th { + padding: 0; +} diff --git a/frontend/impattern/css/overlay.css b/frontend/impattern/css/overlay.css new file mode 100644 index 0000000..796ad62 --- /dev/null +++ b/frontend/impattern/css/overlay.css @@ -0,0 +1,43 @@ +#draw_protector{ + height: 100%; + width: 100%; + position:absolute; + top: 0; + left: 0; + z-index:101; + display: none; +} +#overlay{ + position:absolute; + height:100%; + width:100%; + top:0; + left:0; + background: rgba(245,245,245,0.8); + z-index: 100; + display: none; +} +#overlay > .close{ + position: absolute; + padding: 10px; + top: 10px; + left: 10px; + border: 1px solid gray; + background: white; + cursor: pointer; + z-index: 102; +} +#final-image > img{ + max-width:550px; + max-height:550px; +} +#overlay > .content{ + top: 10px; + left: 150px; + padding: 10px; + border: 1px solid gray; + background: white; + position: absolute; + z-index: 102; +} + diff --git a/frontend/impattern/css/result.css b/frontend/impattern/css/result.css new file mode 100644 index 0000000..00567aa --- /dev/null +++ b/frontend/impattern/css/result.css @@ -0,0 +1,3 @@ +#links > input{ + width:100%; +} diff --git a/frontend/impattern/css/sketch.css b/frontend/impattern/css/sketch.css new file mode 100644 index 0000000..84c00a0 --- /dev/null +++ b/frontend/impattern/css/sketch.css @@ -0,0 +1,45 @@ +#draw{ + display:none; +} + +#canvas_wrapper{ +// position:absolute; + display: inline-block; +white-space: no-wrap; +word-wrap: break-word; +-webkit-user-select: none; +-moz-user-select: none; +user-select: none; +// pointer-events: none; + +} +.canvas_cell{ + border: 1px solid silver; + display: inline-block; + width: 1em; + height: 1em; +} +.canvas_row{ +// position: absolute; +} + +.brush_tools{ + margin:5px; + padding:5px; + display: inline-block; + background: whitesmoke; + border: 1px solid gray; + cursor: pointer; +} +#drawing_finished{ + padding:5px; + margin-top:10px; + text-transform:bold; + display:block; + width:100%; +} +#brush{ + background:gray; + color: white; + border: 1px solid black; +} diff --git a/frontend/impattern/css/unsemantic-grid-responsive.css b/frontend/impattern/css/unsemantic-grid-responsive.css new file mode 100644 index 0000000..929efe7 --- /dev/null +++ b/frontend/impattern/css/unsemantic-grid-responsive.css @@ -0,0 +1,1403 @@ +/* ============================================ */ +/* This file has a mobile-to-desktop breakpoint */ +/* ============================================ */ +@media (max-width: 400px) { + @-ms-viewport { + width: 320px; + } +} +.clear { + clear: both; + display: block; + overflow: hidden; + visibility: hidden; + width: 0; + height: 0; +} + +.grid-container:before, .grid-5:before, .mobile-grid-5:before, .grid-10:before, .mobile-grid-10:before, .grid-15:before, .mobile-grid-15:before, .grid-20:before, .mobile-grid-20:before, .grid-25:before, .mobile-grid-25:before, .grid-30:before, .mobile-grid-30:before, .grid-35:before, .mobile-grid-35:before, .grid-40:before, .mobile-grid-40:before, .grid-45:before, .mobile-grid-45:before, .grid-50:before, .mobile-grid-50:before, .grid-55:before, .mobile-grid-55:before, .grid-60:before, .mobile-grid-60:before, .grid-65:before, .mobile-grid-65:before, .grid-70:before, .mobile-grid-70:before, .grid-75:before, .mobile-grid-75:before, .grid-80:before, .mobile-grid-80:before, .grid-85:before, .mobile-grid-85:before, .grid-90:before, .mobile-grid-90:before, .grid-95:before, .mobile-grid-95:before, .grid-100:before, .mobile-grid-100:before, .grid-33:before, .mobile-grid-33:before, .grid-66:before, .mobile-grid-66:before, .clearfix:before, +.grid-container:after, +.grid-5:after, +.mobile-grid-5:after, +.grid-10:after, +.mobile-grid-10:after, +.grid-15:after, +.mobile-grid-15:after, +.grid-20:after, +.mobile-grid-20:after, +.grid-25:after, +.mobile-grid-25:after, +.grid-30:after, +.mobile-grid-30:after, +.grid-35:after, +.mobile-grid-35:after, +.grid-40:after, +.mobile-grid-40:after, +.grid-45:after, +.mobile-grid-45:after, +.grid-50:after, +.mobile-grid-50:after, +.grid-55:after, +.mobile-grid-55:after, +.grid-60:after, +.mobile-grid-60:after, +.grid-65:after, +.mobile-grid-65:after, +.grid-70:after, +.mobile-grid-70:after, +.grid-75:after, +.mobile-grid-75:after, +.grid-80:after, +.mobile-grid-80:after, +.grid-85:after, +.mobile-grid-85:after, +.grid-90:after, +.mobile-grid-90:after, +.grid-95:after, +.mobile-grid-95:after, +.grid-100:after, +.mobile-grid-100:after, +.grid-33:after, +.mobile-grid-33:after, +.grid-66:after, +.mobile-grid-66:after, +.clearfix:after { + content: "."; + display: block; + overflow: hidden; + visibility: hidden; + font-size: 0; + line-height: 0; + width: 0; + height: 0; +} + +.grid-container:after, .grid-5:after, .mobile-grid-5:after, .grid-10:after, .mobile-grid-10:after, .grid-15:after, .mobile-grid-15:after, .grid-20:after, .mobile-grid-20:after, .grid-25:after, .mobile-grid-25:after, .grid-30:after, .mobile-grid-30:after, .grid-35:after, .mobile-grid-35:after, .grid-40:after, .mobile-grid-40:after, .grid-45:after, .mobile-grid-45:after, .grid-50:after, .mobile-grid-50:after, .grid-55:after, .mobile-grid-55:after, .grid-60:after, .mobile-grid-60:after, .grid-65:after, .mobile-grid-65:after, .grid-70:after, .mobile-grid-70:after, .grid-75:after, .mobile-grid-75:after, .grid-80:after, .mobile-grid-80:after, .grid-85:after, .mobile-grid-85:after, .grid-90:after, .mobile-grid-90:after, .grid-95:after, .mobile-grid-95:after, .grid-100:after, .mobile-grid-100:after, .grid-33:after, .mobile-grid-33:after, .grid-66:after, .mobile-grid-66:after, .clearfix:after { + clear: both; +} + +.grid-container, .grid-5, .mobile-grid-5, .grid-10, .mobile-grid-10, .grid-15, .mobile-grid-15, .grid-20, .mobile-grid-20, .grid-25, .mobile-grid-25, .grid-30, .mobile-grid-30, .grid-35, .mobile-grid-35, .grid-40, .mobile-grid-40, .grid-45, .mobile-grid-45, .grid-50, .mobile-grid-50, .grid-55, .mobile-grid-55, .grid-60, .mobile-grid-60, .grid-65, .mobile-grid-65, .grid-70, .mobile-grid-70, .grid-75, .mobile-grid-75, .grid-80, .mobile-grid-80, .grid-85, .mobile-grid-85, .grid-90, .mobile-grid-90, .grid-95, .mobile-grid-95, .grid-100, .mobile-grid-100, .grid-33, .mobile-grid-33, .grid-66, .mobile-grid-66, .clearfix { + /* <IE7> */ + *zoom: 1; + /* </IE7> */ +} + +.grid-container { + margin-left: auto; + margin-right: auto; + max-width: 1200px; + padding-left: 10px; + padding-right: 10px; +} + +.grid-5, .mobile-grid-5, .grid-10, .mobile-grid-10, .grid-15, .mobile-grid-15, .grid-20, .mobile-grid-20, .grid-25, .mobile-grid-25, .grid-30, .mobile-grid-30, .grid-35, .mobile-grid-35, .grid-40, .mobile-grid-40, .grid-45, .mobile-grid-45, .grid-50, .mobile-grid-50, .grid-55, .mobile-grid-55, .grid-60, .mobile-grid-60, .grid-65, .mobile-grid-65, .grid-70, .mobile-grid-70, .grid-75, .mobile-grid-75, .grid-80, .mobile-grid-80, .grid-85, .mobile-grid-85, .grid-90, .mobile-grid-90, .grid-95, .mobile-grid-95, .grid-100, .mobile-grid-100, .grid-33, .mobile-grid-33, .grid-66, .mobile-grid-66 { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; + padding-left: 10px; + padding-right: 10px; + /* <IE7> */ + *padding-left: 0; + *padding-right: 0; + /* </IE7> */ +} +.grid-5 > *, .mobile-grid-5 > *, .grid-10 > *, .mobile-grid-10 > *, .grid-15 > *, .mobile-grid-15 > *, .grid-20 > *, .mobile-grid-20 > *, .grid-25 > *, .mobile-grid-25 > *, .grid-30 > *, .mobile-grid-30 > *, .grid-35 > *, .mobile-grid-35 > *, .grid-40 > *, .mobile-grid-40 > *, .grid-45 > *, .mobile-grid-45 > *, .grid-50 > *, .mobile-grid-50 > *, .grid-55 > *, .mobile-grid-55 > *, .grid-60 > *, .mobile-grid-60 > *, .grid-65 > *, .mobile-grid-65 > *, .grid-70 > *, .mobile-grid-70 > *, .grid-75 > *, .mobile-grid-75 > *, .grid-80 > *, .mobile-grid-80 > *, .grid-85 > *, .mobile-grid-85 > *, .grid-90 > *, .mobile-grid-90 > *, .grid-95 > *, .mobile-grid-95 > *, .grid-100 > *, .mobile-grid-100 > *, .grid-33 > *, .mobile-grid-33 > *, .grid-66 > *, .mobile-grid-66 > * { + /* <IE7> */ + *margin-left: "expression((!this.className.match(/grid-[1-9]/) && this.currentStyle.display === " block " && this.currentStyle.width === " auto ') && "10px")'; + *margin-right: "expression((!this.className.match(/grid-[1-9]/) && this.currentStyle.display === " block " && this.currentStyle.width === " auto ') && "10px")'; + /* </IE7> */ +} + +.grid-parent { + padding-left: 0; + padding-right: 0; +} + +@media (max-width: 767px) { + .mobile-push-5, .mobile-pull-5, .mobile-push-10, .mobile-pull-10, .mobile-push-15, .mobile-pull-15, .mobile-push-20, .mobile-pull-20, .mobile-push-25, .mobile-pull-25, .mobile-push-30, .mobile-pull-30, .mobile-push-35, .mobile-pull-35, .mobile-push-40, .mobile-pull-40, .mobile-push-45, .mobile-pull-45, .mobile-push-50, .mobile-pull-50, .mobile-push-55, .mobile-pull-55, .mobile-push-60, .mobile-pull-60, .mobile-push-65, .mobile-pull-65, .mobile-push-70, .mobile-pull-70, .mobile-push-75, .mobile-pull-75, .mobile-push-80, .mobile-pull-80, .mobile-push-85, .mobile-pull-85, .mobile-push-90, .mobile-pull-90, .mobile-push-95, .mobile-pull-95, .mobile-push-33, .mobile-pull-33, .mobile-push-66, .mobile-pull-66 { + position: relative; + } + + .hide-on-mobile { + display: none !important; + } + + .mobile-grid-5 { + float: left; + width: 5%; + /* <IE7> */ + *width: expression(Math.floor(0.05 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-5 { + margin-left: 5%; + } + + .mobile-suffix-5 { + margin-right: 5%; + } + + .mobile-push-5 { + left: 5%; + /* <IE7> */ + *left: expression(Math.floor(0.05 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-5 { + left: -5%; + /* <IE7> */ + *left: expression(Math.floor(-0.05 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-10 { + float: left; + width: 10%; + /* <IE7> */ + *width: expression(Math.floor(0.1 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-10 { + margin-left: 10%; + } + + .mobile-suffix-10 { + margin-right: 10%; + } + + .mobile-push-10 { + left: 10%; + /* <IE7> */ + *left: expression(Math.floor(0.1 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-10 { + left: -10%; + /* <IE7> */ + *left: expression(Math.floor(-0.1 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-15 { + float: left; + width: 15%; + /* <IE7> */ + *width: expression(Math.floor(0.15 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-15 { + margin-left: 15%; + } + + .mobile-suffix-15 { + margin-right: 15%; + } + + .mobile-push-15 { + left: 15%; + /* <IE7> */ + *left: expression(Math.floor(0.15 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-15 { + left: -15%; + /* <IE7> */ + *left: expression(Math.floor(-0.15 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-20 { + float: left; + width: 20%; + /* <IE7> */ + *width: expression(Math.floor(0.2 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-20 { + margin-left: 20%; + } + + .mobile-suffix-20 { + margin-right: 20%; + } + + .mobile-push-20 { + left: 20%; + /* <IE7> */ + *left: expression(Math.floor(0.2 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-20 { + left: -20%; + /* <IE7> */ + *left: expression(Math.floor(-0.2 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-25 { + float: left; + width: 25%; + /* <IE7> */ + *width: expression(Math.floor(0.25 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-25 { + margin-left: 25%; + } + + .mobile-suffix-25 { + margin-right: 25%; + } + + .mobile-push-25 { + left: 25%; + /* <IE7> */ + *left: expression(Math.floor(0.25 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-25 { + left: -25%; + /* <IE7> */ + *left: expression(Math.floor(-0.25 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-30 { + float: left; + width: 30%; + /* <IE7> */ + *width: expression(Math.floor(0.3 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-30 { + margin-left: 30%; + } + + .mobile-suffix-30 { + margin-right: 30%; + } + + .mobile-push-30 { + left: 30%; + /* <IE7> */ + *left: expression(Math.floor(0.3 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-30 { + left: -30%; + /* <IE7> */ + *left: expression(Math.floor(-0.3 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-35 { + float: left; + width: 35%; + /* <IE7> */ + *width: expression(Math.floor(0.35 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-35 { + margin-left: 35%; + } + + .mobile-suffix-35 { + margin-right: 35%; + } + + .mobile-push-35 { + left: 35%; + /* <IE7> */ + *left: expression(Math.floor(0.35 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-35 { + left: -35%; + /* <IE7> */ + *left: expression(Math.floor(-0.35 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-40 { + float: left; + width: 40%; + /* <IE7> */ + *width: expression(Math.floor(0.4 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-40 { + margin-left: 40%; + } + + .mobile-suffix-40 { + margin-right: 40%; + } + + .mobile-push-40 { + left: 40%; + /* <IE7> */ + *left: expression(Math.floor(0.4 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-40 { + left: -40%; + /* <IE7> */ + *left: expression(Math.floor(-0.4 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-45 { + float: left; + width: 45%; + /* <IE7> */ + *width: expression(Math.floor(0.45 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-45 { + margin-left: 45%; + } + + .mobile-suffix-45 { + margin-right: 45%; + } + + .mobile-push-45 { + left: 45%; + /* <IE7> */ + *left: expression(Math.floor(0.45 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-45 { + left: -45%; + /* <IE7> */ + *left: expression(Math.floor(-0.45 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-50 { + float: left; + width: 50%; + /* <IE7> */ + *width: expression(Math.floor(0.5 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-50 { + margin-left: 50%; + } + + .mobile-suffix-50 { + margin-right: 50%; + } + + .mobile-push-50 { + left: 50%; + /* <IE7> */ + *left: expression(Math.floor(0.5 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-50 { + left: -50%; + /* <IE7> */ + *left: expression(Math.floor(-0.5 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-55 { + float: left; + width: 55%; + /* <IE7> */ + *width: expression(Math.floor(0.55 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-55 { + margin-left: 55%; + } + + .mobile-suffix-55 { + margin-right: 55%; + } + + .mobile-push-55 { + left: 55%; + /* <IE7> */ + *left: expression(Math.floor(0.55 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-55 { + left: -55%; + /* <IE7> */ + *left: expression(Math.floor(-0.55 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-60 { + float: left; + width: 60%; + /* <IE7> */ + *width: expression(Math.floor(0.6 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-60 { + margin-left: 60%; + } + + .mobile-suffix-60 { + margin-right: 60%; + } + + .mobile-push-60 { + left: 60%; + /* <IE7> */ + *left: expression(Math.floor(0.6 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-60 { + left: -60%; + /* <IE7> */ + *left: expression(Math.floor(-0.6 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-65 { + float: left; + width: 65%; + /* <IE7> */ + *width: expression(Math.floor(0.65 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-65 { + margin-left: 65%; + } + + .mobile-suffix-65 { + margin-right: 65%; + } + + .mobile-push-65 { + left: 65%; + /* <IE7> */ + *left: expression(Math.floor(0.65 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-65 { + left: -65%; + /* <IE7> */ + *left: expression(Math.floor(-0.65 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-70 { + float: left; + width: 70%; + /* <IE7> */ + *width: expression(Math.floor(0.7 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-70 { + margin-left: 70%; + } + + .mobile-suffix-70 { + margin-right: 70%; + } + + .mobile-push-70 { + left: 70%; + /* <IE7> */ + *left: expression(Math.floor(0.7 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-70 { + left: -70%; + /* <IE7> */ + *left: expression(Math.floor(-0.7 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-75 { + float: left; + width: 75%; + /* <IE7> */ + *width: expression(Math.floor(0.75 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-75 { + margin-left: 75%; + } + + .mobile-suffix-75 { + margin-right: 75%; + } + + .mobile-push-75 { + left: 75%; + /* <IE7> */ + *left: expression(Math.floor(0.75 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-75 { + left: -75%; + /* <IE7> */ + *left: expression(Math.floor(-0.75 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-80 { + float: left; + width: 80%; + /* <IE7> */ + *width: expression(Math.floor(0.8 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-80 { + margin-left: 80%; + } + + .mobile-suffix-80 { + margin-right: 80%; + } + + .mobile-push-80 { + left: 80%; + /* <IE7> */ + *left: expression(Math.floor(0.8 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-80 { + left: -80%; + /* <IE7> */ + *left: expression(Math.floor(-0.8 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-85 { + float: left; + width: 85%; + /* <IE7> */ + *width: expression(Math.floor(0.85 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-85 { + margin-left: 85%; + } + + .mobile-suffix-85 { + margin-right: 85%; + } + + .mobile-push-85 { + left: 85%; + /* <IE7> */ + *left: expression(Math.floor(0.85 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-85 { + left: -85%; + /* <IE7> */ + *left: expression(Math.floor(-0.85 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-90 { + float: left; + width: 90%; + /* <IE7> */ + *width: expression(Math.floor(0.9 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-90 { + margin-left: 90%; + } + + .mobile-suffix-90 { + margin-right: 90%; + } + + .mobile-push-90 { + left: 90%; + /* <IE7> */ + *left: expression(Math.floor(0.9 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-90 { + left: -90%; + /* <IE7> */ + *left: expression(Math.floor(-0.9 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-95 { + float: left; + width: 95%; + /* <IE7> */ + *width: expression(Math.floor(0.95 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-95 { + margin-left: 95%; + } + + .mobile-suffix-95 { + margin-right: 95%; + } + + .mobile-push-95 { + left: 95%; + /* <IE7> */ + *left: expression(Math.floor(0.95 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-95 { + left: -95%; + /* <IE7> */ + *left: expression(Math.floor(-0.95 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-33 { + float: left; + width: 33.33333%; + /* <IE7> */ + *width: expression(Math.floor(0.33333 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-33 { + margin-left: 33.33333%; + } + + .mobile-suffix-33 { + margin-right: 33.33333%; + } + + .mobile-push-33 { + left: 33.33333%; + /* <IE7> */ + *left: expression(Math.floor(0.33333 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-33 { + left: -33.33333%; + /* <IE7> */ + *left: expression(Math.floor(-0.33333 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-66 { + float: left; + width: 66.66667%; + /* <IE7> */ + *width: expression(Math.floor(0.66667 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-prefix-66 { + margin-left: 66.66667%; + } + + .mobile-suffix-66 { + margin-right: 66.66667%; + } + + .mobile-push-66 { + left: 66.66667%; + /* <IE7> */ + *left: expression(Math.floor(0.66667 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-pull-66 { + left: -66.66667%; + /* <IE7> */ + *left: expression(Math.floor(-0.66667 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .mobile-grid-100 { + clear: both; + width: 100%; + } +} +@media (min-width: 768px) { + .push-5, .pull-5, .push-10, .pull-10, .push-15, .pull-15, .push-20, .pull-20, .push-25, .pull-25, .push-30, .pull-30, .push-35, .pull-35, .push-40, .pull-40, .push-45, .pull-45, .push-50, .pull-50, .push-55, .pull-55, .push-60, .pull-60, .push-65, .pull-65, .push-70, .pull-70, .push-75, .pull-75, .push-80, .pull-80, .push-85, .pull-85, .push-90, .pull-90, .push-95, .pull-95, .push-33, .pull-33, .push-66, .pull-66 { + position: relative; + } + + .hide-on-desktop { + display: none !important; + } + + .grid-5 { + float: left; + width: 5%; + /* <IE7> */ + *width: expression(Math.floor(0.05 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-5 { + margin-left: 5%; + } + + .suffix-5 { + margin-right: 5%; + } + + .push-5 { + left: 5%; + /* <IE7> */ + *left: expression(Math.floor(0.05 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-5 { + left: -5%; + /* <IE7> */ + *left: expression(Math.floor(-0.05 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-10 { + float: left; + width: 10%; + /* <IE7> */ + *width: expression(Math.floor(0.1 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-10 { + margin-left: 10%; + } + + .suffix-10 { + margin-right: 10%; + } + + .push-10 { + left: 10%; + /* <IE7> */ + *left: expression(Math.floor(0.1 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-10 { + left: -10%; + /* <IE7> */ + *left: expression(Math.floor(-0.1 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-15 { + float: left; + width: 15%; + /* <IE7> */ + *width: expression(Math.floor(0.15 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-15 { + margin-left: 15%; + } + + .suffix-15 { + margin-right: 15%; + } + + .push-15 { + left: 15%; + /* <IE7> */ + *left: expression(Math.floor(0.15 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-15 { + left: -15%; + /* <IE7> */ + *left: expression(Math.floor(-0.15 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-20 { + float: left; + width: 20%; + /* <IE7> */ + *width: expression(Math.floor(0.2 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-20 { + margin-left: 20%; + } + + .suffix-20 { + margin-right: 20%; + } + + .push-20 { + left: 20%; + /* <IE7> */ + *left: expression(Math.floor(0.2 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-20 { + left: -20%; + /* <IE7> */ + *left: expression(Math.floor(-0.2 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-25 { + float: left; + width: 25%; + /* <IE7> */ + *width: expression(Math.floor(0.25 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-25 { + margin-left: 25%; + } + + .suffix-25 { + margin-right: 25%; + } + + .push-25 { + left: 25%; + /* <IE7> */ + *left: expression(Math.floor(0.25 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-25 { + left: -25%; + /* <IE7> */ + *left: expression(Math.floor(-0.25 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-30 { + float: left; + width: 30%; + /* <IE7> */ + *width: expression(Math.floor(0.3 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-30 { + margin-left: 30%; + } + + .suffix-30 { + margin-right: 30%; + } + + .push-30 { + left: 30%; + /* <IE7> */ + *left: expression(Math.floor(0.3 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-30 { + left: -30%; + /* <IE7> */ + *left: expression(Math.floor(-0.3 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-35 { + float: left; + width: 35%; + /* <IE7> */ + *width: expression(Math.floor(0.35 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-35 { + margin-left: 35%; + } + + .suffix-35 { + margin-right: 35%; + } + + .push-35 { + left: 35%; + /* <IE7> */ + *left: expression(Math.floor(0.35 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-35 { + left: -35%; + /* <IE7> */ + *left: expression(Math.floor(-0.35 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-40 { + float: left; + width: 40%; + /* <IE7> */ + *width: expression(Math.floor(0.4 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-40 { + margin-left: 40%; + } + + .suffix-40 { + margin-right: 40%; + } + + .push-40 { + left: 40%; + /* <IE7> */ + *left: expression(Math.floor(0.4 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-40 { + left: -40%; + /* <IE7> */ + *left: expression(Math.floor(-0.4 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-45 { + float: left; + width: 45%; + /* <IE7> */ + *width: expression(Math.floor(0.45 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-45 { + margin-left: 45%; + } + + .suffix-45 { + margin-right: 45%; + } + + .push-45 { + left: 45%; + /* <IE7> */ + *left: expression(Math.floor(0.45 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-45 { + left: -45%; + /* <IE7> */ + *left: expression(Math.floor(-0.45 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-50 { + float: left; + width: 50%; + /* <IE7> */ + *width: expression(Math.floor(0.5 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-50 { + margin-left: 50%; + } + + .suffix-50 { + margin-right: 50%; + } + + .push-50 { + left: 50%; + /* <IE7> */ + *left: expression(Math.floor(0.5 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-50 { + left: -50%; + /* <IE7> */ + *left: expression(Math.floor(-0.5 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-55 { + float: left; + width: 55%; + /* <IE7> */ + *width: expression(Math.floor(0.55 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-55 { + margin-left: 55%; + } + + .suffix-55 { + margin-right: 55%; + } + + .push-55 { + left: 55%; + /* <IE7> */ + *left: expression(Math.floor(0.55 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-55 { + left: -55%; + /* <IE7> */ + *left: expression(Math.floor(-0.55 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-60 { + float: left; + width: 60%; + /* <IE7> */ + *width: expression(Math.floor(0.6 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-60 { + margin-left: 60%; + } + + .suffix-60 { + margin-right: 60%; + } + + .push-60 { + left: 60%; + /* <IE7> */ + *left: expression(Math.floor(0.6 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-60 { + left: -60%; + /* <IE7> */ + *left: expression(Math.floor(-0.6 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-65 { + float: left; + width: 65%; + /* <IE7> */ + *width: expression(Math.floor(0.65 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-65 { + margin-left: 65%; + } + + .suffix-65 { + margin-right: 65%; + } + + .push-65 { + left: 65%; + /* <IE7> */ + *left: expression(Math.floor(0.65 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-65 { + left: -65%; + /* <IE7> */ + *left: expression(Math.floor(-0.65 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-70 { + float: left; + width: 70%; + /* <IE7> */ + *width: expression(Math.floor(0.7 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-70 { + margin-left: 70%; + } + + .suffix-70 { + margin-right: 70%; + } + + .push-70 { + left: 70%; + /* <IE7> */ + *left: expression(Math.floor(0.7 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-70 { + left: -70%; + /* <IE7> */ + *left: expression(Math.floor(-0.7 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-75 { + float: left; + width: 75%; + /* <IE7> */ + *width: expression(Math.floor(0.75 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-75 { + margin-left: 75%; + } + + .suffix-75 { + margin-right: 75%; + } + + .push-75 { + left: 75%; + /* <IE7> */ + *left: expression(Math.floor(0.75 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-75 { + left: -75%; + /* <IE7> */ + *left: expression(Math.floor(-0.75 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-80 { + float: left; + width: 80%; + /* <IE7> */ + *width: expression(Math.floor(0.8 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-80 { + margin-left: 80%; + } + + .suffix-80 { + margin-right: 80%; + } + + .push-80 { + left: 80%; + /* <IE7> */ + *left: expression(Math.floor(0.8 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-80 { + left: -80%; + /* <IE7> */ + *left: expression(Math.floor(-0.8 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-85 { + float: left; + width: 85%; + /* <IE7> */ + *width: expression(Math.floor(0.85 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-85 { + margin-left: 85%; + } + + .suffix-85 { + margin-right: 85%; + } + + .push-85 { + left: 85%; + /* <IE7> */ + *left: expression(Math.floor(0.85 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-85 { + left: -85%; + /* <IE7> */ + *left: expression(Math.floor(-0.85 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-90 { + float: left; + width: 90%; + /* <IE7> */ + *width: expression(Math.floor(0.9 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-90 { + margin-left: 90%; + } + + .suffix-90 { + margin-right: 90%; + } + + .push-90 { + left: 90%; + /* <IE7> */ + *left: expression(Math.floor(0.9 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-90 { + left: -90%; + /* <IE7> */ + *left: expression(Math.floor(-0.9 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-95 { + float: left; + width: 95%; + /* <IE7> */ + *width: expression(Math.floor(0.95 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-95 { + margin-left: 95%; + } + + .suffix-95 { + margin-right: 95%; + } + + .push-95 { + left: 95%; + /* <IE7> */ + *left: expression(Math.floor(0.95 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-95 { + left: -95%; + /* <IE7> */ + *left: expression(Math.floor(-0.95 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-33 { + float: left; + width: 33.33333%; + /* <IE7> */ + *width: expression(Math.floor(0.33333 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-33 { + margin-left: 33.33333%; + } + + .suffix-33 { + margin-right: 33.33333%; + } + + .push-33 { + left: 33.33333%; + /* <IE7> */ + *left: expression(Math.floor(0.33333 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-33 { + left: -33.33333%; + /* <IE7> */ + *left: expression(Math.floor(-0.33333 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-66 { + float: left; + width: 66.66667%; + /* <IE7> */ + *width: expression(Math.floor(0.66667 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .prefix-66 { + margin-left: 66.66667%; + } + + .suffix-66 { + margin-right: 66.66667%; + } + + .push-66 { + left: 66.66667%; + /* <IE7> */ + *left: expression(Math.floor(0.66667 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .pull-66 { + left: -66.66667%; + /* <IE7> */ + *left: expression(Math.floor(-0.66667 * (this.parentNode.offsetWidth - parseFloat(this.parentNode.currentStyle.paddingLeft) - parseFloat(this.parentNode.currentStyle.paddingRight))) + "px"); + /* </IE7> */ + } + + .grid-100 { + clear: both; + width: 100%; + } +} diff --git a/frontend/impattern/img/brush.png b/frontend/impattern/img/brush.png Binary files differnew file mode 100644 index 0000000..72fe926 --- /dev/null +++ b/frontend/impattern/img/brush.png diff --git a/frontend/impattern/img/eraser.png b/frontend/impattern/img/eraser.png Binary files differnew file mode 100644 index 0000000..564949e --- /dev/null +++ b/frontend/impattern/img/eraser.png diff --git a/frontend/impattern/img/impattern.png b/frontend/impattern/img/impattern.png Binary files differnew file mode 100644 index 0000000..0f33419 --- /dev/null +++ b/frontend/impattern/img/impattern.png diff --git a/frontend/impattern/img/loading.gif b/frontend/impattern/img/loading.gif Binary files differnew file mode 100644 index 0000000..207b5d5 --- /dev/null +++ b/frontend/impattern/img/loading.gif diff --git a/frontend/impattern/img/logo.gif b/frontend/impattern/img/logo.gif Binary files differnew file mode 100644 index 0000000..6cf5742 --- /dev/null +++ b/frontend/impattern/img/logo.gif diff --git a/frontend/impattern/impattern.html b/frontend/impattern/impattern.html new file mode 100644 index 0000000..bf26446 --- /dev/null +++ b/frontend/impattern/impattern.html @@ -0,0 +1,254 @@ +<html> +<head> +<link href='http://fonts.googleapis.com/css?family=Orienta|Roboto' rel='stylesheet' type='text/css'> +<style type="text/css"> +body{ +font-family: 'Roboto', sans-serif; +} +.title{ + font-family: 'Orienta', sans-serif; + font-size:3em; + text-shadow: 2px 4px 3px rgba(153,153,153,0.3); + color: #1C1C1C; +} +#sample + { + border-style: outset; + border-color: gray; + border-width: 5px; + } +table.dithertable { + border-width: 5px; + border-spacing: 3px; + border-style: outset; + border-color: gray; + border-collapse: separate; + background-color: rgb(250, 240, 230); +} +table.dithertable th { + border-width: medium; + padding: 2px; + border-style: ridge; + border-color: gray; + background-color: rgb(255, 255, 240); + -moz-border-radius: ; +} +table.dithertable td { + border-width: medium; + padding: 2px; + border-style: ridge; + border-color: gray; + background-color: rgb(255, 255, 240); + -moz-border-radius: ; + background-color:white; +} +.dithers + { + width:10px; + height:10px; + cursor:pointer; + } +#dithertable + { + width:50%; + display:inline-block; + } +tr + { + height:40px; + } +</style> + +</head> +<body> +<table class="dithertable" id="dithertable"> +<tr> +<td class='dithers' style='background-image:url(dithers/1.png)' id='dither_1'> </td> +<td class='dithers' style='background-image:url(dithers/10.png)' id='dither_10'> </td> +<td class='dithers' style='background-image:url(dithers/11.png)' id='dither_11'></td> +<td class='dithers' style='background-image:url(dithers/12.png)' id='dither_12'></td> +<td class='dithers' style='background-image:url(dithers/13.png)' id='dither_13'></td> +<td class='dithers' style='background-image:url(dithers/14.png)' id='dither_14'></td> +<td class='dithers' style='background-image:url(dithers/15.png)' id='dither_15'></td> +<td class='dithers' style='background-image:url(dithers/16.png)' id='dither_16'></td> +<td class='dithers' style='background-image:url(dithers/17.png)' id='dither_17'></td> +<td class='dithers' style='background-image:url(dithers/18.png)' id='dither_18'></td> +<td class='dithers' style='background-image:url(dithers/19.png)' id='dither_19'></td> +<td class='dithers' style='background-image:url(dithers/2.png)' id='dither_2'></td> +<td class='dithers' style='background-image:url(dithers/20.png)' id='dither_20'></td> +<td class='dithers' style='background-image:url(dithers/21.png)' id='dither_21'></td> +<td class='dithers' style='background-image:url(dithers/22.png)' id='dither_22'></td> +<td class='dithers' style='background-image:url(dithers/23.png)' id='dither_23'></td> +<td class='dithers' style='background-image:url(dithers/24.png)' id='dither_24'></td> +<td class='dithers' style='background-image:url(dithers/25.png)' id='dither_25'></td> +<td class='dithers' style='background-image:url(dithers/26.png)' id='dither_26'></td> +<td class='dithers' style='background-image:url(dithers/27.png)' id='dither_27'></td> +<td class='dithers' style='background-image:url(dithers/28.png)' id='dither_28'></td> +<td class='dithers' style='background-image:url(dithers/29.png)' id='dither_29'></td> +<td class='dithers' style='background-image:url(dithers/3.png)' id='dither_3'></td> +<td class='dithers' style='background-image:url(dithers/30.png)' id='dither_30'></td> +</tr> +<tr> +<td class='dithers' style='background-image:url(dithers/31.png)' id='dither_31'></td> +<td class='dithers' style='background-image:url(dithers/32.png)' id='dither_32'></td> +<td class='dithers' style='background-image:url(dithers/33.png)' id='dither_33'></td> +<td class='dithers' style='background-image:url(dithers/34.png)' id='dither_34'></td> +<td class='dithers' style='background-image:url(dithers/35.png)' id='dither_35'></td> +<td class='dithers' style='background-image:url(dithers/36.png)' id='dither_36'></td> +<td class='dithers' style='background-image:url(dithers/37.png)' id='dither_37'></td> +<td class='dithers' style='background-image:url(dithers/38.png)' id='dither_38'></td> +<td class='dithers' style='background-image:url(dithers/39.png)' id='dither_39'></td> +<td class='dithers' style='background-image:url(dithers/4.png)' id='dither_4'></td> +<td class='dithers' style='background-image:url(dithers/40.png)' id='dither_40'></td> +<td class='dithers' style='background-image:url(dithers/41.png)' id='dither_41'></td> +<td class='dithers' style='background-image:url(dithers/42.png)' id='dither_42'></td> +<td class='dithers' style='background-image:url(dithers/43.png)' id='dither_43'></td> +<td class='dithers' style='background-image:url(dithers/44.png)' id='dither_44'></td> +<td class='dithers' style='background-image:url(dithers/45.png)' id='dither_45'></td> +<td class='dithers' style='background-image:url(dithers/46.png)' id='dither_46'></td> +<td class='dithers' style='background-image:url(dithers/47.png)' id='dither_47'></td> +<td class='dithers' style='background-image:url(dithers/48.png)' id='dither_48'></td> +<td class='dithers' style='background-image:url(dithers/49.png)' id='dither_49'></td> +<td class='dithers' style='background-image:url(dithers/5.png)' id='dither_5'></td> +<td class='dithers' style='background-image:url(dithers/50.png)' id='dither_50'></td> +<td class='dithers' style='background-image:url(dithers/51.png)' id='dither_51'></td> +<td class='dithers' style='background-image:url(dithers/52.png)' id='dither_52'></td> +</tr> +<tr> + +<td class='dithers' style='background-image:url(dithers/53.png)' id='dither_53'></td> +<td class='dithers' style='background-image:url(dithers/54.png)' id='dither_54'></td> +<td class='dithers' style='background-image:url(dithers/55.png)' id='dither_55'></td> +<td class='dithers' style='background-image:url(dithers/56.png)' id='dither_56'></td> +<td class='dithers' style='background-image:url(dithers/57.png)' id='dither_57'></td> +<td class='dithers' style='background-image:url(dithers/58.png)' id='dither_58'></td> +<td class='dithers' style='background-image:url(dithers/59.png)' id='dither_59'></td> +<td class='dithers' style='background-image:url(dithers/6.png)' id='dither_6'></td> +<td class='dithers' style='background-image:url(dithers/60.png)' id='dither_60'></td> + +<td class='dithers' style='background-image:url(dithers/61.png)' id='dither_61'></td> +<td class='dithers' style='background-image:url(dithers/62.png)' id='dither_62'></td> +<td class='dithers' style='background-image:url(dithers/63.png)' id='dither_63'></td> +<td class='dithers' style='background-image:url(dithers/64.png)' id='dither_64'></td> +<td class='dithers' style='background-image:url(dithers/65.png)' id='dither_65'></td> +<td class='dithers' style='background-image:url(dithers/66.png)' id='dither_66'></td> +<td class='dithers' style='background-image:url(dithers/67.png)' id='dither_67'></td> +<td class='dithers' style='background-image:url(dithers/68.png)' id='dither_68'></td> +<td class='dithers' style='background-image:url(dithers/69.png)' id='dither_69'></td> +<td class='dithers' style='background-image:url(dithers/7.png)' id='dither_7'></td> +<td class='dithers' style='background-image:url(dithers/70.png)' id='dither_70'></td> +<td class='dithers' style='background-image:url(dithers/71.png)' id='dither_71'></td> +<td class='dithers' style='background-image:url(dithers/72.png)' id='dither_72'></td> +<td class='dithers' style='background-image:url(dithers/73.png)' id='dither_73'></td> +<td class='dithers' style='background-image:url(dithers/74.png)' id='dither_74'></td> +</tr> +<tr> +<td class='dithers' style='background-image:url(dithers/75.png)' id='dither_75'></td> +<td class='dithers' style='background-image:url(dithers/76.png)' id='dither_76'></td> +<td class='dithers' style='background-image:url(dithers/77.png)' id='dither_77'></td> +<td class='dithers' style='background-image:url(dithers/78.png)' id='dither_78'></td> +<td class='dithers' style='background-image:url(dithers/79.png)' id='dither_79'></td> +<td class='dithers' style='background-image:url(dithers/8.png)' id='dither_8'></td> +<td class='dithers' style='background-image:url(dithers/80.png)' id='dither_80'></td> +<td class='dithers' style='background-image:url(dithers/81.png)' id='dither_81'></td> +<td class='dithers' style='background-image:url(dithers/82.png)' id='dither_82'></td> +<td class='dithers' style='background-image:url(dithers/83.png)' id='dither_83'></td> +<td class='dithers' style='background-image:url(dithers/84.png)' id='dither_84'></td> +<td class='dithers' style='background-image:url(dithers/85.png)' id='dither_85'></td> +<td class='dithers' style='background-image:url(dithers/86.png)' id='dither_86'></td> +<td class='dithers' style='background-image:url(dithers/87.png)' id='dither_87'></td> +<td class='dithers' style='background-image:url(dithers/88.png)' id='dither_88'></td> +<td class='dithers' style='background-image:url(dithers/89.png)' id='dither_89'></td> +<td class='dithers' style='background-image:url(dithers/9.png)' id='dither_9'></td> +<td class='dithers' style='background-image:url(dithers/90.png)' id='dither_90'></td> +<td class='dithers' style='background-image:url(dithers/91.png)' id='dither_91'></td> +<td class='dithers' style='background-image:url(dithers/92.png)' id='dither_92'></td> +<td class='dithers' style='background-image:url(dithers/93.png)' id='dither_93'></td> +<td class='dithers' style='background-image:url(dithers/94.png)' id='dither_94'></td> +<td class='dithers' style='background-image:url(dithers/95.png)' id='dither_95'></td> +<td class='dithers' style='background-image:url(dithers/96.png)' id='dither_96'></td> + +</tr> +<tr> +<td class='dithers' style='background-image:url(dithers/a0.png)' id='dither_a0'></td> +<td class='dithers' style='background-image:url(dithers/a1.png)' id='dither_a1'></td> +<td class='dithers' style='background-image:url(dithers/a10.png)' id='dither_a10'></td> +<td class='dithers' style='background-image:url(dithers/a11.png)' id='dither_a11'></td> +<td class='dithers' style='background-image:url(dithers/a12.png)' id='dither_a12'></td> +<td class='dithers' style='background-image:url(dithers/a13.png)' id='dither_a13'></td> +<td class='dithers' style='background-image:url(dithers/a14.png)' id='dither_a14'></td> +<td class='dithers' style='background-image:url(dithers/a15.png)' id='dither_a15'></td> +<td class='dithers' style='background-image:url(dithers/a16.png)' id='dither_a16'></td> +<td class='dithers' style='background-image:url(dithers/a17.png)' id='dither_a17'></td> +<td class='dithers' style='background-image:url(dithers/a18.png)' id='dither_a18'></td> +<td class='dithers' style='background-image:url(dithers/a19.png)' id='dither_a19'></td> +<td class='dithers' style='background-image:url(dithers/a2.png)' id='dither_a2'></td> +<td class='dithers' style='background-image:url(dithers/a20.png)' id='dither_a20'></td> +<td class='dithers' style='background-image:url(dithers/a21.png)' id='dither_a21'></td> +<td class='dithers' style='background-image:url(dithers/a22.png)' id='dither_a22'></td> +<td class='dithers' style='background-image:url(dithers/a23.png)' id='dither_a23'></td> +<td class='dithers' style='background-image:url(dithers/a24.png)' id='dither_a24'></td> +<td class='dithers' style='background-image:url(dithers/a25.png)' id='dither_a25'></td> +<td class='dithers' style='background-image:url(dithers/a26.png)' id='dither_a26'></td> +<td class='dithers' style='background-image:url(dithers/a27.png)' id='dither_a27'></td> +<td class='dithers' style='background-image:url(dithers/a28.png)' id='dither_a28'></td> +<td class='dithers' style='background-image:url(dithers/a29.png)' id='dither_a29'></td> +<td class='dithers' style='background-image:url(dithers/a3.png)' id='dither_a3'></td> + +</tr> +<tr> +<td class='dithers' style='background-image:url(dithers/a30.png)' id='dither_a30'></td> +<td class='dithers' style='background-image:url(dithers/a31.png)' id='dither_a31'></td> +<td class='dithers' style='background-image:url(dithers/a32.png)' id='dither_a32'></td> +<td class='dithers' style='background-image:url(dithers/a33.png)' id='dither_a33'></td> +<td class='dithers' style='background-image:url(dithers/a34.png)' id='dither_a34'></td> +<td class='dithers' style='background-image:url(dithers/a35.png)' id='dither_a35'></td> +<td class='dithers' style='background-image:url(dithers/a36.png)' id='dither_a36'></td> +<td class='dithers' style='background-image:url(dithers/a37.png)' id='dither_a37'></td> +<td class='dithers' style='background-image:url(dithers/a38.png)' id='dither_a38'></td> +<td class='dithers' style='background-image:url(dithers/a39.png)' id='dither_a39'></td> +<td class='dithers' style='background-image:url(dithers/a4.png)' id='dither_a4'></td> +<td class='dithers' style='background-image:url(dithers/a40.png)' id='dither_a40'></td> +<td class='dithers' style='background-image:url(dithers/a41.png)' id='dither_a41'></td> +<td class='dithers' style='background-image:url(dithers/a5.png)' id='dither_a5'></td> +<td class='dithers' style='background-image:url(dithers/a6.png)' id='dither_a6'></td> +<td class='dithers' style='background-image:url(dithers/a7.png)' id='dither_a7'></td> +<td class='dithers' style='background-image:url(dithers/a8.png)' id='dither_a8'></td> +<td class='dithers' style='background-image:url(dithers/a9.png)' id='dither_a9'></td> +</tr> +</table> + +<div class="title"> +testing testing tesitng +</div> + +<div id="sample"> +</div> +<span class="parameter">Image to overlay:</span><input type="text/css" class="image_input" value="Enter an image url here"></input> +<script type="text/javascript" src="jquery.min.js"></script> +<script type="text/javascript"> +function makesample(){ +theheight = $('#dithertable').height() +$('#sample').css({'width':"20%",'height':theheight,'display':'inline-block'}) +} +makesample() +var preview_box = $("#sample") +$('.dithers').click(function(){ + $('.dithers').css({'border-color':'gray','-moz-box-shadow': 'none','-webkit-box-shadow':'none','box-shadow': 'none'}); + $(this).css({'border-color':'#EE0000','-moz-box-shadow': '0px 0px 9px 3px firebrick','-webkit-box-shadow':'0px 0px 9px 3px firebrick','box-shadow': '0px 0px 9px 3px firebrick'}) + var dither = $(this).css("background-image"); + preview_box.css("background-image", dither); + }); +$(".image_input").clicked = false; +$(".image_input").click(function(){ + if(! $(this).clicked){ + $(this).attr("value", ""); + $(this).clicked = true; + } +}) +</script> + + +</body> +</html> + diff --git a/frontend/impattern/index.html b/frontend/impattern/index.html new file mode 100755 index 0000000..b26ded5 --- /dev/null +++ b/frontend/impattern/index.html @@ -0,0 +1,340 @@ +<html> +<head> +<link href='http://fonts.googleapis.com/css?family=Orienta|Roboto' rel='stylesheet' type='text/css'> +<link href='css/normalize.css' rel='stylesheet' type='text/css'> +<link href='css/unsemantic-grid-responsive.css' rel='stylesheet' type='text/css'> +<link href='css/impattern-main.css' rel='stylesheet' type='text/css'/> +<link href='css/overlay.css' rel='stylesheet' type='text/css'/> +<link href='css/sketch.css' rel='stylesheet' type='text/css'/> +<link href='css/result.css' rel='stylesheet' type='text/css'/> +<title>imPattern</title> + +</head> +<body> +<div id="top-row" class="grid-100 mobile-grid-100"> + + <div id="impattern" class="grid-50 mobile-grid-50"> + <img src="img/logo.gif"/> + </div> + <div id="sample" class="grid-50 mobile-grid-50"> + </div> +</div> +<hr> +<div class="grid-100 mobile-grid-100" id="choose_your_pattern"> + <b>FIRST:</b> Choose your pattern: +</div> +</br> +<table class="dithertable" id="dithertable"> +<tr> +<!--{{{--> +<td class='patterns' style='background-image:url(patterns/1.png)' id='dither_1'> </td> +<td class='patterns' style='background-image:url(patterns/10.png)' id='dither_10'> </td> +<td class='patterns' style='background-image:url(patterns/11.png)' id='dither_11'></td> +<td class='patterns' style='background-image:url(patterns/12.png)' id='dither_12'></td> +<td class='patterns' style='background-image:url(patterns/13.png)' id='dither_13'></td> +<td class='patterns' style='background-image:url(patterns/14.png)' id='dither_14'></td> +<td class='patterns' style='background-image:url(patterns/15.png)' id='dither_15'></td> +<td class='patterns' style='background-image:url(patterns/16.png)' id='dither_16'></td> +<td class='patterns' style='background-image:url(patterns/17.png)' id='dither_17'></td> +<td class='patterns' style='background-image:url(patterns/18.png)' id='dither_18'></td> +<td class='patterns' style='background-image:url(patterns/19.png)' id='dither_19'></td> +<td class='patterns' style='background-image:url(patterns/2.png)' id='dither_2'></td> +<td class='patterns' style='background-image:url(patterns/20.png)' id='dither_20'></td> +<td class='patterns' style='background-image:url(patterns/21.png)' id='dither_21'></td> +<td class='patterns' style='background-image:url(patterns/22.png)' id='dither_22'></td> +<td class='patterns' style='background-image:url(patterns/23.png)' id='dither_23'></td> +<td class='patterns' style='background-image:url(patterns/24.png)' id='dither_24'></td> +<td class='patterns' style='background-image:url(patterns/25.png)' id='dither_25'></td> +<td class='patterns' style='background-image:url(patterns/26.png)' id='dither_26'></td> +<td class='patterns' style='background-image:url(patterns/27.png)' id='dither_27'></td> +<td class='patterns' style='background-image:url(patterns/28.png)' id='dither_28'></td> +<td class='patterns' style='background-image:url(patterns/29.png)' id='dither_29'></td> +<td class='patterns' style='background-image:url(patterns/3.png)' id='dither_3'></td> +<td class='patterns' style='background-image:url(patterns/30.png)' id='dither_30'></td> +</tr> +<tr> +<td class='patterns' style='background-image:url(patterns/31.png)' id='dither_31'></td> +<td class='patterns' style='background-image:url(patterns/32.png)' id='dither_32'></td> +<td class='patterns' style='background-image:url(patterns/33.png)' id='dither_33'></td> +<td class='patterns' style='background-image:url(patterns/34.png)' id='dither_34'></td> +<td class='patterns' style='background-image:url(patterns/35.png)' id='dither_35'></td> +<td class='patterns' style='background-image:url(patterns/36.png)' id='dither_36'></td> +<td class='patterns' style='background-image:url(patterns/37.png)' id='dither_37'></td> +<td class='patterns' style='background-image:url(patterns/38.png)' id='dither_38'></td> +<td class='patterns' style='background-image:url(patterns/39.png)' id='dither_39'></td> +<td class='patterns' style='background-image:url(patterns/4.png)' id='dither_4'></td> +<td class='patterns' style='background-image:url(patterns/40.png)' id='dither_40'></td> +<td class='patterns' style='background-image:url(patterns/41.png)' id='dither_41'></td> +<td class='patterns' style='background-image:url(patterns/42.png)' id='dither_42'></td> +<td class='patterns' style='background-image:url(patterns/43.png)' id='dither_43'></td> +<td class='patterns' style='background-image:url(patterns/44.png)' id='dither_44'></td> +<td class='patterns' style='background-image:url(patterns/45.png)' id='dither_45'></td> +<td class='patterns' style='background-image:url(patterns/46.png)' id='dither_46'></td> +<td class='patterns' style='background-image:url(patterns/47.png)' id='dither_47'></td> +<td class='patterns' style='background-image:url(patterns/48.png)' id='dither_48'></td> +<td class='patterns' style='background-image:url(patterns/49.png)' id='dither_49'></td> +<td class='patterns' style='background-image:url(patterns/5.png)' id='dither_5'></td> +<td class='patterns' style='background-image:url(patterns/50.png)' id='dither_50'></td> +<td class='patterns' style='background-image:url(patterns/51.png)' id='dither_51'></td> +<td class='patterns' style='background-image:url(patterns/52.png)' id='dither_52'></td> +</tr> +<tr> + +<td class='patterns' style='background-image:url(patterns/53.png)' id='dither_53'></td> +<td class='patterns' style='background-image:url(patterns/54.png)' id='dither_54'></td> +<td class='patterns' style='background-image:url(patterns/55.png)' id='dither_55'></td> +<td class='patterns' style='background-image:url(patterns/56.png)' id='dither_56'></td> +<td class='patterns' style='background-image:url(patterns/57.png)' id='dither_57'></td> +<td class='patterns' style='background-image:url(patterns/58.png)' id='dither_58'></td> +<td class='patterns' style='background-image:url(patterns/59.png)' id='dither_59'></td> +<td class='patterns' style='background-image:url(patterns/6.png)' id='dither_6'></td> +<td class='patterns' style='background-image:url(patterns/60.png)' id='dither_60'></td> + +<td class='patterns' style='background-image:url(patterns/61.png)' id='dither_61'></td> +<td class='patterns' style='background-image:url(patterns/62.png)' id='dither_62'></td> +<td class='patterns' style='background-image:url(patterns/63.png)' id='dither_63'></td> +<td class='patterns' style='background-image:url(patterns/64.png)' id='dither_64'></td> +<td class='patterns' style='background-image:url(patterns/65.png)' id='dither_65'></td> +<td class='patterns' style='background-image:url(patterns/66.png)' id='dither_66'></td> +<td class='patterns' style='background-image:url(patterns/67.png)' id='dither_67'></td> +<td class='patterns' style='background-image:url(patterns/68.png)' id='dither_68'></td> +<td class='patterns' style='background-image:url(patterns/69.png)' id='dither_69'></td> +<td class='patterns' style='background-image:url(patterns/7.png)' id='dither_7'></td> +<td class='patterns' style='background-image:url(patterns/70.png)' id='dither_70'></td> +<td class='patterns' style='background-image:url(patterns/71.png)' id='dither_71'></td> +<td class='patterns' style='background-image:url(patterns/72.png)' id='dither_72'></td> +<td class='patterns' style='background-image:url(patterns/73.png)' id='dither_73'></td> +<td class='patterns' style='background-image:url(patterns/74.png)' id='dither_74'></td> +</tr> +<tr> +<td class='patterns' style='background-image:url(patterns/75.png)' id='dither_75'></td> +<td class='patterns' style='background-image:url(patterns/76.png)' id='dither_76'></td> +<td class='patterns' style='background-image:url(patterns/77.png)' id='dither_77'></td> +<td class='patterns' style='background-image:url(patterns/78.png)' id='dither_78'></td> +<td class='patterns' style='background-image:url(patterns/79.png)' id='dither_79'></td> +<td class='patterns' style='background-image:url(patterns/8.png)' id='dither_8'></td> +<td class='patterns' style='background-image:url(patterns/80.png)' id='dither_80'></td> +<td class='patterns' style='background-image:url(patterns/81.png)' id='dither_81'></td> +<td class='patterns' style='background-image:url(patterns/82.png)' id='dither_82'></td> +<td class='patterns' style='background-image:url(patterns/83.png)' id='dither_83'></td> +<td class='patterns' style='background-image:url(patterns/84.png)' id='dither_84'></td> +<td class='patterns' style='background-image:url(patterns/85.png)' id='dither_85'></td> +<td class='patterns' style='background-image:url(patterns/86.png)' id='dither_86'></td> +<td class='patterns' style='background-image:url(patterns/87.png)' id='dither_87'></td> +<td class='patterns' style='background-image:url(patterns/88.png)' id='dither_88'></td> +<td class='patterns' style='background-image:url(patterns/89.png)' id='dither_89'></td> +<td class='patterns' style='background-image:url(patterns/9.png)' id='dither_9'></td> +<td class='patterns' style='background-image:url(patterns/90.png)' id='dither_90'></td> +<td class='patterns' style='background-image:url(patterns/91.png)' id='dither_91'></td> +<td class='patterns' style='background-image:url(patterns/92.png)' id='dither_92'></td> +<td class='patterns' style='background-image:url(patterns/93.png)' id='dither_93'></td> +<td class='patterns' style='background-image:url(patterns/94.png)' id='dither_94'></td> +<td class='patterns' style='background-image:url(patterns/95.png)' id='dither_95'></td> +<td class='patterns' style='background-image:url(patterns/96.png)' id='dither_96'></td> + +</tr> +<tr> +<td class='patterns' style='background-image:url(patterns/a0.png)' id='dither_a0'></td> +<td class='patterns' style='background-image:url(patterns/a1.png)' id='dither_a1'></td> +<td class='patterns' style='background-image:url(patterns/a10.png)' id='dither_a10'></td> +<td class='patterns' style='background-image:url(patterns/a11.png)' id='dither_a11'></td> +<td class='patterns' style='background-image:url(patterns/a12.png)' id='dither_a12'></td> +<td class='patterns' style='background-image:url(patterns/a13.png)' id='dither_a13'></td> +<td class='patterns' style='background-image:url(patterns/a14.png)' id='dither_a14'></td> +<td class='patterns' style='background-image:url(patterns/a15.png)' id='dither_a15'></td> +<td class='patterns' style='background-image:url(patterns/a16.png)' id='dither_a16'></td> +<td class='patterns' style='background-image:url(patterns/a17.png)' id='dither_a17'></td> +<td class='patterns' style='background-image:url(patterns/a18.png)' id='dither_a18'></td> +<td class='patterns' style='background-image:url(patterns/a19.png)' id='dither_a19'></td> +<td class='patterns' style='background-image:url(patterns/a2.png)' id='dither_a2'></td> +<td class='patterns' style='background-image:url(patterns/a20.png)' id='dither_a20'></td> +<td class='patterns' style='background-image:url(patterns/a21.png)' id='dither_a21'></td> +<td class='patterns' style='background-image:url(patterns/a22.png)' id='dither_a22'></td> +<td class='patterns' style='background-image:url(patterns/a23.png)' id='dither_a23'></td> +<td class='patterns' style='background-image:url(patterns/a24.png)' id='dither_a24'></td> +<td class='patterns' style='background-image:url(patterns/a25.png)' id='dither_a25'></td> +<td class='patterns' style='background-image:url(patterns/a26.png)' id='dither_a26'></td> +<td class='patterns' style='background-image:url(patterns/a27.png)' id='dither_a27'></td> +<td class='patterns' style='background-image:url(patterns/a28.png)' id='dither_a28'></td> +<td class='patterns' style='background-image:url(patterns/a29.png)' id='dither_a29'></td> +<td class='patterns' style='background-image:url(patterns/a3.png)' id='dither_a3'></td> + +</tr> +<tr> +<td class='patterns' style='background-image:url(patterns/a30.png)' id='dither_a30'></td> +<td class='patterns' style='background-image:url(patterns/a31.png)' id='dither_a31'></td> +<td class='patterns' style='background-image:url(patterns/a32.png)' id='dither_a32'></td> +<td class='patterns' style='background-image:url(patterns/a33.png)' id='dither_a33'></td> +<td class='patterns' style='background-image:url(patterns/a34.png)' id='dither_a34'></td> +<td class='patterns' style='background-image:url(patterns/a35.png)' id='dither_a35'></td> +<td class='patterns' style='background-image:url(patterns/a36.png)' id='dither_a36'></td> +<td class='patterns' style='background-image:url(patterns/a37.png)' id='dither_a37'></td> +<td class='patterns' style='background-image:url(patterns/a38.png)' id='dither_a38'></td> +<td class='patterns' style='background-image:url(patterns/a39.png)' id='dither_a39'></td> +<td class='patterns' style='background-image:url(patterns/a4.png)' id='dither_a4'></td> +<td class='patterns' style='background-image:url(patterns/a40.png)' id='dither_a40'></td> +<td class='patterns' style='background-image:url(patterns/a41.png)' id='dither_a41'></td> +<td class='patterns' style='background-image:url(patterns/a5.png)' id='dither_a5'></td> +<td class='patterns' style='background-image:url(patterns/a6.png)' id='dither_a6'></td> +<td class='patterns' style='background-image:url(patterns/a7.png)' id='dither_a7'></td> +<td class='patterns' style='background-image:url(patterns/a8.png)' id='dither_a8'></td> +<td class='patterns' style='background-image:url(patterns/a9.png)' id='dither_a9'></td> +<!--}}}--> +</tr> +</table> +</br> +</br> +<div class="grid-100 mobile-grid-100" id="create_your_own"> + <b>OR:</b> <a href="">Create your Own</a> pattern... +</div> +<hr> + <div class="grid-100 mobile-grid-100" id="controls"> +<div class="grid-100 mobile-grid-100" id="choose_your_image"> +<b>NEXT:</b> Choose your image: + </div> + <div class="parameter grid-50 mobile-grid-50"> +Image Url:<input type="text/css" class="image_input" value="Enter an image url here"></input> + </div> + <div class="parameter grid-50 mobile-grid-50"> + Photoblaster Username <i>(optional)</i>: <input id="username" value=""></input> + +<!-- Or Upload:<button>Upload</button>--> + </div> + + </div> + <div id="username_wrapper"> + </div> + <div id="submit_wrapper" class="grid-100 mobile-grid-100" > + <button class="grid-33 push-33 mobile-grid-50 big_button" id="submit">ROCK</button> + + </div> +<div class="processing dontshowme"></div> +<div class="result dontshowme"></div> + +<div id="overlay"> + <div id="draw_protector"> + </div> + <div class="close">CLOSE</div> + <div class="content"> +<!-- {{{DRAW--> + <div id="draw"> + <div>Draw an image below. + </br>(Each square will be 1 sq. pixel)</div> + </br> + <div id="canvas_wrapper"> + </div> + <table> + <tr> + <td> + <input size="2" type="text" id="cols" value="10">COLUMNS</input> + </td> + </tr> + <tr> + <td> + <input size="2" type="text" id="rows" value="10">ROWS</input> + </td> + </tr> + </table> + + <div id="tools"> + <div id="brush" class="brush_tools">Brush</div> + <div id="eraser" class="brush_tools">Eraser</div> + </div> + <input type="checkbox" id="show_grid" checked>Show grid?</input> + <button id="drawing_finished">DONE</button> + + </div> +<!-- }}}--> + <div id="final_image"> + <div class="result">Your Result:</div> + <img src=""/> + <div id="links"> + URL:<input type="text" value=""></input> + </br> + </br> + view more at →<a href="http://asdf.us/im/gallery">PHOTOBLASTER GALLERY:</a> + </div> + </div> + </div> +</div> +<script type="text/javascript" src="js/jquery.min.js"></script> +<script type="text/javascript" src="js/urls.js"></script> +<script type="text/javascript" src="js/inputs.js"></script> +<script type="text/javascript" src="js/preview.js"></script> +<script type="text/javascript" src="js/username.js"></script> +<script type="text/javascript" src="js/sketch.js"></script> +<script type="text/javascript" src="js/overlay.js"></script> +<script type="text/javascript"> +function checkForEmptyUrl(){ + if (($('input.image_input').val() == "") + || ( ! ($('input.image_input').val())) + || ( $('input.image_input').attr("clicked") == "false") + ){ + return true; + } + return false; +} + +function checkForEmptyPattern(){ + if ( + ($('.patterns').attr("current_pattern") == "" || ! $('.patterns').attr("current_pattern")) && + window.custom_pattern == "" + ){ + return true; + } + return false; +} + +$(document).ready(function(){ + $("#submit").click(function(){ + + if (checkForEmptyUrl()){ + return alert("Please supply an image url"); + } + if (checkForEmptyPattern()){ + return alert("Please select a pattern"); + } + console.log( + { + 'pattern_data' : JSON.stringify(window.custom_pattern), + 'pattern_url' : $('.patterns').attr("current_pattern"), + 'image_url' : $('input.image_input').val(), + 'username' : $('#username').val(), + } + ); + $(this).prop("disabled", true); + $(this).html("Workin'..."); + $('body').css("background", "url(img/loading.gif)"); + $.ajax({ + type: "POST", + url: PROCESS_URL, + data: { + 'pattern_data' : JSON.stringify(window.custom_pattern), + 'pattern_url' : $('.patterns').attr("current_pattern"), + 'image_url' : $('input.image_input').val(), + 'username' : $('#username').val(), + } + }).done(function( msg ) { + msg = JSON.parse(msg) + $('#submit').prop("disabled", false); + $('#submit').html("ROCK"); + $('body').css("background", "url(img/loading.gif)"); + $('body').css("background", "white"); + if (msg.error){ + alert( "There was an error processing your request "); + console.log(msg); + } + console.log(msg) + console.log("new url: "+msg.url); + update_username($("#username").val()); + show_finished_image(msg.url); + }) + + }); +}) +</script> + +<div id="acknowledgments">site by pepper...thanks to jules (<a href="http://asdf.us/ascii">http://asdf.us/ascii</a>) and timb (superpaint...RIP)</div> +</body> +</html> + diff --git a/frontend/impattern/js/display_result.js b/frontend/impattern/js/display_result.js new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/frontend/impattern/js/display_result.js @@ -0,0 +1 @@ + diff --git a/frontend/impattern/js/inputs.js b/frontend/impattern/js/inputs.js new file mode 100644 index 0000000..69cd2d3 --- /dev/null +++ b/frontend/impattern/js/inputs.js @@ -0,0 +1,26 @@ +$('.patterns').attr("current_pattern", ""); +$('.patterns').click(function(){ + window.custom_pattern = ""; + $('.patterns').css({'border-color':'gray', + '-moz-box-shadow': 'none', + '-webkit-box-shadow':'none', + 'box-shadow': 'none' + }); + $(this).css({'border-color':'#EE0000', + '-moz-box-shadow': '0px 0px 9px 3px firebrick', + '-webkit-box-shadow':'0px 0px 9px 3px firebrick', + 'box-shadow': '0px 0px 9px 3px firebrick' + }) + + selected_pattern = /url\((.+)\)$/.exec($(this).css("background-image"))[1]; + preview_controller.from_image(selected_pattern) + $('.patterns').attr("current_pattern", selected_pattern); + }); +$("input.image_input").attr("clicked", false); +$("input.image_input").click(function(){ + if(! $(this).clicked){ + $(this).attr("value", ""); + $(this).attr("clicked",true); + } +}) + diff --git a/frontend/impattern/js/jquery.min.js b/frontend/impattern/js/jquery.min.js new file mode 100644 index 0000000..b2ac174 --- /dev/null +++ b/frontend/impattern/js/jquery.min.js @@ -0,0 +1,18 @@ +/*! + * jQuery JavaScript Library v1.6.1 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu May 12 15:04:36 2011 -0400 + */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("<!doctype><html><body></body></html>");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bF.test(a)?d(a,e):b_(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bU,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bQ),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bD(a,b,c){var d=b==="width"?bx:by,e=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return e;f.each(d,function(){c||(e-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?e+=parseFloat(f.css(a,"margin"+this))||0:e-=parseFloat(f.css(a,"border"+this+"Width"))||0});return e}function bn(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bm(a){f.nodeName(a,"input")?bl(a):a.getElementsByTagName&&f.grep(a.getElementsByTagName("input"),bl)}function bl(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bk(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bj(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bi(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bh(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function X(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(S.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(y,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:E?function(a){return a==null?"":E.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?C.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(F)return F.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=D.call(arguments,2),g=function(){return a.apply(c,f.concat(D.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){G["[object "+b+"]"]=b.toLowerCase()}),x=e.uaMatch(w),x.browser&&(e.browser[x.browser]=!0,e.browser.version=x.version),e.browser.webkit&&(e.browser.safari=!0),j.test("Â ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?z=function(){c.removeEventListener("DOMContentLoaded",z,!1),e.ready()}:c.attachEvent&&(z=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",z),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.addClass(a.call(this,b,c.attr("class")||""))});if(a&&typeof a=="string"){var b=(a||"").split(o);for(var c=0,d=this.length;c<d;c++){var e=this[c];if(e.nodeType===1)if(!e.className)e.className=a;else{var g=" "+e.className+" ",h=e.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);e.className=f.trim(h)}}}return this},removeClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a=="string"||a===b){var c=(a||"").split(o);for(var d=0,e=this.length;d<e;d++){var g=this[d];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(n," ");for(var i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){var d=f(this);d.toggleClass(a.call(this,c,d.attr("class"),b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem +)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,O(a.origType,a.selector),f.extend({},a,{handler:N,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,O(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?F:E):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=F;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=F;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=F,this.stopPropagation()},isDefaultPrevented:E,isPropagationStopped:E,isImmediatePropagationStopped:E};var G=function(a){var b=a.relatedTarget;a.type=a.data;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&f.event.handle.apply(this,arguments)}catch(d){}},H=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?H:G,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?H:G)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&L("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&L("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var I,J=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var M={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||E,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=y.exec(h),k="",j&&(k=j[0],h=h.replace(y,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,M[h]?(a.push(M[h]+k),h=h+k):h=(M[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+O(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+O(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var P=/Until$/,Q=/^(?:parents|prevUntil|prevAll)/,R=/,/,S=/^.[^:#\[\.,]*$/,T=Array.prototype.slice,U=f.expr.match.POS,V={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(X(this,a,!1),"not",a)},filter:function(a){return this.pushStack(X(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=U.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/<tbody/i,bb=/<|&#?\w+;/,bc=/<(?:script|object|embed|option|style)/i,bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bh(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bn)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bc.test(a[0])&&(f.support.checkClone||!bd.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument|| +b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1></$2>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bm(k[i]);else bm(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bo=/alpha\([^)]*\)/i,bp=/opacity=([^)]*)/,bq=/-([a-z])/ig,br=/([A-Z]|^ms)/g,bs=/^-?\d+(?:px)?$/i,bt=/^-?\d/,bu=/^[+\-]=/,bv=/[^+\-\.\de]+/g,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB,bC=function(a,b){return b.toUpperCase()};f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0,widows:!0,orphans:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bu.test(d)&&(d=+d.replace(bv,"")+parseFloat(f.css(a,c))),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bq,bC)}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){a.offsetWidth!==0?e=bD(a,b,d):f.swap(a,bw,function(){e=bD(a,b,d)});if(e<=0){e=bz(a,b,b),e==="0px"&&bB&&(e=bB(a,b,b));if(e!=null)return e===""||e==="auto"?"0px":e}if(e<0||e==null){e=a.style[b];return e===""||e==="auto"?"0px":e}return typeof e=="string"?e:e+"px"}},set:function(a,b){if(!bs.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cv(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cm.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=cn.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this),f.isFunction(d.old)&&d.old.call(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cq||cs(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!co&&(cr?(co=1,g=function(){co&&(cr(g),e.tick())},cr(g)):co=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cq||cs(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
\ No newline at end of file diff --git a/frontend/impattern/js/overlay.js b/frontend/impattern/js/overlay.js new file mode 100644 index 0000000..49a70d1 --- /dev/null +++ b/frontend/impattern/js/overlay.js @@ -0,0 +1,19 @@ +$("#overlay > .close").click(function(){ + $("#overlay").hide(); +}); +$('document').ready(function(){ + $("#overlay").click( function(){ + if( event.target == this ){ + $("#overlay").hide(); + return false; + } + }); +}) +function show_finished_image(image_url){ + $("#overlay").show(); + $("#draw_protector").hide(); + $('#final_image > img').attr("src", image_url); + $('#links > input').attr("value", image_url); + $("#final_image").show(); +} + diff --git a/frontend/impattern/js/preview.js b/frontend/impattern/js/preview.js new file mode 100644 index 0000000..0800308 --- /dev/null +++ b/frontend/impattern/js/preview.js @@ -0,0 +1,47 @@ +function Preview(){ + var that = this; + this.preview_div = document.querySelectorAll('#sample')[0]; +// this.canvas = document.querySelectorAll('canvas')[0] +// this.ctx = this.canvas.getContext('2d'); + this.pat = "" + this._fill_preview = function(pat){ + this.preview_div.style.background = 'url('+pat+')' + } +//{{{ +// this._fill_preview = function(pat){ +// that.ctx.fillStyle = that.ctx.createPattern(pat, "repeat") +// that.ctx.fillRect( +// 0, 0, +// that.canvas.width, +// that.canvas.height +// ) +// } +// }}} + this.from_matrix = function(data){ + var pat = document.createElement("canvas"); + pat.height = data.height + pat.width = data.width + var pat_ctx = pat.getContext('2d') + for (var h = 0; h< data.height; h++){ + for (var i = 0; i < data.width; i++){ + if (parseInt(data.matrix[h][i])){ + pat_ctx.fillRect(i, h, 1, 1) + }else{ + pat_ctx.clearRect(i, h, 1, 1) + } + } + } + + that._fill_preview(pat.toDataURL()) + } + this.from_image = function(url){ + var pat = document.createElement("img"); + pat.src = url + pat.onload = function(){ + that._fill_preview(pat.src) + } + } +} +$(document).ready(function(){ + window.preview_controller = new Preview() +}) diff --git a/frontend/impattern/js/sketch.js b/frontend/impattern/js/sketch.js new file mode 100644 index 0000000..ec78489 --- /dev/null +++ b/frontend/impattern/js/sketch.js @@ -0,0 +1,219 @@ +//dragging event + +var COLUMNS_MAX = 20; +var ROWS_MAX = 20; +var isDragging = false; +$("body").mousedown(function() { + $(window).mousemove(function() { + isDragging = true; + $(window).unbind("mousemove"); + }); +}).mouseup(function() { + var wasDragging = isDragging; + isDragging = false; + $(window).unbind("mousemove"); + if (!wasDragging) { //was clicking + } +}); + +var c; + +window.active_tool = "brush"; +var brush_tools; + + + +function BrushTools(){ + var brushtools = this; + this.brush = $("#brush"); + this.eraser = $("#eraser"); + this.brush_tools = $(".brush_tools"); + this.active_css = { + "border" : "1px solid black", + "background" : "gray", + "color" : "white", + }, + this.inactive_css = { + "border" : "1px solid gray", + "background" : "whitesmoke", + "color" : "black", + }; + this.activate = function(elem){ + $(elem).css(this.active_css); + window.active_tool = $(elem).attr("id"); + }; + this.deactivate = function(elem){ + $(elem).css(this.inactive_css); + }; +// this.cursors = { +// "brush" : "img/brush.png", +// "eraser" : "img/eraser.png", +// }; + this.brush_tools.click(function(){ + var that = this; + window.active_tool = $(this).attr("id"); + brushtools.activate(that); + brushtools.brush_tools.each(function(){ + if(this != that){ + brushtools.deactivate(this); + } + }); +// $("#canvas_wrapper").css( +// "cursor" , "url("+brushtools.cursors[window.active_tool]+")" +// ) + }); +} + + + + +function GridCanvas(){ + var gridcanvas = this; + this.rows = 10; + this.cols = 10; + this.current_rows = []; + this.container = $("#canvas_wrapper"); + this.paint = function(elem){ + $(elem).attr("painted", "1"); + $(elem).css("background", "black"); + }; + this.erase = function(elem){ + $(elem).attr("painted", "0"); + $(elem).css("background", "white"); + }; + this.initialize = function(cols, rows){ + this.container.html(""); + this.rows = (rows > 0) ? rows : 1; + this.cols = (cols > 0) ? cols : 1; + if (this.rows > ROWS_MAX){ + this.rows = ROWS_MAX; + } + if (this.cols > COLUMNS_MAX){ + this.cols = COLUMNS_MAX; + } + this.cols = cols; + for (var i = 0; i< this.rows; i++){ + var row = document.createElement("div"); + $(row).attr("id", "row_"+i) + $(row).addClass("canvas_row") + for (var j = 0; j< this.cols; j++){ + var cell = document.createElement("span"); + $(cell).addClass("canvas_cell") + $(cell).attr("painted", "0") + $(cell).addClass("column_"+j) + $(cell).html(" ") + $(cell).click(function(){ + if (window.active_tool == 'brush'){ + gridcanvas.paint(this); + }else if(window.active_tool == 'eraser'){ + gridcanvas.erase(this); + } + }); + $(cell).mouseover(function(){ + if (isDragging){ + if (window.active_tool == 'brush'){ + gridcanvas.paint(this); + }else if(window.active_tool == 'eraser'){ + gridcanvas.erase(this); + } + } + }); + $(row).append(cell) + } + this.container.append(row) + } + } + this.toggleGrid = function(){ + if ($("#show_grid").prop("checked")){ + $(".canvas_cell").css("border","1px solid silver"); + }else{ + $(".canvas_cell").css("border","none"); + } + } + this.serialize = function(){ + var matrix = []; + for (var i = 0; i < this.rows; i++){ + var row_storage = []; + $("#row_"+i+"> span").each(function(){ + row_storage.push($(this).attr("painted")); + }); + matrix.push(row_storage); + } + return { + "matrix" : matrix, + "width" : this.cols, + "height" : this.rows, + } + } +} +$("#cols").change(function(){ + var cols = $(this).val() + c.initialize(cols, c.rows); +}); +$("#rows").change(function(){ + var rows = $(this).val() + c.initialize(c.cols, rows); +}); + +$('document').ready(function(){ + $("#create_your_own").click(function(){ + event.preventDefault(); + + $("#draw_protector").show(); + $("#overlay > .close").html("CANCEL"); + $("#overlay").show(); + $("#draw").show(); + $("#final_image").hide(); + }); + $("#overlay > .close").click(function(){ + $("#draw").hide(); + }); + + c = new GridCanvas() + brush_tools = new BrushTools(); + c.initialize($("#cols").val(), $("#rows").val()); + $("#show_grid").change(function(){ + c.toggleGrid(); + }); + $("#drawing_finished").click(function(){ + + window.custom_pattern = c.serialize(); + preview_controller.from_matrix(window.custom_pattern) + $('.patterns').attr("current_pattern", ""); + $('#drawing_finished').prop("disabled", false); + $('#drawing_finished').html("DONE"); + $("#draw_protector").css("background", "none"); + $("#draw").hide(); + $("#overlay").hide(); + console.log(window.custom_pattern) + }); + +}); +window.custom_pattern = ""; + +$('#drawing_finished').click(function(){ +// $("#draw_protector").css("background", "url(img/loading.gif)"); +// $(this).prop("disabled", true); +// $(this).html("Workin'..."); +// $.ajax({ +// type: "POST", +// url: NEW_PATTERN_URL, +// data: { json : JSON.stringify(c.serialize()) }, +// }).done(function( msg ) { +// $('#drawing_finished').prop("disabled", false); +// $('#drawing_finished').html("DONE"); +// $("#draw_protector").css("background", "none"); +// var error = msg.match(/ERR/ig); +// if (error){ +// alert( "There was an error processing your request "); +// return +// } +// $("#draw").hide(); +// $("#overlay").hide(); +// var parts = msg.split("\n") +// window.custom_pattern = "http://i.asdf.us/patterns/"+parts[0] +// $('#sample').css("background", "url("+window.custom_pattern+")"); +// }) + +}); + diff --git a/frontend/impattern/js/urls.js b/frontend/impattern/js/urls.js new file mode 100644 index 0000000..3ba94ce --- /dev/null +++ b/frontend/impattern/js/urls.js @@ -0,0 +1,3 @@ +var PROCESS_URL = '/im/api/impattern' +//var PATTERNS_URL = '/cgi-bin/im/getpatterns' +//var NEW_PATTERN_URL = '/cgi-bin/im/newpattern' diff --git a/frontend/impattern/js/username.js b/frontend/impattern/js/username.js new file mode 100644 index 0000000..eb89ed0 --- /dev/null +++ b/frontend/impattern/js/username.js @@ -0,0 +1,30 @@ +$(document).ready(function(){ + var name = get_name_from_cookie() + $("#username").val(name) +}); + +function get_name_from_cookie() + { + if (document.cookie) + { + var cookies = document.cookie.split(";") + for (i in cookies) + { + var cookie = cookies[i].split("=") + if (cookie[0].indexOf("imname") !== -1) + { + if (cookie[1] !== 'false' && cookie[1] !== 'undefined' && cookie[1].length) + { + return cookie[1] + } + } + } + } + return "" +}; + +function update_username(username){ + if (username.length > 0){ + document.cookie = "imname="+username+";path=/;domain=.asdf.us;max-age=1086400" + } +} diff --git a/frontend/impattern/makePattern.py b/frontend/impattern/makePattern.py new file mode 100755 index 0000000..98d298b --- /dev/null +++ b/frontend/impattern/makePattern.py @@ -0,0 +1,111 @@ +#!/usr/bin/python2.7 + +import sys +import cgi +from os import getpid, path +from subprocess import call, Popen, PIPE +import time + +MAIN_DIRECTORY = "" +BIN_CONVERT = "convert" +BIN_IDENTIFY = "identify" +BIN_COMPOSITE = "composite" +ACCEPTABLE_FILE_TYPES = [".png", ".jpg", ".gif", ".jpeg"] + +def usage(): + sys.stderr.write("$>makePattern.py [ input_file ] [ pattern_file ] [ username ]"); + +def now(): + return str(int(time.time())) + +def image_dimensions_and_test(filename): + ident = Popen([BIN_IDENTIFY, filename], stdout=PIPE).communicate()[0] + partz = ident.split(" ") + filetype = "."+partz[1] + size = partz[6] + if filetype.lower() not in ACCEPTABLE_FILE_TYPES: + error("file was not an image") + return partz[2].split("x") + +def error(s): + " returns an error and exits the program " + print("ERROR: "+s) + exit(1) + +def hexdir(filename): + " creates a two-letter directory name " + return sha1(filename.encode()).hexdigest()[:2] +#repage command convert original.png -resize 425x92 -repage 425x92+0+0 new.png + +class Pattern: + + def __init__(self): + self.nametag = "imPattern"; + self.pid = str(getpid()) + self.pattern_file = ""; + self.original_file = ""; + self.username = ""; + self.commands = []; + + def makeResultFilename(self): + file_base, extension = path.splitext(self.original_file) + if len(file_base) > self.MAX_NAME_LENGTH: + file_base = file_base[0:self.MAX_NAME_LENGTH] + return "%s_%s_%s%s%s" % (file_base, self.username, self.nametag, now(), extension) + + #first step + def makeCanvas(self): + call([BIN_CONVERT,"-size",self.dimensions[0]+"x"+self.dimensions[1],"canvas:transparent", self.canvas_file]) + + #second step use the Canvas as a background + def makeMask(self): + #tile the pattern pattern on the canvas + command = [BIN_COMPOSITE,"-tile", self.pattern_file, self.canvas_file, self.mask_file]; + call(command) + self.commands.append(command) + #fuse the tiled file to create a mask + #convert thebg.gif -compose Dst_In null: thefile.gif -matte -layers composite new.gif + command = [BIN_CONVERT, self.mask_file, "-compose", "Dst_In", "null:", self.original_file, "-matte", "-layers", "composite", self.mask_file] + call(command) + + #cleanup + call(["rm", self.canvas_file]) + + #third step + def fuseMask(self, fuse_mode="Pin_Light"): + call([BIN_CONVERT, self.mask_file, "null:", self.original_file, "-matte", "-compose", fuse_mode, "-layers", "composite", self.result_file]) + call(["rm", self.mask_file]) + + def main(self, input_file_path, pattern_file, username=""): + self.pattern_file = pattern_file; + self.original_file = input_file_path; + self.username = username; + self.MAX_NAME_LENGTH = 10; + + self.image_format = self.original_file.split(".")[-1] + self.dimensions = "" + try: + self.dimensions = image_dimensions_and_test(self.original_file); + except Exception as e: + sys.stderr.write(str(e)); + error("Unable to determine dimensions") + self.canvas_file = self.pid+"blank_canvas.png"; + self.makeCanvas(); + self.mask_file = self.pid+"mask_file"+"."+self.image_format; + self.makeMask(); + self.result_file = self.makeResultFilename(); + self.fuseMask(); + +if __name__ == "__main__": + p = Pattern(); + if len(sys.argv) < 2 or len(sys.argv) > 3: + usage(); + sys.exit(0); + input_file_path = sys.argv[1] + pattern_file = sys.argv[2] + username = ""; +# username = sys.argv[3] + print input_file_path; + print pattern_file; + print username; + p.main(input_file_path, pattern_file, username); diff --git a/frontend/impattern/myjson.json b/frontend/impattern/myjson.json new file mode 100644 index 0000000..ac685e7 --- /dev/null +++ b/frontend/impattern/myjson.json @@ -0,0 +1 @@ +{"matrix":[["0","0","0","0","0","0","0","0","0","0"],["0","0","0","1","1","0","0","0","0","0"],["0","0","1","1","0","0","0","0","0","0"],["0","0","1","1","1","1","0","0","0","0"],["0","1","1","0","0","0","0","0","0","0"],["1","0","0","0","0","0","0","0","0","0"],["1","1","1","1","1","1","1","1","1","1"],["0","0","0","0","0","1","1","0","0","1"],["0","0","0","0","0","0","1","0","1","1"],["0","0","0","0","0","0","0","1","1","0"]],"width":"10","height":"10"} diff --git a/frontend/impattern/newimagefromjson.py b/frontend/impattern/newimagefromjson.py new file mode 100644 index 0000000..5f62bd1 --- /dev/null +++ b/frontend/impattern/newimagefromjson.py @@ -0,0 +1,26 @@ +#!/usr/bin/python2.7 +import simplejson as json +from PIL import Image +import sys + +f = open("myjson.json", 'r'); +myjson = f.read(); +f.close(); + +specs = json.loads(myjson); +img = Image.new('RGBA', (int(specs['width']), int(specs['height']))); + +def boolToColor(boolean): + if boolean: + return (0,0,0,255); + else: + return (255,255,255,0) + +pixels = img.load(); +#for i in range(0, 9, 2): +# dosomething(i) +for i in range(0, len(specs['matrix'])): + for j in range(0, len(specs['matrix'][i])): + pixels[j,i] = boolToColor(int(specs['matrix'][i][j])); + +img.save("myimage.png", "PNG") diff --git a/frontend/impattern/old/bottle.py b/frontend/impattern/old/bottle.py new file mode 100644 index 0000000..40a858d --- /dev/null +++ b/frontend/impattern/old/bottle.py @@ -0,0 +1,3605 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +""" +Bottle is a fast and simple micro-framework for small web applications. It +offers request dispatching (Routes) with url parameter support, templates, +a built-in HTTP Server and adapters for many third party WSGI/HTTP-server and +template engines - all in a single file and with no dependencies other than the +Python Standard Library. + +Homepage and documentation: http://bottlepy.org/ + +Copyright (c) 2012, Marcel Hellkamp. +License: MIT (see LICENSE for details) +""" + +from __future__ import with_statement + +__author__ = 'Marcel Hellkamp' +__version__ = '0.12-dev' +__license__ = 'MIT' + +# The gevent server adapter needs to patch some modules before they are imported +# This is why we parse the commandline parameters here but handle them later +if __name__ == '__main__': + from optparse import OptionParser + _cmd_parser = OptionParser(usage="usage: %prog [options] package.module:app") + _opt = _cmd_parser.add_option + _opt("--version", action="store_true", help="show version number.") + _opt("-b", "--bind", metavar="ADDRESS", help="bind socket to ADDRESS.") + _opt("-s", "--server", default='wsgiref', help="use SERVER as backend.") + _opt("-p", "--plugin", action="append", help="install additional plugin/s.") + _opt("--debug", action="store_true", help="start server in debug mode.") + _opt("--reload", action="store_true", help="auto-reload on file changes.") + _cmd_options, _cmd_args = _cmd_parser.parse_args() + if _cmd_options.server and _cmd_options.server.startswith('gevent'): + import gevent.monkey; gevent.monkey.patch_all() + +import base64, cgi, email.utils, functools, hmac, imp, itertools, mimetypes,\ + os, re, subprocess, sys, tempfile, threading, time, warnings + +from datetime import date as datedate, datetime, timedelta +from tempfile import TemporaryFile +from traceback import format_exc, print_exc +from inspect import getargspec + +try: from simplejson import dumps as json_dumps, loads as json_lds +except ImportError: # pragma: no cover + try: from json import dumps as json_dumps, loads as json_lds + except ImportError: + try: from django.utils.simplejson import dumps as json_dumps, loads as json_lds + except ImportError: + def json_dumps(data): + raise ImportError("JSON support requires Python 2.6 or simplejson.") + json_lds = json_dumps + + + +# We now try to fix 2.5/2.6/3.1/3.2 incompatibilities. +# It ain't pretty but it works... Sorry for the mess. + +py = sys.version_info +py3k = py >= (3, 0, 0) +py25 = py < (2, 6, 0) +py31 = (3, 1, 0) <= py < (3, 2, 0) + +# Workaround for the missing "as" keyword in py3k. +def _e(): return sys.exc_info()[1] + +# Workaround for the "print is a keyword/function" Python 2/3 dilemma +# and a fallback for mod_wsgi (resticts stdout/err attribute access) +try: + _stdout, _stderr = sys.stdout.write, sys.stderr.write +except IOError: + _stdout = lambda x: sys.stdout.write(x) + _stderr = lambda x: sys.stderr.write(x) + +# Lots of stdlib and builtin differences. +if py3k: + import http.client as httplib + import _thread as thread + from urllib.parse import urljoin, SplitResult as UrlSplitResult + from urllib.parse import urlencode, quote as urlquote, unquote as urlunquote + urlunquote = functools.partial(urlunquote, encoding='latin1') + from http.cookies import SimpleCookie + from collections import MutableMapping as DictMixin + import pickle + from io import BytesIO + from configparser import ConfigParser + basestring = str + unicode = str + json_loads = lambda s: json_lds(touni(s)) + callable = lambda x: hasattr(x, '__call__') + imap = map + def _raise(*a): raise a[0](a[1]).with_traceback(a[2]) +else: # 2.x + import httplib + import thread + from urlparse import urljoin, SplitResult as UrlSplitResult + from urllib import urlencode, quote as urlquote, unquote as urlunquote + from Cookie import SimpleCookie + from itertools import imap + import cPickle as pickle + from StringIO import StringIO as BytesIO + from ConfigParser import SafeConfigParser as ConfigParser + if py25: + msg = "Python 2.5 support may be dropped in future versions of Bottle." + warnings.warn(msg, DeprecationWarning) + from UserDict import DictMixin + def next(it): return it.next() + bytes = str + else: # 2.6, 2.7 + from collections import MutableMapping as DictMixin + json_loads = json_lds + eval(compile('def _raise(*a): raise a[0], a[1], a[2]', '<py3fix>', 'exec')) + +# Some helpers for string/byte handling +def tob(s, enc='utf8'): + return s.encode(enc) if isinstance(s, unicode) else bytes(s) +def touni(s, enc='utf8', err='strict'): + return s.decode(enc, err) if isinstance(s, bytes) else unicode(s) +tonat = touni if py3k else tob + +# 3.2 fixes cgi.FieldStorage to accept bytes (which makes a lot of sense). +# 3.1 needs a workaround. +if py31: + from io import TextIOWrapper + class NCTextIOWrapper(TextIOWrapper): + def close(self): pass # Keep wrapped buffer open. + + +# A bug in functools causes it to break if the wrapper is an instance method +def update_wrapper(wrapper, wrapped, *a, **ka): + try: functools.update_wrapper(wrapper, wrapped, *a, **ka) + except AttributeError: pass + + + +# These helpers are used at module level and need to be defined first. +# And yes, I know PEP-8, but sometimes a lower-case classname makes more sense. + +def depr(message, hard=False): + warnings.warn(message, DeprecationWarning, stacklevel=3) + +def makelist(data): # This is just to handy + if isinstance(data, (tuple, list, set, dict)): return list(data) + elif data: return [data] + else: return [] + + +class DictProperty(object): + ''' Property that maps to a key in a local dict-like attribute. ''' + def __init__(self, attr, key=None, read_only=False): + self.attr, self.key, self.read_only = attr, key, read_only + + def __call__(self, func): + functools.update_wrapper(self, func, updated=[]) + self.getter, self.key = func, self.key or func.__name__ + return self + + def __get__(self, obj, cls): + if obj is None: return self + key, storage = self.key, getattr(obj, self.attr) + if key not in storage: storage[key] = self.getter(obj) + return storage[key] + + def __set__(self, obj, value): + if self.read_only: raise AttributeError("Read-Only property.") + getattr(obj, self.attr)[self.key] = value + + def __delete__(self, obj): + if self.read_only: raise AttributeError("Read-Only property.") + del getattr(obj, self.attr)[self.key] + + +class cached_property(object): + ''' A property that is only computed once per instance and then replaces + itself with an ordinary attribute. Deleting the attribute resets the + property. ''' + + def __init__(self, func): + self.__doc__ = getattr(func, '__doc__') + self.func = func + + def __get__(self, obj, cls): + if obj is None: return self + value = obj.__dict__[self.func.__name__] = self.func(obj) + return value + + +class lazy_attribute(object): + ''' A property that caches itself to the class object. ''' + def __init__(self, func): + functools.update_wrapper(self, func, updated=[]) + self.getter = func + + def __get__(self, obj, cls): + value = self.getter(cls) + setattr(cls, self.__name__, value) + return value + + + + + + +############################################################################### +# Exceptions and Events ######################################################## +############################################################################### + + +class BottleException(Exception): + """ A base class for exceptions used by bottle. """ + pass + + + + + + +############################################################################### +# Routing ###################################################################### +############################################################################### + + +class RouteError(BottleException): + """ This is a base class for all routing related exceptions """ + + +class RouteReset(BottleException): + """ If raised by a plugin or request handler, the route is reset and all + plugins are re-applied. """ + +class RouterUnknownModeError(RouteError): pass + + +class RouteSyntaxError(RouteError): + """ The route parser found something not supported by this router. """ + + +class RouteBuildError(RouteError): + """ The route could not be built. """ + + +def _re_flatten(p): + ''' Turn all capturing groups in a regular expression pattern into + non-capturing groups. ''' + if '(' not in p: return p + return re.sub(r'(\\*)(\(\?P<[^>]+>|\((?!\?))', + lambda m: m.group(0) if len(m.group(1)) % 2 else m.group(1) + '(?:', p) + + +class Router(object): + ''' A Router is an ordered collection of route->target pairs. It is used to + efficiently match WSGI requests against a number of routes and return + the first target that satisfies the request. The target may be anything, + usually a string, ID or callable object. A route consists of a path-rule + and a HTTP method. + + The path-rule is either a static path (e.g. `/contact`) or a dynamic + path that contains wildcards (e.g. `/wiki/<page>`). The wildcard syntax + and details on the matching order are described in docs:`routing`. + ''' + + default_pattern = '[^/]+' + default_filter = 're' + + #: The current CPython regexp implementation does not allow more + #: than 99 matching groups per regular expression. + _MAX_GROUPS_PER_PATTERN = 99 + + def __init__(self, strict=False): + self.rules = [] # All rules in order + self._groups = {} # index of regexes to find them in dyna_routes + self.builder = {} # Data structure for the url builder + self.static = {} # Search structure for static routes + self.dyna_routes = {} + self.dyna_regexes = {} # Search structure for dynamic routes + #: If true, static routes are no longer checked first. + self.strict_order = strict + self.filters = { + 're': lambda conf: + (_re_flatten(conf or self.default_pattern), None, None), + 'int': lambda conf: (r'-?\d+', int, lambda x: str(int(x))), + 'float': lambda conf: (r'-?[\d.]+', float, lambda x: str(float(x))), + 'path': lambda conf: (r'.+?', None, None)} + + def add_filter(self, name, func): + ''' Add a filter. The provided function is called with the configuration + string as parameter and must return a (regexp, to_python, to_url) tuple. + The first element is a string, the last two are callables or None. ''' + self.filters[name] = func + + rule_syntax = re.compile('(\\\\*)'\ + '(?:(?::([a-zA-Z_][a-zA-Z_0-9]*)?()(?:#(.*?)#)?)'\ + '|(?:<([a-zA-Z_][a-zA-Z_0-9]*)?(?::([a-zA-Z_]*)'\ + '(?::((?:\\\\.|[^\\\\>]+)+)?)?)?>))') + + def _itertokens(self, rule): + offset, prefix = 0, '' + for match in self.rule_syntax.finditer(rule): + prefix += rule[offset:match.start()] + g = match.groups() + if len(g[0])%2: # Escaped wildcard + prefix += match.group(0)[len(g[0]):] + offset = match.end() + continue + if prefix: + yield prefix, None, None + name, filtr, conf = g[4:7] if g[2] is None else g[1:4] + yield name, filtr or 'default', conf or None + offset, prefix = match.end(), '' + if offset <= len(rule) or prefix: + yield prefix+rule[offset:], None, None + + def add(self, rule, method, target, name=None): + ''' Add a new rule or replace the target for an existing rule. ''' + anons = 0 # Number of anonymous wildcards found + keys = [] # Names of keys + pattern = '' # Regular expression pattern with named groups + filters = [] # Lists of wildcard input filters + builder = [] # Data structure for the URL builder + is_static = True + + for key, mode, conf in self._itertokens(rule): + if mode: + is_static = False + if mode == 'default': mode = self.default_filter + mask, in_filter, out_filter = self.filters[mode](conf) + if not key: + pattern += '(?:%s)' % mask + key = 'anon%d' % anons + anons += 1 + else: + pattern += '(?P<%s>%s)' % (key, mask) + keys.append(key) + if in_filter: filters.append((key, in_filter)) + builder.append((key, out_filter or str)) + elif key: + pattern += re.escape(key) + builder.append((None, key)) + + self.builder[rule] = builder + if name: self.builder[name] = builder + + if is_static and not self.strict_order: + self.static.setdefault(method, {}) + self.static[method][self.build(rule)] = (target, None) + return + + try: + re_pattern = re.compile('^(%s)$' % pattern) + re_match = re_pattern.match + except re.error: + raise RouteSyntaxError("Could not add Route: %s (%s)" % (rule, _e())) + + if filters: + def getargs(path): + url_args = re_match(path).groupdict() + for name, wildcard_filter in filters: + try: + url_args[name] = wildcard_filter(url_args[name]) + except ValueError: + raise HTTPError(400, 'Path has wrong format.') + return url_args + elif re_pattern.groupindex: + def getargs(path): + return re_match(path).groupdict() + else: + getargs = None + + flatpat = _re_flatten(pattern) + whole_rule = (rule, flatpat, target, getargs) + + if (flatpat, method) in self._groups: + if DEBUG: + msg = 'Route <%s %s> overwrites a previously defined route' + warnings.warn(msg % (method, rule), RuntimeWarning) + self.dyna_routes[method][self._groups[flatpat, method]] = whole_rule + else: + self.dyna_routes.setdefault(method, []).append(whole_rule) + self._groups[flatpat, method] = len(self.dyna_routes[method]) - 1 + + self._compile(method) + + def _compile(self, method): + all_rules = self.dyna_routes[method] + comborules = self.dyna_regexes[method] = [] + maxgroups = self._MAX_GROUPS_PER_PATTERN + for x in range(0, len(all_rules), maxgroups): + some = all_rules[x:x+maxgroups] + combined = (flatpat for (_, flatpat, _, _) in some) + combined = '|'.join('(^%s$)' % flatpat for flatpat in combined) + combined = re.compile(combined).match + rules = [(target, getargs) for (_, _, target, getargs) in some] + comborules.append((combined, rules)) + + def build(self, _name, *anons, **query): + ''' Build an URL by filling the wildcards in a rule. ''' + builder = self.builder.get(_name) + if not builder: raise RouteBuildError("No route with that name.", _name) + try: + for i, value in enumerate(anons): query['anon%d'%i] = value + url = ''.join([f(query.pop(n)) if n else f for (n,f) in builder]) + return url if not query else url+'?'+urlencode(query) + except KeyError: + raise RouteBuildError('Missing URL argument: %r' % _e().args[0]) + + def match(self, environ): + ''' Return a (target, url_agrs) tuple or raise HTTPError(400/404/405). ''' + verb = environ['REQUEST_METHOD'].upper() + path = environ['PATH_INFO'] or '/' + target = None + methods = [verb, 'GET', 'ANY'] if verb == 'HEAD' else [verb, 'ANY'] + + for method in methods: + if method in self.static and path in self.static[method]: + target, getargs = self.static[method][path] + return target, getargs(path) if getargs else {} + elif method in self.dyna_regexes: + for combined, rules in self.dyna_regexes[method]: + match = combined(path) + if match: + target, getargs = rules[match.lastindex - 1] + return target, getargs(path) if getargs else {} + + # No matching route found. Collect alternative methods for 405 response + allowed = set([]) + nocheck = set(methods) + for method in set(self.static) - nocheck: + if path in self.static[method]: + allowed.add(verb) + for method in set(self.dyna_regexes) - allowed - nocheck: + for combined, rules in self.dyna_regexes[method]: + match = combined(path) + if match: + allowed.add(method) + if allowed: + allow_header = ",".join(sorted(allowed)) + raise HTTPError(405, "Method not allowed.", Allow=allow_header) + + # No matching route and no alternative method found. We give up + raise HTTPError(404, "Not found: " + repr(path)) + + + + + + +class Route(object): + ''' This class wraps a route callback along with route specific metadata and + configuration and applies Plugins on demand. It is also responsible for + turing an URL path rule into a regular expression usable by the Router. + ''' + + def __init__(self, app, rule, method, callback, name=None, + plugins=None, skiplist=None, **config): + #: The application this route is installed to. + self.app = app + #: The path-rule string (e.g. ``/wiki/:page``). + self.rule = rule + #: The HTTP method as a string (e.g. ``GET``). + self.method = method + #: The original callback with no plugins applied. Useful for introspection. + self.callback = callback + #: The name of the route (if specified) or ``None``. + self.name = name or None + #: A list of route-specific plugins (see :meth:`Bottle.route`). + self.plugins = plugins or [] + #: A list of plugins to not apply to this route (see :meth:`Bottle.route`). + self.skiplist = skiplist or [] + #: Additional keyword arguments passed to the :meth:`Bottle.route` + #: decorator are stored in this dictionary. Used for route-specific + #: plugin configuration and meta-data. + self.config = ConfigDict().load_dict(config) + + def __call__(self, *a, **ka): + depr("Some APIs changed to return Route() instances instead of"\ + " callables. Make sure to use the Route.call method and not to"\ + " call Route instances directly.") + return self.call(*a, **ka) + + @cached_property + def call(self): + ''' The route callback with all plugins applied. This property is + created on demand and then cached to speed up subsequent requests.''' + return self._make_callback() + + def reset(self): + ''' Forget any cached values. The next time :attr:`call` is accessed, + all plugins are re-applied. ''' + self.__dict__.pop('call', None) + + def prepare(self): + ''' Do all on-demand work immediately (useful for debugging).''' + self.call + + @property + def _context(self): + depr('Switch to Plugin API v2 and access the Route object directly.') + return dict(rule=self.rule, method=self.method, callback=self.callback, + name=self.name, app=self.app, config=self.config, + apply=self.plugins, skip=self.skiplist) + + def all_plugins(self): + ''' Yield all Plugins affecting this route. ''' + unique = set() + for p in reversed(self.app.plugins + self.plugins): + if True in self.skiplist: break + name = getattr(p, 'name', False) + if name and (name in self.skiplist or name in unique): continue + if p in self.skiplist or type(p) in self.skiplist: continue + if name: unique.add(name) + yield p + + def _make_callback(self): + callback = self.callback + for plugin in self.all_plugins(): + try: + if hasattr(plugin, 'apply'): + api = getattr(plugin, 'api', 1) + context = self if api > 1 else self._context + callback = plugin.apply(callback, context) + else: + callback = plugin(callback) + except RouteReset: # Try again with changed configuration. + return self._make_callback() + if not callback is self.callback: + update_wrapper(callback, self.callback) + return callback + + def get_undecorated_callback(self): + ''' Return the callback. If the callback is a decorated function, try to + recover the original function. ''' + func = self.callback + func = getattr(func, '__func__' if py3k else 'im_func', func) + closure_attr = '__closure__' if py3k else 'func_closure' + while hasattr(func, closure_attr) and getattr(func, closure_attr): + func = getattr(func, closure_attr)[0].cell_contents + return func + + def get_callback_args(self): + ''' Return a list of argument names the callback (most likely) accepts + as keyword arguments. If the callback is a decorated function, try + to recover the original function before inspection. ''' + return getargspec(self.get_undecorated_callback())[0] + + def get_config(key, default=None): + ''' Lookup a config field and return its value, first checking the + route.config, then route.app.config.''' + for conf in (self.config, self.app.conifg): + if key in conf: return conf[key] + return default + + def __repr__(self): + cb = self.get_undecorated_callback() + return '<%s %r %r>' % (self.method, self.rule, cb) + + + + + + +############################################################################### +# Application Object ########################################################### +############################################################################### + + +class Bottle(object): + """ Each Bottle object represents a single, distinct web application and + consists of routes, callbacks, plugins, resources and configuration. + Instances are callable WSGI applications. + + :param catchall: If true (default), handle all exceptions. Turn off to + let debugging middleware handle exceptions. + """ + + def __init__(self, catchall=True, autojson=True): + + #: A :class:`ConfigDict` for app specific configuration. + self.config = ConfigDict() + self.config._on_change = functools.partial(self.trigger_hook, 'config') + self.config.meta_set('autojson', 'validate', bool) + self.config.meta_set('catchall', 'validate', bool) + self.config['catchall'] = catchall + self.config['autojson'] = autojson + + #: A :class:`ResourceManager` for application files + self.resources = ResourceManager() + + self.routes = [] # List of installed :class:`Route` instances. + self.router = Router() # Maps requests to :class:`Route` instances. + self.error_handler = {} + + # Core plugins + self.plugins = [] # List of installed plugins. + if self.config['autojson']: + self.install(JSONPlugin()) + self.install(TemplatePlugin()) + + #: If true, most exceptions are caught and returned as :exc:`HTTPError` + catchall = DictProperty('config', 'catchall') + + __hook_names = 'before_request', 'after_request', 'app_reset', 'config' + __hook_reversed = 'after_request' + + @cached_property + def _hooks(self): + return dict((name, []) for name in self.__hook_names) + + def add_hook(self, name, func): + ''' Attach a callback to a hook. Three hooks are currently implemented: + + before_request + Executed once before each request. The request context is + available, but no routing has happened yet. + after_request + Executed once after each request regardless of its outcome. + app_reset + Called whenever :meth:`Bottle.reset` is called. + ''' + if name in self.__hook_reversed: + self._hooks[name].insert(0, func) + else: + self._hooks[name].append(func) + + def remove_hook(self, name, func): + ''' Remove a callback from a hook. ''' + if name in self._hooks and func in self._hooks[name]: + self._hooks[name].remove(func) + return True + + def trigger_hook(self, __name, *args, **kwargs): + ''' Trigger a hook and return a list of results. ''' + return [hook(*args, **kwargs) for hook in self._hooks[__name][:]] + + def hook(self, name): + """ Return a decorator that attaches a callback to a hook. See + :meth:`add_hook` for details.""" + def decorator(func): + self.add_hook(name, func) + return func + return decorator + + def mount(self, prefix, app, **options): + ''' Mount an application (:class:`Bottle` or plain WSGI) to a specific + URL prefix. Example:: + + root_app.mount('/admin/', admin_app) + + :param prefix: path prefix or `mount-point`. If it ends in a slash, + that slash is mandatory. + :param app: an instance of :class:`Bottle` or a WSGI application. + + All other parameters are passed to the underlying :meth:`route` call. + ''' + if isinstance(app, basestring): + depr('Parameter order of Bottle.mount() changed.', True) # 0.10 + + segments = [p for p in prefix.split('/') if p] + if not segments: raise ValueError('Empty path prefix.') + path_depth = len(segments) + + def mountpoint_wrapper(): + try: + request.path_shift(path_depth) + rs = HTTPResponse([]) + def start_response(status, headerlist, exc_info=None): + if exc_info: + try: + _raise(*exc_info) + finally: + exc_info = None + rs.status = status + for name, value in headerlist: rs.add_header(name, value) + return rs.body.append + body = app(request.environ, start_response) + if body and rs.body: body = itertools.chain(rs.body, body) + rs.body = body or rs.body + return rs + finally: + request.path_shift(-path_depth) + + options.setdefault('skip', True) + options.setdefault('method', 'ANY') + options.setdefault('mountpoint', {'prefix': prefix, 'target': app}) + options['callback'] = mountpoint_wrapper + + self.route('/%s/<:re:.*>' % '/'.join(segments), **options) + if not prefix.endswith('/'): + self.route('/' + '/'.join(segments), **options) + + def merge(self, routes): + ''' Merge the routes of another :class:`Bottle` application or a list of + :class:`Route` objects into this application. The routes keep their + 'owner', meaning that the :data:`Route.app` attribute is not + changed. ''' + if isinstance(routes, Bottle): + routes = routes.routes + for route in routes: + self.add_route(route) + + def install(self, plugin): + ''' Add a plugin to the list of plugins and prepare it for being + applied to all routes of this application. A plugin may be a simple + decorator or an object that implements the :class:`Plugin` API. + ''' + if hasattr(plugin, 'setup'): plugin.setup(self) + if not callable(plugin) and not hasattr(plugin, 'apply'): + raise TypeError("Plugins must be callable or implement .apply()") + self.plugins.append(plugin) + self.reset() + return plugin + + def uninstall(self, plugin): + ''' Uninstall plugins. Pass an instance to remove a specific plugin, a type + object to remove all plugins that match that type, a string to remove + all plugins with a matching ``name`` attribute or ``True`` to remove all + plugins. Return the list of removed plugins. ''' + removed, remove = [], plugin + for i, plugin in list(enumerate(self.plugins))[::-1]: + if remove is True or remove is plugin or remove is type(plugin) \ + or getattr(plugin, 'name', True) == remove: + removed.append(plugin) + del self.plugins[i] + if hasattr(plugin, 'close'): plugin.close() + if removed: self.reset() + return removed + + def reset(self, route=None): + ''' Reset all routes (force plugins to be re-applied) and clear all + caches. If an ID or route object is given, only that specific route + is affected. ''' + if route is None: routes = self.routes + elif isinstance(route, Route): routes = [route] + else: routes = [self.routes[route]] + for route in routes: route.reset() + if DEBUG: + for route in routes: route.prepare() + self.trigger_hook('app_reset') + + def close(self): + ''' Close the application and all installed plugins. ''' + for plugin in self.plugins: + if hasattr(plugin, 'close'): plugin.close() + self.stopped = True + + def run(self, **kwargs): + ''' Calls :func:`run` with the same parameters. ''' + run(self, **kwargs) + + def match(self, environ): + """ Search for a matching route and return a (:class:`Route` , urlargs) + tuple. The second value is a dictionary with parameters extracted + from the URL. Raise :exc:`HTTPError` (404/405) on a non-match.""" + return self.router.match(environ) + + def get_url(self, routename, **kargs): + """ Return a string that matches a named route """ + scriptname = request.environ.get('SCRIPT_NAME', '').strip('/') + '/' + location = self.router.build(routename, **kargs).lstrip('/') + return urljoin(urljoin('/', scriptname), location) + + def add_route(self, route): + ''' Add a route object, but do not change the :data:`Route.app` + attribute.''' + self.routes.append(route) + self.router.add(route.rule, route.method, route, name=route.name) + if DEBUG: route.prepare() + + def route(self, path=None, method='GET', callback=None, name=None, + apply=None, skip=None, **config): + """ A decorator to bind a function to a request URL. Example:: + + @app.route('/hello/:name') + def hello(name): + return 'Hello %s' % name + + The ``:name`` part is a wildcard. See :class:`Router` for syntax + details. + + :param path: Request path or a list of paths to listen to. If no + path is specified, it is automatically generated from the + signature of the function. + :param method: HTTP method (`GET`, `POST`, `PUT`, ...) or a list of + methods to listen to. (default: `GET`) + :param callback: An optional shortcut to avoid the decorator + syntax. ``route(..., callback=func)`` equals ``route(...)(func)`` + :param name: The name for this route. (default: None) + :param apply: A decorator or plugin or a list of plugins. These are + applied to the route callback in addition to installed plugins. + :param skip: A list of plugins, plugin classes or names. Matching + plugins are not installed to this route. ``True`` skips all. + + Any additional keyword arguments are stored as route-specific + configuration and passed to plugins (see :meth:`Plugin.apply`). + """ + if callable(path): path, callback = None, path + plugins = makelist(apply) + skiplist = makelist(skip) + def decorator(callback): + # TODO: Documentation and tests + if isinstance(callback, basestring): callback = load(callback) + for rule in makelist(path) or yieldroutes(callback): + for verb in makelist(method): + verb = verb.upper() + route = Route(self, rule, verb, callback, name=name, + plugins=plugins, skiplist=skiplist, **config) + self.add_route(route) + return callback + return decorator(callback) if callback else decorator + + def get(self, path=None, method='GET', **options): + """ Equals :meth:`route`. """ + return self.route(path, method, **options) + + def post(self, path=None, method='POST', **options): + """ Equals :meth:`route` with a ``POST`` method parameter. """ + return self.route(path, method, **options) + + def put(self, path=None, method='PUT', **options): + """ Equals :meth:`route` with a ``PUT`` method parameter. """ + return self.route(path, method, **options) + + def delete(self, path=None, method='DELETE', **options): + """ Equals :meth:`route` with a ``DELETE`` method parameter. """ + return self.route(path, method, **options) + + def error(self, code=500): + """ Decorator: Register an output handler for a HTTP error code""" + def wrapper(handler): + self.error_handler[int(code)] = handler + return handler + return wrapper + + def handle(self, path, method='GET'): + """ (deprecated) Execute the first matching route callback and return + the result. :exc:`HTTPResponse` exceptions are caught and returned. + If :attr:`Bottle.catchall` is true, other exceptions are caught as + well and returned as :exc:`HTTPError` instances (500). + """ + depr("This method will change semantics in 0.10. Try to avoid it.") + if isinstance(path, dict): + return self._handle(path) + return self._handle({'PATH_INFO': path, 'REQUEST_METHOD': method.upper()}) + + def default_error_handler(self, res): + return tob(template(ERROR_PAGE_TEMPLATE, e=res)) + + def _handle(self, environ): + try: + environ['bottle.app'] = self + request.bind(environ) + response.bind() + + try: + self.trigger_hook('before_request') + route, args = self.router.match(environ) + environ['route.handle'] = route + environ['bottle.route'] = route + environ['route.url_args'] = args + return route.call(**args) + finally: + self.trigger_hook('after_request') + + except HTTPResponse: + return _e() + except RouteReset: + route.reset() + return self._handle(environ) + except (KeyboardInterrupt, SystemExit, MemoryError): + raise + except Exception: + if not self.catchall: raise + stacktrace = format_exc() + environ['wsgi.errors'].write(stacktrace) + return HTTPError(500, "Internal Server Error", _e(), stacktrace) + + def _cast(self, out, peek=None): + """ Try to convert the parameter into something WSGI compatible and set + correct HTTP headers when possible. + Support: False, str, unicode, dict, HTTPResponse, HTTPError, file-like, + iterable of strings and iterable of unicodes + """ + + # Empty output is done here + if not out: + if 'Content-Length' not in response: + response['Content-Length'] = 0 + return [] + # Join lists of byte or unicode strings. Mixed lists are NOT supported + if isinstance(out, (tuple, list))\ + and isinstance(out[0], (bytes, unicode)): + out = out[0][0:0].join(out) # b'abc'[0:0] -> b'' + # Encode unicode strings + if isinstance(out, unicode): + out = out.encode(response.charset) + # Byte Strings are just returned + if isinstance(out, bytes): + if 'Content-Length' not in response: + response['Content-Length'] = len(out) + return [out] + # HTTPError or HTTPException (recursive, because they may wrap anything) + # TODO: Handle these explicitly in handle() or make them iterable. + if isinstance(out, HTTPError): + out.apply(response) + out = self.error_handler.get(out.status_code, self.default_error_handler)(out) + return self._cast(out) + if isinstance(out, HTTPResponse): + out.apply(response) + return self._cast(out.body) + + # File-like objects. + if hasattr(out, 'read'): + if 'wsgi.file_wrapper' in request.environ: + return request.environ['wsgi.file_wrapper'](out) + elif hasattr(out, 'close') or not hasattr(out, '__iter__'): + return WSGIFileWrapper(out) + + # Handle Iterables. We peek into them to detect their inner type. + try: + iout = iter(out) + first = next(iout) + while not first: + first = next(iout) + except StopIteration: + return self._cast('') + except HTTPResponse: + first = _e() + except (KeyboardInterrupt, SystemExit, MemoryError): + raise + except Exception: + if not self.catchall: raise + first = HTTPError(500, 'Unhandled exception', _e(), format_exc()) + + # These are the inner types allowed in iterator or generator objects. + if isinstance(first, HTTPResponse): + return self._cast(first) + elif isinstance(first, bytes): + new_iter = itertools.chain([first], iout) + elif isinstance(first, unicode): + encoder = lambda x: x.encode(response.charset) + new_iter = imap(encoder, itertools.chain([first], iout)) + else: + msg = 'Unsupported response type: %s' % type(first) + return self._cast(HTTPError(500, msg)) + if hasattr(out, 'close'): + new_iter = _closeiter(new_iter, out.close) + return new_iter + + def wsgi(self, environ, start_response): + """ The bottle WSGI-interface. """ + try: + out = self._cast(self._handle(environ)) + # rfc2616 section 4.3 + if response._status_code in (100, 101, 204, 304)\ + or environ['REQUEST_METHOD'] == 'HEAD': + if hasattr(out, 'close'): out.close() + out = [] + start_response(response._status_line, response.headerlist) + return out + except (KeyboardInterrupt, SystemExit, MemoryError): + raise + except Exception: + if not self.catchall: raise + err = '<h1>Critical error while processing request: %s</h1>' \ + % html_escape(environ.get('PATH_INFO', '/')) + if DEBUG: + err += '<h2>Error:</h2>\n<pre>\n%s\n</pre>\n' \ + '<h2>Traceback:</h2>\n<pre>\n%s\n</pre>\n' \ + % (html_escape(repr(_e())), html_escape(format_exc())) + environ['wsgi.errors'].write(err) + headers = [('Content-Type', 'text/html; charset=UTF-8')] + start_response('500 INTERNAL SERVER ERROR', headers, sys.exc_info()) + return [tob(err)] + + def __call__(self, environ, start_response): + ''' Each instance of :class:'Bottle' is a WSGI application. ''' + return self.wsgi(environ, start_response) + + + + + + +############################################################################### +# HTTP and WSGI Tools ########################################################## +############################################################################### + +class BaseRequest(object): + """ A wrapper for WSGI environment dictionaries that adds a lot of + convenient access methods and properties. Most of them are read-only. + + Adding new attributes to a request actually adds them to the environ + dictionary (as 'bottle.request.ext.<name>'). This is the recommended + way to store and access request-specific data. + """ + + __slots__ = ('environ') + + #: Maximum size of memory buffer for :attr:`body` in bytes. + MEMFILE_MAX = 102400 + #: Maximum number pr GET or POST parameters per request + MAX_PARAMS = 100 + + def __init__(self, environ=None): + """ Wrap a WSGI environ dictionary. """ + #: The wrapped WSGI environ dictionary. This is the only real attribute. + #: All other attributes actually are read-only properties. + self.environ = {} if environ is None else environ + self.environ['bottle.request'] = self + + @DictProperty('environ', 'bottle.app', read_only=True) + def app(self): + ''' Bottle application handling this request. ''' + raise RuntimeError('This request is not connected to an application.') + + @DictProperty('environ', 'bottle.route', read_only=True) + def route(self): + """ The bottle :class:`Route` object that matches this request. """ + raise RuntimeError('This request is not connected to a route.') + + @DictProperty('environ', 'route.url_args', read_only=True) + def url_args(self): + """ The arguments extracted from the URL. """ + raise RuntimeError('This request is not connected to a route.') + + @property + def path(self): + ''' The value of ``PATH_INFO`` with exactly one prefixed slash (to fix + broken clients and avoid the "empty path" edge case). ''' + return '/' + self.environ.get('PATH_INFO','').lstrip('/') + + @property + def method(self): + ''' The ``REQUEST_METHOD`` value as an uppercase string. ''' + return self.environ.get('REQUEST_METHOD', 'GET').upper() + + @DictProperty('environ', 'bottle.request.headers', read_only=True) + def headers(self): + ''' A :class:`WSGIHeaderDict` that provides case-insensitive access to + HTTP request headers. ''' + return WSGIHeaderDict(self.environ) + + def get_header(self, name, default=None): + ''' Return the value of a request header, or a given default value. ''' + return self.headers.get(name, default) + + @DictProperty('environ', 'bottle.request.cookies', read_only=True) + def cookies(self): + """ Cookies parsed into a :class:`FormsDict`. Signed cookies are NOT + decoded. Use :meth:`get_cookie` if you expect signed cookies. """ + cookies = SimpleCookie(self.environ.get('HTTP_COOKIE','')).values() + if len(cookies) > self.MAX_PARAMS: + raise HTTPError(413, 'Too many cookies') + return FormsDict((c.key, c.value) for c in cookies) + + def get_cookie(self, key, default=None, secret=None): + """ Return the content of a cookie. To read a `Signed Cookie`, the + `secret` must match the one used to create the cookie (see + :meth:`BaseResponse.set_cookie`). If anything goes wrong (missing + cookie or wrong signature), return a default value. """ + value = self.cookies.get(key) + if secret and value: + dec = cookie_decode(value, secret) # (key, value) tuple or None + return dec[1] if dec and dec[0] == key else default + return value or default + + @DictProperty('environ', 'bottle.request.query', read_only=True) + def query(self): + ''' The :attr:`query_string` parsed into a :class:`FormsDict`. These + values are sometimes called "URL arguments" or "GET parameters", but + not to be confused with "URL wildcards" as they are provided by the + :class:`Router`. ''' + get = self.environ['bottle.get'] = FormsDict() + pairs = _parse_qsl(self.environ.get('QUERY_STRING', '')) + if len(pairs) > self.MAX_PARAMS: + raise HTTPError(413, 'Too many parameters') + for key, value in pairs: + get[key] = value + return get + + @DictProperty('environ', 'bottle.request.forms', read_only=True) + def forms(self): + """ Form values parsed from an `url-encoded` or `multipart/form-data` + encoded POST or PUT request body. The result is returned as a + :class:`FormsDict`. All keys and values are strings. File uploads + are stored separately in :attr:`files`. """ + forms = FormsDict() + for name, item in self.POST.allitems(): + if not isinstance(item, FileUpload): + forms[name] = item + return forms + + @DictProperty('environ', 'bottle.request.params', read_only=True) + def params(self): + """ A :class:`FormsDict` with the combined values of :attr:`query` and + :attr:`forms`. File uploads are stored in :attr:`files`. """ + params = FormsDict() + for key, value in self.query.allitems(): + params[key] = value + for key, value in self.forms.allitems(): + params[key] = value + return params + + @DictProperty('environ', 'bottle.request.files', read_only=True) + def files(self): + """ File uploads parsed from `multipart/form-data` encoded POST or PUT + request body. The values are instances of :class:`FileUpload`. + + """ + files = FormsDict() + for name, item in self.POST.allitems(): + if isinstance(item, FileUpload): + files[name] = item + return files + + @DictProperty('environ', 'bottle.request.json', read_only=True) + def json(self): + ''' If the ``Content-Type`` header is ``application/json``, this + property holds the parsed content of the request body. Only requests + smaller than :attr:`MEMFILE_MAX` are processed to avoid memory + exhaustion. ''' + if 'application/json' in self.environ.get('CONTENT_TYPE', ''): + return json_loads(self._get_body_string()) + return None + + @DictProperty('environ', 'bottle.request.body', read_only=True) + def _body(self): + maxread = max(0, self.content_length) + stream = self.environ['wsgi.input'] + body = BytesIO() if maxread < self.MEMFILE_MAX else TemporaryFile(mode='w+b') + while maxread > 0: + part = stream.read(min(maxread, self.MEMFILE_MAX)) + if not part: break + body.write(part) + maxread -= len(part) + self.environ['wsgi.input'] = body + body.seek(0) + return body + + def _get_body_string(self): + ''' read body until content-length or MEMFILE_MAX into a string. Raise + HTTPError(413) on requests that are to large. ''' + clen = self.content_length + if clen > self.MEMFILE_MAX: + raise HTTPError(413, 'Request to large') + if clen < 0: clen = self.MEMFILE_MAX + 1 + data = self.body.read(clen) + if len(data) > self.MEMFILE_MAX: # Fail fast + raise HTTPError(413, 'Request to large') + return data + + @property + def body(self): + """ The HTTP request body as a seek-able file-like object. Depending on + :attr:`MEMFILE_MAX`, this is either a temporary file or a + :class:`io.BytesIO` instance. Accessing this property for the first + time reads and replaces the ``wsgi.input`` environ variable. + Subsequent accesses just do a `seek(0)` on the file object. """ + self._body.seek(0) + return self._body + + #: An alias for :attr:`query`. + GET = query + + @DictProperty('environ', 'bottle.request.post', read_only=True) + def POST(self): + """ The values of :attr:`forms` and :attr:`files` combined into a single + :class:`FormsDict`. Values are either strings (form values) or + instances of :class:`cgi.FieldStorage` (file uploads). + """ + post = FormsDict() + # We default to application/x-www-form-urlencoded for everything that + # is not multipart and take the fast path (also: 3.1 workaround) + if not self.content_type.startswith('multipart/'): + pairs = _parse_qsl(tonat(self._get_body_string(), 'latin1')) + if len(pairs) > self.MAX_PARAMS: + raise HTTPError(413, 'Too many parameters') + for key, value in pairs: + post[key] = value + return post + + safe_env = {'QUERY_STRING':''} # Build a safe environment for cgi + for key in ('REQUEST_METHOD', 'CONTENT_TYPE', 'CONTENT_LENGTH'): + if key in self.environ: safe_env[key] = self.environ[key] + args = dict(fp=self.body, environ=safe_env, keep_blank_values=True) + if py31: + args['fp'] = NCTextIOWrapper(args['fp'], encoding='latin1', + newline='\n') + elif py3k: + args['encoding'] = 'latin1' + data = cgi.FieldStorage(**args) + data = data.list or [] + if len(data) > self.MAX_PARAMS: + raise HTTPError(413, 'Too many parameters') + for item in data: + if item.filename: + post[item.name] = FileUpload(item.file, item.name, + item.filename, item.headers) + else: + post[item.name] = item.value + return post + + @property + def COOKIES(self): + ''' Alias for :attr:`cookies` (deprecated). ''' + depr('BaseRequest.COOKIES was renamed to BaseRequest.cookies (lowercase).') + return self.cookies + + @property + def url(self): + """ The full request URI including hostname and scheme. If your app + lives behind a reverse proxy or load balancer and you get confusing + results, make sure that the ``X-Forwarded-Host`` header is set + correctly. """ + return self.urlparts.geturl() + + @DictProperty('environ', 'bottle.request.urlparts', read_only=True) + def urlparts(self): + ''' The :attr:`url` string as an :class:`urlparse.SplitResult` tuple. + The tuple contains (scheme, host, path, query_string and fragment), + but the fragment is always empty because it is not visible to the + server. ''' + env = self.environ + http = env.get('HTTP_X_FORWARDED_PROTO') or env.get('wsgi.url_scheme', 'http') + host = env.get('HTTP_X_FORWARDED_HOST') or env.get('HTTP_HOST') + if not host: + # HTTP 1.1 requires a Host-header. This is for HTTP/1.0 clients. + host = env.get('SERVER_NAME', '127.0.0.1') + port = env.get('SERVER_PORT') + if port and port != ('80' if http == 'http' else '443'): + host += ':' + port + path = urlquote(self.fullpath) + return UrlSplitResult(http, host, path, env.get('QUERY_STRING'), '') + + @property + def fullpath(self): + """ Request path including :attr:`script_name` (if present). """ + return urljoin(self.script_name, self.path.lstrip('/')) + + @property + def query_string(self): + """ The raw :attr:`query` part of the URL (everything in between ``?`` + and ``#``) as a string. """ + return self.environ.get('QUERY_STRING', '') + + @property + def script_name(self): + ''' The initial portion of the URL's `path` that was removed by a higher + level (server or routing middleware) before the application was + called. This script path is returned with leading and tailing + slashes. ''' + script_name = self.environ.get('SCRIPT_NAME', '').strip('/') + return '/' + script_name + '/' if script_name else '/' + + def path_shift(self, shift=1): + ''' Shift path segments from :attr:`path` to :attr:`script_name` and + vice versa. + + :param shift: The number of path segments to shift. May be negative + to change the shift direction. (default: 1) + ''' + script = self.environ.get('SCRIPT_NAME','/') + self['SCRIPT_NAME'], self['PATH_INFO'] = path_shift(script, self.path, shift) + + @property + def content_length(self): + ''' The request body length as an integer. The client is responsible to + set this header. Otherwise, the real length of the body is unknown + and -1 is returned. In this case, :attr:`body` will be empty. ''' + return int(self.environ.get('CONTENT_LENGTH') or -1) + + @property + def content_type(self): + ''' The Content-Type header as a lowercase-string (default: empty). ''' + return self.environ.get('CONTENT_TYPE', '').lower() + + @property + def is_xhr(self): + ''' True if the request was triggered by a XMLHttpRequest. This only + works with JavaScript libraries that support the `X-Requested-With` + header (most of the popular libraries do). ''' + requested_with = self.environ.get('HTTP_X_REQUESTED_WITH','') + return requested_with.lower() == 'xmlhttprequest' + + @property + def is_ajax(self): + ''' Alias for :attr:`is_xhr`. "Ajax" is not the right term. ''' + return self.is_xhr + + @property + def auth(self): + """ HTTP authentication data as a (user, password) tuple. This + implementation currently supports basic (not digest) authentication + only. If the authentication happened at a higher level (e.g. in the + front web-server or a middleware), the password field is None, but + the user field is looked up from the ``REMOTE_USER`` environ + variable. On any errors, None is returned. """ + basic = parse_auth(self.environ.get('HTTP_AUTHORIZATION','')) + if basic: return basic + ruser = self.environ.get('REMOTE_USER') + if ruser: return (ruser, None) + return None + + @property + def remote_route(self): + """ A list of all IPs that were involved in this request, starting with + the client IP and followed by zero or more proxies. This does only + work if all proxies support the ```X-Forwarded-For`` header. Note + that this information can be forged by malicious clients. """ + proxy = self.environ.get('HTTP_X_FORWARDED_FOR') + if proxy: return [ip.strip() for ip in proxy.split(',')] + remote = self.environ.get('REMOTE_ADDR') + return [remote] if remote else [] + + @property + def remote_addr(self): + """ The client IP as a string. Note that this information can be forged + by malicious clients. """ + route = self.remote_route + return route[0] if route else None + + def copy(self): + """ Return a new :class:`Request` with a shallow :attr:`environ` copy. """ + return Request(self.environ.copy()) + + def get(self, value, default=None): return self.environ.get(value, default) + def __getitem__(self, key): return self.environ[key] + def __delitem__(self, key): self[key] = ""; del(self.environ[key]) + def __iter__(self): return iter(self.environ) + def __len__(self): return len(self.environ) + def keys(self): return self.environ.keys() + def __setitem__(self, key, value): + """ Change an environ value and clear all caches that depend on it. """ + + if self.environ.get('bottle.request.readonly'): + raise KeyError('The environ dictionary is read-only.') + + self.environ[key] = value + todelete = () + + if key == 'wsgi.input': + todelete = ('body', 'forms', 'files', 'params', 'post', 'json') + elif key == 'QUERY_STRING': + todelete = ('query', 'params') + elif key.startswith('HTTP_'): + todelete = ('headers', 'cookies') + + for key in todelete: + self.environ.pop('bottle.request.'+key, None) + + def __repr__(self): + return '<%s: %s %s>' % (self.__class__.__name__, self.method, self.url) + + def __getattr__(self, name): + ''' Search in self.environ for additional user defined attributes. ''' + try: + var = self.environ['bottle.request.ext.%s'%name] + return var.__get__(self) if hasattr(var, '__get__') else var + except KeyError: + raise AttributeError('Attribute %r not defined.' % name) + + def __setattr__(self, name, value): + if name == 'environ': return object.__setattr__(self, name, value) + self.environ['bottle.request.ext.%s'%name] = value + + + + +def _hkey(s): + return s.title().replace('_','-') + + +class HeaderProperty(object): + def __init__(self, name, reader=None, writer=str, default=''): + self.name, self.default = name, default + self.reader, self.writer = reader, writer + self.__doc__ = 'Current value of the %r header.' % name.title() + + def __get__(self, obj, cls): + if obj is None: return self + value = obj.headers.get(self.name, self.default) + return self.reader(value) if self.reader else value + + def __set__(self, obj, value): + obj.headers[self.name] = self.writer(value) + + def __delete__(self, obj): + del obj.headers[self.name] + + +class BaseResponse(object): + """ Storage class for a response body as well as headers and cookies. + + This class does support dict-like case-insensitive item-access to + headers, but is NOT a dict. Most notably, iterating over a response + yields parts of the body and not the headers. + + :param body: The response body as one of the supported types. + :param status: Either an HTTP status code (e.g. 200) or a status line + including the reason phrase (e.g. '200 OK'). + :param headers: A dictionary or a list of name-value pairs. + + Additional keyword arguments are added to the list of headers. + Underscores in the header name are replaced with dashes. + """ + + default_status = 200 + default_content_type = 'text/html; charset=UTF-8' + + # Header blacklist for specific response codes + # (rfc2616 section 10.2.3 and 10.3.5) + bad_headers = { + 204: set(('Content-Type',)), + 304: set(('Allow', 'Content-Encoding', 'Content-Language', + 'Content-Length', 'Content-Range', 'Content-Type', + 'Content-Md5', 'Last-Modified'))} + + def __init__(self, body='', status=None, headers=None, **more_headers): + self._cookies = None + self._headers = {} + self.body = body + self.status = status or self.default_status + if headers: + if isinstance(headers, dict): + headers = headers.items() + for name, value in headers: + self.add_header(name, value) + if more_headers: + for name, value in more_headers.items(): + self.add_header(name, value) + + def copy(self, cls=None): + ''' Returns a copy of self. ''' + cls = cls or BaseResponse + assert issubclass(cls, BaseResponse) + copy = cls() + copy.status = self.status + copy._headers = dict((k, v[:]) for (k, v) in self._headers.items()) + copy.COOKIES.load(self.COOKIES.output()) + return copy + + def __iter__(self): + return iter(self.body) + + def close(self): + if hasattr(self.body, 'close'): + self.body.close() + + @property + def status_line(self): + ''' The HTTP status line as a string (e.g. ``404 Not Found``).''' + return self._status_line + + @property + def status_code(self): + ''' The HTTP status code as an integer (e.g. 404).''' + return self._status_code + + def _set_status(self, status): + if isinstance(status, int): + code, status = status, _HTTP_STATUS_LINES.get(status) + elif ' ' in status: + status = status.strip() + code = int(status.split()[0]) + else: + raise ValueError('String status line without a reason phrase.') + if not 100 <= code <= 999: raise ValueError('Status code out of range.') + self._status_code = code + self._status_line = str(status or ('%d Unknown' % code)) + + def _get_status(self): + return self._status_line + + status = property(_get_status, _set_status, None, + ''' A writeable property to change the HTTP response status. It accepts + either a numeric code (100-999) or a string with a custom reason + phrase (e.g. "404 Brain not found"). Both :data:`status_line` and + :data:`status_code` are updated accordingly. The return value is + always a status string. ''') + del _get_status, _set_status + + @property + def headers(self): + ''' An instance of :class:`HeaderDict`, a case-insensitive dict-like + view on the response headers. ''' + hdict = HeaderDict() + hdict.dict = self._headers + return hdict + + def __contains__(self, name): return _hkey(name) in self._headers + def __delitem__(self, name): del self._headers[_hkey(name)] + def __getitem__(self, name): return self._headers[_hkey(name)][-1] + def __setitem__(self, name, value): self._headers[_hkey(name)] = [str(value)] + + def get_header(self, name, default=None): + ''' Return the value of a previously defined header. If there is no + header with that name, return a default value. ''' + return self._headers.get(_hkey(name), [default])[-1] + + def set_header(self, name, value): + ''' Create a new response header, replacing any previously defined + headers with the same name. ''' + self._headers[_hkey(name)] = [str(value)] + + def add_header(self, name, value): + ''' Add an additional response header, not removing duplicates. ''' + self._headers.setdefault(_hkey(name), []).append(str(value)) + + def iter_headers(self): + ''' Yield (header, value) tuples, skipping headers that are not + allowed with the current response status code. ''' + return self.headerlist + + def wsgiheader(self): + depr('The wsgiheader method is deprecated. See headerlist.') #0.10 + return self.headerlist + + @property + def headerlist(self): + ''' WSGI conform list of (header, value) tuples. ''' + out = [] + headers = list(self._headers.items()) + if 'Content-Type' not in self._headers: + headers.append(('Content-Type', [self.default_content_type])) + if self._status_code in self.bad_headers: + bad_headers = self.bad_headers[self._status_code] + headers = [h for h in headers if h[0] not in bad_headers] + out += [(name, val) for name, vals in headers for val in vals] + if self._cookies: + for c in self._cookies.values(): + out.append(('Set-Cookie', c.OutputString())) + return out + + content_type = HeaderProperty('Content-Type') + content_length = HeaderProperty('Content-Length', reader=int) + expires = HeaderProperty('Expires', + reader=lambda x: datetime.utcfromtimestamp(parse_date(x)), + writer=lambda x: http_date(x)) + + @property + def charset(self, default='UTF-8'): + """ Return the charset specified in the content-type header (default: utf8). """ + if 'charset=' in self.content_type: + return self.content_type.split('charset=')[-1].split(';')[0].strip() + return default + + @property + def COOKIES(self): + """ A dict-like SimpleCookie instance. This should not be used directly. + See :meth:`set_cookie`. """ + depr('The COOKIES dict is deprecated. Use `set_cookie()` instead.') # 0.10 + if not self._cookies: + self._cookies = SimpleCookie() + return self._cookies + + def set_cookie(self, name, value, secret=None, **options): + ''' Create a new cookie or replace an old one. If the `secret` parameter is + set, create a `Signed Cookie` (described below). + + :param name: the name of the cookie. + :param value: the value of the cookie. + :param secret: a signature key required for signed cookies. + + Additionally, this method accepts all RFC 2109 attributes that are + supported by :class:`cookie.Morsel`, including: + + :param max_age: maximum age in seconds. (default: None) + :param expires: a datetime object or UNIX timestamp. (default: None) + :param domain: the domain that is allowed to read the cookie. + (default: current domain) + :param path: limits the cookie to a given path (default: current path) + :param secure: limit the cookie to HTTPS connections (default: off). + :param httponly: prevents client-side javascript to read this cookie + (default: off, requires Python 2.6 or newer). + + If neither `expires` nor `max_age` is set (default), the cookie will + expire at the end of the browser session (as soon as the browser + window is closed). + + Signed cookies may store any pickle-able object and are + cryptographically signed to prevent manipulation. Keep in mind that + cookies are limited to 4kb in most browsers. + + Warning: Signed cookies are not encrypted (the client can still see + the content) and not copy-protected (the client can restore an old + cookie). The main intention is to make pickling and unpickling + save, not to store secret information at client side. + ''' + if not self._cookies: + self._cookies = SimpleCookie() + + if secret: + value = touni(cookie_encode((name, value), secret)) + elif not isinstance(value, basestring): + raise TypeError('Secret key missing for non-string Cookie.') + + if len(value) > 4096: raise ValueError('Cookie value to long.') + self._cookies[name] = value + + for key, value in options.items(): + if key == 'max_age': + if isinstance(value, timedelta): + value = value.seconds + value.days * 24 * 3600 + if key == 'expires': + if isinstance(value, (datedate, datetime)): + value = value.timetuple() + elif isinstance(value, (int, float)): + value = time.gmtime(value) + value = time.strftime("%a, %d %b %Y %H:%M:%S GMT", value) + self._cookies[name][key.replace('_', '-')] = value + + def delete_cookie(self, key, **kwargs): + ''' Delete a cookie. Be sure to use the same `domain` and `path` + settings as used to create the cookie. ''' + kwargs['max_age'] = -1 + kwargs['expires'] = 0 + self.set_cookie(key, '', **kwargs) + + def __repr__(self): + out = '' + for name, value in self.headerlist: + out += '%s: %s\n' % (name.title(), value.strip()) + return out + +#: Thread-local storage for :class:`LocalRequest` and :class:`LocalResponse` +#: attributes. +_lctx = threading.local() + +def local_property(name): + def fget(self): + try: + return getattr(_lctx, name) + except AttributeError: + raise RuntimeError("Request context not initialized.") + def fset(self, value): setattr(_lctx, name, value) + def fdel(self): delattr(_lctx, name) + return property(fget, fset, fdel, + 'Thread-local property stored in :data:`_lctx.%s`' % name) + + +class LocalRequest(BaseRequest): + ''' A thread-local subclass of :class:`BaseRequest` with a different + set of attribues for each thread. There is usually only one global + instance of this class (:data:`request`). If accessed during a + request/response cycle, this instance always refers to the *current* + request (even on a multithreaded server). ''' + bind = BaseRequest.__init__ + environ = local_property('request_environ') + + +class LocalResponse(BaseResponse): + ''' A thread-local subclass of :class:`BaseResponse` with a different + set of attribues for each thread. There is usually only one global + instance of this class (:data:`response`). Its attributes are used + to build the HTTP response at the end of the request/response cycle. + ''' + bind = BaseResponse.__init__ + _status_line = local_property('response_status_line') + _status_code = local_property('response_status_code') + _cookies = local_property('response_cookies') + _headers = local_property('response_headers') + body = local_property('response_body') + + +Request = BaseRequest +Response = BaseResponse + + +class HTTPResponse(Response, BottleException): + def __init__(self, body='', status=None, headers=None, + header=None, **more_headers): + if header or 'output' in more_headers: + depr('Call signature changed (for the better). See BaseResponse') + if header: more_headers.update(header) + if 'output' in more_headers: body = more_headers.pop('output') + super(HTTPResponse, self).__init__(body, status, headers, **more_headers) + + def apply(self, response): + response._status_code = self._status_code + response._status_line = self._status_line + response._headers = self._headers + response._cookies = self._cookies + response.body = self.body + + def _output(self, value=None): + depr('Use HTTPResponse.body instead of HTTPResponse.output') + if value is None: return self.body + self.body = value + + output = property(_output, _output, doc='Alias for .body') + + +class HTTPError(HTTPResponse): + default_status = 500 + def __init__(self, status=None, body=None, exception=None, traceback=None, + **options): + self.exception = exception + self.traceback = traceback + super(HTTPError, self).__init__(body, status, **options) + + + + + +############################################################################### +# Plugins ###################################################################### +############################################################################### + +class PluginError(BottleException): pass + + +class JSONPlugin(object): + name = 'json' + api = 2 + + def __init__(self, json_dumps=json_dumps): + self.json_dumps = json_dumps + + def apply(self, callback, route): + dumps = self.json_dumps + if not dumps: return callback + def wrapper(*a, **ka): + try: + rv = callback(*a, **ka) + except HTTPError: + rv = _e() + + if isinstance(rv, dict): + #Attempt to serialize, raises exception on failure + json_response = dumps(rv) + #Set content type only if serialization succesful + response.content_type = 'application/json' + return json_response + elif isinstance(rv, HTTPResponse) and isinstance(rv.body, dict): + rv.body = dumps(rv.body) + rv.content_type = 'application/json' + return rv + + return wrapper + + +class TemplatePlugin(object): + ''' This plugin applies the :func:`view` decorator to all routes with a + `template` config parameter. If the parameter is a tuple, the second + element must be a dict with additional options (e.g. `template_engine`) + or default variables for the template. ''' + name = 'template' + api = 2 + + def apply(self, callback, route): + conf = route.config.get('template') + if isinstance(conf, (tuple, list)) and len(conf) == 2: + return view(conf[0], **conf[1])(callback) + elif isinstance(conf, str): + return view(conf)(callback) + else: + return callback + + +#: Not a plugin, but part of the plugin API. TODO: Find a better place. +class _ImportRedirect(object): + def __init__(self, name, impmask): + ''' Create a virtual package that redirects imports (see PEP 302). ''' + self.name = name + self.impmask = impmask + self.module = sys.modules.setdefault(name, imp.new_module(name)) + self.module.__dict__.update({'__file__': __file__, '__path__': [], + '__all__': [], '__loader__': self}) + sys.meta_path.append(self) + + def find_module(self, fullname, path=None): + if '.' not in fullname: return + packname, modname = fullname.rsplit('.', 1) + if packname != self.name: return + return self + + def load_module(self, fullname): + if fullname in sys.modules: return sys.modules[fullname] + packname, modname = fullname.rsplit('.', 1) + realname = self.impmask % modname + __import__(realname) + module = sys.modules[fullname] = sys.modules[realname] + setattr(self.module, modname, module) + module.__loader__ = self + return module + + + + + + +############################################################################### +# Common Utilities ############################################################# +############################################################################### + + +class MultiDict(DictMixin): + """ This dict stores multiple values per key, but behaves exactly like a + normal dict in that it returns only the newest value for any given key. + There are special methods available to access the full list of values. + """ + + def __init__(self, *a, **k): + self.dict = dict((k, [v]) for (k, v) in dict(*a, **k).items()) + + def __len__(self): return len(self.dict) + def __iter__(self): return iter(self.dict) + def __contains__(self, key): return key in self.dict + def __delitem__(self, key): del self.dict[key] + def __getitem__(self, key): return self.dict[key][-1] + def __setitem__(self, key, value): self.append(key, value) + def keys(self): return self.dict.keys() + + if py3k: + def values(self): return (v[-1] for v in self.dict.values()) + def items(self): return ((k, v[-1]) for k, v in self.dict.items()) + def allitems(self): + return ((k, v) for k, vl in self.dict.items() for v in vl) + iterkeys = keys + itervalues = values + iteritems = items + iterallitems = allitems + + else: + def values(self): return [v[-1] for v in self.dict.values()] + def items(self): return [(k, v[-1]) for k, v in self.dict.items()] + def iterkeys(self): return self.dict.iterkeys() + def itervalues(self): return (v[-1] for v in self.dict.itervalues()) + def iteritems(self): + return ((k, v[-1]) for k, v in self.dict.iteritems()) + def iterallitems(self): + return ((k, v) for k, vl in self.dict.iteritems() for v in vl) + def allitems(self): + return [(k, v) for k, vl in self.dict.iteritems() for v in vl] + + def get(self, key, default=None, index=-1, type=None): + ''' Return the most recent value for a key. + + :param default: The default value to be returned if the key is not + present or the type conversion fails. + :param index: An index for the list of available values. + :param type: If defined, this callable is used to cast the value + into a specific type. Exception are suppressed and result in + the default value to be returned. + ''' + try: + val = self.dict[key][index] + return type(val) if type else val + except Exception: + pass + return default + + def append(self, key, value): + ''' Add a new value to the list of values for this key. ''' + self.dict.setdefault(key, []).append(value) + + def replace(self, key, value): + ''' Replace the list of values with a single value. ''' + self.dict[key] = [value] + + def getall(self, key): + ''' Return a (possibly empty) list of values for a key. ''' + return self.dict.get(key) or [] + + #: Aliases for WTForms to mimic other multi-dict APIs (Django) + getone = get + getlist = getall + + +class FormsDict(MultiDict): + ''' This :class:`MultiDict` subclass is used to store request form data. + Additionally to the normal dict-like item access methods (which return + unmodified data as native strings), this container also supports + attribute-like access to its values. Attributes are automatically de- + or recoded to match :attr:`input_encoding` (default: 'utf8'). Missing + attributes default to an empty string. ''' + + #: Encoding used for attribute values. + input_encoding = 'utf8' + #: If true (default), unicode strings are first encoded with `latin1` + #: and then decoded to match :attr:`input_encoding`. + recode_unicode = True + + def _fix(self, s, encoding=None): + if isinstance(s, unicode) and self.recode_unicode: # Python 3 WSGI + s = s.encode('latin1') + if isinstance(s, bytes): # Python 2 WSGI + return s.decode(encoding or self.input_encoding) + return s + + def decode(self, encoding=None): + ''' Returns a copy with all keys and values de- or recoded to match + :attr:`input_encoding`. Some libraries (e.g. WTForms) want a + unicode dictionary. ''' + copy = FormsDict() + enc = copy.input_encoding = encoding or self.input_encoding + copy.recode_unicode = False + for key, value in self.allitems(): + copy.append(self._fix(key, enc), self._fix(value, enc)) + return copy + + def getunicode(self, name, default=None, encoding=None): + ''' Return the value as a unicode string, or the default. ''' + try: + return self._fix(self[name], encoding) + except (UnicodeError, KeyError): + return default + + def __getattr__(self, name, default=unicode()): + # Without this guard, pickle generates a cryptic TypeError: + if name.startswith('__') and name.endswith('__'): + return super(FormsDict, self).__getattr__(name) + return self.getunicode(name, default=default) + + +class HeaderDict(MultiDict): + """ A case-insensitive version of :class:`MultiDict` that defaults to + replace the old value instead of appending it. """ + + def __init__(self, *a, **ka): + self.dict = {} + if a or ka: self.update(*a, **ka) + + def __contains__(self, key): return _hkey(key) in self.dict + def __delitem__(self, key): del self.dict[_hkey(key)] + def __getitem__(self, key): return self.dict[_hkey(key)][-1] + def __setitem__(self, key, value): self.dict[_hkey(key)] = [str(value)] + def append(self, key, value): + self.dict.setdefault(_hkey(key), []).append(str(value)) + def replace(self, key, value): self.dict[_hkey(key)] = [str(value)] + def getall(self, key): return self.dict.get(_hkey(key)) or [] + def get(self, key, default=None, index=-1): + return MultiDict.get(self, _hkey(key), default, index) + def filter(self, names): + for name in [_hkey(n) for n in names]: + if name in self.dict: + del self.dict[name] + + +class WSGIHeaderDict(DictMixin): + ''' This dict-like class wraps a WSGI environ dict and provides convenient + access to HTTP_* fields. Keys and values are native strings + (2.x bytes or 3.x unicode) and keys are case-insensitive. If the WSGI + environment contains non-native string values, these are de- or encoded + using a lossless 'latin1' character set. + + The API will remain stable even on changes to the relevant PEPs. + Currently PEP 333, 444 and 3333 are supported. (PEP 444 is the only one + that uses non-native strings.) + ''' + #: List of keys that do not have a ``HTTP_`` prefix. + cgikeys = ('CONTENT_TYPE', 'CONTENT_LENGTH') + + def __init__(self, environ): + self.environ = environ + + def _ekey(self, key): + ''' Translate header field name to CGI/WSGI environ key. ''' + key = key.replace('-','_').upper() + if key in self.cgikeys: + return key + return 'HTTP_' + key + + def raw(self, key, default=None): + ''' Return the header value as is (may be bytes or unicode). ''' + return self.environ.get(self._ekey(key), default) + + def __getitem__(self, key): + return tonat(self.environ[self._ekey(key)], 'latin1') + + def __setitem__(self, key, value): + raise TypeError("%s is read-only." % self.__class__) + + def __delitem__(self, key): + raise TypeError("%s is read-only." % self.__class__) + + def __iter__(self): + for key in self.environ: + if key[:5] == 'HTTP_': + yield key[5:].replace('_', '-').title() + elif key in self.cgikeys: + yield key.replace('_', '-').title() + + def keys(self): return [x for x in self] + def __len__(self): return len(self.keys()) + def __contains__(self, key): return self._ekey(key) in self.environ + + + +class ConfigDict(dict): + ''' A dict-like configuration storage with additional support for + namespaces, validators, meta-data, on_change listeners and more. + ''' + + __slots__ = ('_meta', '_on_change') + + def __init__(self, *a, **ka): + self._meta = {} + self._on_change = lambda name, value: None + if a or ka: + depr('Constructor does no longer accept parameters.') + self.update(*a, **ka) + + def load_config(self, filename): + ''' Load values from an *.ini style config file. + + If the config file contains sections, their names are used as + namespaces for the values within. The two special sections + ``DEFAULT`` and ``bottle`` refer to the root namespace (no prefix). + ''' + conf = ConfigParser() + conf.read(filename) + for section in conf.sections(): + for key, value in conf.items(section): + if section not in ('DEFAULT', 'bottle'): + key = section + '.' + key + self[key] = value + return self + + def load_dict(self, source, namespace=''): + ''' Load values from a dictionary structure. Nesting can be used to + represent namespaces. + + >>> c.load_dict({'some': {'namespace': {'key': 'value'} } }) + {'some.namespace.key': 'value'} + ''' + for key, value in source.items(): + if isinstance(key, str): + nskey = (namespace + '.' + key).strip('.') + if isinstance(value, dict): + self.load_dict(value, namespace=nskey) + else: + self[nskey] = value + else: + raise TypeError('Key has type %r (not a string)' % type(key)) + return self + + def update(self, *a, **ka): + ''' If the first parameter is a string, all keys are prefixed with this + namespace. Apart from that it works just as the usual dict.update(). + Example: ``update('some.namespace', key='value')`` ''' + prefix = '' + if a and isinstance(a[0], str): + prefix = a[0].strip('.') + '.' + a = a[1:] + for key, value in dict(*a, **ka).items(): + self[prefix+key] = value + + def setdefault(self, key, value): + if key not in self: + self[key] = value + + def __setitem__(self, key, value): + if not isinstance(key, str): + raise TypeError('Key has type %r (not a string)' % type(key)) + value = self.meta_get(key, 'filter', lambda x: x)(value) + if key in self and self[key] is value: + return + self._on_change(key, value) + dict.__setitem__(self, key, value) + + def __delitem__(self, key): + self._on_change(key, None) + dict.__delitem__(self, key) + + def meta_get(self, key, metafield, default=None): + ''' Return the value of a meta field for a key. ''' + return self._meta.get(key, {}).get(metafield, default) + + def meta_set(self, key, metafield, value): + ''' Set the meta field for a key to a new value. This triggers the + on-change handler for existing keys. ''' + self._meta.setdefault(key, {})[metafield] = value + if key in self: + self[key] = self[key] + + def meta_list(self, key): + ''' Return an iterable of meta field names defined for a key. ''' + return self._meta.get(key, {}).keys() + + # Deprecated ConfigDict features + def __getattr__(self, key): + depr('Attribute access is deprecated.') #0.12 + if key not in self and key[0].isupper(): + self[key] = ConfigDict() + return self.get(key) + + def __setattr__(self, key, value): + if key in self.__slots__: + return dict.__setattr__(self, key, value) + depr('Attribute assignment is deprecated.') #0.12 + if hasattr(dict, key): + raise AttributeError('Read-only attribute.') + if key in self and self[key] and isinstance(self[key], ConfigDict): + raise AttributeError('Non-empty namespace attribute.') + self[key] = value + + def __delattr__(self, key): + if key in self: del self[key] + + def __call__(self, *a, **ka): + depr('Calling ConfDict is deprecated. Use the update() method.') #0.12 + self.update(*a, **ka) + return self + + + +class AppStack(list): + """ A stack-like list. Calling it returns the head of the stack. """ + + def __call__(self): + """ Return the current default application. """ + return self[-1] + + def push(self, value=None): + """ Add a new :class:`Bottle` instance to the stack """ + if not isinstance(value, Bottle): + value = Bottle() + self.append(value) + return value + + +class WSGIFileWrapper(object): + + def __init__(self, fp, buffer_size=1024*64): + self.fp, self.buffer_size = fp, buffer_size + for attr in ('fileno', 'close', 'read', 'readlines', 'tell', 'seek'): + if hasattr(fp, attr): setattr(self, attr, getattr(fp, attr)) + + def __iter__(self): + buff, read = self.buffer_size, self.read + while True: + part = read(buff) + if not part: return + yield part + + +class _closeiter(object): + ''' This only exists to be able to attach a .close method to iterators that + do not support attribute assignment (most of itertools). ''' + + def __init__(self, iterator, close=None): + self.iterator = iterator + self.close_callbacks = makelist(close) + + def __iter__(self): + return iter(self.iterator) + + def close(self): + for func in self.close_callbacks: + func() + + +class ResourceManager(object): + ''' This class manages a list of search paths and helps to find and open + application-bound resources (files). + + :param base: default value for :meth:`add_path` calls. + :param opener: callable used to open resources. + :param cachemode: controls which lookups are cached. One of 'all', + 'found' or 'none'. + ''' + + def __init__(self, base='./', opener=open, cachemode='all'): + self.opener = open + self.base = base + self.cachemode = cachemode + + #: A list of search paths. See :meth:`add_path` for details. + self.path = [] + #: A cache for resolved paths. ``res.cache.clear()`` clears the cache. + self.cache = {} + + def add_path(self, path, base=None, index=None, create=False): + ''' Add a new path to the list of search paths. Return False if the + path does not exist. + + :param path: The new search path. Relative paths are turned into + an absolute and normalized form. If the path looks like a file + (not ending in `/`), the filename is stripped off. + :param base: Path used to absolutize relative search paths. + Defaults to :attr:`base` which defaults to ``os.getcwd()``. + :param index: Position within the list of search paths. Defaults + to last index (appends to the list). + + The `base` parameter makes it easy to reference files installed + along with a python module or package:: + + res.add_path('./resources/', __file__) + ''' + base = os.path.abspath(os.path.dirname(base or self.base)) + path = os.path.abspath(os.path.join(base, os.path.dirname(path))) + path += os.sep + if path in self.path: + self.path.remove(path) + if create and not os.path.isdir(path): + os.makedirs(path) + if index is None: + self.path.append(path) + else: + self.path.insert(index, path) + self.cache.clear() + return os.path.exists(path) + + def __iter__(self): + ''' Iterate over all existing files in all registered paths. ''' + search = self.path[:] + while search: + path = search.pop() + if not os.path.isdir(path): continue + for name in os.listdir(path): + full = os.path.join(path, name) + if os.path.isdir(full): search.append(full) + else: yield full + + def lookup(self, name): + ''' Search for a resource and return an absolute file path, or `None`. + + The :attr:`path` list is searched in order. The first match is + returend. Symlinks are followed. The result is cached to speed up + future lookups. ''' + if name not in self.cache or DEBUG: + for path in self.path: + fpath = os.path.join(path, name) + if os.path.isfile(fpath): + if self.cachemode in ('all', 'found'): + self.cache[name] = fpath + return fpath + if self.cachemode == 'all': + self.cache[name] = None + return self.cache[name] + + def open(self, name, mode='r', *args, **kwargs): + ''' Find a resource and return a file object, or raise IOError. ''' + fname = self.lookup(name) + if not fname: raise IOError("Resource %r not found." % name) + return self.opener(fname, mode=mode, *args, **kwargs) + + +class FileUpload(object): + + def __init__(self, fileobj, name, filename, headers=None): + ''' Wrapper for file uploads. ''' + #: Open file(-like) object (BytesIO buffer or temporary file) + self.file = fileobj + #: Name of the upload form field + self.name = name + #: Raw filename as sent by the client (may contain unsafe characters) + self.raw_filename = filename + #: A :class:`HeaderDict` with additional headers (e.g. content-type) + self.headers = HeaderDict(headers) if headers else HeaderDict() + + content_type = HeaderProperty('Content-Type') + content_length = HeaderProperty('Content-Length', reader=int, default=-1) + + @cached_property + def filename(self): + ''' Name of the file on the client file system, but normalized to ensure + file system compatibility (lowercase, no whitespace, no path + separators, no unsafe characters, ASCII only). An empty filename + is returned as 'empty'. + ''' + from unicodedata import normalize #TODO: Module level import? + fname = self.raw_filename + if isinstance(fname, unicode): + fname = normalize('NFKD', fname).encode('ASCII', 'ignore') + fname = fname.decode('ASCII', 'ignore') + fname = os.path.basename(fname.replace('\\', os.path.sep)) + fname = re.sub(r'[^a-zA-Z0-9-_.\s]', '', fname).strip().lower() + fname = re.sub(r'[-\s]+', '-', fname.strip('.').strip()) + return fname or 'empty' + + def _copy_file(self, fp, chunk_size=2**16): + read, write, offset = self.file.read, fp.write, self.file.tell() + while 1: + buf = read(chunk_size) + if not buf: break + write(buf) + self.file.seek(offset) + + def save(self, destination, overwrite=False, chunk_size=2**16): + ''' Save file to disk or copy its content to an open file(-like) object. + If *destination* is a directory, :attr:`filename` is added to the + path. Existing files are not overwritten by default (IOError). + + :param destination: File path, directory or file(-like) object. + :param overwrite: If True, replace existing files. (default: False) + :param chunk_size: Bytes to read at a time. (default: 64kb) + ''' + if isinstance(destination, basestring): # Except file-likes here + if os.path.isdir(destination): + destination = os.path.join(destination, self.filename) + if not overwrite and os.path.exists(destination): + raise IOError('File exists.') + with open(destination, 'wb') as fp: + self._copy_file(fp, chunk_size) + else: + self._copy_file(destination, chunk_size) + + + + + + +############################################################################### +# Application Helper ########################################################### +############################################################################### + + +def abort(code=500, text='Unknown Error: Application stopped.'): + """ Aborts execution and causes a HTTP error. """ + raise HTTPError(code, text) + + +def redirect(url, code=None): + """ Aborts execution and causes a 303 or 302 redirect, depending on + the HTTP protocol version. """ + if not code: + code = 303 if request.get('SERVER_PROTOCOL') == "HTTP/1.1" else 302 + res = response.copy(cls=HTTPResponse) + res.status = code + res.body = "" + res.set_header('Location', urljoin(request.url, url)) + raise res + + +def _file_iter_range(fp, offset, bytes, maxread=1024*1024): + ''' Yield chunks from a range in a file. No chunk is bigger than maxread.''' + fp.seek(offset) + while bytes > 0: + part = fp.read(min(bytes, maxread)) + if not part: break + bytes -= len(part) + yield part + + +def static_file(filename, root, mimetype='auto', download=False, charset='UTF-8'): + """ Open a file in a safe way and return :exc:`HTTPResponse` with status + code 200, 305, 401 or 404. The ``Content-Type``, ``Content-Encoding``, + ``Content-Length`` and ``Last-Modified`` headers are set if possible. + Special support for ``If-Modified-Since``, ``Range`` and ``HEAD`` + requests. + + :param filename: Name or path of the file to send. + :param root: Root path for file lookups. Should be an absolute directory + path. + :param mimetype: Defines the content-type header (default: guess from + file extension) + :param download: If True, ask the browser to open a `Save as...` dialog + instead of opening the file with the associated program. You can + specify a custom filename as a string. If not specified, the + original filename is used (default: False). + :param charset: The charset to use for files with a ``text/*`` + mime-type. (default: UTF-8) + """ + + root = os.path.abspath(root) + os.sep + filename = os.path.abspath(os.path.join(root, filename.strip('/\\'))) + headers = dict() + + if not filename.startswith(root): + return HTTPError(403, "Access denied.") + if not os.path.exists(filename) or not os.path.isfile(filename): + return HTTPError(404, "File does not exist.") + if not os.access(filename, os.R_OK): + return HTTPError(403, "You do not have permission to access this file.") + + if mimetype == 'auto': + mimetype, encoding = mimetypes.guess_type(filename) + if encoding: headers['Content-Encoding'] = encoding + + if mimetype: + if mimetype[:5] == 'text/' and charset and 'charset' not in mimetype: + mimetype += '; charset=%s' % charset + headers['Content-Type'] = mimetype + + if download: + download = os.path.basename(filename if download == True else download) + headers['Content-Disposition'] = 'attachment; filename="%s"' % download + + stats = os.stat(filename) + headers['Content-Length'] = clen = stats.st_size + lm = time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime(stats.st_mtime)) + headers['Last-Modified'] = lm + + ims = request.environ.get('HTTP_IF_MODIFIED_SINCE') + if ims: + ims = parse_date(ims.split(";")[0].strip()) + if ims is not None and ims >= int(stats.st_mtime): + headers['Date'] = time.strftime("%a, %d %b %Y %H:%M:%S GMT", time.gmtime()) + return HTTPResponse(status=304, **headers) + + body = '' if request.method == 'HEAD' else open(filename, 'rb') + + headers["Accept-Ranges"] = "bytes" + ranges = request.environ.get('HTTP_RANGE') + if 'HTTP_RANGE' in request.environ: + ranges = list(parse_range_header(request.environ['HTTP_RANGE'], clen)) + if not ranges: + return HTTPError(416, "Requested Range Not Satisfiable") + offset, end = ranges[0] + headers["Content-Range"] = "bytes %d-%d/%d" % (offset, end-1, clen) + headers["Content-Length"] = str(end-offset) + if body: body = _file_iter_range(body, offset, end-offset) + return HTTPResponse(body, status=206, **headers) + return HTTPResponse(body, **headers) + + + + + + +############################################################################### +# HTTP Utilities and MISC (TODO) ############################################### +############################################################################### + + +def debug(mode=True): + """ Change the debug level. + There is only one debug level supported at the moment.""" + global DEBUG + if mode: warnings.simplefilter('default') + DEBUG = bool(mode) + +def http_date(value): + if isinstance(value, (datedate, datetime)): + value = value.utctimetuple() + elif isinstance(value, (int, float)): + value = time.gmtime(value) + if not isinstance(value, basestring): + value = time.strftime("%a, %d %b %Y %H:%M:%S GMT", value) + return value + +def parse_date(ims): + """ Parse rfc1123, rfc850 and asctime timestamps and return UTC epoch. """ + try: + ts = email.utils.parsedate_tz(ims) + return time.mktime(ts[:8] + (0,)) - (ts[9] or 0) - time.timezone + except (TypeError, ValueError, IndexError, OverflowError): + return None + +def parse_auth(header): + """ Parse rfc2617 HTTP authentication header string (basic) and return (user,pass) tuple or None""" + try: + method, data = header.split(None, 1) + if method.lower() == 'basic': + user, pwd = touni(base64.b64decode(tob(data))).split(':',1) + return user, pwd + except (KeyError, ValueError): + return None + +def parse_range_header(header, maxlen=0): + ''' Yield (start, end) ranges parsed from a HTTP Range header. Skip + unsatisfiable ranges. The end index is non-inclusive.''' + if not header or header[:6] != 'bytes=': return + ranges = [r.split('-', 1) for r in header[6:].split(',') if '-' in r] + for start, end in ranges: + try: + if not start: # bytes=-100 -> last 100 bytes + start, end = max(0, maxlen-int(end)), maxlen + elif not end: # bytes=100- -> all but the first 99 bytes + start, end = int(start), maxlen + else: # bytes=100-200 -> bytes 100-200 (inclusive) + start, end = int(start), min(int(end)+1, maxlen) + if 0 <= start < end <= maxlen: + yield start, end + except ValueError: + pass + +def _parse_qsl(qs): + r = [] + for pair in qs.replace(';','&').split('&'): + if not pair: continue + nv = pair.split('=', 1) + if len(nv) != 2: nv.append('') + key = urlunquote(nv[0].replace('+', ' ')) + value = urlunquote(nv[1].replace('+', ' ')) + r.append((key, value)) + return r + +def _lscmp(a, b): + ''' Compares two strings in a cryptographically safe way: + Runtime is not affected by length of common prefix. ''' + return not sum(0 if x==y else 1 for x, y in zip(a, b)) and len(a) == len(b) + + +def cookie_encode(data, key): + ''' Encode and sign a pickle-able object. Return a (byte) string ''' + msg = base64.b64encode(pickle.dumps(data, -1)) + sig = base64.b64encode(hmac.new(tob(key), msg).digest()) + return tob('!') + sig + tob('?') + msg + + +def cookie_decode(data, key): + ''' Verify and decode an encoded string. Return an object or None.''' + data = tob(data) + if cookie_is_encoded(data): + sig, msg = data.split(tob('?'), 1) + if _lscmp(sig[1:], base64.b64encode(hmac.new(tob(key), msg).digest())): + return pickle.loads(base64.b64decode(msg)) + return None + + +def cookie_is_encoded(data): + ''' Return True if the argument looks like a encoded cookie.''' + return bool(data.startswith(tob('!')) and tob('?') in data) + + +def html_escape(string): + ''' Escape HTML special characters ``&<>`` and quotes ``'"``. ''' + return string.replace('&','&').replace('<','<').replace('>','>')\ + .replace('"','"').replace("'",''') + + +def html_quote(string): + ''' Escape and quote a string to be used as an HTTP attribute.''' + return '"%s"' % html_escape(string).replace('\n','%#10;')\ + .replace('\r',' ').replace('\t','	') + + +def yieldroutes(func): + """ Return a generator for routes that match the signature (name, args) + of the func parameter. This may yield more than one route if the function + takes optional keyword arguments. The output is best described by example:: + + a() -> '/a' + b(x, y) -> '/b/<x>/<y>' + c(x, y=5) -> '/c/<x>' and '/c/<x>/<y>' + d(x=5, y=6) -> '/d' and '/d/<x>' and '/d/<x>/<y>' + """ + path = '/' + func.__name__.replace('__','/').lstrip('/') + spec = getargspec(func) + argc = len(spec[0]) - len(spec[3] or []) + path += ('/<%s>' * argc) % tuple(spec[0][:argc]) + yield path + for arg in spec[0][argc:]: + path += '/<%s>' % arg + yield path + + +def path_shift(script_name, path_info, shift=1): + ''' Shift path fragments from PATH_INFO to SCRIPT_NAME and vice versa. + + :return: The modified paths. + :param script_name: The SCRIPT_NAME path. + :param script_name: The PATH_INFO path. + :param shift: The number of path fragments to shift. May be negative to + change the shift direction. (default: 1) + ''' + if shift == 0: return script_name, path_info + pathlist = path_info.strip('/').split('/') + scriptlist = script_name.strip('/').split('/') + if pathlist and pathlist[0] == '': pathlist = [] + if scriptlist and scriptlist[0] == '': scriptlist = [] + if shift > 0 and shift <= len(pathlist): + moved = pathlist[:shift] + scriptlist = scriptlist + moved + pathlist = pathlist[shift:] + elif shift < 0 and shift >= -len(scriptlist): + moved = scriptlist[shift:] + pathlist = moved + pathlist + scriptlist = scriptlist[:shift] + else: + empty = 'SCRIPT_NAME' if shift < 0 else 'PATH_INFO' + raise AssertionError("Cannot shift. Nothing left from %s" % empty) + new_script_name = '/' + '/'.join(scriptlist) + new_path_info = '/' + '/'.join(pathlist) + if path_info.endswith('/') and pathlist: new_path_info += '/' + return new_script_name, new_path_info + + +def auth_basic(check, realm="private", text="Access denied"): + ''' Callback decorator to require HTTP auth (basic). + TODO: Add route(check_auth=...) parameter. ''' + def decorator(func): + def wrapper(*a, **ka): + user, password = request.auth or (None, None) + if user is None or not check(user, password): + err = HTTPError(401, text) + err.add_header('WWW-Authenticate', 'Basic realm="%s"' % realm) + return err + return func(*a, **ka) + return wrapper + return decorator + + +# Shortcuts for common Bottle methods. +# They all refer to the current default application. + +def make_default_app_wrapper(name): + ''' Return a callable that relays calls to the current default app. ''' + @functools.wraps(getattr(Bottle, name)) + def wrapper(*a, **ka): + return getattr(app(), name)(*a, **ka) + return wrapper + +route = make_default_app_wrapper('route') +get = make_default_app_wrapper('get') +post = make_default_app_wrapper('post') +put = make_default_app_wrapper('put') +delete = make_default_app_wrapper('delete') +error = make_default_app_wrapper('error') +mount = make_default_app_wrapper('mount') +hook = make_default_app_wrapper('hook') +install = make_default_app_wrapper('install') +uninstall = make_default_app_wrapper('uninstall') +url = make_default_app_wrapper('get_url') + + + + + + + +############################################################################### +# Server Adapter ############################################################### +############################################################################### + + +class ServerAdapter(object): + quiet = False + def __init__(self, host='127.0.0.1', port=8080, **options): + self.options = options + self.host = host + self.port = int(port) + + def run(self, handler): # pragma: no cover + pass + + def __repr__(self): + args = ', '.join(['%s=%s'%(k,repr(v)) for k, v in self.options.items()]) + return "%s(%s)" % (self.__class__.__name__, args) + + +class CGIServer(ServerAdapter): + quiet = True + def run(self, handler): # pragma: no cover + from wsgiref.handlers import CGIHandler + def fixed_environ(environ, start_response): + environ.setdefault('PATH_INFO', '') + return handler(environ, start_response) + CGIHandler().run(fixed_environ) + + +class FlupFCGIServer(ServerAdapter): + def run(self, handler): # pragma: no cover + import flup.server.fcgi + self.options.setdefault('bindAddress', (self.host, self.port)) + flup.server.fcgi.WSGIServer(handler, **self.options).run() + + +class WSGIRefServer(ServerAdapter): + def run(self, app): # pragma: no cover + from wsgiref.simple_server import WSGIRequestHandler, WSGIServer + from wsgiref.simple_server import make_server + import socket + + class FixedHandler(WSGIRequestHandler): + def address_string(self): # Prevent reverse DNS lookups please. + return self.client_address[0] + def log_request(*args, **kw): + if not self.quiet: + return WSGIRequestHandler.log_request(*args, **kw) + + handler_cls = self.options.get('handler_class', FixedHandler) + server_cls = self.options.get('server_class', WSGIServer) + + if ':' in self.host: # Fix wsgiref for IPv6 addresses. + if getattr(server_cls, 'address_family') == socket.AF_INET: + class server_cls(server_cls): + address_family = socket.AF_INET6 + + srv = make_server(self.host, self.port, app, server_cls, handler_cls) + srv.serve_forever() + + +class CherryPyServer(ServerAdapter): + def run(self, handler): # pragma: no cover + from cherrypy import wsgiserver + self.options['bind_addr'] = (self.host, self.port) + self.options['wsgi_app'] = handler + server = wsgiserver.CherryPyWSGIServer(**self.options) + try: + server.start() + finally: + server.stop() + + +class WaitressServer(ServerAdapter): + def run(self, handler): + from waitress import serve + serve(handler, host=self.host, port=self.port) + + +class PasteServer(ServerAdapter): + def run(self, handler): # pragma: no cover + from paste import httpserver + from paste.translogger import TransLogger + handler = TransLogger(handler, setup_console_handler=(not self.quiet)) + httpserver.serve(handler, host=self.host, port=str(self.port), + **self.options) + + +class MeinheldServer(ServerAdapter): + def run(self, handler): + from meinheld import server + server.listen((self.host, self.port)) + server.run(handler) + + +class FapwsServer(ServerAdapter): + """ Extremely fast webserver using libev. See http://www.fapws.org/ """ + def run(self, handler): # pragma: no cover + import fapws._evwsgi as evwsgi + from fapws import base, config + port = self.port + if float(config.SERVER_IDENT[-2:]) > 0.4: + # fapws3 silently changed its API in 0.5 + port = str(port) + evwsgi.start(self.host, port) + # fapws3 never releases the GIL. Complain upstream. I tried. No luck. + if 'BOTTLE_CHILD' in os.environ and not self.quiet: + _stderr("WARNING: Auto-reloading does not work with Fapws3.\n") + _stderr(" (Fapws3 breaks python thread support)\n") + evwsgi.set_base_module(base) + def app(environ, start_response): + environ['wsgi.multiprocess'] = False + return handler(environ, start_response) + evwsgi.wsgi_cb(('', app)) + evwsgi.run() + + +class TornadoServer(ServerAdapter): + """ The super hyped asynchronous server by facebook. Untested. """ + def run(self, handler): # pragma: no cover + import tornado.wsgi, tornado.httpserver, tornado.ioloop + container = tornado.wsgi.WSGIContainer(handler) + server = tornado.httpserver.HTTPServer(container) + server.listen(port=self.port,address=self.host) + tornado.ioloop.IOLoop.instance().start() + + +class AppEngineServer(ServerAdapter): + """ Adapter for Google App Engine. """ + quiet = True + def run(self, handler): + from google.appengine.ext.webapp import util + # A main() function in the handler script enables 'App Caching'. + # Lets makes sure it is there. This _really_ improves performance. + module = sys.modules.get('__main__') + if module and not hasattr(module, 'main'): + module.main = lambda: util.run_wsgi_app(handler) + util.run_wsgi_app(handler) + + +class TwistedServer(ServerAdapter): + """ Untested. """ + def run(self, handler): + from twisted.web import server, wsgi + from twisted.python.threadpool import ThreadPool + from twisted.internet import reactor + thread_pool = ThreadPool() + thread_pool.start() + reactor.addSystemEventTrigger('after', 'shutdown', thread_pool.stop) + factory = server.Site(wsgi.WSGIResource(reactor, thread_pool, handler)) + reactor.listenTCP(self.port, factory, interface=self.host) + reactor.run() + + +class DieselServer(ServerAdapter): + """ Untested. """ + def run(self, handler): + from diesel.protocols.wsgi import WSGIApplication + app = WSGIApplication(handler, port=self.port) + app.run() + + +class GeventServer(ServerAdapter): + """ Untested. Options: + + * `fast` (default: False) uses libevent's http server, but has some + issues: No streaming, no pipelining, no SSL. + * See gevent.wsgi.WSGIServer() documentation for more options. + """ + def run(self, handler): + from gevent import wsgi, pywsgi, local + if not isinstance(_lctx, local.local): + msg = "Bottle requires gevent.monkey.patch_all() (before import)" + raise RuntimeError(msg) + if not self.options.pop('fast', None): wsgi = pywsgi + self.options['log'] = None if self.quiet else 'default' + address = (self.host, self.port) + wsgi.WSGIServer(address, handler, **self.options).serve_forever() + + +class GunicornServer(ServerAdapter): + """ Untested. See http://gunicorn.org/configure.html for options. """ + def run(self, handler): + from gunicorn.app.base import Application + + config = {'bind': "%s:%d" % (self.host, int(self.port))} + config.update(self.options) + + class GunicornApplication(Application): + def init(self, parser, opts, args): + return config + + def load(self): + return handler + + GunicornApplication().run() + + +class EventletServer(ServerAdapter): + """ Untested """ + def run(self, handler): + from eventlet import wsgi, listen + try: + wsgi.server(listen((self.host, self.port)), handler, + log_output=(not self.quiet)) + except TypeError: + # Fallback, if we have old version of eventlet + wsgi.server(listen((self.host, self.port)), handler) + + +class RocketServer(ServerAdapter): + """ Untested. """ + def run(self, handler): + from rocket import Rocket + server = Rocket((self.host, self.port), 'wsgi', { 'wsgi_app' : handler }) + server.start() + + +class BjoernServer(ServerAdapter): + """ Fast server written in C: https://github.com/jonashaag/bjoern """ + def run(self, handler): + from bjoern import run + run(handler, self.host, self.port) + + +class AutoServer(ServerAdapter): + """ Untested. """ + adapters = [WaitressServer, PasteServer, TwistedServer, CherryPyServer, WSGIRefServer] + def run(self, handler): + for sa in self.adapters: + try: + return sa(self.host, self.port, **self.options).run(handler) + except ImportError: + pass + +server_names = { + 'cgi': CGIServer, + 'flup': FlupFCGIServer, + 'wsgiref': WSGIRefServer, + 'waitress': WaitressServer, + 'cherrypy': CherryPyServer, + 'paste': PasteServer, + 'fapws3': FapwsServer, + 'tornado': TornadoServer, + 'gae': AppEngineServer, + 'twisted': TwistedServer, + 'diesel': DieselServer, + 'meinheld': MeinheldServer, + 'gunicorn': GunicornServer, + 'eventlet': EventletServer, + 'gevent': GeventServer, + 'rocket': RocketServer, + 'bjoern' : BjoernServer, + 'auto': AutoServer, +} + + + + + + +############################################################################### +# Application Control ########################################################## +############################################################################### + + +def load(target, **namespace): + """ Import a module or fetch an object from a module. + + * ``package.module`` returns `module` as a module object. + * ``pack.mod:name`` returns the module variable `name` from `pack.mod`. + * ``pack.mod:func()`` calls `pack.mod.func()` and returns the result. + + The last form accepts not only function calls, but any type of + expression. Keyword arguments passed to this function are available as + local variables. Example: ``import_string('re:compile(x)', x='[a-z]')`` + """ + module, target = target.split(":", 1) if ':' in target else (target, None) + if module not in sys.modules: __import__(module) + if not target: return sys.modules[module] + if target.isalnum(): return getattr(sys.modules[module], target) + package_name = module.split('.')[0] + namespace[package_name] = sys.modules[package_name] + return eval('%s.%s' % (module, target), namespace) + + +def load_app(target): + """ Load a bottle application from a module and make sure that the import + does not affect the current default application, but returns a separate + application object. See :func:`load` for the target parameter. """ + global NORUN; NORUN, nr_old = True, NORUN + try: + tmp = default_app.push() # Create a new "default application" + rv = load(target) # Import the target module + return rv if callable(rv) else tmp + finally: + default_app.remove(tmp) # Remove the temporary added default application + NORUN = nr_old + +_debug = debug +def run(app=None, server='wsgiref', host='127.0.0.1', port=8080, + interval=1, reloader=False, quiet=False, plugins=None, + debug=None, **kargs): + """ Start a server instance. This method blocks until the server terminates. + + :param app: WSGI application or target string supported by + :func:`load_app`. (default: :func:`default_app`) + :param server: Server adapter to use. See :data:`server_names` keys + for valid names or pass a :class:`ServerAdapter` subclass. + (default: `wsgiref`) + :param host: Server address to bind to. Pass ``0.0.0.0`` to listens on + all interfaces including the external one. (default: 127.0.0.1) + :param port: Server port to bind to. Values below 1024 require root + privileges. (default: 8080) + :param reloader: Start auto-reloading server? (default: False) + :param interval: Auto-reloader interval in seconds (default: 1) + :param quiet: Suppress output to stdout and stderr? (default: False) + :param options: Options passed to the server adapter. + """ + if NORUN: return + if reloader and not os.environ.get('BOTTLE_CHILD'): + try: + lockfile = None + fd, lockfile = tempfile.mkstemp(prefix='bottle.', suffix='.lock') + os.close(fd) # We only need this file to exist. We never write to it + while os.path.exists(lockfile): + args = [sys.executable] + sys.argv + environ = os.environ.copy() + environ['BOTTLE_CHILD'] = 'true' + environ['BOTTLE_LOCKFILE'] = lockfile + p = subprocess.Popen(args, env=environ) + while p.poll() is None: # Busy wait... + os.utime(lockfile, None) # I am alive! + time.sleep(interval) + if p.poll() != 3: + if os.path.exists(lockfile): os.unlink(lockfile) + sys.exit(p.poll()) + except KeyboardInterrupt: + pass + finally: + if os.path.exists(lockfile): + os.unlink(lockfile) + return + + try: + if debug is not None: _debug(debug) + app = app or default_app() + if isinstance(app, basestring): + app = load_app(app) + if not callable(app): + raise ValueError("Application is not callable: %r" % app) + + for plugin in plugins or []: + app.install(plugin) + + if server in server_names: + server = server_names.get(server) + if isinstance(server, basestring): + server = load(server) + if isinstance(server, type): + server = server(host=host, port=port, **kargs) + if not isinstance(server, ServerAdapter): + raise ValueError("Unknown or unsupported server: %r" % server) + + server.quiet = server.quiet or quiet + if not server.quiet: + _stderr("Bottle v%s server starting up (using %s)...\n" % (__version__, repr(server))) + _stderr("Listening on http://%s:%d/\n" % (server.host, server.port)) + _stderr("Hit Ctrl-C to quit.\n\n") + + if reloader: + lockfile = os.environ.get('BOTTLE_LOCKFILE') + bgcheck = FileCheckerThread(lockfile, interval) + with bgcheck: + server.run(app) + if bgcheck.status == 'reload': + sys.exit(3) + else: + server.run(app) + except KeyboardInterrupt: + pass + except (SystemExit, MemoryError): + raise + except: + if not reloader: raise + if not getattr(server, 'quiet', quiet): + print_exc() + time.sleep(interval) + sys.exit(3) + + + +class FileCheckerThread(threading.Thread): + ''' Interrupt main-thread as soon as a changed module file is detected, + the lockfile gets deleted or gets to old. ''' + + def __init__(self, lockfile, interval): + threading.Thread.__init__(self) + self.lockfile, self.interval = lockfile, interval + #: Is one of 'reload', 'error' or 'exit' + self.status = None + + def run(self): + exists = os.path.exists + mtime = lambda path: os.stat(path).st_mtime + files = dict() + + for module in list(sys.modules.values()): + path = getattr(module, '__file__', '') + if path[-4:] in ('.pyo', '.pyc'): path = path[:-1] + if path and exists(path): files[path] = mtime(path) + + while not self.status: + if not exists(self.lockfile)\ + or mtime(self.lockfile) < time.time() - self.interval - 5: + self.status = 'error' + thread.interrupt_main() + for path, lmtime in list(files.items()): + if not exists(path) or mtime(path) > lmtime: + self.status = 'reload' + thread.interrupt_main() + break + time.sleep(self.interval) + + def __enter__(self): + self.start() + + def __exit__(self, exc_type, exc_val, exc_tb): + if not self.status: self.status = 'exit' # silent exit + self.join() + return exc_type is not None and issubclass(exc_type, KeyboardInterrupt) + + + + + +############################################################################### +# Template Adapters ############################################################ +############################################################################### + + +class TemplateError(HTTPError): + def __init__(self, message): + HTTPError.__init__(self, 500, message) + + +class BaseTemplate(object): + """ Base class and minimal API for template adapters """ + extensions = ['tpl','html','thtml','stpl'] + settings = {} #used in prepare() + defaults = {} #used in render() + + def __init__(self, source=None, name=None, lookup=[], encoding='utf8', **settings): + """ Create a new template. + If the source parameter (str or buffer) is missing, the name argument + is used to guess a template filename. Subclasses can assume that + self.source and/or self.filename are set. Both are strings. + The lookup, encoding and settings parameters are stored as instance + variables. + The lookup parameter stores a list containing directory paths. + The encoding parameter should be used to decode byte strings or files. + The settings parameter contains a dict for engine-specific settings. + """ + self.name = name + self.source = source.read() if hasattr(source, 'read') else source + self.filename = source.filename if hasattr(source, 'filename') else None + self.lookup = [os.path.abspath(x) for x in lookup] + self.encoding = encoding + self.settings = self.settings.copy() # Copy from class variable + self.settings.update(settings) # Apply + if not self.source and self.name: + self.filename = self.search(self.name, self.lookup) + if not self.filename: + raise TemplateError('Template %s not found.' % repr(name)) + if not self.source and not self.filename: + raise TemplateError('No template specified.') + self.prepare(**self.settings) + + @classmethod + def search(cls, name, lookup=[]): + """ Search name in all directories specified in lookup. + First without, then with common extensions. Return first hit. """ + if not lookup: + depr('The template lookup path list should not be empty.') + lookup = ['.'] + + if os.path.isabs(name) and os.path.isfile(name): + depr('Absolute template path names are deprecated.') + return os.path.abspath(name) + + for spath in lookup: + spath = os.path.abspath(spath) + os.sep + fname = os.path.abspath(os.path.join(spath, name)) + if not fname.startswith(spath): continue + if os.path.isfile(fname): return fname + for ext in cls.extensions: + if os.path.isfile('%s.%s' % (fname, ext)): + return '%s.%s' % (fname, ext) + + @classmethod + def global_config(cls, key, *args): + ''' This reads or sets the global settings stored in class.settings. ''' + if args: + cls.settings = cls.settings.copy() # Make settings local to class + cls.settings[key] = args[0] + else: + return cls.settings[key] + + def prepare(self, **options): + """ Run preparations (parsing, caching, ...). + It should be possible to call this again to refresh a template or to + update settings. + """ + raise NotImplementedError + + def render(self, *args, **kwargs): + """ Render the template with the specified local variables and return + a single byte or unicode string. If it is a byte string, the encoding + must match self.encoding. This method must be thread-safe! + Local variables may be provided in dictionaries (args) + or directly, as keywords (kwargs). + """ + raise NotImplementedError + + +class MakoTemplate(BaseTemplate): + def prepare(self, **options): + from mako.template import Template + from mako.lookup import TemplateLookup + options.update({'input_encoding':self.encoding}) + options.setdefault('format_exceptions', bool(DEBUG)) + lookup = TemplateLookup(directories=self.lookup, **options) + if self.source: + self.tpl = Template(self.source, lookup=lookup, **options) + else: + self.tpl = Template(uri=self.name, filename=self.filename, lookup=lookup, **options) + + def render(self, *args, **kwargs): + for dictarg in args: kwargs.update(dictarg) + _defaults = self.defaults.copy() + _defaults.update(kwargs) + return self.tpl.render(**_defaults) + + +class CheetahTemplate(BaseTemplate): + def prepare(self, **options): + from Cheetah.Template import Template + self.context = threading.local() + self.context.vars = {} + options['searchList'] = [self.context.vars] + if self.source: + self.tpl = Template(source=self.source, **options) + else: + self.tpl = Template(file=self.filename, **options) + + def render(self, *args, **kwargs): + for dictarg in args: kwargs.update(dictarg) + self.context.vars.update(self.defaults) + self.context.vars.update(kwargs) + out = str(self.tpl) + self.context.vars.clear() + return out + + +class Jinja2Template(BaseTemplate): + def prepare(self, filters=None, tests=None, **kwargs): + from jinja2 import Environment, FunctionLoader + if 'prefix' in kwargs: # TODO: to be removed after a while + raise RuntimeError('The keyword argument `prefix` has been removed. ' + 'Use the full jinja2 environment name line_statement_prefix instead.') + self.env = Environment(loader=FunctionLoader(self.loader), **kwargs) + if filters: self.env.filters.update(filters) + if tests: self.env.tests.update(tests) + if self.source: + self.tpl = self.env.from_string(self.source) + else: + self.tpl = self.env.get_template(self.filename) + + def render(self, *args, **kwargs): + for dictarg in args: kwargs.update(dictarg) + _defaults = self.defaults.copy() + _defaults.update(kwargs) + return self.tpl.render(**_defaults) + + def loader(self, name): + fname = self.search(name, self.lookup) + if not fname: return + with open(fname, "rb") as f: + return f.read().decode(self.encoding) + + +class SimpleTemplate(BaseTemplate): + + def prepare(self, escape_func=html_escape, noescape=False, syntax=None, **ka): + self.cache = {} + enc = self.encoding + self._str = lambda x: touni(x, enc) + self._escape = lambda x: escape_func(touni(x, enc)) + self.syntax = syntax + if noescape: + self._str, self._escape = self._escape, self._str + + @cached_property + def co(self): + return compile(self.code, self.filename or '<string>', 'exec') + + @cached_property + def code(self): + source = self.source or open(self.filename, 'rb').read() + try: + source, encoding = touni(source), 'utf8' + except UnicodeError: + depr('Template encodings other than utf8 are no longer supported.') + source, encoding = touni(source, 'latin1'), 'latin1' + parser = StplParser(source, encoding=encoding, syntax=self.syntax) + code = parser.translate() + self.encoding = parser.encoding + return code + + def _rebase(self, _env, _name=None, **kwargs): + if _name is None: + depr('Rebase function called without arguments.' + ' You were probably looking for {{base}}?', True) + _env['_rebase'] = (_name, kwargs) + + def _include(self, _env, _name=None, **kwargs): + if _name is None: + depr('Rebase function called without arguments.' + ' You were probably looking for {{base}}?', True) + env = _env.copy() + env.update(kwargs) + if _name not in self.cache: + self.cache[_name] = self.__class__(name=_name, lookup=self.lookup) + return self.cache[_name].execute(env['_stdout'], env) + + def execute(self, _stdout, kwargs): + env = self.defaults.copy() + env.update(kwargs) + env.update({'_stdout': _stdout, '_printlist': _stdout.extend, + 'include': functools.partial(self._include, env), + 'rebase': functools.partial(self._rebase, env), '_rebase': None, + '_str': self._str, '_escape': self._escape, 'get': env.get, + 'setdefault': env.setdefault, 'defined': env.__contains__ }) + eval(self.co, env) + if env.get('_rebase'): + subtpl, rargs = env.pop('_rebase') + rargs['base'] = ''.join(_stdout) #copy stdout + del _stdout[:] # clear stdout + return self._include(env, subtpl, **rargs) + return env + + def render(self, *args, **kwargs): + """ Render the template using keyword arguments as local variables. """ + env = {}; stdout = [] + for dictarg in args: env.update(dictarg) + env.update(kwargs) + self.execute(stdout, env) + return ''.join(stdout) + + +class StplSyntaxError(TemplateError): pass + + +class StplParser(object): + ''' Parser for stpl templates. ''' + _re_cache = {} #: Cache for compiled re patterns + # This huge pile of voodoo magic splits python code into 8 different tokens. + # 1: All kinds of python strings (trust me, it works) + _re_tok = '((?m)[urbURB]?(?:\'\'(?!\')|""(?!")|\'{6}|"{6}' \ + '|\'(?:[^\\\\\']|\\\\.)+?\'|"(?:[^\\\\"]|\\\\.)+?"' \ + '|\'{3}(?:[^\\\\]|\\\\.|\\n)+?\'{3}' \ + '|"{3}(?:[^\\\\]|\\\\.|\\n)+?"{3}))' + _re_inl = _re_tok.replace('|\\n','') # We re-use this string pattern later + # 2: Comments (until end of line, but not the newline itself) + _re_tok += '|(#.*)' + # 3,4: Keywords that start or continue a python block (only start of line) + _re_tok += '|^([ \\t]*(?:if|for|while|with|try|def|class)\\b)' \ + '|^([ \\t]*(?:elif|else|except|finally)\\b)' + # 5: Our special 'end' keyword (but only if it stands alone) + _re_tok += '|((?:^|;)[ \\t]*end[ \\t]*(?=(?:%(block_close)s[ \\t]*)?\\r?$|;|#))' + # 6: A customizable end-of-code-block template token (only end of line) + _re_tok += '|(%(block_close)s[ \\t]*(?=$))' + # 7: And finally, a single newline. The 8th token is 'everything else' + _re_tok += '|(\\r?\\n)' + # Match the start tokens of code areas in a template + _re_split = '(?m)^[ \t]*(\\\\?)((%(line_start)s)|(%(block_start)s))(%%?)' + # Match inline statements (may contain python strings) + _re_inl = '%%(inline_start)s((?:%s|[^\'"\n]*?)+)%%(inline_end)s' % _re_inl + + default_syntax = '<% %> % {{ }}' + + def __init__(self, source, syntax=None, encoding='utf8'): + self.source, self.encoding = touni(source, encoding), encoding + self.set_syntax(syntax or self.default_syntax) + self.code_buffer, self.text_buffer = [], [] + self.lineno, self.offset = 1, 0 + self.indent, self.indent_mod = 0, 0 + + def get_syntax(self): + ''' Tokens as a space separated string (default: <% %> % {{ }}) ''' + return self._syntax + + def set_syntax(self, syntax): + self._syntax = syntax + self._tokens = syntax.split() + if not syntax in self._re_cache: + names = 'block_start block_close line_start inline_start inline_end' + etokens = map(re.escape, self._tokens) + pattern_vars = dict(zip(names.split(), etokens)) + patterns = (self._re_split, self._re_tok, self._re_inl) + patterns = [re.compile(p%pattern_vars) for p in patterns] + self._re_cache[syntax] = patterns + self.re_split, self.re_tok, self.re_inl = self._re_cache[syntax] + + syntax = property(get_syntax, set_syntax) + + def translate(self): + if self.offset: raise RuntimeError('Parser is a one time instance.') + while True: + m = self.re_split.search(self.source[self.offset:]) + if m: + text = self.source[self.offset:self.offset+m.start()] + self.text_buffer.append(text) + self.offset += m.end() + if m.group(1): # New escape syntax + line, sep, _ = self.source[self.offset:].partition('\n') + self.text_buffer.append(m.group(2)+m.group(5)+line+sep) + self.offset += len(line+sep)+1 + continue + elif m.group(5): # Old escape syntax + depr('Escape code lines with a backslash.') + line, sep, _ = self.source[self.offset:].partition('\n') + self.text_buffer.append(m.group(2)+line+sep) + self.offset += len(line+sep)+1 + continue + self.flush_text() + self.read_code(multiline=bool(m.group(4))) + else: break + self.text_buffer.append(self.source[self.offset:]) + self.flush_text() + return ''.join(self.code_buffer) + + def read_code(self, multiline): + code_line, comment, start_line = '', '', self.lineno + while True: + m = self.re_tok.search(self.source[self.offset:]) + if not m: + code_line += self.source[self.offset:] + self.offset = len(self.source) + self.write_code(code_line.strip(), comment) + return + code_line += self.source[self.offset:self.offset+m.start()] + self.offset += m.end() + _str, _com, _blk1, _blk2, _end, _cend, _nl = m.groups() + if _str: # Python string + code_line += _str + elif _com: # Python comment (up to EOL) + comment = _com + if multiline and _com.strip().endswith(self._tokens[1]): + multiline = False # Allow end-of-block in comments + elif _blk1: # Start-block keyword (if/for/while/def/try/...) + code_line, self.indent_mod = _blk1, -1 + self.indent += 1 + elif _blk2: # Continue-block keyword (else/elif/except/...) + code_line, self.indent_mod = _blk2, -1 + elif _end: # The non-standard 'end'-keyword (ends a block) + self.indent -= 1 + elif _cend: # The end-code-block template token (usually '%>') + if multiline: multiline = False + else: code_line += _cend + else: # \n + self.write_code(code_line.strip(), comment) + self.lineno += 1 + code_line, comment, self.indent_mod = '', '', 0 + if not multiline: + break + + def flush_text(self): + text = ''.join(self.text_buffer) + del self.text_buffer[:] + if not text: return + parts, pos, nl = [], 0, '\\\n'+' '*self.indent + for m in self.re_inl.finditer(text): + prefix, pos = text[pos:m.start()], m.end() + if prefix: + parts.append(nl.join(map(repr, prefix.splitlines(True)))) + if prefix.endswith('\n'): parts[-1] += nl + parts.append(self.process_inline(m.group(1).strip())) + if pos < len(text): + prefix = text[pos:] + lines = prefix.splitlines(True) + if lines[-1].endswith('\\\\\n'): lines[-1] = lines[-1][:-3] + parts.append(nl.join(map(repr, lines))) + code = '_printlist((%s,))' % ', '.join(parts) + self.lineno += code.count('\n')+1 + self.write_code(code) + + def process_inline(self, chunk): + if chunk[0] == '!': return '_str(%s)' % chunk[1:] + return '_escape(%s)' % chunk + + def write_code(self, line, comment=''): + line, comment = self.fix_backward_compatibility(line, comment) + code = ' ' * (self.indent+self.indent_mod) + code += line.lstrip() + comment + '\n' + self.code_buffer.append(code) + + def fix_backward_compatibility(self, line, comment): + parts = line.strip().split(None, 2) + if parts and parts[0] in ('include', 'rebase'): + depr('The include and rebase keywords are functions now.') + if len(parts) == 1: return "_printlist([base])", comment + elif len(parts) == 2: return "_=%s(%r)" % tuple(parts), comment + else: return "_=%s(%r, %s)" % tuple(parts), comment + if self.lineno <= 2 and not line.strip() and 'coding' in comment: + m = re.match(r"#.*coding[:=]\s*([-\w.]+)", comment) + if m: + depr('PEP263 encoding strings in templates are deprecated.') + enc = m.group(1) + self.source = self.source.encode(self.encoding).decode(enc) + self.encoding = enc + return line, comment.replace('coding','coding*') + return line, comment + + +def template(*args, **kwargs): + ''' + Get a rendered template as a string iterator. + You can use a name, a filename or a template string as first parameter. + Template rendering arguments can be passed as dictionaries + or directly (as keyword arguments). + ''' + tpl = args[0] if args else None + adapter = kwargs.pop('template_adapter', SimpleTemplate) + lookup = kwargs.pop('template_lookup', TEMPLATE_PATH) + tplid = (id(lookup), tpl) + if tplid not in TEMPLATES or DEBUG: + settings = kwargs.pop('template_settings', {}) + if isinstance(tpl, adapter): + TEMPLATES[tplid] = tpl + if settings: TEMPLATES[tplid].prepare(**settings) + elif "\n" in tpl or "{" in tpl or "%" in tpl or '$' in tpl: + TEMPLATES[tplid] = adapter(source=tpl, lookup=lookup, **settings) + else: + TEMPLATES[tplid] = adapter(name=tpl, lookup=lookup, **settings) + if not TEMPLATES[tplid]: + abort(500, 'Template (%s) not found' % tpl) + for dictarg in args[1:]: kwargs.update(dictarg) + return TEMPLATES[tplid].render(kwargs) + +mako_template = functools.partial(template, template_adapter=MakoTemplate) +cheetah_template = functools.partial(template, template_adapter=CheetahTemplate) +jinja2_template = functools.partial(template, template_adapter=Jinja2Template) + + +def view(tpl_name, **defaults): + ''' Decorator: renders a template for a handler. + The handler can control its behavior like that: + + - return a dict of template vars to fill out the template + - return something other than a dict and the view decorator will not + process the template, but return the handler result as is. + This includes returning a HTTPResponse(dict) to get, + for instance, JSON with autojson or other castfilters. + ''' + def decorator(func): + @functools.wraps(func) + def wrapper(*args, **kwargs): + result = func(*args, **kwargs) + if isinstance(result, (dict, DictMixin)): + tplvars = defaults.copy() + tplvars.update(result) + return template(tpl_name, **tplvars) + elif result is None: + return template(tpl_name, defaults) + return result + return wrapper + return decorator + +mako_view = functools.partial(view, template_adapter=MakoTemplate) +cheetah_view = functools.partial(view, template_adapter=CheetahTemplate) +jinja2_view = functools.partial(view, template_adapter=Jinja2Template) + + + + + + +############################################################################### +# Constants and Globals ######################################################## +############################################################################### + + +TEMPLATE_PATH = ['./', './views/'] +TEMPLATES = {} +DEBUG = False +NORUN = False # If set, run() does nothing. Used by load_app() + +#: A dict to map HTTP status codes (e.g. 404) to phrases (e.g. 'Not Found') +HTTP_CODES = httplib.responses +HTTP_CODES[418] = "I'm a teapot" # RFC 2324 +HTTP_CODES[428] = "Precondition Required" +HTTP_CODES[429] = "Too Many Requests" +HTTP_CODES[431] = "Request Header Fields Too Large" +HTTP_CODES[511] = "Network Authentication Required" +_HTTP_STATUS_LINES = dict((k, '%d %s'%(k,v)) for (k,v) in HTTP_CODES.items()) + +#: The default template used for error pages. Override with @error() +ERROR_PAGE_TEMPLATE = """ +%%try: + %%from %s import DEBUG, HTTP_CODES, request, touni + <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> + <html> + <head> + <title>Error: {{e.status}}</title> + <style type="text/css"> + html {background-color: #eee; font-family: sans;} + body {background-color: #fff; border: 1px solid #ddd; + padding: 15px; margin: 15px;} + pre {background-color: #eee; border: 1px solid #ddd; padding: 5px;} + </style> + </head> + <body> + <h1>Error: {{e.status}}</h1> + <p>Sorry, the requested URL <tt>{{repr(request.url)}}</tt> + caused an error:</p> + <pre>{{e.body}}</pre> + %%if DEBUG and e.exception: + <h2>Exception:</h2> + <pre>{{repr(e.exception)}}</pre> + %%end + %%if DEBUG and e.traceback: + <h2>Traceback:</h2> + <pre>{{e.traceback}}</pre> + %%end + </body> + </html> +%%except ImportError: + <b>ImportError:</b> Could not generate the error page. Please add bottle to + the import path. +%%end +""" % __name__ + +#: A thread-safe instance of :class:`LocalRequest`. If accessed from within a +#: request callback, this instance always refers to the *current* request +#: (even on a multithreaded server). +request = LocalRequest() + +#: A thread-safe instance of :class:`LocalResponse`. It is used to change the +#: HTTP response for the *current* request. +response = LocalResponse() + +#: A thread-safe namespace. Not used by Bottle. +local = threading.local() + +# Initialize app stack (create first empty Bottle app) +# BC: 0.6.4 and needed for run() +app = default_app = AppStack() +app.push() + +#: A virtual package that redirects import statements. +#: Example: ``import bottle.ext.sqlite`` actually imports `bottle_sqlite`. +ext = _ImportRedirect('bottle.ext' if __name__ == '__main__' else __name__+".ext", 'bottle_%s').module + +if __name__ == '__main__': + opt, args, parser = _cmd_options, _cmd_args, _cmd_parser + if opt.version: + _stdout('Bottle %s\n'%__version__) + sys.exit(0) + if not args: + parser.print_help() + _stderr('\nError: No application specified.\n') + sys.exit(1) + + sys.path.insert(0, '.') + sys.modules.setdefault('bottle', sys.modules['__main__']) + + host, port = (opt.bind or 'localhost'), 8080 + if ':' in host and host.rfind(']') < host.rfind(':'): + host, port = host.rsplit(':', 1) + host = host.strip('[]') + + run(args[0], host=host, port=int(port), server=opt.server, + reloader=opt.reload, plugins=opt.plugin, debug=opt.debug) + + + + +# THE END diff --git a/frontend/impattern/old/index.html.old b/frontend/impattern/old/index.html.old new file mode 100644 index 0000000..fbb5850 --- /dev/null +++ b/frontend/impattern/old/index.html.old @@ -0,0 +1,305 @@ +<html> +<head> +<link href='http://fonts.googleapis.com/css?family=Orienta|Roboto' rel='stylesheet' type='text/css'> +<style type="text/css"> +body{ +font-family: 'Roboto', sans-serif; +} +.title{ + font-family: 'Orienta', sans-serif; + font-size:3em; + text-shadow: 2px 4px 3px rgba(153,153,153,0.3); + color: #1C1C1C; +} +#sample + { + border-style: outset; + border-color: gray; + border-width: 5px; + } +table.dithertable { + border-width: 5px; + border-spacing: 3px; + border-style: outset; + border-color: gray; + border-collapse: separate; + background-color: rgb(250, 240, 230); +} +table.dithertable th { + border-width: medium; + padding: 2px; + border-style: ridge; + border-color: gray; + background-color: rgb(255, 255, 240); + -moz-border-radius: ; +} +table.dithertable td { + border-width: medium; + padding: 2px; + border-style: ridge; + border-color: gray; + background-color: rgb(255, 255, 240); + -moz-border-radius: ; + background-color:white; +} +.patterns + { + width:10px; + height:10px; + cursor:pointer; + } +#dithertable + { + width:50%; + display:inline-block; + } +tr + { + height:40px; + } +.dontshowme{ + display: none; + +} +</style> + +</head> +<body> +<div id="imdither"> + <img src="img/impattern.png"/> +</div> + +<div id="step1"> +Step 1: Choose your dither +</div> +<table class="dithertable" id="dithertable"> +<tr> +<td class='patterns' style='background-image:url(patterns/1.png)' id='dither_1'> </td> +<td class='patterns' style='background-image:url(patterns/10.png)' id='dither_10'> </td> +<td class='patterns' style='background-image:url(patterns/11.png)' id='dither_11'></td> +<td class='patterns' style='background-image:url(patterns/12.png)' id='dither_12'></td> +<td class='patterns' style='background-image:url(patterns/13.png)' id='dither_13'></td> +<td class='patterns' style='background-image:url(patterns/14.png)' id='dither_14'></td> +<td class='patterns' style='background-image:url(patterns/15.png)' id='dither_15'></td> +<td class='patterns' style='background-image:url(patterns/16.png)' id='dither_16'></td> +<td class='patterns' style='background-image:url(patterns/17.png)' id='dither_17'></td> +<td class='patterns' style='background-image:url(patterns/18.png)' id='dither_18'></td> +<td class='patterns' style='background-image:url(patterns/19.png)' id='dither_19'></td> +<td class='patterns' style='background-image:url(patterns/2.png)' id='dither_2'></td> +<td class='patterns' style='background-image:url(patterns/20.png)' id='dither_20'></td> +<td class='patterns' style='background-image:url(patterns/21.png)' id='dither_21'></td> +<td class='patterns' style='background-image:url(patterns/22.png)' id='dither_22'></td> +<td class='patterns' style='background-image:url(patterns/23.png)' id='dither_23'></td> +<td class='patterns' style='background-image:url(patterns/24.png)' id='dither_24'></td> +<td class='patterns' style='background-image:url(patterns/25.png)' id='dither_25'></td> +<td class='patterns' style='background-image:url(patterns/26.png)' id='dither_26'></td> +<td class='patterns' style='background-image:url(patterns/27.png)' id='dither_27'></td> +<td class='patterns' style='background-image:url(patterns/28.png)' id='dither_28'></td> +<td class='patterns' style='background-image:url(patterns/29.png)' id='dither_29'></td> +<td class='patterns' style='background-image:url(patterns/3.png)' id='dither_3'></td> +<td class='patterns' style='background-image:url(patterns/30.png)' id='dither_30'></td> +</tr> +<tr> +<td class='patterns' style='background-image:url(patterns/31.png)' id='dither_31'></td> +<td class='patterns' style='background-image:url(patterns/32.png)' id='dither_32'></td> +<td class='patterns' style='background-image:url(patterns/33.png)' id='dither_33'></td> +<td class='patterns' style='background-image:url(patterns/34.png)' id='dither_34'></td> +<td class='patterns' style='background-image:url(patterns/35.png)' id='dither_35'></td> +<td class='patterns' style='background-image:url(patterns/36.png)' id='dither_36'></td> +<td class='patterns' style='background-image:url(patterns/37.png)' id='dither_37'></td> +<td class='patterns' style='background-image:url(patterns/38.png)' id='dither_38'></td> +<td class='patterns' style='background-image:url(patterns/39.png)' id='dither_39'></td> +<td class='patterns' style='background-image:url(patterns/4.png)' id='dither_4'></td> +<td class='patterns' style='background-image:url(patterns/40.png)' id='dither_40'></td> +<td class='patterns' style='background-image:url(patterns/41.png)' id='dither_41'></td> +<td class='patterns' style='background-image:url(patterns/42.png)' id='dither_42'></td> +<td class='patterns' style='background-image:url(patterns/43.png)' id='dither_43'></td> +<td class='patterns' style='background-image:url(patterns/44.png)' id='dither_44'></td> +<td class='patterns' style='background-image:url(patterns/45.png)' id='dither_45'></td> +<td class='patterns' style='background-image:url(patterns/46.png)' id='dither_46'></td> +<td class='patterns' style='background-image:url(patterns/47.png)' id='dither_47'></td> +<td class='patterns' style='background-image:url(patterns/48.png)' id='dither_48'></td> +<td class='patterns' style='background-image:url(patterns/49.png)' id='dither_49'></td> +<td class='patterns' style='background-image:url(patterns/5.png)' id='dither_5'></td> +<td class='patterns' style='background-image:url(patterns/50.png)' id='dither_50'></td> +<td class='patterns' style='background-image:url(patterns/51.png)' id='dither_51'></td> +<td class='patterns' style='background-image:url(patterns/52.png)' id='dither_52'></td> +</tr> +<tr> + +<td class='patterns' style='background-image:url(patterns/53.png)' id='dither_53'></td> +<td class='patterns' style='background-image:url(patterns/54.png)' id='dither_54'></td> +<td class='patterns' style='background-image:url(patterns/55.png)' id='dither_55'></td> +<td class='patterns' style='background-image:url(patterns/56.png)' id='dither_56'></td> +<td class='patterns' style='background-image:url(patterns/57.png)' id='dither_57'></td> +<td class='patterns' style='background-image:url(patterns/58.png)' id='dither_58'></td> +<td class='patterns' style='background-image:url(patterns/59.png)' id='dither_59'></td> +<td class='patterns' style='background-image:url(patterns/6.png)' id='dither_6'></td> +<td class='patterns' style='background-image:url(patterns/60.png)' id='dither_60'></td> + +<td class='patterns' style='background-image:url(patterns/61.png)' id='dither_61'></td> +<td class='patterns' style='background-image:url(patterns/62.png)' id='dither_62'></td> +<td class='patterns' style='background-image:url(patterns/63.png)' id='dither_63'></td> +<td class='patterns' style='background-image:url(patterns/64.png)' id='dither_64'></td> +<td class='patterns' style='background-image:url(patterns/65.png)' id='dither_65'></td> +<td class='patterns' style='background-image:url(patterns/66.png)' id='dither_66'></td> +<td class='patterns' style='background-image:url(patterns/67.png)' id='dither_67'></td> +<td class='patterns' style='background-image:url(patterns/68.png)' id='dither_68'></td> +<td class='patterns' style='background-image:url(patterns/69.png)' id='dither_69'></td> +<td class='patterns' style='background-image:url(patterns/7.png)' id='dither_7'></td> +<td class='patterns' style='background-image:url(patterns/70.png)' id='dither_70'></td> +<td class='patterns' style='background-image:url(patterns/71.png)' id='dither_71'></td> +<td class='patterns' style='background-image:url(patterns/72.png)' id='dither_72'></td> +<td class='patterns' style='background-image:url(patterns/73.png)' id='dither_73'></td> +<td class='patterns' style='background-image:url(patterns/74.png)' id='dither_74'></td> +</tr> +<tr> +<td class='patterns' style='background-image:url(patterns/75.png)' id='dither_75'></td> +<td class='patterns' style='background-image:url(patterns/76.png)' id='dither_76'></td> +<td class='patterns' style='background-image:url(patterns/77.png)' id='dither_77'></td> +<td class='patterns' style='background-image:url(patterns/78.png)' id='dither_78'></td> +<td class='patterns' style='background-image:url(patterns/79.png)' id='dither_79'></td> +<td class='patterns' style='background-image:url(patterns/8.png)' id='dither_8'></td> +<td class='patterns' style='background-image:url(patterns/80.png)' id='dither_80'></td> +<td class='patterns' style='background-image:url(patterns/81.png)' id='dither_81'></td> +<td class='patterns' style='background-image:url(patterns/82.png)' id='dither_82'></td> +<td class='patterns' style='background-image:url(patterns/83.png)' id='dither_83'></td> +<td class='patterns' style='background-image:url(patterns/84.png)' id='dither_84'></td> +<td class='patterns' style='background-image:url(patterns/85.png)' id='dither_85'></td> +<td class='patterns' style='background-image:url(patterns/86.png)' id='dither_86'></td> +<td class='patterns' style='background-image:url(patterns/87.png)' id='dither_87'></td> +<td class='patterns' style='background-image:url(patterns/88.png)' id='dither_88'></td> +<td class='patterns' style='background-image:url(patterns/89.png)' id='dither_89'></td> +<td class='patterns' style='background-image:url(patterns/9.png)' id='dither_9'></td> +<td class='patterns' style='background-image:url(patterns/90.png)' id='dither_90'></td> +<td class='patterns' style='background-image:url(patterns/91.png)' id='dither_91'></td> +<td class='patterns' style='background-image:url(patterns/92.png)' id='dither_92'></td> +<td class='patterns' style='background-image:url(patterns/93.png)' id='dither_93'></td> +<td class='patterns' style='background-image:url(patterns/94.png)' id='dither_94'></td> +<td class='patterns' style='background-image:url(patterns/95.png)' id='dither_95'></td> +<td class='patterns' style='background-image:url(patterns/96.png)' id='dither_96'></td> + +</tr> +<tr> +<td class='patterns' style='background-image:url(patterns/a0.png)' id='dither_a0'></td> +<td class='patterns' style='background-image:url(patterns/a1.png)' id='dither_a1'></td> +<td class='patterns' style='background-image:url(patterns/a10.png)' id='dither_a10'></td> +<td class='patterns' style='background-image:url(patterns/a11.png)' id='dither_a11'></td> +<td class='patterns' style='background-image:url(patterns/a12.png)' id='dither_a12'></td> +<td class='patterns' style='background-image:url(patterns/a13.png)' id='dither_a13'></td> +<td class='patterns' style='background-image:url(patterns/a14.png)' id='dither_a14'></td> +<td class='patterns' style='background-image:url(patterns/a15.png)' id='dither_a15'></td> +<td class='patterns' style='background-image:url(patterns/a16.png)' id='dither_a16'></td> +<td class='patterns' style='background-image:url(patterns/a17.png)' id='dither_a17'></td> +<td class='patterns' style='background-image:url(patterns/a18.png)' id='dither_a18'></td> +<td class='patterns' style='background-image:url(patterns/a19.png)' id='dither_a19'></td> +<td class='patterns' style='background-image:url(patterns/a2.png)' id='dither_a2'></td> +<td class='patterns' style='background-image:url(patterns/a20.png)' id='dither_a20'></td> +<td class='patterns' style='background-image:url(patterns/a21.png)' id='dither_a21'></td> +<td class='patterns' style='background-image:url(patterns/a22.png)' id='dither_a22'></td> +<td class='patterns' style='background-image:url(patterns/a23.png)' id='dither_a23'></td> +<td class='patterns' style='background-image:url(patterns/a24.png)' id='dither_a24'></td> +<td class='patterns' style='background-image:url(patterns/a25.png)' id='dither_a25'></td> +<td class='patterns' style='background-image:url(patterns/a26.png)' id='dither_a26'></td> +<td class='patterns' style='background-image:url(patterns/a27.png)' id='dither_a27'></td> +<td class='patterns' style='background-image:url(patterns/a28.png)' id='dither_a28'></td> +<td class='patterns' style='background-image:url(patterns/a29.png)' id='dither_a29'></td> +<td class='patterns' style='background-image:url(patterns/a3.png)' id='dither_a3'></td> + +</tr> +<tr> +<td class='patterns' style='background-image:url(patterns/a30.png)' id='dither_a30'></td> +<td class='patterns' style='background-image:url(patterns/a31.png)' id='dither_a31'></td> +<td class='patterns' style='background-image:url(patterns/a32.png)' id='dither_a32'></td> +<td class='patterns' style='background-image:url(patterns/a33.png)' id='dither_a33'></td> +<td class='patterns' style='background-image:url(patterns/a34.png)' id='dither_a34'></td> +<td class='patterns' style='background-image:url(patterns/a35.png)' id='dither_a35'></td> +<td class='patterns' style='background-image:url(patterns/a36.png)' id='dither_a36'></td> +<td class='patterns' style='background-image:url(patterns/a37.png)' id='dither_a37'></td> +<td class='patterns' style='background-image:url(patterns/a38.png)' id='dither_a38'></td> +<td class='patterns' style='background-image:url(patterns/a39.png)' id='dither_a39'></td> +<td class='patterns' style='background-image:url(patterns/a4.png)' id='dither_a4'></td> +<td class='patterns' style='background-image:url(patterns/a40.png)' id='dither_a40'></td> +<td class='patterns' style='background-image:url(patterns/a41.png)' id='dither_a41'></td> +<td class='patterns' style='background-image:url(patterns/a5.png)' id='dither_a5'></td> +<td class='patterns' style='background-image:url(patterns/a6.png)' id='dither_a6'></td> +<td class='patterns' style='background-image:url(patterns/a7.png)' id='dither_a7'></td> +<td class='patterns' style='background-image:url(patterns/a8.png)' id='dither_a8'></td> +<td class='patterns' style='background-image:url(patterns/a9.png)' id='dither_a9'></td> +</tr> +</table> + + +<div id="sample"> +</div> + +</br> +<span class="parameter">Image to overlay:</span><input type="text/css" class="image_input" value="Enter an image url here"></input> +<span class="parameter">Or Upload</span><input type="text/css" class="image_input" value="Enter an image url here"></input> +</br><span class="uploadError dontshowme unsubmitted"></span> +<button id="submit">SUBMIT</button> + +<div class="processing dontshowme"></div> +<div class="result dontshowme"></div> + +<script type="text/javascript" src="jquery.min.js"></script> +<script type="text/javascript" src="Math.uuid.js"></script> +<script type="text/javascript"> +function makesample(){ + theheight = $('#dithertable').height() + $('#sample').css({'width':"20%",'height':theheight,'display':'inline-block'}) +} +makesample() + +var preview_box = $("#sample") +$('.patterns').click(function(){ + $('.patterns').css({'border-color':'gray','-moz-box-shadow': 'none','-webkit-box-shadow':'none','box-shadow': 'none'}); + $(this).css({'border-color':'#EE0000','-moz-box-shadow': '0px 0px 9px 3px firebrick','-webkit-box-shadow':'0px 0px 9px 3px firebrick','box-shadow': '0px 0px 9px 3px firebrick'}) + var dither = $(this).css("background-image"); + preview_box.css("background-image", dither); + }); +$(".image_input").clicked = false; +$(".image_input").click(function(){ + if(! $(this).clicked){ + $(this).attr("value", ""); + $(this).clicked = true; + } + }) + +function showResult(src){ + img = document.createElement("img"); + img.src = src; + document.body.appendChild(img); +} +$("#submit").click(function(){ + var unique_id = Math.uuid(5,10).toString + "_imdither"; + + if (! $(".uploadError").hasClass("dontshowme") ){ + $(".uploadError").addClass("dontshowme") + } + + var image_url = $(".image_input").val() + if (! image_url || image_url == "Enter an image url here"){ + uploadError = $(".uploadError") + uploadError.html("you didn't provide an image url") + uploadError.removeClass("dontshowme") + return false; + } + $.ajax({ + type: "POST", + url: "process", + data: { + url: image_url, + unique_id: unique_id + } + }).done(function( data ) { + console.log( "Data Saved: " + data ); + showResult(data); + }); +}) +</script> + + +</body> +</html> + diff --git a/frontend/impattern/old/oldpatterns/1.png b/frontend/impattern/old/oldpatterns/1.png Binary files differnew file mode 100644 index 0000000..a0aeccb --- /dev/null +++ b/frontend/impattern/old/oldpatterns/1.png diff --git a/frontend/impattern/old/oldpatterns/10.png b/frontend/impattern/old/oldpatterns/10.png Binary files differnew file mode 100644 index 0000000..3865589 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/10.png diff --git a/frontend/impattern/old/oldpatterns/11.png b/frontend/impattern/old/oldpatterns/11.png Binary files differnew file mode 100644 index 0000000..2a8ca34 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/11.png diff --git a/frontend/impattern/old/oldpatterns/12.png b/frontend/impattern/old/oldpatterns/12.png Binary files differnew file mode 100644 index 0000000..4adb35f --- /dev/null +++ b/frontend/impattern/old/oldpatterns/12.png diff --git a/frontend/impattern/old/oldpatterns/13.png b/frontend/impattern/old/oldpatterns/13.png Binary files differnew file mode 100644 index 0000000..48e9362 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/13.png diff --git a/frontend/impattern/old/oldpatterns/14.png b/frontend/impattern/old/oldpatterns/14.png Binary files differnew file mode 100644 index 0000000..867b0a9 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/14.png diff --git a/frontend/impattern/old/oldpatterns/15.png b/frontend/impattern/old/oldpatterns/15.png Binary files differnew file mode 100644 index 0000000..f37be5a --- /dev/null +++ b/frontend/impattern/old/oldpatterns/15.png diff --git a/frontend/impattern/old/oldpatterns/16.png b/frontend/impattern/old/oldpatterns/16.png Binary files differnew file mode 100644 index 0000000..7994ced --- /dev/null +++ b/frontend/impattern/old/oldpatterns/16.png diff --git a/frontend/impattern/old/oldpatterns/17.png b/frontend/impattern/old/oldpatterns/17.png Binary files differnew file mode 100644 index 0000000..9ffa444 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/17.png diff --git a/frontend/impattern/old/oldpatterns/18.png b/frontend/impattern/old/oldpatterns/18.png Binary files differnew file mode 100644 index 0000000..2522e8d --- /dev/null +++ b/frontend/impattern/old/oldpatterns/18.png diff --git a/frontend/impattern/old/oldpatterns/19.png b/frontend/impattern/old/oldpatterns/19.png Binary files differnew file mode 100644 index 0000000..5b4ac7a --- /dev/null +++ b/frontend/impattern/old/oldpatterns/19.png diff --git a/frontend/impattern/old/oldpatterns/2.png b/frontend/impattern/old/oldpatterns/2.png Binary files differnew file mode 100644 index 0000000..a6aa256 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/2.png diff --git a/frontend/impattern/old/oldpatterns/20.png b/frontend/impattern/old/oldpatterns/20.png Binary files differnew file mode 100644 index 0000000..57a82c1 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/20.png diff --git a/frontend/impattern/old/oldpatterns/21.png b/frontend/impattern/old/oldpatterns/21.png Binary files differnew file mode 100644 index 0000000..2b671c7 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/21.png diff --git a/frontend/impattern/old/oldpatterns/22.png b/frontend/impattern/old/oldpatterns/22.png Binary files differnew file mode 100644 index 0000000..d28f071 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/22.png diff --git a/frontend/impattern/old/oldpatterns/23.png b/frontend/impattern/old/oldpatterns/23.png Binary files differnew file mode 100644 index 0000000..052cf6f --- /dev/null +++ b/frontend/impattern/old/oldpatterns/23.png diff --git a/frontend/impattern/old/oldpatterns/24.png b/frontend/impattern/old/oldpatterns/24.png Binary files differnew file mode 100644 index 0000000..4bee000 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/24.png diff --git a/frontend/impattern/old/oldpatterns/25.png b/frontend/impattern/old/oldpatterns/25.png Binary files differnew file mode 100644 index 0000000..cbd1097 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/25.png diff --git a/frontend/impattern/old/oldpatterns/26.png b/frontend/impattern/old/oldpatterns/26.png Binary files differnew file mode 100644 index 0000000..5fc32f4 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/26.png diff --git a/frontend/impattern/old/oldpatterns/27.png b/frontend/impattern/old/oldpatterns/27.png Binary files differnew file mode 100644 index 0000000..18ce493 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/27.png diff --git a/frontend/impattern/old/oldpatterns/28.png b/frontend/impattern/old/oldpatterns/28.png Binary files differnew file mode 100644 index 0000000..5924c44 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/28.png diff --git a/frontend/impattern/old/oldpatterns/29.png b/frontend/impattern/old/oldpatterns/29.png Binary files differnew file mode 100644 index 0000000..16fc2a5 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/29.png diff --git a/frontend/impattern/old/oldpatterns/3.png b/frontend/impattern/old/oldpatterns/3.png Binary files differnew file mode 100644 index 0000000..8c3d334 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/3.png diff --git a/frontend/impattern/old/oldpatterns/30.png b/frontend/impattern/old/oldpatterns/30.png Binary files differnew file mode 100644 index 0000000..50c8289 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/30.png diff --git a/frontend/impattern/old/oldpatterns/31.png b/frontend/impattern/old/oldpatterns/31.png Binary files differnew file mode 100644 index 0000000..3dd944e --- /dev/null +++ b/frontend/impattern/old/oldpatterns/31.png diff --git a/frontend/impattern/old/oldpatterns/32.png b/frontend/impattern/old/oldpatterns/32.png Binary files differnew file mode 100644 index 0000000..79aeb84 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/32.png diff --git a/frontend/impattern/old/oldpatterns/33.png b/frontend/impattern/old/oldpatterns/33.png Binary files differnew file mode 100644 index 0000000..55def42 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/33.png diff --git a/frontend/impattern/old/oldpatterns/34.png b/frontend/impattern/old/oldpatterns/34.png Binary files differnew file mode 100644 index 0000000..f7616ea --- /dev/null +++ b/frontend/impattern/old/oldpatterns/34.png diff --git a/frontend/impattern/old/oldpatterns/35.png b/frontend/impattern/old/oldpatterns/35.png Binary files differnew file mode 100644 index 0000000..3ecbaaf --- /dev/null +++ b/frontend/impattern/old/oldpatterns/35.png diff --git a/frontend/impattern/old/oldpatterns/36.png b/frontend/impattern/old/oldpatterns/36.png Binary files differnew file mode 100644 index 0000000..0243cf7 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/36.png diff --git a/frontend/impattern/old/oldpatterns/37.png b/frontend/impattern/old/oldpatterns/37.png Binary files differnew file mode 100644 index 0000000..012ed79 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/37.png diff --git a/frontend/impattern/old/oldpatterns/38.png b/frontend/impattern/old/oldpatterns/38.png Binary files differnew file mode 100644 index 0000000..9aa54b7 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/38.png diff --git a/frontend/impattern/old/oldpatterns/39.png b/frontend/impattern/old/oldpatterns/39.png Binary files differnew file mode 100644 index 0000000..e98ec53 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/39.png diff --git a/frontend/impattern/old/oldpatterns/4.png b/frontend/impattern/old/oldpatterns/4.png Binary files differnew file mode 100644 index 0000000..473e6e7 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/4.png diff --git a/frontend/impattern/old/oldpatterns/40.png b/frontend/impattern/old/oldpatterns/40.png Binary files differnew file mode 100644 index 0000000..d7d7cba --- /dev/null +++ b/frontend/impattern/old/oldpatterns/40.png diff --git a/frontend/impattern/old/oldpatterns/41.png b/frontend/impattern/old/oldpatterns/41.png Binary files differnew file mode 100644 index 0000000..5d15dd7 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/41.png diff --git a/frontend/impattern/old/oldpatterns/42.png b/frontend/impattern/old/oldpatterns/42.png Binary files differnew file mode 100644 index 0000000..dedbfe2 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/42.png diff --git a/frontend/impattern/old/oldpatterns/43.png b/frontend/impattern/old/oldpatterns/43.png Binary files differnew file mode 100644 index 0000000..dd690d6 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/43.png diff --git a/frontend/impattern/old/oldpatterns/44.png b/frontend/impattern/old/oldpatterns/44.png Binary files differnew file mode 100644 index 0000000..12afc85 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/44.png diff --git a/frontend/impattern/old/oldpatterns/45.png b/frontend/impattern/old/oldpatterns/45.png Binary files differnew file mode 100644 index 0000000..972933b --- /dev/null +++ b/frontend/impattern/old/oldpatterns/45.png diff --git a/frontend/impattern/old/oldpatterns/46.png b/frontend/impattern/old/oldpatterns/46.png Binary files differnew file mode 100644 index 0000000..857ef06 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/46.png diff --git a/frontend/impattern/old/oldpatterns/47.png b/frontend/impattern/old/oldpatterns/47.png Binary files differnew file mode 100644 index 0000000..4002e54 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/47.png diff --git a/frontend/impattern/old/oldpatterns/48.png b/frontend/impattern/old/oldpatterns/48.png Binary files differnew file mode 100644 index 0000000..ff785ed --- /dev/null +++ b/frontend/impattern/old/oldpatterns/48.png diff --git a/frontend/impattern/old/oldpatterns/49.png b/frontend/impattern/old/oldpatterns/49.png Binary files differnew file mode 100644 index 0000000..1a8525f --- /dev/null +++ b/frontend/impattern/old/oldpatterns/49.png diff --git a/frontend/impattern/old/oldpatterns/5.png b/frontend/impattern/old/oldpatterns/5.png Binary files differnew file mode 100644 index 0000000..7bd6619 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/5.png diff --git a/frontend/impattern/old/oldpatterns/50.png b/frontend/impattern/old/oldpatterns/50.png Binary files differnew file mode 100644 index 0000000..f32d908 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/50.png diff --git a/frontend/impattern/old/oldpatterns/51.png b/frontend/impattern/old/oldpatterns/51.png Binary files differnew file mode 100644 index 0000000..20dc9ca --- /dev/null +++ b/frontend/impattern/old/oldpatterns/51.png diff --git a/frontend/impattern/old/oldpatterns/52.png b/frontend/impattern/old/oldpatterns/52.png Binary files differnew file mode 100644 index 0000000..0e097fa --- /dev/null +++ b/frontend/impattern/old/oldpatterns/52.png diff --git a/frontend/impattern/old/oldpatterns/53.png b/frontend/impattern/old/oldpatterns/53.png Binary files differnew file mode 100644 index 0000000..eec7951 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/53.png diff --git a/frontend/impattern/old/oldpatterns/54.png b/frontend/impattern/old/oldpatterns/54.png Binary files differnew file mode 100644 index 0000000..e23a862 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/54.png diff --git a/frontend/impattern/old/oldpatterns/55.png b/frontend/impattern/old/oldpatterns/55.png Binary files differnew file mode 100644 index 0000000..d908a85 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/55.png diff --git a/frontend/impattern/old/oldpatterns/56.png b/frontend/impattern/old/oldpatterns/56.png Binary files differnew file mode 100644 index 0000000..330b589 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/56.png diff --git a/frontend/impattern/old/oldpatterns/57.png b/frontend/impattern/old/oldpatterns/57.png Binary files differnew file mode 100644 index 0000000..d9587f3 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/57.png diff --git a/frontend/impattern/old/oldpatterns/58.png b/frontend/impattern/old/oldpatterns/58.png Binary files differnew file mode 100644 index 0000000..0ccfba0 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/58.png diff --git a/frontend/impattern/old/oldpatterns/59.png b/frontend/impattern/old/oldpatterns/59.png Binary files differnew file mode 100644 index 0000000..673a3b7 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/59.png diff --git a/frontend/impattern/old/oldpatterns/6.png b/frontend/impattern/old/oldpatterns/6.png Binary files differnew file mode 100644 index 0000000..a3b8272 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/6.png diff --git a/frontend/impattern/old/oldpatterns/60.png b/frontend/impattern/old/oldpatterns/60.png Binary files differnew file mode 100644 index 0000000..e8ea7a6 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/60.png diff --git a/frontend/impattern/old/oldpatterns/61.png b/frontend/impattern/old/oldpatterns/61.png Binary files differnew file mode 100644 index 0000000..4a8f42c --- /dev/null +++ b/frontend/impattern/old/oldpatterns/61.png diff --git a/frontend/impattern/old/oldpatterns/62.png b/frontend/impattern/old/oldpatterns/62.png Binary files differnew file mode 100644 index 0000000..491e211 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/62.png diff --git a/frontend/impattern/old/oldpatterns/63.png b/frontend/impattern/old/oldpatterns/63.png Binary files differnew file mode 100644 index 0000000..456203e --- /dev/null +++ b/frontend/impattern/old/oldpatterns/63.png diff --git a/frontend/impattern/old/oldpatterns/64.png b/frontend/impattern/old/oldpatterns/64.png Binary files differnew file mode 100644 index 0000000..363c9e1 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/64.png diff --git a/frontend/impattern/old/oldpatterns/65.png b/frontend/impattern/old/oldpatterns/65.png Binary files differnew file mode 100644 index 0000000..40b3ab0 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/65.png diff --git a/frontend/impattern/old/oldpatterns/66.png b/frontend/impattern/old/oldpatterns/66.png Binary files differnew file mode 100644 index 0000000..4c46c0d --- /dev/null +++ b/frontend/impattern/old/oldpatterns/66.png diff --git a/frontend/impattern/old/oldpatterns/67.png b/frontend/impattern/old/oldpatterns/67.png Binary files differnew file mode 100644 index 0000000..62f44fa --- /dev/null +++ b/frontend/impattern/old/oldpatterns/67.png diff --git a/frontend/impattern/old/oldpatterns/68.png b/frontend/impattern/old/oldpatterns/68.png Binary files differnew file mode 100644 index 0000000..32bd5bc --- /dev/null +++ b/frontend/impattern/old/oldpatterns/68.png diff --git a/frontend/impattern/old/oldpatterns/69.png b/frontend/impattern/old/oldpatterns/69.png Binary files differnew file mode 100644 index 0000000..35b5d56 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/69.png diff --git a/frontend/impattern/old/oldpatterns/7.png b/frontend/impattern/old/oldpatterns/7.png Binary files differnew file mode 100644 index 0000000..3e01636 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/7.png diff --git a/frontend/impattern/old/oldpatterns/70.png b/frontend/impattern/old/oldpatterns/70.png Binary files differnew file mode 100644 index 0000000..a6771e5 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/70.png diff --git a/frontend/impattern/old/oldpatterns/71.png b/frontend/impattern/old/oldpatterns/71.png Binary files differnew file mode 100644 index 0000000..649c43f --- /dev/null +++ b/frontend/impattern/old/oldpatterns/71.png diff --git a/frontend/impattern/old/oldpatterns/72.png b/frontend/impattern/old/oldpatterns/72.png Binary files differnew file mode 100644 index 0000000..d51cde8 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/72.png diff --git a/frontend/impattern/old/oldpatterns/73.png b/frontend/impattern/old/oldpatterns/73.png Binary files differnew file mode 100644 index 0000000..79d7585 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/73.png diff --git a/frontend/impattern/old/oldpatterns/74.png b/frontend/impattern/old/oldpatterns/74.png Binary files differnew file mode 100644 index 0000000..9e91e73 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/74.png diff --git a/frontend/impattern/old/oldpatterns/75.png b/frontend/impattern/old/oldpatterns/75.png Binary files differnew file mode 100644 index 0000000..8702a1e --- /dev/null +++ b/frontend/impattern/old/oldpatterns/75.png diff --git a/frontend/impattern/old/oldpatterns/76.png b/frontend/impattern/old/oldpatterns/76.png Binary files differnew file mode 100644 index 0000000..618f42a --- /dev/null +++ b/frontend/impattern/old/oldpatterns/76.png diff --git a/frontend/impattern/old/oldpatterns/77.png b/frontend/impattern/old/oldpatterns/77.png Binary files differnew file mode 100644 index 0000000..a2b5966 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/77.png diff --git a/frontend/impattern/old/oldpatterns/78.png b/frontend/impattern/old/oldpatterns/78.png Binary files differnew file mode 100644 index 0000000..82867f8 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/78.png diff --git a/frontend/impattern/old/oldpatterns/79.png b/frontend/impattern/old/oldpatterns/79.png Binary files differnew file mode 100644 index 0000000..3bbd78d --- /dev/null +++ b/frontend/impattern/old/oldpatterns/79.png diff --git a/frontend/impattern/old/oldpatterns/8.png b/frontend/impattern/old/oldpatterns/8.png Binary files differnew file mode 100644 index 0000000..73f4d43 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/8.png diff --git a/frontend/impattern/old/oldpatterns/80.png b/frontend/impattern/old/oldpatterns/80.png Binary files differnew file mode 100644 index 0000000..810fba6 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/80.png diff --git a/frontend/impattern/old/oldpatterns/81.png b/frontend/impattern/old/oldpatterns/81.png Binary files differnew file mode 100644 index 0000000..92fa744 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/81.png diff --git a/frontend/impattern/old/oldpatterns/82.png b/frontend/impattern/old/oldpatterns/82.png Binary files differnew file mode 100644 index 0000000..bc30bcf --- /dev/null +++ b/frontend/impattern/old/oldpatterns/82.png diff --git a/frontend/impattern/old/oldpatterns/83.png b/frontend/impattern/old/oldpatterns/83.png Binary files differnew file mode 100644 index 0000000..caddb63 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/83.png diff --git a/frontend/impattern/old/oldpatterns/84.png b/frontend/impattern/old/oldpatterns/84.png Binary files differnew file mode 100644 index 0000000..4176f9a --- /dev/null +++ b/frontend/impattern/old/oldpatterns/84.png diff --git a/frontend/impattern/old/oldpatterns/85.png b/frontend/impattern/old/oldpatterns/85.png Binary files differnew file mode 100644 index 0000000..8215f71 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/85.png diff --git a/frontend/impattern/old/oldpatterns/86.png b/frontend/impattern/old/oldpatterns/86.png Binary files differnew file mode 100644 index 0000000..c85e4f7 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/86.png diff --git a/frontend/impattern/old/oldpatterns/87.png b/frontend/impattern/old/oldpatterns/87.png Binary files differnew file mode 100644 index 0000000..2933559 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/87.png diff --git a/frontend/impattern/old/oldpatterns/88.png b/frontend/impattern/old/oldpatterns/88.png Binary files differnew file mode 100644 index 0000000..7793e19 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/88.png diff --git a/frontend/impattern/old/oldpatterns/89.png b/frontend/impattern/old/oldpatterns/89.png Binary files differnew file mode 100644 index 0000000..1523885 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/89.png diff --git a/frontend/impattern/old/oldpatterns/9.png b/frontend/impattern/old/oldpatterns/9.png Binary files differnew file mode 100644 index 0000000..6741ffd --- /dev/null +++ b/frontend/impattern/old/oldpatterns/9.png diff --git a/frontend/impattern/old/oldpatterns/90.png b/frontend/impattern/old/oldpatterns/90.png Binary files differnew file mode 100644 index 0000000..e001830 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/90.png diff --git a/frontend/impattern/old/oldpatterns/91.png b/frontend/impattern/old/oldpatterns/91.png Binary files differnew file mode 100644 index 0000000..e6e87f0 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/91.png diff --git a/frontend/impattern/old/oldpatterns/92.png b/frontend/impattern/old/oldpatterns/92.png Binary files differnew file mode 100644 index 0000000..30f150d --- /dev/null +++ b/frontend/impattern/old/oldpatterns/92.png diff --git a/frontend/impattern/old/oldpatterns/93.png b/frontend/impattern/old/oldpatterns/93.png Binary files differnew file mode 100644 index 0000000..fb1c648 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/93.png diff --git a/frontend/impattern/old/oldpatterns/94.png b/frontend/impattern/old/oldpatterns/94.png Binary files differnew file mode 100644 index 0000000..171a461 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/94.png diff --git a/frontend/impattern/old/oldpatterns/95.png b/frontend/impattern/old/oldpatterns/95.png Binary files differnew file mode 100644 index 0000000..27f0f06 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/95.png diff --git a/frontend/impattern/old/oldpatterns/96.png b/frontend/impattern/old/oldpatterns/96.png Binary files differnew file mode 100644 index 0000000..11114ec --- /dev/null +++ b/frontend/impattern/old/oldpatterns/96.png diff --git a/frontend/impattern/old/oldpatterns/a0.png b/frontend/impattern/old/oldpatterns/a0.png Binary files differnew file mode 100644 index 0000000..5fb0b18 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a0.png diff --git a/frontend/impattern/old/oldpatterns/a1.png b/frontend/impattern/old/oldpatterns/a1.png Binary files differnew file mode 100644 index 0000000..cab1780 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a1.png diff --git a/frontend/impattern/old/oldpatterns/a10.png b/frontend/impattern/old/oldpatterns/a10.png Binary files differnew file mode 100644 index 0000000..193ff24 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a10.png diff --git a/frontend/impattern/old/oldpatterns/a11.png b/frontend/impattern/old/oldpatterns/a11.png Binary files differnew file mode 100644 index 0000000..a211a04 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a11.png diff --git a/frontend/impattern/old/oldpatterns/a12.png b/frontend/impattern/old/oldpatterns/a12.png Binary files differnew file mode 100644 index 0000000..0c493b9 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a12.png diff --git a/frontend/impattern/old/oldpatterns/a13.png b/frontend/impattern/old/oldpatterns/a13.png Binary files differnew file mode 100644 index 0000000..bfa653c --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a13.png diff --git a/frontend/impattern/old/oldpatterns/a14.png b/frontend/impattern/old/oldpatterns/a14.png Binary files differnew file mode 100644 index 0000000..10d7b13 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a14.png diff --git a/frontend/impattern/old/oldpatterns/a15.png b/frontend/impattern/old/oldpatterns/a15.png Binary files differnew file mode 100644 index 0000000..2381078 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a15.png diff --git a/frontend/impattern/old/oldpatterns/a16.png b/frontend/impattern/old/oldpatterns/a16.png Binary files differnew file mode 100644 index 0000000..9636ee5 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a16.png diff --git a/frontend/impattern/old/oldpatterns/a17.png b/frontend/impattern/old/oldpatterns/a17.png Binary files differnew file mode 100644 index 0000000..9bc91db --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a17.png diff --git a/frontend/impattern/old/oldpatterns/a18.png b/frontend/impattern/old/oldpatterns/a18.png Binary files differnew file mode 100644 index 0000000..a2e2928 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a18.png diff --git a/frontend/impattern/old/oldpatterns/a19.png b/frontend/impattern/old/oldpatterns/a19.png Binary files differnew file mode 100644 index 0000000..7d45270 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a19.png diff --git a/frontend/impattern/old/oldpatterns/a2.png b/frontend/impattern/old/oldpatterns/a2.png Binary files differnew file mode 100644 index 0000000..7d9c7d9 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a2.png diff --git a/frontend/impattern/old/oldpatterns/a20.png b/frontend/impattern/old/oldpatterns/a20.png Binary files differnew file mode 100644 index 0000000..f670cf5 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a20.png diff --git a/frontend/impattern/old/oldpatterns/a21.png b/frontend/impattern/old/oldpatterns/a21.png Binary files differnew file mode 100644 index 0000000..14aac9b --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a21.png diff --git a/frontend/impattern/old/oldpatterns/a22.png b/frontend/impattern/old/oldpatterns/a22.png Binary files differnew file mode 100644 index 0000000..e9f8a43 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a22.png diff --git a/frontend/impattern/old/oldpatterns/a23.png b/frontend/impattern/old/oldpatterns/a23.png Binary files differnew file mode 100644 index 0000000..bbdaa29 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a23.png diff --git a/frontend/impattern/old/oldpatterns/a24.png b/frontend/impattern/old/oldpatterns/a24.png Binary files differnew file mode 100644 index 0000000..0746ced --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a24.png diff --git a/frontend/impattern/old/oldpatterns/a25.png b/frontend/impattern/old/oldpatterns/a25.png Binary files differnew file mode 100644 index 0000000..2f23bdd --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a25.png diff --git a/frontend/impattern/old/oldpatterns/a26.png b/frontend/impattern/old/oldpatterns/a26.png Binary files differnew file mode 100644 index 0000000..0e21976 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a26.png diff --git a/frontend/impattern/old/oldpatterns/a27.png b/frontend/impattern/old/oldpatterns/a27.png Binary files differnew file mode 100644 index 0000000..0c11122 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a27.png diff --git a/frontend/impattern/old/oldpatterns/a28.png b/frontend/impattern/old/oldpatterns/a28.png Binary files differnew file mode 100644 index 0000000..4469d65 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a28.png diff --git a/frontend/impattern/old/oldpatterns/a29.png b/frontend/impattern/old/oldpatterns/a29.png Binary files differnew file mode 100644 index 0000000..e956157 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a29.png diff --git a/frontend/impattern/old/oldpatterns/a3.png b/frontend/impattern/old/oldpatterns/a3.png Binary files differnew file mode 100644 index 0000000..41cd44f --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a3.png diff --git a/frontend/impattern/old/oldpatterns/a30.png b/frontend/impattern/old/oldpatterns/a30.png Binary files differnew file mode 100644 index 0000000..9058a6d --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a30.png diff --git a/frontend/impattern/old/oldpatterns/a31.png b/frontend/impattern/old/oldpatterns/a31.png Binary files differnew file mode 100644 index 0000000..6692715 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a31.png diff --git a/frontend/impattern/old/oldpatterns/a32.png b/frontend/impattern/old/oldpatterns/a32.png Binary files differnew file mode 100644 index 0000000..daf16c1 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a32.png diff --git a/frontend/impattern/old/oldpatterns/a33.png b/frontend/impattern/old/oldpatterns/a33.png Binary files differnew file mode 100644 index 0000000..b3cee15 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a33.png diff --git a/frontend/impattern/old/oldpatterns/a34.png b/frontend/impattern/old/oldpatterns/a34.png Binary files differnew file mode 100644 index 0000000..0557dae --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a34.png diff --git a/frontend/impattern/old/oldpatterns/a35.png b/frontend/impattern/old/oldpatterns/a35.png Binary files differnew file mode 100644 index 0000000..66d88c9 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a35.png diff --git a/frontend/impattern/old/oldpatterns/a36.png b/frontend/impattern/old/oldpatterns/a36.png Binary files differnew file mode 100644 index 0000000..7abb51b --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a36.png diff --git a/frontend/impattern/old/oldpatterns/a37.png b/frontend/impattern/old/oldpatterns/a37.png Binary files differnew file mode 100644 index 0000000..f30a1ce --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a37.png diff --git a/frontend/impattern/old/oldpatterns/a38.png b/frontend/impattern/old/oldpatterns/a38.png Binary files differnew file mode 100644 index 0000000..3e03424 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a38.png diff --git a/frontend/impattern/old/oldpatterns/a39.png b/frontend/impattern/old/oldpatterns/a39.png Binary files differnew file mode 100644 index 0000000..a802ae0 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a39.png diff --git a/frontend/impattern/old/oldpatterns/a4.png b/frontend/impattern/old/oldpatterns/a4.png Binary files differnew file mode 100644 index 0000000..943ecac --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a4.png diff --git a/frontend/impattern/old/oldpatterns/a40.png b/frontend/impattern/old/oldpatterns/a40.png Binary files differnew file mode 100644 index 0000000..7e3f149 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a40.png diff --git a/frontend/impattern/old/oldpatterns/a41.png b/frontend/impattern/old/oldpatterns/a41.png Binary files differnew file mode 100644 index 0000000..95a7558 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a41.png diff --git a/frontend/impattern/old/oldpatterns/a5.png b/frontend/impattern/old/oldpatterns/a5.png Binary files differnew file mode 100644 index 0000000..c0d0801 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a5.png diff --git a/frontend/impattern/old/oldpatterns/a6.png b/frontend/impattern/old/oldpatterns/a6.png Binary files differnew file mode 100644 index 0000000..414ebb4 --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a6.png diff --git a/frontend/impattern/old/oldpatterns/a7.png b/frontend/impattern/old/oldpatterns/a7.png Binary files differnew file mode 100644 index 0000000..e93e21f --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a7.png diff --git a/frontend/impattern/old/oldpatterns/a8.png b/frontend/impattern/old/oldpatterns/a8.png Binary files differnew file mode 100644 index 0000000..8fa69bb --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a8.png diff --git a/frontend/impattern/old/oldpatterns/a9.png b/frontend/impattern/old/oldpatterns/a9.png Binary files differnew file mode 100644 index 0000000..98c81ad --- /dev/null +++ b/frontend/impattern/old/oldpatterns/a9.png diff --git a/frontend/impattern/other_script.py b/frontend/impattern/other_script.py new file mode 100644 index 0000000..a057646 --- /dev/null +++ b/frontend/impattern/other_script.py @@ -0,0 +1,90 @@ +#!/usr/bin/python + +import downloader +import filenamer +import inventnamer +import fieldstorager +import hexdirer +import cgi +from subprocess import Popen, PIPE +import os +import sys + +print "Content-Type: text/html" +print +print "" + +nametag = "imDither" + +MAIN_DIRECTORY = "" +#BIN_CONVERT = "/usr/bin/convert" +#BIN_IDENTIFY = "/usr/bin/identify" +#BIN_COMPOSITE = "/usr/bin/composite" +BIN_CONVERT = "convert" +BIN_IDENTIFY = "identify" +BIN_COMPOSITE = "composite" + +PARAM_LIST = "theurl thedither username format" + +form = cgi.FieldStorage() +newvalues = fieldstorager.fieldstorage(PARAM_LIST, form) +thekeys = PARAM_LIST.split() +for key in thekeys: + globals()[key] = newvalues[key] + +if username == None: + username = "" + +################################### +### TEST WITH VALUES HERE +theurl = "http://asdf.us/im/10/friedeggstresstoy_1321140711_1322282769_pepper.gif" +thedither = "1.png" +username = "pepper" +format = "png" +################################### +if format == None: + format = "png" + +class Dither: + def file_size (self, file): + return os.stat(file)[6] + def identify(self, thefile): + ident = Popen([BIN_IDENTIFY, thefile], stdout=PIPE).communicate()[0] + partz = ident.split(" ") + return partz[2].split("x") + def makeCanvas(self, dimensions, thefile): + os.system(BIN_CONVERT+" -size "+self.dimensions[0]+"x"+self.dimensions[1]+" canvas:transparent "+thefile) + def makeMask(self, themask, thedither, thebackground): + os.system(BIN_COMPOSITE+" -tile "+thedither+" "+thebackground+" "+themask) + #convert thebg.gif -compose Dst_In null: thefile.gif -matte -layers composite new.gif + os.system(BIN_CONVERT+" "+themask+" -compose Dst_In null: "+self.mainfile+" -matte -layers composite "+themask) + # os.system("rm "+thebackground) + def fuseMask(self, themask, theimage): + os.system(BIN_COMPOSITE+" "+theimage+" -compose Pin_Light "+themask+" "+theimage) + # os.system("rm "+themask) + def __init__(self, theurl, thedither, username): + self.mainfile = filenamer.filename(theurl, "imDither", username) + filepaths = hexdirer.hexdir() + self.privatepath = filepaths[0] + self.publicpath = filepaths[1] + self.privatepath = "" # + downloader.download(theurl, self.mainfile, self.privatepath) + parts = self.mainfile.split('.') + print parts + if "gif" in parts[-1]: + canvastype = "gif" + else: + canvastype = "png" + self.canvasfile = inventnamer.inventname(canvastype, "canvasfile") + self.dimensions = self.identify(self.mainfile) + self.makeCanvas(self.dimensions, self.canvasfile) + self.theMask = inventnamer.inventname(canvastype, "maskfile") + self.makeMask(self.theMask, thedither, self.canvasfile) + self.fuseMask(self.theMask, self.mainfile) + #self.mainfile = self.mainfile.replace(, do something with s3) + print self.mainfile + print self.file_size(self.mainfile) + print 'width: '+self.dimensions[0]+'px' + print 'height: '+self.dimensions[1]+'px' +daddy = Dither(theurl, thedither, username) +
diff --git a/frontend/impattern/patterns/1.png b/frontend/impattern/patterns/1.png Binary files differnew file mode 100644 index 0000000..0ff9c9b --- /dev/null +++ b/frontend/impattern/patterns/1.png diff --git a/frontend/impattern/patterns/10.png b/frontend/impattern/patterns/10.png Binary files differnew file mode 100644 index 0000000..8b7c149 --- /dev/null +++ b/frontend/impattern/patterns/10.png diff --git a/frontend/impattern/patterns/11.png b/frontend/impattern/patterns/11.png Binary files differnew file mode 100644 index 0000000..d83822f --- /dev/null +++ b/frontend/impattern/patterns/11.png diff --git a/frontend/impattern/patterns/12.png b/frontend/impattern/patterns/12.png Binary files differnew file mode 100644 index 0000000..1a0fbae --- /dev/null +++ b/frontend/impattern/patterns/12.png diff --git a/frontend/impattern/patterns/13.png b/frontend/impattern/patterns/13.png Binary files differnew file mode 100644 index 0000000..162d259 --- /dev/null +++ b/frontend/impattern/patterns/13.png diff --git a/frontend/impattern/patterns/14.png b/frontend/impattern/patterns/14.png Binary files differnew file mode 100644 index 0000000..888f852 --- /dev/null +++ b/frontend/impattern/patterns/14.png diff --git a/frontend/impattern/patterns/15.png b/frontend/impattern/patterns/15.png Binary files differnew file mode 100644 index 0000000..c118abd --- /dev/null +++ b/frontend/impattern/patterns/15.png diff --git a/frontend/impattern/patterns/16.png b/frontend/impattern/patterns/16.png Binary files differnew file mode 100644 index 0000000..99a8498 --- /dev/null +++ b/frontend/impattern/patterns/16.png diff --git a/frontend/impattern/patterns/17.png b/frontend/impattern/patterns/17.png Binary files differnew file mode 100644 index 0000000..3b2dc1a --- /dev/null +++ b/frontend/impattern/patterns/17.png diff --git a/frontend/impattern/patterns/18.png b/frontend/impattern/patterns/18.png Binary files differnew file mode 100644 index 0000000..6c88fcc --- /dev/null +++ b/frontend/impattern/patterns/18.png diff --git a/frontend/impattern/patterns/19.png b/frontend/impattern/patterns/19.png Binary files differnew file mode 100644 index 0000000..343d10c --- /dev/null +++ b/frontend/impattern/patterns/19.png diff --git a/frontend/impattern/patterns/2.png b/frontend/impattern/patterns/2.png Binary files differnew file mode 100644 index 0000000..db8b278 --- /dev/null +++ b/frontend/impattern/patterns/2.png diff --git a/frontend/impattern/patterns/20.png b/frontend/impattern/patterns/20.png Binary files differnew file mode 100644 index 0000000..b151802 --- /dev/null +++ b/frontend/impattern/patterns/20.png diff --git a/frontend/impattern/patterns/21.png b/frontend/impattern/patterns/21.png Binary files differnew file mode 100644 index 0000000..a4dd846 --- /dev/null +++ b/frontend/impattern/patterns/21.png diff --git a/frontend/impattern/patterns/22.png b/frontend/impattern/patterns/22.png Binary files differnew file mode 100644 index 0000000..549a7f3 --- /dev/null +++ b/frontend/impattern/patterns/22.png diff --git a/frontend/impattern/patterns/23.png b/frontend/impattern/patterns/23.png Binary files differnew file mode 100644 index 0000000..5a3e921 --- /dev/null +++ b/frontend/impattern/patterns/23.png diff --git a/frontend/impattern/patterns/24.png b/frontend/impattern/patterns/24.png Binary files differnew file mode 100644 index 0000000..d1786f4 --- /dev/null +++ b/frontend/impattern/patterns/24.png diff --git a/frontend/impattern/patterns/25.png b/frontend/impattern/patterns/25.png Binary files differnew file mode 100644 index 0000000..9916934 --- /dev/null +++ b/frontend/impattern/patterns/25.png diff --git a/frontend/impattern/patterns/26.png b/frontend/impattern/patterns/26.png Binary files differnew file mode 100644 index 0000000..b24b4ad --- /dev/null +++ b/frontend/impattern/patterns/26.png diff --git a/frontend/impattern/patterns/27.png b/frontend/impattern/patterns/27.png Binary files differnew file mode 100644 index 0000000..b06d0ff --- /dev/null +++ b/frontend/impattern/patterns/27.png diff --git a/frontend/impattern/patterns/28.png b/frontend/impattern/patterns/28.png Binary files differnew file mode 100644 index 0000000..e3cdf2c --- /dev/null +++ b/frontend/impattern/patterns/28.png diff --git a/frontend/impattern/patterns/29.png b/frontend/impattern/patterns/29.png Binary files differnew file mode 100644 index 0000000..04adbdb --- /dev/null +++ b/frontend/impattern/patterns/29.png diff --git a/frontend/impattern/patterns/3.png b/frontend/impattern/patterns/3.png Binary files differnew file mode 100644 index 0000000..e5a8bfc --- /dev/null +++ b/frontend/impattern/patterns/3.png diff --git a/frontend/impattern/patterns/30.png b/frontend/impattern/patterns/30.png Binary files differnew file mode 100644 index 0000000..963dec8 --- /dev/null +++ b/frontend/impattern/patterns/30.png diff --git a/frontend/impattern/patterns/31.png b/frontend/impattern/patterns/31.png Binary files differnew file mode 100644 index 0000000..ca882f1 --- /dev/null +++ b/frontend/impattern/patterns/31.png diff --git a/frontend/impattern/patterns/32.png b/frontend/impattern/patterns/32.png Binary files differnew file mode 100644 index 0000000..16613b9 --- /dev/null +++ b/frontend/impattern/patterns/32.png diff --git a/frontend/impattern/patterns/33.png b/frontend/impattern/patterns/33.png Binary files differnew file mode 100644 index 0000000..0f9407e --- /dev/null +++ b/frontend/impattern/patterns/33.png diff --git a/frontend/impattern/patterns/34.png b/frontend/impattern/patterns/34.png Binary files differnew file mode 100644 index 0000000..f74cfde --- /dev/null +++ b/frontend/impattern/patterns/34.png diff --git a/frontend/impattern/patterns/35.png b/frontend/impattern/patterns/35.png Binary files differnew file mode 100644 index 0000000..863e55e --- /dev/null +++ b/frontend/impattern/patterns/35.png diff --git a/frontend/impattern/patterns/36.png b/frontend/impattern/patterns/36.png Binary files differnew file mode 100644 index 0000000..90ae4fd --- /dev/null +++ b/frontend/impattern/patterns/36.png diff --git a/frontend/impattern/patterns/37.png b/frontend/impattern/patterns/37.png Binary files differnew file mode 100644 index 0000000..b89436a --- /dev/null +++ b/frontend/impattern/patterns/37.png diff --git a/frontend/impattern/patterns/38.png b/frontend/impattern/patterns/38.png Binary files differnew file mode 100644 index 0000000..4ac8558 --- /dev/null +++ b/frontend/impattern/patterns/38.png diff --git a/frontend/impattern/patterns/39.png b/frontend/impattern/patterns/39.png Binary files differnew file mode 100644 index 0000000..d05f50d --- /dev/null +++ b/frontend/impattern/patterns/39.png diff --git a/frontend/impattern/patterns/4.png b/frontend/impattern/patterns/4.png Binary files differnew file mode 100644 index 0000000..a89724c --- /dev/null +++ b/frontend/impattern/patterns/4.png diff --git a/frontend/impattern/patterns/40.png b/frontend/impattern/patterns/40.png Binary files differnew file mode 100644 index 0000000..58d9757 --- /dev/null +++ b/frontend/impattern/patterns/40.png diff --git a/frontend/impattern/patterns/41.png b/frontend/impattern/patterns/41.png Binary files differnew file mode 100644 index 0000000..84c5723 --- /dev/null +++ b/frontend/impattern/patterns/41.png diff --git a/frontend/impattern/patterns/42.png b/frontend/impattern/patterns/42.png Binary files differnew file mode 100644 index 0000000..d633b3f --- /dev/null +++ b/frontend/impattern/patterns/42.png diff --git a/frontend/impattern/patterns/43.png b/frontend/impattern/patterns/43.png Binary files differnew file mode 100644 index 0000000..a515475 --- /dev/null +++ b/frontend/impattern/patterns/43.png diff --git a/frontend/impattern/patterns/44.png b/frontend/impattern/patterns/44.png Binary files differnew file mode 100644 index 0000000..de7cb2b --- /dev/null +++ b/frontend/impattern/patterns/44.png diff --git a/frontend/impattern/patterns/45.png b/frontend/impattern/patterns/45.png Binary files differnew file mode 100644 index 0000000..794c466 --- /dev/null +++ b/frontend/impattern/patterns/45.png diff --git a/frontend/impattern/patterns/46.png b/frontend/impattern/patterns/46.png Binary files differnew file mode 100644 index 0000000..79e6720 --- /dev/null +++ b/frontend/impattern/patterns/46.png diff --git a/frontend/impattern/patterns/47.png b/frontend/impattern/patterns/47.png Binary files differnew file mode 100644 index 0000000..553201d --- /dev/null +++ b/frontend/impattern/patterns/47.png diff --git a/frontend/impattern/patterns/48.png b/frontend/impattern/patterns/48.png Binary files differnew file mode 100644 index 0000000..36e284e --- /dev/null +++ b/frontend/impattern/patterns/48.png diff --git a/frontend/impattern/patterns/49.png b/frontend/impattern/patterns/49.png Binary files differnew file mode 100644 index 0000000..fd30432 --- /dev/null +++ b/frontend/impattern/patterns/49.png diff --git a/frontend/impattern/patterns/5.png b/frontend/impattern/patterns/5.png Binary files differnew file mode 100644 index 0000000..cebb2e1 --- /dev/null +++ b/frontend/impattern/patterns/5.png diff --git a/frontend/impattern/patterns/50.png b/frontend/impattern/patterns/50.png Binary files differnew file mode 100644 index 0000000..bc884e8 --- /dev/null +++ b/frontend/impattern/patterns/50.png diff --git a/frontend/impattern/patterns/51.png b/frontend/impattern/patterns/51.png Binary files differnew file mode 100644 index 0000000..6a2c0fa --- /dev/null +++ b/frontend/impattern/patterns/51.png diff --git a/frontend/impattern/patterns/52.png b/frontend/impattern/patterns/52.png Binary files differnew file mode 100644 index 0000000..3af3ed9 --- /dev/null +++ b/frontend/impattern/patterns/52.png diff --git a/frontend/impattern/patterns/53.png b/frontend/impattern/patterns/53.png Binary files differnew file mode 100644 index 0000000..bf84248 --- /dev/null +++ b/frontend/impattern/patterns/53.png diff --git a/frontend/impattern/patterns/54.png b/frontend/impattern/patterns/54.png Binary files differnew file mode 100644 index 0000000..8a2229f --- /dev/null +++ b/frontend/impattern/patterns/54.png diff --git a/frontend/impattern/patterns/55.png b/frontend/impattern/patterns/55.png Binary files differnew file mode 100644 index 0000000..3d88454 --- /dev/null +++ b/frontend/impattern/patterns/55.png diff --git a/frontend/impattern/patterns/56.png b/frontend/impattern/patterns/56.png Binary files differnew file mode 100644 index 0000000..fefbe1e --- /dev/null +++ b/frontend/impattern/patterns/56.png diff --git a/frontend/impattern/patterns/57.png b/frontend/impattern/patterns/57.png Binary files differnew file mode 100644 index 0000000..f6f5dd8 --- /dev/null +++ b/frontend/impattern/patterns/57.png diff --git a/frontend/impattern/patterns/58.png b/frontend/impattern/patterns/58.png Binary files differnew file mode 100644 index 0000000..9816629 --- /dev/null +++ b/frontend/impattern/patterns/58.png diff --git a/frontend/impattern/patterns/59.png b/frontend/impattern/patterns/59.png Binary files differnew file mode 100644 index 0000000..ea4be4a --- /dev/null +++ b/frontend/impattern/patterns/59.png diff --git a/frontend/impattern/patterns/6.png b/frontend/impattern/patterns/6.png Binary files differnew file mode 100644 index 0000000..fe8bbdf --- /dev/null +++ b/frontend/impattern/patterns/6.png diff --git a/frontend/impattern/patterns/60.png b/frontend/impattern/patterns/60.png Binary files differnew file mode 100644 index 0000000..0144486 --- /dev/null +++ b/frontend/impattern/patterns/60.png diff --git a/frontend/impattern/patterns/61.png b/frontend/impattern/patterns/61.png Binary files differnew file mode 100644 index 0000000..49795ba --- /dev/null +++ b/frontend/impattern/patterns/61.png diff --git a/frontend/impattern/patterns/62.png b/frontend/impattern/patterns/62.png Binary files differnew file mode 100644 index 0000000..bdee3df --- /dev/null +++ b/frontend/impattern/patterns/62.png diff --git a/frontend/impattern/patterns/63.png b/frontend/impattern/patterns/63.png Binary files differnew file mode 100644 index 0000000..27b42bd --- /dev/null +++ b/frontend/impattern/patterns/63.png diff --git a/frontend/impattern/patterns/64.png b/frontend/impattern/patterns/64.png Binary files differnew file mode 100644 index 0000000..8424055 --- /dev/null +++ b/frontend/impattern/patterns/64.png diff --git a/frontend/impattern/patterns/65.png b/frontend/impattern/patterns/65.png Binary files differnew file mode 100644 index 0000000..fec3e1a --- /dev/null +++ b/frontend/impattern/patterns/65.png diff --git a/frontend/impattern/patterns/66.png b/frontend/impattern/patterns/66.png Binary files differnew file mode 100644 index 0000000..612e95d --- /dev/null +++ b/frontend/impattern/patterns/66.png diff --git a/frontend/impattern/patterns/67.png b/frontend/impattern/patterns/67.png Binary files differnew file mode 100644 index 0000000..f419c07 --- /dev/null +++ b/frontend/impattern/patterns/67.png diff --git a/frontend/impattern/patterns/68.png b/frontend/impattern/patterns/68.png Binary files differnew file mode 100644 index 0000000..7341240 --- /dev/null +++ b/frontend/impattern/patterns/68.png diff --git a/frontend/impattern/patterns/69.png b/frontend/impattern/patterns/69.png Binary files differnew file mode 100644 index 0000000..0a45292 --- /dev/null +++ b/frontend/impattern/patterns/69.png diff --git a/frontend/impattern/patterns/7.png b/frontend/impattern/patterns/7.png Binary files differnew file mode 100644 index 0000000..f841ca6 --- /dev/null +++ b/frontend/impattern/patterns/7.png diff --git a/frontend/impattern/patterns/70.png b/frontend/impattern/patterns/70.png Binary files differnew file mode 100644 index 0000000..8480de3 --- /dev/null +++ b/frontend/impattern/patterns/70.png diff --git a/frontend/impattern/patterns/71.png b/frontend/impattern/patterns/71.png Binary files differnew file mode 100644 index 0000000..7ca4d72 --- /dev/null +++ b/frontend/impattern/patterns/71.png diff --git a/frontend/impattern/patterns/72.png b/frontend/impattern/patterns/72.png Binary files differnew file mode 100644 index 0000000..1a3da86 --- /dev/null +++ b/frontend/impattern/patterns/72.png diff --git a/frontend/impattern/patterns/73.png b/frontend/impattern/patterns/73.png Binary files differnew file mode 100644 index 0000000..52c5334 --- /dev/null +++ b/frontend/impattern/patterns/73.png diff --git a/frontend/impattern/patterns/74.png b/frontend/impattern/patterns/74.png Binary files differnew file mode 100644 index 0000000..4e3c915 --- /dev/null +++ b/frontend/impattern/patterns/74.png diff --git a/frontend/impattern/patterns/75.png b/frontend/impattern/patterns/75.png Binary files differnew file mode 100644 index 0000000..094dd47 --- /dev/null +++ b/frontend/impattern/patterns/75.png diff --git a/frontend/impattern/patterns/76.png b/frontend/impattern/patterns/76.png Binary files differnew file mode 100644 index 0000000..dd10449 --- /dev/null +++ b/frontend/impattern/patterns/76.png diff --git a/frontend/impattern/patterns/77.png b/frontend/impattern/patterns/77.png Binary files differnew file mode 100644 index 0000000..73c8b00 --- /dev/null +++ b/frontend/impattern/patterns/77.png diff --git a/frontend/impattern/patterns/78.png b/frontend/impattern/patterns/78.png Binary files differnew file mode 100644 index 0000000..ba1d28a --- /dev/null +++ b/frontend/impattern/patterns/78.png diff --git a/frontend/impattern/patterns/79.png b/frontend/impattern/patterns/79.png Binary files differnew file mode 100644 index 0000000..22de399 --- /dev/null +++ b/frontend/impattern/patterns/79.png diff --git a/frontend/impattern/patterns/8.png b/frontend/impattern/patterns/8.png Binary files differnew file mode 100644 index 0000000..4941c17 --- /dev/null +++ b/frontend/impattern/patterns/8.png diff --git a/frontend/impattern/patterns/80.png b/frontend/impattern/patterns/80.png Binary files differnew file mode 100644 index 0000000..5b6c87a --- /dev/null +++ b/frontend/impattern/patterns/80.png diff --git a/frontend/impattern/patterns/81.png b/frontend/impattern/patterns/81.png Binary files differnew file mode 100644 index 0000000..26fa933 --- /dev/null +++ b/frontend/impattern/patterns/81.png diff --git a/frontend/impattern/patterns/82.png b/frontend/impattern/patterns/82.png Binary files differnew file mode 100644 index 0000000..2bfcc05 --- /dev/null +++ b/frontend/impattern/patterns/82.png diff --git a/frontend/impattern/patterns/83.png b/frontend/impattern/patterns/83.png Binary files differnew file mode 100644 index 0000000..7cf3918 --- /dev/null +++ b/frontend/impattern/patterns/83.png diff --git a/frontend/impattern/patterns/84.png b/frontend/impattern/patterns/84.png Binary files differnew file mode 100644 index 0000000..5d8e74d --- /dev/null +++ b/frontend/impattern/patterns/84.png diff --git a/frontend/impattern/patterns/85.png b/frontend/impattern/patterns/85.png Binary files differnew file mode 100644 index 0000000..be68806 --- /dev/null +++ b/frontend/impattern/patterns/85.png diff --git a/frontend/impattern/patterns/86.png b/frontend/impattern/patterns/86.png Binary files differnew file mode 100644 index 0000000..d039020 --- /dev/null +++ b/frontend/impattern/patterns/86.png diff --git a/frontend/impattern/patterns/87.png b/frontend/impattern/patterns/87.png Binary files differnew file mode 100644 index 0000000..ddc2689 --- /dev/null +++ b/frontend/impattern/patterns/87.png diff --git a/frontend/impattern/patterns/88.png b/frontend/impattern/patterns/88.png Binary files differnew file mode 100644 index 0000000..929c103 --- /dev/null +++ b/frontend/impattern/patterns/88.png diff --git a/frontend/impattern/patterns/89.png b/frontend/impattern/patterns/89.png Binary files differnew file mode 100644 index 0000000..4ff3225 --- /dev/null +++ b/frontend/impattern/patterns/89.png diff --git a/frontend/impattern/patterns/9.png b/frontend/impattern/patterns/9.png Binary files differnew file mode 100644 index 0000000..7910721 --- /dev/null +++ b/frontend/impattern/patterns/9.png diff --git a/frontend/impattern/patterns/90.png b/frontend/impattern/patterns/90.png Binary files differnew file mode 100644 index 0000000..04259e9 --- /dev/null +++ b/frontend/impattern/patterns/90.png diff --git a/frontend/impattern/patterns/91.png b/frontend/impattern/patterns/91.png Binary files differnew file mode 100644 index 0000000..039af04 --- /dev/null +++ b/frontend/impattern/patterns/91.png diff --git a/frontend/impattern/patterns/92.png b/frontend/impattern/patterns/92.png Binary files differnew file mode 100644 index 0000000..7a4d348 --- /dev/null +++ b/frontend/impattern/patterns/92.png diff --git a/frontend/impattern/patterns/93.png b/frontend/impattern/patterns/93.png Binary files differnew file mode 100644 index 0000000..511fee3 --- /dev/null +++ b/frontend/impattern/patterns/93.png diff --git a/frontend/impattern/patterns/94.png b/frontend/impattern/patterns/94.png Binary files differnew file mode 100644 index 0000000..449c73a --- /dev/null +++ b/frontend/impattern/patterns/94.png diff --git a/frontend/impattern/patterns/95.png b/frontend/impattern/patterns/95.png Binary files differnew file mode 100644 index 0000000..70548f8 --- /dev/null +++ b/frontend/impattern/patterns/95.png diff --git a/frontend/impattern/patterns/96.png b/frontend/impattern/patterns/96.png Binary files differnew file mode 100644 index 0000000..0de8efe --- /dev/null +++ b/frontend/impattern/patterns/96.png diff --git a/frontend/impattern/patterns/a0.png b/frontend/impattern/patterns/a0.png Binary files differnew file mode 100644 index 0000000..9606e48 --- /dev/null +++ b/frontend/impattern/patterns/a0.png diff --git a/frontend/impattern/patterns/a1.png b/frontend/impattern/patterns/a1.png Binary files differnew file mode 100644 index 0000000..2dd534d --- /dev/null +++ b/frontend/impattern/patterns/a1.png diff --git a/frontend/impattern/patterns/a10.png b/frontend/impattern/patterns/a10.png Binary files differnew file mode 100644 index 0000000..e950ad0 --- /dev/null +++ b/frontend/impattern/patterns/a10.png diff --git a/frontend/impattern/patterns/a11.png b/frontend/impattern/patterns/a11.png Binary files differnew file mode 100644 index 0000000..9c52699 --- /dev/null +++ b/frontend/impattern/patterns/a11.png diff --git a/frontend/impattern/patterns/a12.png b/frontend/impattern/patterns/a12.png Binary files differnew file mode 100644 index 0000000..3b80e68 --- /dev/null +++ b/frontend/impattern/patterns/a12.png diff --git a/frontend/impattern/patterns/a13.png b/frontend/impattern/patterns/a13.png Binary files differnew file mode 100644 index 0000000..094cb6f --- /dev/null +++ b/frontend/impattern/patterns/a13.png diff --git a/frontend/impattern/patterns/a14.png b/frontend/impattern/patterns/a14.png Binary files differnew file mode 100644 index 0000000..d3046c5 --- /dev/null +++ b/frontend/impattern/patterns/a14.png diff --git a/frontend/impattern/patterns/a15.png b/frontend/impattern/patterns/a15.png Binary files differnew file mode 100644 index 0000000..3096a81 --- /dev/null +++ b/frontend/impattern/patterns/a15.png diff --git a/frontend/impattern/patterns/a16.png b/frontend/impattern/patterns/a16.png Binary files differnew file mode 100644 index 0000000..bb6affb --- /dev/null +++ b/frontend/impattern/patterns/a16.png diff --git a/frontend/impattern/patterns/a17.png b/frontend/impattern/patterns/a17.png Binary files differnew file mode 100644 index 0000000..2c259e6 --- /dev/null +++ b/frontend/impattern/patterns/a17.png diff --git a/frontend/impattern/patterns/a18.png b/frontend/impattern/patterns/a18.png Binary files differnew file mode 100644 index 0000000..301d419 --- /dev/null +++ b/frontend/impattern/patterns/a18.png diff --git a/frontend/impattern/patterns/a19.png b/frontend/impattern/patterns/a19.png Binary files differnew file mode 100644 index 0000000..431345f --- /dev/null +++ b/frontend/impattern/patterns/a19.png diff --git a/frontend/impattern/patterns/a2.png b/frontend/impattern/patterns/a2.png Binary files differnew file mode 100644 index 0000000..5c26a6e --- /dev/null +++ b/frontend/impattern/patterns/a2.png diff --git a/frontend/impattern/patterns/a20.png b/frontend/impattern/patterns/a20.png Binary files differnew file mode 100644 index 0000000..5cc7f26 --- /dev/null +++ b/frontend/impattern/patterns/a20.png diff --git a/frontend/impattern/patterns/a21.png b/frontend/impattern/patterns/a21.png Binary files differnew file mode 100644 index 0000000..8980947 --- /dev/null +++ b/frontend/impattern/patterns/a21.png diff --git a/frontend/impattern/patterns/a22.png b/frontend/impattern/patterns/a22.png Binary files differnew file mode 100644 index 0000000..cafcace --- /dev/null +++ b/frontend/impattern/patterns/a22.png diff --git a/frontend/impattern/patterns/a23.png b/frontend/impattern/patterns/a23.png Binary files differnew file mode 100644 index 0000000..5fdf851 --- /dev/null +++ b/frontend/impattern/patterns/a23.png diff --git a/frontend/impattern/patterns/a24.png b/frontend/impattern/patterns/a24.png Binary files differnew file mode 100644 index 0000000..64c9e02 --- /dev/null +++ b/frontend/impattern/patterns/a24.png diff --git a/frontend/impattern/patterns/a25.png b/frontend/impattern/patterns/a25.png Binary files differnew file mode 100644 index 0000000..bab6cd6 --- /dev/null +++ b/frontend/impattern/patterns/a25.png diff --git a/frontend/impattern/patterns/a26.png b/frontend/impattern/patterns/a26.png Binary files differnew file mode 100644 index 0000000..fb32ff0 --- /dev/null +++ b/frontend/impattern/patterns/a26.png diff --git a/frontend/impattern/patterns/a27.png b/frontend/impattern/patterns/a27.png Binary files differnew file mode 100644 index 0000000..d0a8821 --- /dev/null +++ b/frontend/impattern/patterns/a27.png diff --git a/frontend/impattern/patterns/a28.png b/frontend/impattern/patterns/a28.png Binary files differnew file mode 100644 index 0000000..220a847 --- /dev/null +++ b/frontend/impattern/patterns/a28.png diff --git a/frontend/impattern/patterns/a29.png b/frontend/impattern/patterns/a29.png Binary files differnew file mode 100644 index 0000000..dc36d31 --- /dev/null +++ b/frontend/impattern/patterns/a29.png diff --git a/frontend/impattern/patterns/a3.png b/frontend/impattern/patterns/a3.png Binary files differnew file mode 100644 index 0000000..dd045ec --- /dev/null +++ b/frontend/impattern/patterns/a3.png diff --git a/frontend/impattern/patterns/a30.png b/frontend/impattern/patterns/a30.png Binary files differnew file mode 100644 index 0000000..f7ea372 --- /dev/null +++ b/frontend/impattern/patterns/a30.png diff --git a/frontend/impattern/patterns/a31.png b/frontend/impattern/patterns/a31.png Binary files differnew file mode 100644 index 0000000..e04391a --- /dev/null +++ b/frontend/impattern/patterns/a31.png diff --git a/frontend/impattern/patterns/a32.png b/frontend/impattern/patterns/a32.png Binary files differnew file mode 100644 index 0000000..022b3fc --- /dev/null +++ b/frontend/impattern/patterns/a32.png diff --git a/frontend/impattern/patterns/a33.png b/frontend/impattern/patterns/a33.png Binary files differnew file mode 100644 index 0000000..200c2d6 --- /dev/null +++ b/frontend/impattern/patterns/a33.png diff --git a/frontend/impattern/patterns/a34.png b/frontend/impattern/patterns/a34.png Binary files differnew file mode 100644 index 0000000..e5d0ddb --- /dev/null +++ b/frontend/impattern/patterns/a34.png diff --git a/frontend/impattern/patterns/a35.png b/frontend/impattern/patterns/a35.png Binary files differnew file mode 100644 index 0000000..e334627 --- /dev/null +++ b/frontend/impattern/patterns/a35.png diff --git a/frontend/impattern/patterns/a36.png b/frontend/impattern/patterns/a36.png Binary files differnew file mode 100644 index 0000000..b7e8233 --- /dev/null +++ b/frontend/impattern/patterns/a36.png diff --git a/frontend/impattern/patterns/a37.png b/frontend/impattern/patterns/a37.png Binary files differnew file mode 100644 index 0000000..da715d2 --- /dev/null +++ b/frontend/impattern/patterns/a37.png diff --git a/frontend/impattern/patterns/a38.png b/frontend/impattern/patterns/a38.png Binary files differnew file mode 100644 index 0000000..da1ca80 --- /dev/null +++ b/frontend/impattern/patterns/a38.png diff --git a/frontend/impattern/patterns/a39.png b/frontend/impattern/patterns/a39.png Binary files differnew file mode 100644 index 0000000..efb59a3 --- /dev/null +++ b/frontend/impattern/patterns/a39.png diff --git a/frontend/impattern/patterns/a4.png b/frontend/impattern/patterns/a4.png Binary files differnew file mode 100644 index 0000000..f9b0f25 --- /dev/null +++ b/frontend/impattern/patterns/a4.png diff --git a/frontend/impattern/patterns/a40.png b/frontend/impattern/patterns/a40.png Binary files differnew file mode 100644 index 0000000..8923c32 --- /dev/null +++ b/frontend/impattern/patterns/a40.png diff --git a/frontend/impattern/patterns/a41.png b/frontend/impattern/patterns/a41.png Binary files differnew file mode 100644 index 0000000..953e5ca --- /dev/null +++ b/frontend/impattern/patterns/a41.png diff --git a/frontend/impattern/patterns/a5.png b/frontend/impattern/patterns/a5.png Binary files differnew file mode 100644 index 0000000..293f3c0 --- /dev/null +++ b/frontend/impattern/patterns/a5.png diff --git a/frontend/impattern/patterns/a6.png b/frontend/impattern/patterns/a6.png Binary files differnew file mode 100644 index 0000000..7cd9ec7 --- /dev/null +++ b/frontend/impattern/patterns/a6.png diff --git a/frontend/impattern/patterns/a7.png b/frontend/impattern/patterns/a7.png Binary files differnew file mode 100644 index 0000000..c3d9c40 --- /dev/null +++ b/frontend/impattern/patterns/a7.png diff --git a/frontend/impattern/patterns/a8.png b/frontend/impattern/patterns/a8.png Binary files differnew file mode 100644 index 0000000..7c65020 --- /dev/null +++ b/frontend/impattern/patterns/a8.png diff --git a/frontend/impattern/patterns/a9.png b/frontend/impattern/patterns/a9.png Binary files differnew file mode 100644 index 0000000..699b370 --- /dev/null +++ b/frontend/impattern/patterns/a9.png diff --git a/frontend/impattern/semi_patterns/1.png b/frontend/impattern/semi_patterns/1.png Binary files differnew file mode 100644 index 0000000..a0aeccb --- /dev/null +++ b/frontend/impattern/semi_patterns/1.png diff --git a/frontend/impattern/semi_patterns/10.png b/frontend/impattern/semi_patterns/10.png Binary files differnew file mode 100644 index 0000000..3865589 --- /dev/null +++ b/frontend/impattern/semi_patterns/10.png diff --git a/frontend/impattern/semi_patterns/11.png b/frontend/impattern/semi_patterns/11.png Binary files differnew file mode 100644 index 0000000..2a8ca34 --- /dev/null +++ b/frontend/impattern/semi_patterns/11.png diff --git a/frontend/impattern/semi_patterns/12.png b/frontend/impattern/semi_patterns/12.png Binary files differnew file mode 100644 index 0000000..4adb35f --- /dev/null +++ b/frontend/impattern/semi_patterns/12.png diff --git a/frontend/impattern/semi_patterns/13.png b/frontend/impattern/semi_patterns/13.png Binary files differnew file mode 100644 index 0000000..48e9362 --- /dev/null +++ b/frontend/impattern/semi_patterns/13.png diff --git a/frontend/impattern/semi_patterns/14.png b/frontend/impattern/semi_patterns/14.png Binary files differnew file mode 100644 index 0000000..867b0a9 --- /dev/null +++ b/frontend/impattern/semi_patterns/14.png diff --git a/frontend/impattern/semi_patterns/15.png b/frontend/impattern/semi_patterns/15.png Binary files differnew file mode 100644 index 0000000..f37be5a --- /dev/null +++ b/frontend/impattern/semi_patterns/15.png diff --git a/frontend/impattern/semi_patterns/16.png b/frontend/impattern/semi_patterns/16.png Binary files differnew file mode 100644 index 0000000..7994ced --- /dev/null +++ b/frontend/impattern/semi_patterns/16.png diff --git a/frontend/impattern/semi_patterns/17.png b/frontend/impattern/semi_patterns/17.png Binary files differnew file mode 100644 index 0000000..9ffa444 --- /dev/null +++ b/frontend/impattern/semi_patterns/17.png diff --git a/frontend/impattern/semi_patterns/18.png b/frontend/impattern/semi_patterns/18.png Binary files differnew file mode 100644 index 0000000..2522e8d --- /dev/null +++ b/frontend/impattern/semi_patterns/18.png diff --git a/frontend/impattern/semi_patterns/19.png b/frontend/impattern/semi_patterns/19.png Binary files differnew file mode 100644 index 0000000..5b4ac7a --- /dev/null +++ b/frontend/impattern/semi_patterns/19.png diff --git a/frontend/impattern/semi_patterns/2.png b/frontend/impattern/semi_patterns/2.png Binary files differnew file mode 100644 index 0000000..a6aa256 --- /dev/null +++ b/frontend/impattern/semi_patterns/2.png diff --git a/frontend/impattern/semi_patterns/20.png b/frontend/impattern/semi_patterns/20.png Binary files differnew file mode 100644 index 0000000..57a82c1 --- /dev/null +++ b/frontend/impattern/semi_patterns/20.png diff --git a/frontend/impattern/semi_patterns/21.png b/frontend/impattern/semi_patterns/21.png Binary files differnew file mode 100644 index 0000000..2b671c7 --- /dev/null +++ b/frontend/impattern/semi_patterns/21.png diff --git a/frontend/impattern/semi_patterns/22.png b/frontend/impattern/semi_patterns/22.png Binary files differnew file mode 100644 index 0000000..d28f071 --- /dev/null +++ b/frontend/impattern/semi_patterns/22.png diff --git a/frontend/impattern/semi_patterns/23.png b/frontend/impattern/semi_patterns/23.png Binary files differnew file mode 100644 index 0000000..052cf6f --- /dev/null +++ b/frontend/impattern/semi_patterns/23.png diff --git a/frontend/impattern/semi_patterns/24.png b/frontend/impattern/semi_patterns/24.png Binary files differnew file mode 100644 index 0000000..4bee000 --- /dev/null +++ b/frontend/impattern/semi_patterns/24.png diff --git a/frontend/impattern/semi_patterns/25.png b/frontend/impattern/semi_patterns/25.png Binary files differnew file mode 100644 index 0000000..cbd1097 --- /dev/null +++ b/frontend/impattern/semi_patterns/25.png diff --git a/frontend/impattern/semi_patterns/26.png b/frontend/impattern/semi_patterns/26.png Binary files differnew file mode 100644 index 0000000..5fc32f4 --- /dev/null +++ b/frontend/impattern/semi_patterns/26.png diff --git a/frontend/impattern/semi_patterns/27.png b/frontend/impattern/semi_patterns/27.png Binary files differnew file mode 100644 index 0000000..18ce493 --- /dev/null +++ b/frontend/impattern/semi_patterns/27.png diff --git a/frontend/impattern/semi_patterns/28.png b/frontend/impattern/semi_patterns/28.png Binary files differnew file mode 100644 index 0000000..5924c44 --- /dev/null +++ b/frontend/impattern/semi_patterns/28.png diff --git a/frontend/impattern/semi_patterns/29.png b/frontend/impattern/semi_patterns/29.png Binary files differnew file mode 100644 index 0000000..16fc2a5 --- /dev/null +++ b/frontend/impattern/semi_patterns/29.png diff --git a/frontend/impattern/semi_patterns/3.png b/frontend/impattern/semi_patterns/3.png Binary files differnew file mode 100644 index 0000000..8c3d334 --- /dev/null +++ b/frontend/impattern/semi_patterns/3.png diff --git a/frontend/impattern/semi_patterns/30.png b/frontend/impattern/semi_patterns/30.png Binary files differnew file mode 100644 index 0000000..50c8289 --- /dev/null +++ b/frontend/impattern/semi_patterns/30.png diff --git a/frontend/impattern/semi_patterns/31.png b/frontend/impattern/semi_patterns/31.png Binary files differnew file mode 100644 index 0000000..3dd944e --- /dev/null +++ b/frontend/impattern/semi_patterns/31.png diff --git a/frontend/impattern/semi_patterns/32.png b/frontend/impattern/semi_patterns/32.png Binary files differnew file mode 100644 index 0000000..79aeb84 --- /dev/null +++ b/frontend/impattern/semi_patterns/32.png diff --git a/frontend/impattern/semi_patterns/33.png b/frontend/impattern/semi_patterns/33.png Binary files differnew file mode 100644 index 0000000..55def42 --- /dev/null +++ b/frontend/impattern/semi_patterns/33.png diff --git a/frontend/impattern/semi_patterns/34.png b/frontend/impattern/semi_patterns/34.png Binary files differnew file mode 100644 index 0000000..f7616ea --- /dev/null +++ b/frontend/impattern/semi_patterns/34.png diff --git a/frontend/impattern/semi_patterns/35.png b/frontend/impattern/semi_patterns/35.png Binary files differnew file mode 100644 index 0000000..3ecbaaf --- /dev/null +++ b/frontend/impattern/semi_patterns/35.png diff --git a/frontend/impattern/semi_patterns/36.png b/frontend/impattern/semi_patterns/36.png Binary files differnew file mode 100644 index 0000000..0243cf7 --- /dev/null +++ b/frontend/impattern/semi_patterns/36.png diff --git a/frontend/impattern/semi_patterns/37.png b/frontend/impattern/semi_patterns/37.png Binary files differnew file mode 100644 index 0000000..012ed79 --- /dev/null +++ b/frontend/impattern/semi_patterns/37.png diff --git a/frontend/impattern/semi_patterns/38.png b/frontend/impattern/semi_patterns/38.png Binary files differnew file mode 100644 index 0000000..9aa54b7 --- /dev/null +++ b/frontend/impattern/semi_patterns/38.png diff --git a/frontend/impattern/semi_patterns/39.png b/frontend/impattern/semi_patterns/39.png Binary files differnew file mode 100644 index 0000000..e98ec53 --- /dev/null +++ b/frontend/impattern/semi_patterns/39.png diff --git a/frontend/impattern/semi_patterns/4.png b/frontend/impattern/semi_patterns/4.png Binary files differnew file mode 100644 index 0000000..473e6e7 --- /dev/null +++ b/frontend/impattern/semi_patterns/4.png diff --git a/frontend/impattern/semi_patterns/40.png b/frontend/impattern/semi_patterns/40.png Binary files differnew file mode 100644 index 0000000..d7d7cba --- /dev/null +++ b/frontend/impattern/semi_patterns/40.png diff --git a/frontend/impattern/semi_patterns/41.png b/frontend/impattern/semi_patterns/41.png Binary files differnew file mode 100644 index 0000000..5d15dd7 --- /dev/null +++ b/frontend/impattern/semi_patterns/41.png diff --git a/frontend/impattern/semi_patterns/42.png b/frontend/impattern/semi_patterns/42.png Binary files differnew file mode 100644 index 0000000..dedbfe2 --- /dev/null +++ b/frontend/impattern/semi_patterns/42.png diff --git a/frontend/impattern/semi_patterns/43.png b/frontend/impattern/semi_patterns/43.png Binary files differnew file mode 100644 index 0000000..dd690d6 --- /dev/null +++ b/frontend/impattern/semi_patterns/43.png diff --git a/frontend/impattern/semi_patterns/44.png b/frontend/impattern/semi_patterns/44.png Binary files differnew file mode 100644 index 0000000..12afc85 --- /dev/null +++ b/frontend/impattern/semi_patterns/44.png diff --git a/frontend/impattern/semi_patterns/45.png b/frontend/impattern/semi_patterns/45.png Binary files differnew file mode 100644 index 0000000..972933b --- /dev/null +++ b/frontend/impattern/semi_patterns/45.png diff --git a/frontend/impattern/semi_patterns/46.png b/frontend/impattern/semi_patterns/46.png Binary files differnew file mode 100644 index 0000000..857ef06 --- /dev/null +++ b/frontend/impattern/semi_patterns/46.png diff --git a/frontend/impattern/semi_patterns/47.png b/frontend/impattern/semi_patterns/47.png Binary files differnew file mode 100644 index 0000000..4002e54 --- /dev/null +++ b/frontend/impattern/semi_patterns/47.png diff --git a/frontend/impattern/semi_patterns/48.png b/frontend/impattern/semi_patterns/48.png Binary files differnew file mode 100644 index 0000000..ff785ed --- /dev/null +++ b/frontend/impattern/semi_patterns/48.png diff --git a/frontend/impattern/semi_patterns/49.png b/frontend/impattern/semi_patterns/49.png Binary files differnew file mode 100644 index 0000000..1a8525f --- /dev/null +++ b/frontend/impattern/semi_patterns/49.png diff --git a/frontend/impattern/semi_patterns/5.png b/frontend/impattern/semi_patterns/5.png Binary files differnew file mode 100644 index 0000000..7bd6619 --- /dev/null +++ b/frontend/impattern/semi_patterns/5.png diff --git a/frontend/impattern/semi_patterns/50.png b/frontend/impattern/semi_patterns/50.png Binary files differnew file mode 100644 index 0000000..f32d908 --- /dev/null +++ b/frontend/impattern/semi_patterns/50.png diff --git a/frontend/impattern/semi_patterns/51.png b/frontend/impattern/semi_patterns/51.png Binary files differnew file mode 100644 index 0000000..20dc9ca --- /dev/null +++ b/frontend/impattern/semi_patterns/51.png diff --git a/frontend/impattern/semi_patterns/52.png b/frontend/impattern/semi_patterns/52.png Binary files differnew file mode 100644 index 0000000..0e097fa --- /dev/null +++ b/frontend/impattern/semi_patterns/52.png diff --git a/frontend/impattern/semi_patterns/53.png b/frontend/impattern/semi_patterns/53.png Binary files differnew file mode 100644 index 0000000..eec7951 --- /dev/null +++ b/frontend/impattern/semi_patterns/53.png diff --git a/frontend/impattern/semi_patterns/54.png b/frontend/impattern/semi_patterns/54.png Binary files differnew file mode 100644 index 0000000..e23a862 --- /dev/null +++ b/frontend/impattern/semi_patterns/54.png diff --git a/frontend/impattern/semi_patterns/55.png b/frontend/impattern/semi_patterns/55.png Binary files differnew file mode 100644 index 0000000..d908a85 --- /dev/null +++ b/frontend/impattern/semi_patterns/55.png diff --git a/frontend/impattern/semi_patterns/56.png b/frontend/impattern/semi_patterns/56.png Binary files differnew file mode 100644 index 0000000..330b589 --- /dev/null +++ b/frontend/impattern/semi_patterns/56.png diff --git a/frontend/impattern/semi_patterns/57.png b/frontend/impattern/semi_patterns/57.png Binary files differnew file mode 100644 index 0000000..d9587f3 --- /dev/null +++ b/frontend/impattern/semi_patterns/57.png diff --git a/frontend/impattern/semi_patterns/58.png b/frontend/impattern/semi_patterns/58.png Binary files differnew file mode 100644 index 0000000..0ccfba0 --- /dev/null +++ b/frontend/impattern/semi_patterns/58.png diff --git a/frontend/impattern/semi_patterns/59.png b/frontend/impattern/semi_patterns/59.png Binary files differnew file mode 100644 index 0000000..673a3b7 --- /dev/null +++ b/frontend/impattern/semi_patterns/59.png diff --git a/frontend/impattern/semi_patterns/6.png b/frontend/impattern/semi_patterns/6.png Binary files differnew file mode 100644 index 0000000..a3b8272 --- /dev/null +++ b/frontend/impattern/semi_patterns/6.png diff --git a/frontend/impattern/semi_patterns/60.png b/frontend/impattern/semi_patterns/60.png Binary files differnew file mode 100644 index 0000000..e8ea7a6 --- /dev/null +++ b/frontend/impattern/semi_patterns/60.png diff --git a/frontend/impattern/semi_patterns/61.png b/frontend/impattern/semi_patterns/61.png Binary files differnew file mode 100644 index 0000000..4a8f42c --- /dev/null +++ b/frontend/impattern/semi_patterns/61.png diff --git a/frontend/impattern/semi_patterns/62.png b/frontend/impattern/semi_patterns/62.png Binary files differnew file mode 100644 index 0000000..491e211 --- /dev/null +++ b/frontend/impattern/semi_patterns/62.png diff --git a/frontend/impattern/semi_patterns/63.png b/frontend/impattern/semi_patterns/63.png Binary files differnew file mode 100644 index 0000000..456203e --- /dev/null +++ b/frontend/impattern/semi_patterns/63.png diff --git a/frontend/impattern/semi_patterns/64.png b/frontend/impattern/semi_patterns/64.png Binary files differnew file mode 100644 index 0000000..363c9e1 --- /dev/null +++ b/frontend/impattern/semi_patterns/64.png diff --git a/frontend/impattern/semi_patterns/65.png b/frontend/impattern/semi_patterns/65.png Binary files differnew file mode 100644 index 0000000..40b3ab0 --- /dev/null +++ b/frontend/impattern/semi_patterns/65.png diff --git a/frontend/impattern/semi_patterns/66.png b/frontend/impattern/semi_patterns/66.png Binary files differnew file mode 100644 index 0000000..4c46c0d --- /dev/null +++ b/frontend/impattern/semi_patterns/66.png diff --git a/frontend/impattern/semi_patterns/67.png b/frontend/impattern/semi_patterns/67.png Binary files differnew file mode 100644 index 0000000..62f44fa --- /dev/null +++ b/frontend/impattern/semi_patterns/67.png diff --git a/frontend/impattern/semi_patterns/68.png b/frontend/impattern/semi_patterns/68.png Binary files differnew file mode 100644 index 0000000..32bd5bc --- /dev/null +++ b/frontend/impattern/semi_patterns/68.png diff --git a/frontend/impattern/semi_patterns/69.png b/frontend/impattern/semi_patterns/69.png Binary files differnew file mode 100644 index 0000000..35b5d56 --- /dev/null +++ b/frontend/impattern/semi_patterns/69.png diff --git a/frontend/impattern/semi_patterns/7.png b/frontend/impattern/semi_patterns/7.png Binary files differnew file mode 100644 index 0000000..3e01636 --- /dev/null +++ b/frontend/impattern/semi_patterns/7.png diff --git a/frontend/impattern/semi_patterns/70.png b/frontend/impattern/semi_patterns/70.png Binary files differnew file mode 100644 index 0000000..a6771e5 --- /dev/null +++ b/frontend/impattern/semi_patterns/70.png diff --git a/frontend/impattern/semi_patterns/71.png b/frontend/impattern/semi_patterns/71.png Binary files differnew file mode 100644 index 0000000..649c43f --- /dev/null +++ b/frontend/impattern/semi_patterns/71.png diff --git a/frontend/impattern/semi_patterns/72.png b/frontend/impattern/semi_patterns/72.png Binary files differnew file mode 100644 index 0000000..d51cde8 --- /dev/null +++ b/frontend/impattern/semi_patterns/72.png diff --git a/frontend/impattern/semi_patterns/73.png b/frontend/impattern/semi_patterns/73.png Binary files differnew file mode 100644 index 0000000..79d7585 --- /dev/null +++ b/frontend/impattern/semi_patterns/73.png diff --git a/frontend/impattern/semi_patterns/74.png b/frontend/impattern/semi_patterns/74.png Binary files differnew file mode 100644 index 0000000..9e91e73 --- /dev/null +++ b/frontend/impattern/semi_patterns/74.png diff --git a/frontend/impattern/semi_patterns/75.png b/frontend/impattern/semi_patterns/75.png Binary files differnew file mode 100644 index 0000000..8702a1e --- /dev/null +++ b/frontend/impattern/semi_patterns/75.png diff --git a/frontend/impattern/semi_patterns/76.png b/frontend/impattern/semi_patterns/76.png Binary files differnew file mode 100644 index 0000000..618f42a --- /dev/null +++ b/frontend/impattern/semi_patterns/76.png diff --git a/frontend/impattern/semi_patterns/77.png b/frontend/impattern/semi_patterns/77.png Binary files differnew file mode 100644 index 0000000..a2b5966 --- /dev/null +++ b/frontend/impattern/semi_patterns/77.png diff --git a/frontend/impattern/semi_patterns/78.png b/frontend/impattern/semi_patterns/78.png Binary files differnew file mode 100644 index 0000000..82867f8 --- /dev/null +++ b/frontend/impattern/semi_patterns/78.png diff --git a/frontend/impattern/semi_patterns/79.png b/frontend/impattern/semi_patterns/79.png Binary files differnew file mode 100644 index 0000000..3bbd78d --- /dev/null +++ b/frontend/impattern/semi_patterns/79.png diff --git a/frontend/impattern/semi_patterns/8.png b/frontend/impattern/semi_patterns/8.png Binary files differnew file mode 100644 index 0000000..73f4d43 --- /dev/null +++ b/frontend/impattern/semi_patterns/8.png diff --git a/frontend/impattern/semi_patterns/80.png b/frontend/impattern/semi_patterns/80.png Binary files differnew file mode 100644 index 0000000..810fba6 --- /dev/null +++ b/frontend/impattern/semi_patterns/80.png diff --git a/frontend/impattern/semi_patterns/81.png b/frontend/impattern/semi_patterns/81.png Binary files differnew file mode 100644 index 0000000..92fa744 --- /dev/null +++ b/frontend/impattern/semi_patterns/81.png diff --git a/frontend/impattern/semi_patterns/82.png b/frontend/impattern/semi_patterns/82.png Binary files differnew file mode 100644 index 0000000..bc30bcf --- /dev/null +++ b/frontend/impattern/semi_patterns/82.png diff --git a/frontend/impattern/semi_patterns/83.png b/frontend/impattern/semi_patterns/83.png Binary files differnew file mode 100644 index 0000000..caddb63 --- /dev/null +++ b/frontend/impattern/semi_patterns/83.png diff --git a/frontend/impattern/semi_patterns/84.png b/frontend/impattern/semi_patterns/84.png Binary files differnew file mode 100644 index 0000000..4176f9a --- /dev/null +++ b/frontend/impattern/semi_patterns/84.png diff --git a/frontend/impattern/semi_patterns/85.png b/frontend/impattern/semi_patterns/85.png Binary files differnew file mode 100644 index 0000000..8215f71 --- /dev/null +++ b/frontend/impattern/semi_patterns/85.png diff --git a/frontend/impattern/semi_patterns/86.png b/frontend/impattern/semi_patterns/86.png Binary files differnew file mode 100644 index 0000000..c85e4f7 --- /dev/null +++ b/frontend/impattern/semi_patterns/86.png diff --git a/frontend/impattern/semi_patterns/87.png b/frontend/impattern/semi_patterns/87.png Binary files differnew file mode 100644 index 0000000..2933559 --- /dev/null +++ b/frontend/impattern/semi_patterns/87.png diff --git a/frontend/impattern/semi_patterns/88.png b/frontend/impattern/semi_patterns/88.png Binary files differnew file mode 100644 index 0000000..7793e19 --- /dev/null +++ b/frontend/impattern/semi_patterns/88.png diff --git a/frontend/impattern/semi_patterns/89.png b/frontend/impattern/semi_patterns/89.png Binary files differnew file mode 100644 index 0000000..1523885 --- /dev/null +++ b/frontend/impattern/semi_patterns/89.png diff --git a/frontend/impattern/semi_patterns/9.png b/frontend/impattern/semi_patterns/9.png Binary files differnew file mode 100644 index 0000000..6741ffd --- /dev/null +++ b/frontend/impattern/semi_patterns/9.png diff --git a/frontend/impattern/semi_patterns/90.png b/frontend/impattern/semi_patterns/90.png Binary files differnew file mode 100644 index 0000000..e001830 --- /dev/null +++ b/frontend/impattern/semi_patterns/90.png diff --git a/frontend/impattern/semi_patterns/91.png b/frontend/impattern/semi_patterns/91.png Binary files differnew file mode 100644 index 0000000..e6e87f0 --- /dev/null +++ b/frontend/impattern/semi_patterns/91.png diff --git a/frontend/impattern/semi_patterns/92.png b/frontend/impattern/semi_patterns/92.png Binary files differnew file mode 100644 index 0000000..30f150d --- /dev/null +++ b/frontend/impattern/semi_patterns/92.png diff --git a/frontend/impattern/semi_patterns/93.png b/frontend/impattern/semi_patterns/93.png Binary files differnew file mode 100644 index 0000000..fb1c648 --- /dev/null +++ b/frontend/impattern/semi_patterns/93.png diff --git a/frontend/impattern/semi_patterns/94.png b/frontend/impattern/semi_patterns/94.png Binary files differnew file mode 100644 index 0000000..171a461 --- /dev/null +++ b/frontend/impattern/semi_patterns/94.png diff --git a/frontend/impattern/semi_patterns/95.png b/frontend/impattern/semi_patterns/95.png Binary files differnew file mode 100644 index 0000000..27f0f06 --- /dev/null +++ b/frontend/impattern/semi_patterns/95.png diff --git a/frontend/impattern/semi_patterns/96.png b/frontend/impattern/semi_patterns/96.png Binary files differnew file mode 100644 index 0000000..11114ec --- /dev/null +++ b/frontend/impattern/semi_patterns/96.png diff --git a/frontend/impattern/semi_patterns/a0.png b/frontend/impattern/semi_patterns/a0.png Binary files differnew file mode 100644 index 0000000..5fb0b18 --- /dev/null +++ b/frontend/impattern/semi_patterns/a0.png diff --git a/frontend/impattern/semi_patterns/a1.png b/frontend/impattern/semi_patterns/a1.png Binary files differnew file mode 100644 index 0000000..cab1780 --- /dev/null +++ b/frontend/impattern/semi_patterns/a1.png diff --git a/frontend/impattern/semi_patterns/a10.png b/frontend/impattern/semi_patterns/a10.png Binary files differnew file mode 100644 index 0000000..193ff24 --- /dev/null +++ b/frontend/impattern/semi_patterns/a10.png diff --git a/frontend/impattern/semi_patterns/a11.png b/frontend/impattern/semi_patterns/a11.png Binary files differnew file mode 100644 index 0000000..a211a04 --- /dev/null +++ b/frontend/impattern/semi_patterns/a11.png diff --git a/frontend/impattern/semi_patterns/a12.png b/frontend/impattern/semi_patterns/a12.png Binary files differnew file mode 100644 index 0000000..0c493b9 --- /dev/null +++ b/frontend/impattern/semi_patterns/a12.png diff --git a/frontend/impattern/semi_patterns/a13.png b/frontend/impattern/semi_patterns/a13.png Binary files differnew file mode 100644 index 0000000..bfa653c --- /dev/null +++ b/frontend/impattern/semi_patterns/a13.png diff --git a/frontend/impattern/semi_patterns/a14.png b/frontend/impattern/semi_patterns/a14.png Binary files differnew file mode 100644 index 0000000..10d7b13 --- /dev/null +++ b/frontend/impattern/semi_patterns/a14.png diff --git a/frontend/impattern/semi_patterns/a15.png b/frontend/impattern/semi_patterns/a15.png Binary files differnew file mode 100644 index 0000000..2381078 --- /dev/null +++ b/frontend/impattern/semi_patterns/a15.png diff --git a/frontend/impattern/semi_patterns/a16.png b/frontend/impattern/semi_patterns/a16.png Binary files differnew file mode 100644 index 0000000..9636ee5 --- /dev/null +++ b/frontend/impattern/semi_patterns/a16.png diff --git a/frontend/impattern/semi_patterns/a17.png b/frontend/impattern/semi_patterns/a17.png Binary files differnew file mode 100644 index 0000000..9bc91db --- /dev/null +++ b/frontend/impattern/semi_patterns/a17.png diff --git a/frontend/impattern/semi_patterns/a18.png b/frontend/impattern/semi_patterns/a18.png Binary files differnew file mode 100644 index 0000000..a2e2928 --- /dev/null +++ b/frontend/impattern/semi_patterns/a18.png diff --git a/frontend/impattern/semi_patterns/a19.png b/frontend/impattern/semi_patterns/a19.png Binary files differnew file mode 100644 index 0000000..7d45270 --- /dev/null +++ b/frontend/impattern/semi_patterns/a19.png diff --git a/frontend/impattern/semi_patterns/a2.png b/frontend/impattern/semi_patterns/a2.png Binary files differnew file mode 100644 index 0000000..7d9c7d9 --- /dev/null +++ b/frontend/impattern/semi_patterns/a2.png diff --git a/frontend/impattern/semi_patterns/a20.png b/frontend/impattern/semi_patterns/a20.png Binary files differnew file mode 100644 index 0000000..f670cf5 --- /dev/null +++ b/frontend/impattern/semi_patterns/a20.png diff --git a/frontend/impattern/semi_patterns/a21.png b/frontend/impattern/semi_patterns/a21.png Binary files differnew file mode 100644 index 0000000..14aac9b --- /dev/null +++ b/frontend/impattern/semi_patterns/a21.png diff --git a/frontend/impattern/semi_patterns/a22.png b/frontend/impattern/semi_patterns/a22.png Binary files differnew file mode 100644 index 0000000..e9f8a43 --- /dev/null +++ b/frontend/impattern/semi_patterns/a22.png diff --git a/frontend/impattern/semi_patterns/a23.png b/frontend/impattern/semi_patterns/a23.png Binary files differnew file mode 100644 index 0000000..bbdaa29 --- /dev/null +++ b/frontend/impattern/semi_patterns/a23.png diff --git a/frontend/impattern/semi_patterns/a24.png b/frontend/impattern/semi_patterns/a24.png Binary files differnew file mode 100644 index 0000000..0746ced --- /dev/null +++ b/frontend/impattern/semi_patterns/a24.png diff --git a/frontend/impattern/semi_patterns/a25.png b/frontend/impattern/semi_patterns/a25.png Binary files differnew file mode 100644 index 0000000..2f23bdd --- /dev/null +++ b/frontend/impattern/semi_patterns/a25.png diff --git a/frontend/impattern/semi_patterns/a26.png b/frontend/impattern/semi_patterns/a26.png Binary files differnew file mode 100644 index 0000000..0e21976 --- /dev/null +++ b/frontend/impattern/semi_patterns/a26.png diff --git a/frontend/impattern/semi_patterns/a27.png b/frontend/impattern/semi_patterns/a27.png Binary files differnew file mode 100644 index 0000000..0c11122 --- /dev/null +++ b/frontend/impattern/semi_patterns/a27.png diff --git a/frontend/impattern/semi_patterns/a28.png b/frontend/impattern/semi_patterns/a28.png Binary files differnew file mode 100644 index 0000000..4469d65 --- /dev/null +++ b/frontend/impattern/semi_patterns/a28.png diff --git a/frontend/impattern/semi_patterns/a29.png b/frontend/impattern/semi_patterns/a29.png Binary files differnew file mode 100644 index 0000000..e956157 --- /dev/null +++ b/frontend/impattern/semi_patterns/a29.png diff --git a/frontend/impattern/semi_patterns/a3.png b/frontend/impattern/semi_patterns/a3.png Binary files differnew file mode 100644 index 0000000..41cd44f --- /dev/null +++ b/frontend/impattern/semi_patterns/a3.png diff --git a/frontend/impattern/semi_patterns/a30.png b/frontend/impattern/semi_patterns/a30.png Binary files differnew file mode 100644 index 0000000..9058a6d --- /dev/null +++ b/frontend/impattern/semi_patterns/a30.png diff --git a/frontend/impattern/semi_patterns/a31.png b/frontend/impattern/semi_patterns/a31.png Binary files differnew file mode 100644 index 0000000..6692715 --- /dev/null +++ b/frontend/impattern/semi_patterns/a31.png diff --git a/frontend/impattern/semi_patterns/a32.png b/frontend/impattern/semi_patterns/a32.png Binary files differnew file mode 100644 index 0000000..daf16c1 --- /dev/null +++ b/frontend/impattern/semi_patterns/a32.png diff --git a/frontend/impattern/semi_patterns/a33.png b/frontend/impattern/semi_patterns/a33.png Binary files differnew file mode 100644 index 0000000..b3cee15 --- /dev/null +++ b/frontend/impattern/semi_patterns/a33.png diff --git a/frontend/impattern/semi_patterns/a34.png b/frontend/impattern/semi_patterns/a34.png Binary files differnew file mode 100644 index 0000000..0557dae --- /dev/null +++ b/frontend/impattern/semi_patterns/a34.png diff --git a/frontend/impattern/semi_patterns/a35.png b/frontend/impattern/semi_patterns/a35.png Binary files differnew file mode 100644 index 0000000..66d88c9 --- /dev/null +++ b/frontend/impattern/semi_patterns/a35.png diff --git a/frontend/impattern/semi_patterns/a36.png b/frontend/impattern/semi_patterns/a36.png Binary files differnew file mode 100644 index 0000000..7abb51b --- /dev/null +++ b/frontend/impattern/semi_patterns/a36.png diff --git a/frontend/impattern/semi_patterns/a37.png b/frontend/impattern/semi_patterns/a37.png Binary files differnew file mode 100644 index 0000000..f30a1ce --- /dev/null +++ b/frontend/impattern/semi_patterns/a37.png diff --git a/frontend/impattern/semi_patterns/a38.png b/frontend/impattern/semi_patterns/a38.png Binary files differnew file mode 100644 index 0000000..3e03424 --- /dev/null +++ b/frontend/impattern/semi_patterns/a38.png diff --git a/frontend/impattern/semi_patterns/a39.png b/frontend/impattern/semi_patterns/a39.png Binary files differnew file mode 100644 index 0000000..a802ae0 --- /dev/null +++ b/frontend/impattern/semi_patterns/a39.png diff --git a/frontend/impattern/semi_patterns/a4.png b/frontend/impattern/semi_patterns/a4.png Binary files differnew file mode 100644 index 0000000..943ecac --- /dev/null +++ b/frontend/impattern/semi_patterns/a4.png diff --git a/frontend/impattern/semi_patterns/a40.png b/frontend/impattern/semi_patterns/a40.png Binary files differnew file mode 100644 index 0000000..7e3f149 --- /dev/null +++ b/frontend/impattern/semi_patterns/a40.png diff --git a/frontend/impattern/semi_patterns/a41.png b/frontend/impattern/semi_patterns/a41.png Binary files differnew file mode 100644 index 0000000..95a7558 --- /dev/null +++ b/frontend/impattern/semi_patterns/a41.png diff --git a/frontend/impattern/semi_patterns/a5.png b/frontend/impattern/semi_patterns/a5.png Binary files differnew file mode 100644 index 0000000..c0d0801 --- /dev/null +++ b/frontend/impattern/semi_patterns/a5.png diff --git a/frontend/impattern/semi_patterns/a6.png b/frontend/impattern/semi_patterns/a6.png Binary files differnew file mode 100644 index 0000000..414ebb4 --- /dev/null +++ b/frontend/impattern/semi_patterns/a6.png diff --git a/frontend/impattern/semi_patterns/a7.png b/frontend/impattern/semi_patterns/a7.png Binary files differnew file mode 100644 index 0000000..e93e21f --- /dev/null +++ b/frontend/impattern/semi_patterns/a7.png diff --git a/frontend/impattern/semi_patterns/a8.png b/frontend/impattern/semi_patterns/a8.png Binary files differnew file mode 100644 index 0000000..8fa69bb --- /dev/null +++ b/frontend/impattern/semi_patterns/a8.png diff --git a/frontend/impattern/semi_patterns/a9.png b/frontend/impattern/semi_patterns/a9.png Binary files differnew file mode 100644 index 0000000..98c81ad --- /dev/null +++ b/frontend/impattern/semi_patterns/a9.png diff --git a/frontend/impattern/sketch.html b/frontend/impattern/sketch.html new file mode 100644 index 0000000..c519820 --- /dev/null +++ b/frontend/impattern/sketch.html @@ -0,0 +1,231 @@ +<html> +<head> +<link href='css/normalize.css' rel='stylesheet' type='text/css'> +<style type="text/css"> +#canvas_wrapper{ +// position:absolute; + display: inline-block; +white-space: pre-wrap; +word-wrap: break-word; +-webkit-user-select: none; +-moz-user-select: none; +user-select: none; +// pointer-events: none; +} +.canvas_cell{ + border: 1px solid black; + display: inline-block; + width: 1em; + height: 1em; +} +.canvas_row{ +// position: absolute; +} + +.brush_tools{ + padding:5px; + display: inline-block; + background: whitesmoke; + border: 1px solid gray; + cursor: pointer; +} +#brush{ + background:gray; + color: white; + border: 1px solid black; +} +</style> + +</head> +<body> + +<div id="canvas_wrapper"> +</div> +<table> +<tr> + <td> + <input size="2" type="text" id="rows" value="10">ROWS</input> + </td> +</tr> +<tr> + <td> + <input size="2" type="text" id="cols" value="10">COLS</input> + </td> +</tr> +</table> + +<div id="tools"> + <div id="brush" class="brush_tools">Brush</div> + <div id="eraser" class="brush_tools">Eraser</div> +</div> +<input type="checkbox" id="show_grid" checked>Show grid?</input> +<button id="drawing_finished">DONE</button> +</body> +<script src="js/jquery.min.js" type="text/javascript"></script> +<script type="text/javascript"> +//dragging event +var isDragging = false; +$("body").mousedown(function() { + $(window).mousemove(function() { + isDragging = true; + $(window).unbind("mousemove"); + }); +}).mouseup(function() { + var wasDragging = isDragging; + isDragging = false; + $(window).unbind("mousemove"); + if (!wasDragging) { //was clicking + } +}); + +var c; + +window.active_tool = "brush"; +var brush_tools; + + + +function BrushTools(){ + var brushtools = this; + this.brush = $("#brush"); + this.eraser = $("#eraser"); + this.brush_tools = $(".brush_tools"); + this.active_css = { + "border" : "1px solid black", + "background" : "gray", + "color" : "white", + }, + this.inactive_css = { + "border" : "1px solid gray", + "background" : "whitesmoke", + "color" : "black", + }; + this.activate = function(elem){ + $(elem).css(this.active_css); + window.active_tool = $(elem).attr("id"); + }; + this.deactivate = function(elem){ + $(elem).css(this.inactive_css); + }; +// this.cursors = { +// "brush" : "img/brush.png", +// "eraser" : "img/eraser.png", +// }; + this.brush_tools.click(function(){ + var that = this; + window.active_tool = $(this).attr("id"); + brushtools.activate(that); + brushtools.brush_tools.each(function(){ + if(this != that){ + brushtools.deactivate(this); + } + }); +// $("#canvas_wrapper").css( +// "cursor" , "url("+brushtools.cursors[window.active_tool]+")" +// ) + }); +} + + + + +function GridCanvas(){ + var gridcanvas = this; + this.rows = 10; + this.cols = 10; + this.current_rows = []; + this.container = $("#canvas_wrapper"); + this.paint = function(elem){ + $(elem).attr("painted", "1"); + $(elem).css("background", "black"); + }; + this.erase = function(elem){ + $(elem).attr("painted", "0"); + $(elem).css("background", "white"); + }; + this.initialize = function(cols, rows){ + this.container.html(""); + this.rows = rows; + this.cols = cols; + for (var i = 0; i< this.rows; i++){ + var row = document.createElement("div"); + $(row).attr("id", "row_"+i) + $(row).addClass("canvas_row") + for (var j = 0; j< this.cols; j++){ + var cell = document.createElement("span"); + $(cell).addClass("canvas_cell") + $(cell).attr("painted", "0") + $(cell).addClass("column_"+j) + $(cell).html(" ") + $(cell).click(function(){ + if (window.active_tool == 'brush'){ + gridcanvas.paint(this); + }else if(window.active_tool == 'eraser'){ + gridcanvas.erase(this); + } + }); + $(cell).mouseover(function(){ + if (isDragging){ + if (window.active_tool == 'brush'){ + gridcanvas.paint(this); + }else if(window.active_tool == 'eraser'){ + gridcanvas.erase(this); + } + } + }); + $(row).append(cell) + } + this.container.append(row) + } + } + this.toggleGrid = function(){ + if ($("#show_grid").prop("checked")){ + $(".canvas_cell").css("border","1px solid black"); + }else{ + $(".canvas_cell").css("border","none"); + } + } + this.serialize = function(){ + var matrix = []; + for (var i = 0; i < this.rows; i++){ + var row_storage = []; + $("#row_"+i+"> span").each(function(){ + row_storage.push($(this).attr("painted")); + }); + matrix.push(row_storage); + } + return JSON.stringify({ + "matrix" : matrix, + "width" : this.cols, + "height" : this.rows, + }) + } +} +$("#cols").change(function(){ + var cols = $(this).val() + c.initialize(cols, c.rows); +}); +$("#rows").change(function(){ + var rows = $(this).val() + c.initialize(c.cols, rows); +}); + + + +$(document).ready(function(){ + + c = new GridCanvas(); + brush_tools = new BrushTools(); + c.initialize($("#cols").val(), $("#rows").val()); + $("#show_grid").change(function(){ + c.toggleGrid(); + }); + $("#drawing_finished").click(function(){ + + console.log(c.serialize()); + }); + +}); + +</script> +</html> diff --git a/frontend/impattern/test.gif b/frontend/impattern/test.gif Binary files differnew file mode 100644 index 0000000..a9723d6 --- /dev/null +++ b/frontend/impattern/test.gif diff --git a/frontend/js/ZeroClipboard.js b/frontend/js/ZeroClipboard.js new file mode 100644 index 0000000..648a5b6 --- /dev/null +++ b/frontend/js/ZeroClipboard.js @@ -0,0 +1,311 @@ +// Simple Set Clipboard System +// Author: Joseph Huckaby + +var ZeroClipboard = { + + version: "1.0.7", + clients: {}, // registered upload clients on page, indexed by id + moviePath: '/swf/ZeroClipboard.swf', // URL to movie + nextId: 1, // ID of next movie + + $: function(thingy) { + // simple DOM lookup utility function + if (typeof(thingy) == 'string') thingy = document.getElementById(thingy); + if (!thingy.addClass) { + // extend element with a few useful methods + thingy.hide = function() { this.style.display = 'none'; }; + thingy.show = function() { this.style.display = ''; }; + thingy.addClass = function(name) { this.removeClass(name); this.className += ' ' + name; }; + thingy.removeClass = function(name) { + var classes = this.className.split(/\s+/); + var idx = -1; + for (var k = 0; k < classes.length; k++) { + if (classes[k] == name) { idx = k; k = classes.length; } + } + if (idx > -1) { + classes.splice( idx, 1 ); + this.className = classes.join(' '); + } + return this; + }; + thingy.hasClass = function(name) { + return !!this.className.match( new RegExp("\\s*" + name + "\\s*") ); + }; + } + return thingy; + }, + + setMoviePath: function(path) { + // set path to ZeroClipboard.swf + this.moviePath = path; + }, + + dispatch: function(id, eventName, args) { + // receive event from flash movie, send to client + var client = this.clients[id]; + if (client) { + client.receiveEvent(eventName, args); + } + }, + + register: function(id, client) { + // register new client to receive events + this.clients[id] = client; + }, + + getDOMObjectPosition: function(obj, stopObj) { + // get absolute coordinates for dom element + var info = { + left: 0, + top: 0, + width: obj.width ? obj.width : obj.offsetWidth, + height: obj.height ? obj.height : obj.offsetHeight + }; + + while (obj && (obj != stopObj)) { + info.left += obj.offsetLeft; + info.top += obj.offsetTop; + obj = obj.offsetParent; + } + + return info; + }, + + Client: function(elem) { + // constructor for new simple upload client + this.handlers = {}; + + // unique ID + this.id = ZeroClipboard.nextId++; + this.movieId = 'ZeroClipboardMovie_' + this.id; + + // register client with singleton to receive flash events + ZeroClipboard.register(this.id, this); + + // create movie + if (elem) this.glue(elem); + } +}; + +ZeroClipboard.Client.prototype = { + + id: 0, // unique ID for us + ready: false, // whether movie is ready to receive events or not + movie: null, // reference to movie object + clipText: '', // text to copy to clipboard + handCursorEnabled: true, // whether to show hand cursor, or default pointer cursor + cssEffects: true, // enable CSS mouse effects on dom container + handlers: null, // user event handlers + + glue: function(elem, appendElem, stylesToAdd) { + // glue to DOM element + // elem can be ID or actual DOM element object + this.domElement = ZeroClipboard.$(elem); + + // float just above object, or zIndex 99 if dom element isn't set + var zIndex = 99; + if (this.domElement.style.zIndex) { + zIndex = parseInt(this.domElement.style.zIndex, 10) + 1; + } + + if (typeof(appendElem) == 'string') { + appendElem = ZeroClipboard.$(appendElem); + } + else if (typeof(appendElem) == 'undefined') { + appendElem = document.getElementsByTagName('body')[0]; + } + + // find X/Y position of domElement + var box = ZeroClipboard.getDOMObjectPosition(this.domElement, appendElem); + + // create floating DIV above element + this.div = document.createElement('div'); + var style = this.div.style; + style.position = 'absolute'; + style.left = '' + box.left + 'px'; + style.top = '' + box.top + 'px'; + style.width = '' + box.width + 'px'; + style.height = '' + box.height + 'px'; + style.zIndex = zIndex; + + if (typeof(stylesToAdd) == 'object') { + for (addedStyle in stylesToAdd) { + style[addedStyle] = stylesToAdd[addedStyle]; + } + } + + // style.backgroundColor = '#f00'; // debug + + appendElem.appendChild(this.div); + + this.div.innerHTML = this.getHTML( box.width, box.height ); + }, + + getHTML: function(width, height) { + // return HTML for movie + var html = ''; + var flashvars = 'id=' + this.id + + '&width=' + width + + '&height=' + height; + + if (navigator.userAgent.match(/MSIE/)) { + // IE gets an OBJECT tag + var protocol = location.href.match(/^https/i) ? 'https://' : 'http://'; + html += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="'+protocol+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="'+width+'" height="'+height+'" id="'+this.movieId+'" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="'+ZeroClipboard.moviePath+'" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="'+flashvars+'"/><param name="wmode" value="transparent"/></object>'; + } + else { + // all other browsers get an EMBED tag + html += '<embed id="'+this.movieId+'" src="'+ZeroClipboard.moviePath+'" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="'+width+'" height="'+height+'" name="'+this.movieId+'" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="'+flashvars+'" wmode="transparent" />'; + } + return html; + }, + + hide: function() { + // temporarily hide floater offscreen + if (this.div) { + this.div.style.left = '-2000px'; + } + }, + + show: function() { + // show ourselves after a call to hide() + this.reposition(); + }, + + destroy: function() { + // destroy control and floater + if (this.domElement && this.div) { + this.hide(); + this.div.innerHTML = ''; + + var body = document.getElementsByTagName('body')[0]; + try { body.removeChild( this.div ); } catch(e) {;} + + this.domElement = null; + this.div = null; + } + }, + + reposition: function(elem) { + // reposition our floating div, optionally to new container + // warning: container CANNOT change size, only position + if (elem) { + this.domElement = ZeroClipboard.$(elem); + if (!this.domElement) this.hide(); + } + + if (this.domElement && this.div) { + var box = ZeroClipboard.getDOMObjectPosition(this.domElement); + var style = this.div.style; + style.left = '' + box.left + 'px'; + style.top = '' + box.top + 'px'; + } + }, + + setText: function(newText) { + // set text to be copied to clipboard + this.clipText = newText; + if (this.ready) this.movie.setText(newText); + }, + + addEventListener: function(eventName, func) { + // add user event listener for event + // event types: load, queueStart, fileStart, fileComplete, queueComplete, progress, error, cancel + eventName = eventName.toString().toLowerCase().replace(/^on/, ''); + if (!this.handlers[eventName]) this.handlers[eventName] = []; + this.handlers[eventName].push(func); + }, + + setHandCursor: function(enabled) { + // enable hand cursor (true), or default arrow cursor (false) + this.handCursorEnabled = enabled; + if (this.ready) this.movie.setHandCursor(enabled); + }, + + setCSSEffects: function(enabled) { + // enable or disable CSS effects on DOM container + this.cssEffects = !!enabled; + }, + + receiveEvent: function(eventName, args) { + // receive event from flash + eventName = eventName.toString().toLowerCase().replace(/^on/, ''); + + // special behavior for certain events + switch (eventName) { + case 'load': + // movie claims it is ready, but in IE this isn't always the case... + // bug fix: Cannot extend EMBED DOM elements in Firefox, must use traditional function + this.movie = document.getElementById(this.movieId); + if (!this.movie) { + var self = this; + setTimeout( function() { self.receiveEvent('load', null); }, 1 ); + return; + } + + // firefox on pc needs a "kick" in order to set these in certain cases + if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) { + var self = this; + setTimeout( function() { self.receiveEvent('load', null); }, 100 ); + this.ready = true; + return; + } + + this.ready = true; + this.movie.setText( this.clipText ); + this.movie.setHandCursor( this.handCursorEnabled ); + break; + + case 'mouseover': + if (this.domElement && this.cssEffects) { + this.domElement.addClass('hover'); + if (this.recoverActive) this.domElement.addClass('active'); + } + break; + + case 'mouseout': + if (this.domElement && this.cssEffects) { + this.recoverActive = false; + if (this.domElement.hasClass('active')) { + this.domElement.removeClass('active'); + this.recoverActive = true; + } + this.domElement.removeClass('hover'); + } + break; + + case 'mousedown': + if (this.domElement && this.cssEffects) { + this.domElement.addClass('active'); + } + break; + + case 'mouseup': + if (this.domElement && this.cssEffects) { + this.domElement.removeClass('active'); + this.recoverActive = false; + } + break; + } // switch eventName + + if (this.handlers[eventName]) { + for (var idx = 0, len = this.handlers[eventName].length; idx < len; idx++) { + var func = this.handlers[eventName][idx]; + + if (typeof(func) == 'function') { + // actual function reference + func(this, args); + } + else if ((typeof(func) == 'object') && (func.length == 2)) { + // PHP style object + method, i.e. [myObject, 'myMethod'] + func[0][ func[1] ](this, args); + } + else if (typeof(func) == 'string') { + // name of function + window[func](this, args); + } + } // foreach event handler defined + } // user defined handler for event + } + +}; diff --git a/frontend/js/colordictbackup.js b/frontend/js/colordictbackup.js new file mode 120000 index 0000000..6e9d202 --- /dev/null +++ b/frontend/js/colordictbackup.js @@ -0,0 +1 @@ +../imgrid/js/colordictbackup.js
\ No newline at end of file diff --git a/frontend/js/colors_iframe.js b/frontend/js/colors_iframe.js new file mode 120000 index 0000000..7b48e9f --- /dev/null +++ b/frontend/js/colors_iframe.js @@ -0,0 +1 @@ +../imgrid/js/colors_iframe.js
\ No newline at end of file diff --git a/frontend/js/display_result.js b/frontend/js/display_result.js new file mode 120000 index 0000000..3108446 --- /dev/null +++ b/frontend/js/display_result.js @@ -0,0 +1 @@ +../impattern/js/display_result.js
\ No newline at end of file diff --git a/frontend/js/gallery_isotope_config.js b/frontend/js/gallery_isotope_config.js new file mode 100644 index 0000000..b2be5d4 --- /dev/null +++ b/frontend/js/gallery_isotope_config.js @@ -0,0 +1,189 @@ + +$.Isotope.prototype._getCenteredMasonryColumns = function() { + this.width = this.element.width(); + + var parentWidth = this.element.parent().width(); + + // i.e. options.masonry && options.masonry.columnWidth + var colW = this.options.masonry && this.options.masonry.columnWidth || + // or use the size of the first item + this.$filteredAtoms.outerWidth(true) || + // if there's no items, use size of container + parentWidth; + + var cols = Math.floor( parentWidth / colW ); + cols = Math.max( cols, 1 ); + + // i.e. this.masonry.cols = .... + this.masonry.cols = cols; + // i.e. this.masonry.columnWidth = ... + this.masonry.columnWidth = colW; + }; + + $.Isotope.prototype._masonryReset = function() { + // layout-specific props + this.masonry = {}; + // FIXME shouldn't have to call this again + this._getCenteredMasonryColumns(); + var i = this.masonry.cols; + this.masonry.colYs = []; + while (i--) { + this.masonry.colYs.push( 0 ); + } + }; + + $.Isotope.prototype._masonryResizeChanged = function() { + var prevColCount = this.masonry.cols; + // get updated colCount + this._getCenteredMasonryColumns(); + return ( this.masonry.cols !== prevColCount ); + }; + + $.Isotope.prototype._masonryGetContainerSize = function() { + var unusedCols = 0, + i = this.masonry.cols; + // count unused columns + while ( --i ) { + if ( this.masonry.colYs[i] !== 0 ) { + break; + } + unusedCols++; + } + + return { + height : Math.max.apply( Math, this.masonry.colYs ), + // fit container to columns that have been used; + width : (this.masonry.cols - unusedCols) * this.masonry.columnWidth + }; + }; + + +//and once the jquery has loaded... +$(function(){ + + var $container = $('#images'); + + + // add randomish size classes + $container.find('.pb').each(function(){ + var $this = $(this); + + number = parseInt( $this.height(), 10 ); + if ( number % 7 % 2 === 1 ) { + $this.addClass('width2'); + } + if ( number % 3 === 0 ) { + $this.addClass('height2'); + } + }); + + $container.isotope({ + itemSelector : '.pb', + sortAscending : false, + masonry : { + columnWidth : 120 + }, + getSortData : { + date : function( $elem ) { + src = $elem.attr('src'); + var re = /_[0-9]{10}/g; + var matches = src.match(re) + + // what.. getting null here -jl 20132712 + if (! matches) return 0; + for (var i=0;i<matches.length;i++){ + matches[i] = matches[i].replace(/_/g,""); + } + //mite be wrong FIXME? + matches.sort(function(a,b){return b-a}); + return matches[0]; + + }, + username : function( $elem ) { + return $elem.attr('username'); + }, + height : function( $elem ) { + return $elem.height(); + }, + width : function( $elem ) { + return $elem.width(); + }, + gif : function ( $elem ) { + src = $elem.attr('src'); + var re = /\.gif$/; + if (re.test(src)){ + return 1; + }else{ + return 0; + } + + } + } + }); + var sorter = { + date: function(){$container.isotope({sortBy: "date"})}, + username: function(){$container.isotope({sortBy: "username"})}, + height: function(){$container.isotope({sortBy: "height"})}, + width: function(){$container.isotope({sortBy: "width"})}, + gif:function(){$container.isotope({sortBy: "gif"})}, + shuffle: function(){$container.isotope("shuffle")}, + lombada: function(){ + var min = 4; var max = 14; + var limit = Math.floor(Math.random() * (max - min + 1)) + min; + + var count = 0; + var t = setInterval(function(){ + $container.isotope("shuffle") + if (count == limit){ + clearInterval(t); + } + count += 1; + }, 100) + + } + } + + + $(".sorting-options").each(function(){ + var $this = $(this); + $this.click(function(){ + var func = $this.attr("id") + sorter[func](); + }) + }); + +// $container.isotope( 'insert', $newEls ); +// $container.append( $newEls ).isotope( 'appended', $newEls ); + // change size of clicked element + $container.delegate( '.bg', 'click', function(){ + //FIXME add css here + $(this).toggleClass('large'); + $container.isotope('reLayout'); + }); + + // toggle variable sizes of all elements + $('#toggle-sizes').find('a').click(function(){ + $container + //FIXME add css here + .toggleClass('variable-sizes') + .isotope('reLayout'); + return false; + }); + $(document).ready(function(){ sorter.date(); $container.isotope('reLayout');}); + $("img").load(function(){ + $(this).css("display", "inline-block"); + $container.isotope('reLayout'); + }) + window.onload = function(){ + $(".isotope, .isotope .isotope-item").css({ + "-webkit-transition-duration": "0.8s", + "-moz-transition-duration": "0.8s", + "-ms-transition-duration": "0.8s", + "-o-transition-duration": "0.8s", + "transition-duration": "0.8s" + + }); + }; + + }); + diff --git a/frontend/js/imbreak-main.js b/frontend/js/imbreak-main.js new file mode 120000 index 0000000..24bd38f --- /dev/null +++ b/frontend/js/imbreak-main.js @@ -0,0 +1 @@ +../imbreak/js/imbreak-main.js
\ No newline at end of file diff --git a/frontend/js/imgrid-main.js b/frontend/js/imgrid-main.js new file mode 120000 index 0000000..d555578 --- /dev/null +++ b/frontend/js/imgrid-main.js @@ -0,0 +1 @@ +../imgrid/js/imgrid-main.js
\ No newline at end of file diff --git a/frontend/js/index.html b/frontend/js/index.html new file mode 100644 index 0000000..0dc101b --- /dev/null +++ b/frontend/js/index.html @@ -0,0 +1 @@ +<html><body></body></html> diff --git a/frontend/js/inputs.js b/frontend/js/inputs.js new file mode 120000 index 0000000..7dd0da5 --- /dev/null +++ b/frontend/js/inputs.js @@ -0,0 +1 @@ +../impattern/js/inputs.js
\ No newline at end of file diff --git a/frontend/js/jcookie.js b/frontend/js/jcookie.js new file mode 120000 index 0000000..9ea53e1 --- /dev/null +++ b/frontend/js/jcookie.js @@ -0,0 +1 @@ +../imbreak/js/jcookie.js
\ No newline at end of file diff --git a/frontend/js/jquery-1.4.4.min.js b/frontend/js/jquery-1.4.4.min.js new file mode 100644 index 0000000..8f3ca2e --- /dev/null +++ b/frontend/js/jquery-1.4.4.min.js @@ -0,0 +1,167 @@ +/*! + * jQuery JavaScript Library v1.4.4 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu Nov 11 19:04:53 2010 -0500 + */ +(function(E,B){function ka(a,b,d){if(d===B&&a.nodeType===1){d=a.getAttribute("data-"+b);if(typeof d==="string"){try{d=d==="true"?true:d==="false"?false:d==="null"?null:!c.isNaN(d)?parseFloat(d):Ja.test(d)?c.parseJSON(d):d}catch(e){}c.data(a,b,d)}else d=B}return d}function U(){return false}function ca(){return true}function la(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function Ka(a){var b,d,e,f,h,l,k,o,x,r,A,C=[];f=[];h=c.data(this,this.nodeType?"events":"__events__");if(typeof h==="function")h= +h.events;if(!(a.liveFired===this||!h||!h.live||a.button&&a.type==="click")){if(a.namespace)A=RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)");a.liveFired=this;var J=h.live.slice(0);for(k=0;k<J.length;k++){h=J[k];h.origType.replace(X,"")===a.type?f.push(h.selector):J.splice(k--,1)}f=c(a.target).closest(f,a.currentTarget);o=0;for(x=f.length;o<x;o++){r=f[o];for(k=0;k<J.length;k++){h=J[k];if(r.selector===h.selector&&(!A||A.test(h.namespace))){l=r.elem;e=null;if(h.preType==="mouseenter"|| +h.preType==="mouseleave"){a.type=h.preType;e=c(a.relatedTarget).closest(h.selector)[0]}if(!e||e!==l)C.push({elem:l,handleObj:h,level:r.level})}}}o=0;for(x=C.length;o<x;o++){f=C[o];if(d&&f.level>d)break;a.currentTarget=f.elem;a.data=f.handleObj.data;a.handleObj=f.handleObj;A=f.handleObj.origHandler.apply(f.elem,arguments);if(A===false||a.isPropagationStopped()){d=f.level;if(A===false)b=false;if(a.isImmediatePropagationStopped())break}}return b}}function Y(a,b){return(a&&a!=="*"?a+".":"")+b.replace(La, +"`").replace(Ma,"&")}function ma(a,b,d){if(c.isFunction(b))return c.grep(a,function(f,h){return!!b.call(f,h,f)===d});else if(b.nodeType)return c.grep(a,function(f){return f===b===d});else if(typeof b==="string"){var e=c.grep(a,function(f){return f.nodeType===1});if(Na.test(b))return c.filter(b,e,!d);else b=c.filter(b,e)}return c.grep(a,function(f){return c.inArray(f,b)>=0===d})}function na(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var e=c.data(a[d++]),f=c.data(this, +e);if(e=e&&e.events){delete f.handle;f.events={};for(var h in e)for(var l in e[h])c.event.add(this,h,e[h][l],e[h][l].data)}}})}function Oa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function oa(a,b,d){var e=b==="width"?a.offsetWidth:a.offsetHeight;if(d==="border")return e;c.each(b==="width"?Pa:Qa,function(){d||(e-=parseFloat(c.css(a,"padding"+this))||0);if(d==="margin")e+=parseFloat(c.css(a, +"margin"+this))||0;else e-=parseFloat(c.css(a,"border"+this+"Width"))||0});return e}function da(a,b,d,e){if(c.isArray(b)&&b.length)c.each(b,function(f,h){d||Ra.test(a)?e(a,h):da(a+"["+(typeof h==="object"||c.isArray(h)?f:"")+"]",h,d,e)});else if(!d&&b!=null&&typeof b==="object")c.isEmptyObject(b)?e(a,""):c.each(b,function(f,h){da(a+"["+f+"]",h,d,e)});else e(a,b)}function S(a,b){var d={};c.each(pa.concat.apply([],pa.slice(0,b)),function(){d[this]=a});return d}function qa(a){if(!ea[a]){var b=c("<"+ +a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d==="")d="block";ea[a]=d}return ea[a]}function fa(a){return c.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var t=E.document,c=function(){function a(){if(!b.isReady){try{t.documentElement.doScroll("left")}catch(j){setTimeout(a,1);return}b.ready()}}var b=function(j,s){return new b.fn.init(j,s)},d=E.jQuery,e=E.$,f,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,l=/\S/,k=/^\s+/,o=/\s+$/,x=/\W/,r=/\d/,A=/^<(\w+)\s*\/?>(?:<\/\1>)?$/, +C=/^[\],:{}\s]*$/,J=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,w=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,I=/(?:^|:|,)(?:\s*\[)+/g,L=/(webkit)[ \/]([\w.]+)/,g=/(opera)(?:.*version)?[ \/]([\w.]+)/,i=/(msie) ([\w.]+)/,n=/(mozilla)(?:.*? rv:([\w.]+))?/,m=navigator.userAgent,p=false,q=[],u,y=Object.prototype.toString,F=Object.prototype.hasOwnProperty,M=Array.prototype.push,N=Array.prototype.slice,O=String.prototype.trim,D=Array.prototype.indexOf,R={};b.fn=b.prototype={init:function(j, +s){var v,z,H;if(!j)return this;if(j.nodeType){this.context=this[0]=j;this.length=1;return this}if(j==="body"&&!s&&t.body){this.context=t;this[0]=t.body;this.selector="body";this.length=1;return this}if(typeof j==="string")if((v=h.exec(j))&&(v[1]||!s))if(v[1]){H=s?s.ownerDocument||s:t;if(z=A.exec(j))if(b.isPlainObject(s)){j=[t.createElement(z[1])];b.fn.attr.call(j,s,true)}else j=[H.createElement(z[1])];else{z=b.buildFragment([v[1]],[H]);j=(z.cacheable?z.fragment.cloneNode(true):z.fragment).childNodes}return b.merge(this, +j)}else{if((z=t.getElementById(v[2]))&&z.parentNode){if(z.id!==v[2])return f.find(j);this.length=1;this[0]=z}this.context=t;this.selector=j;return this}else if(!s&&!x.test(j)){this.selector=j;this.context=t;j=t.getElementsByTagName(j);return b.merge(this,j)}else return!s||s.jquery?(s||f).find(j):b(s).find(j);else if(b.isFunction(j))return f.ready(j);if(j.selector!==B){this.selector=j.selector;this.context=j.context}return b.makeArray(j,this)},selector:"",jquery:"1.4.4",length:0,size:function(){return this.length}, +toArray:function(){return N.call(this,0)},get:function(j){return j==null?this.toArray():j<0?this.slice(j)[0]:this[j]},pushStack:function(j,s,v){var z=b();b.isArray(j)?M.apply(z,j):b.merge(z,j);z.prevObject=this;z.context=this.context;if(s==="find")z.selector=this.selector+(this.selector?" ":"")+v;else if(s)z.selector=this.selector+"."+s+"("+v+")";return z},each:function(j,s){return b.each(this,j,s)},ready:function(j){b.bindReady();if(b.isReady)j.call(t,b);else q&&q.push(j);return this},eq:function(j){return j=== +-1?this.slice(j):this.slice(j,+j+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(N.apply(this,arguments),"slice",N.call(arguments).join(","))},map:function(j){return this.pushStack(b.map(this,function(s,v){return j.call(s,v,s)}))},end:function(){return this.prevObject||b(null)},push:M,sort:[].sort,splice:[].splice};b.fn.init.prototype=b.fn;b.extend=b.fn.extend=function(){var j,s,v,z,H,G=arguments[0]||{},K=1,Q=arguments.length,ga=false; +if(typeof G==="boolean"){ga=G;G=arguments[1]||{};K=2}if(typeof G!=="object"&&!b.isFunction(G))G={};if(Q===K){G=this;--K}for(;K<Q;K++)if((j=arguments[K])!=null)for(s in j){v=G[s];z=j[s];if(G!==z)if(ga&&z&&(b.isPlainObject(z)||(H=b.isArray(z)))){if(H){H=false;v=v&&b.isArray(v)?v:[]}else v=v&&b.isPlainObject(v)?v:{};G[s]=b.extend(ga,v,z)}else if(z!==B)G[s]=z}return G};b.extend({noConflict:function(j){E.$=e;if(j)E.jQuery=d;return b},isReady:false,readyWait:1,ready:function(j){j===true&&b.readyWait--; +if(!b.readyWait||j!==true&&!b.isReady){if(!t.body)return setTimeout(b.ready,1);b.isReady=true;if(!(j!==true&&--b.readyWait>0))if(q){var s=0,v=q;for(q=null;j=v[s++];)j.call(t,b);b.fn.trigger&&b(t).trigger("ready").unbind("ready")}}},bindReady:function(){if(!p){p=true;if(t.readyState==="complete")return setTimeout(b.ready,1);if(t.addEventListener){t.addEventListener("DOMContentLoaded",u,false);E.addEventListener("load",b.ready,false)}else if(t.attachEvent){t.attachEvent("onreadystatechange",u);E.attachEvent("onload", +b.ready);var j=false;try{j=E.frameElement==null}catch(s){}t.documentElement.doScroll&&j&&a()}}},isFunction:function(j){return b.type(j)==="function"},isArray:Array.isArray||function(j){return b.type(j)==="array"},isWindow:function(j){return j&&typeof j==="object"&&"setInterval"in j},isNaN:function(j){return j==null||!r.test(j)||isNaN(j)},type:function(j){return j==null?String(j):R[y.call(j)]||"object"},isPlainObject:function(j){if(!j||b.type(j)!=="object"||j.nodeType||b.isWindow(j))return false;if(j.constructor&& +!F.call(j,"constructor")&&!F.call(j.constructor.prototype,"isPrototypeOf"))return false;for(var s in j);return s===B||F.call(j,s)},isEmptyObject:function(j){for(var s in j)return false;return true},error:function(j){throw j;},parseJSON:function(j){if(typeof j!=="string"||!j)return null;j=b.trim(j);if(C.test(j.replace(J,"@").replace(w,"]").replace(I,"")))return E.JSON&&E.JSON.parse?E.JSON.parse(j):(new Function("return "+j))();else b.error("Invalid JSON: "+j)},noop:function(){},globalEval:function(j){if(j&& +l.test(j)){var s=t.getElementsByTagName("head")[0]||t.documentElement,v=t.createElement("script");v.type="text/javascript";if(b.support.scriptEval)v.appendChild(t.createTextNode(j));else v.text=j;s.insertBefore(v,s.firstChild);s.removeChild(v)}},nodeName:function(j,s){return j.nodeName&&j.nodeName.toUpperCase()===s.toUpperCase()},each:function(j,s,v){var z,H=0,G=j.length,K=G===B||b.isFunction(j);if(v)if(K)for(z in j){if(s.apply(j[z],v)===false)break}else for(;H<G;){if(s.apply(j[H++],v)===false)break}else if(K)for(z in j){if(s.call(j[z], +z,j[z])===false)break}else for(v=j[0];H<G&&s.call(v,H,v)!==false;v=j[++H]);return j},trim:O?function(j){return j==null?"":O.call(j)}:function(j){return j==null?"":j.toString().replace(k,"").replace(o,"")},makeArray:function(j,s){var v=s||[];if(j!=null){var z=b.type(j);j.length==null||z==="string"||z==="function"||z==="regexp"||b.isWindow(j)?M.call(v,j):b.merge(v,j)}return v},inArray:function(j,s){if(s.indexOf)return s.indexOf(j);for(var v=0,z=s.length;v<z;v++)if(s[v]===j)return v;return-1},merge:function(j, +s){var v=j.length,z=0;if(typeof s.length==="number")for(var H=s.length;z<H;z++)j[v++]=s[z];else for(;s[z]!==B;)j[v++]=s[z++];j.length=v;return j},grep:function(j,s,v){var z=[],H;v=!!v;for(var G=0,K=j.length;G<K;G++){H=!!s(j[G],G);v!==H&&z.push(j[G])}return z},map:function(j,s,v){for(var z=[],H,G=0,K=j.length;G<K;G++){H=s(j[G],G,v);if(H!=null)z[z.length]=H}return z.concat.apply([],z)},guid:1,proxy:function(j,s,v){if(arguments.length===2)if(typeof s==="string"){v=j;j=v[s];s=B}else if(s&&!b.isFunction(s)){v= +s;s=B}if(!s&&j)s=function(){return j.apply(v||this,arguments)};if(j)s.guid=j.guid=j.guid||s.guid||b.guid++;return s},access:function(j,s,v,z,H,G){var K=j.length;if(typeof s==="object"){for(var Q in s)b.access(j,Q,s[Q],z,H,v);return j}if(v!==B){z=!G&&z&&b.isFunction(v);for(Q=0;Q<K;Q++)H(j[Q],s,z?v.call(j[Q],Q,H(j[Q],s)):v,G);return j}return K?H(j[0],s):B},now:function(){return(new Date).getTime()},uaMatch:function(j){j=j.toLowerCase();j=L.exec(j)||g.exec(j)||i.exec(j)||j.indexOf("compatible")<0&&n.exec(j)|| +[];return{browser:j[1]||"",version:j[2]||"0"}},browser:{}});b.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(j,s){R["[object "+s+"]"]=s.toLowerCase()});m=b.uaMatch(m);if(m.browser){b.browser[m.browser]=true;b.browser.version=m.version}if(b.browser.webkit)b.browser.safari=true;if(D)b.inArray=function(j,s){return D.call(s,j)};if(!/\s/.test("\u00a0")){k=/^[\s\xA0]+/;o=/[\s\xA0]+$/}f=b(t);if(t.addEventListener)u=function(){t.removeEventListener("DOMContentLoaded",u, +false);b.ready()};else if(t.attachEvent)u=function(){if(t.readyState==="complete"){t.detachEvent("onreadystatechange",u);b.ready()}};return E.jQuery=E.$=b}();(function(){c.support={};var a=t.documentElement,b=t.createElement("script"),d=t.createElement("div"),e="script"+c.now();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var f=d.getElementsByTagName("*"),h=d.getElementsByTagName("a")[0],l=t.createElement("select"), +k=l.appendChild(t.createElement("option"));if(!(!f||!f.length||!h)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(h.getAttribute("style")),hrefNormalized:h.getAttribute("href")==="/a",opacity:/^0.55$/.test(h.style.opacity),cssFloat:!!h.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:k.selected,deleteExpando:true,optDisabled:false,checkClone:false, +scriptEval:false,noCloneEvent:true,boxModel:null,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableHiddenOffsets:true};l.disabled=true;c.support.optDisabled=!k.disabled;b.type="text/javascript";try{b.appendChild(t.createTextNode("window."+e+"=1;"))}catch(o){}a.insertBefore(b,a.firstChild);if(E[e]){c.support.scriptEval=true;delete E[e]}try{delete b.test}catch(x){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function r(){c.support.noCloneEvent= +false;d.detachEvent("onclick",r)});d.cloneNode(true).fireEvent("onclick")}d=t.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=t.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var r=t.createElement("div");r.style.width=r.style.paddingLeft="1px";t.body.appendChild(r);c.boxModel=c.support.boxModel=r.offsetWidth===2;if("zoom"in r.style){r.style.display="inline";r.style.zoom= +1;c.support.inlineBlockNeedsLayout=r.offsetWidth===2;r.style.display="";r.innerHTML="<div style='width:4px;'></div>";c.support.shrinkWrapBlocks=r.offsetWidth!==2}r.innerHTML="<table><tr><td style='padding:0;display:none'></td><td>t</td></tr></table>";var A=r.getElementsByTagName("td");c.support.reliableHiddenOffsets=A[0].offsetHeight===0;A[0].style.display="";A[1].style.display="none";c.support.reliableHiddenOffsets=c.support.reliableHiddenOffsets&&A[0].offsetHeight===0;r.innerHTML="";t.body.removeChild(r).style.display= +"none"});a=function(r){var A=t.createElement("div");r="on"+r;var C=r in A;if(!C){A.setAttribute(r,"return;");C=typeof A[r]==="function"}return C};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=f=h=null}})();var ra={},Ja=/^(?:\{.*\}|\[.*\])$/;c.extend({cache:{},uuid:0,expando:"jQuery"+c.now(),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},data:function(a,b,d){if(c.acceptData(a)){a=a==E?ra:a;var e=a.nodeType,f=e?a[c.expando]:null,h= +c.cache;if(!(e&&!f&&typeof b==="string"&&d===B)){if(e)f||(a[c.expando]=f=++c.uuid);else h=a;if(typeof b==="object")if(e)h[f]=c.extend(h[f],b);else c.extend(h,b);else if(e&&!h[f])h[f]={};a=e?h[f]:h;if(d!==B)a[b]=d;return typeof b==="string"?a[b]:a}}},removeData:function(a,b){if(c.acceptData(a)){a=a==E?ra:a;var d=a.nodeType,e=d?a[c.expando]:a,f=c.cache,h=d?f[e]:e;if(b){if(h){delete h[b];d&&c.isEmptyObject(h)&&c.removeData(a)}}else if(d&&c.support.deleteExpando)delete a[c.expando];else if(a.removeAttribute)a.removeAttribute(c.expando); +else if(d)delete f[e];else for(var l in a)delete a[l]}},acceptData:function(a){if(a.nodeName){var b=c.noData[a.nodeName.toLowerCase()];if(b)return!(b===true||a.getAttribute("classid")!==b)}return true}});c.fn.extend({data:function(a,b){var d=null;if(typeof a==="undefined"){if(this.length){var e=this[0].attributes,f;d=c.data(this[0]);for(var h=0,l=e.length;h<l;h++){f=e[h].name;if(f.indexOf("data-")===0){f=f.substr(5);ka(this[0],f,d[f])}}}return d}else if(typeof a==="object")return this.each(function(){c.data(this, +a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(b===B){d=this.triggerHandler("getData"+k[1]+"!",[k[0]]);if(d===B&&this.length){d=c.data(this[0],a);d=ka(this[0],a,d)}return d===B&&k[1]?this.data(k[0]):d}else return this.each(function(){var o=c(this),x=[k[0],b];o.triggerHandler("setData"+k[1]+"!",x);c.data(this,a,b);o.triggerHandler("changeData"+k[1]+"!",x)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var e= +c.data(a,b);if(!d)return e||[];if(!e||c.isArray(d))e=c.data(a,b,c.makeArray(d));else e.push(d);return e}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),e=d.shift();if(e==="inprogress")e=d.shift();if(e){b==="fx"&&d.unshift("inprogress");e.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b===B)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this, +a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var sa=/[\n\t]/g,ha=/\s+/,Sa=/\r/g,Ta=/^(?:href|src|style)$/,Ua=/^(?:button|input)$/i,Va=/^(?:button|input|object|select|textarea)$/i,Wa=/^a(?:rea)?$/i,ta=/^(?:radio|checkbox)$/i;c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan", +colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};c.fn.extend({attr:function(a,b){return c.access(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(x){var r=c(this);r.addClass(a.call(this,x,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType=== +1)if(f.className){for(var h=" "+f.className+" ",l=f.className,k=0,o=b.length;k<o;k++)if(h.indexOf(" "+b[k]+" ")<0)l+=" "+b[k];f.className=c.trim(l)}else f.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(o){var x=c(this);x.removeClass(a.call(this,o,x.attr("class")))});if(a&&typeof a==="string"||a===B)for(var b=(a||"").split(ha),d=0,e=this.length;d<e;d++){var f=this[d];if(f.nodeType===1&&f.className)if(a){for(var h=(" "+f.className+" ").replace(sa," "), +l=0,k=b.length;l<k;l++)h=h.replace(" "+b[l]+" "," ");f.className=c.trim(h)}else f.className=""}return this},toggleClass:function(a,b){var d=typeof a,e=typeof b==="boolean";if(c.isFunction(a))return this.each(function(f){var h=c(this);h.toggleClass(a.call(this,f,h.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var f,h=0,l=c(this),k=b,o=a.split(ha);f=o[h++];){k=e?k:!l.hasClass(f);l[k?"addClass":"removeClass"](f)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this, +"__className__",this.className);this.className=this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(sa," ").indexOf(a)>-1)return true;return false},val:function(a){if(!arguments.length){var b=this[0];if(b){if(c.nodeName(b,"option")){var d=b.attributes.value;return!d||d.specified?b.value:b.text}if(c.nodeName(b,"select")){var e=b.selectedIndex;d=[];var f=b.options;b=b.type==="select-one"; +if(e<0)return null;var h=b?e:0;for(e=b?e+1:f.length;h<e;h++){var l=f[h];if(l.selected&&(c.support.optDisabled?!l.disabled:l.getAttribute("disabled")===null)&&(!l.parentNode.disabled||!c.nodeName(l.parentNode,"optgroup"))){a=c(l).val();if(b)return a;d.push(a)}}return d}if(ta.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Sa,"")}return B}var k=c.isFunction(a);return this.each(function(o){var x=c(this),r=a;if(this.nodeType===1){if(k)r= +a.call(this,o,x.val());if(r==null)r="";else if(typeof r==="number")r+="";else if(c.isArray(r))r=c.map(r,function(C){return C==null?"":C+""});if(c.isArray(r)&&ta.test(this.type))this.checked=c.inArray(x.val(),r)>=0;else if(c.nodeName(this,"select")){var A=c.makeArray(r);c("option",this).each(function(){this.selected=c.inArray(c(this).val(),A)>=0});if(!A.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true}, +attr:function(a,b,d,e){if(!a||a.nodeType===3||a.nodeType===8)return B;if(e&&b in c.attrFn)return c(a)[b](d);e=a.nodeType!==1||!c.isXMLDoc(a);var f=d!==B;b=e&&c.props[b]||b;var h=Ta.test(b);if((b in a||a[b]!==B)&&e&&!h){if(f){b==="type"&&Ua.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed");if(d===null)a.nodeType===1&&a.removeAttribute(b);else a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&& +b.specified?b.value:Va.test(a.nodeName)||Wa.test(a.nodeName)&&a.href?0:B;return a[b]}if(!c.support.style&&e&&b==="style"){if(f)a.style.cssText=""+d;return a.style.cssText}f&&a.setAttribute(b,""+d);if(!a.attributes[b]&&a.hasAttribute&&!a.hasAttribute(b))return B;a=!c.support.hrefNormalized&&e&&h?a.getAttribute(b,2):a.getAttribute(b);return a===null?B:a}});var X=/\.(.*)$/,ia=/^(?:textarea|input|select)$/i,La=/\./g,Ma=/ /g,Xa=/[^\w\s.|`]/g,Ya=function(a){return a.replace(Xa,"\\$&")},ua={focusin:0,focusout:0}; +c.event={add:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(c.isWindow(a)&&a!==E&&!a.frameElement)a=E;if(d===false)d=U;else if(!d)return;var f,h;if(d.handler){f=d;d=f.handler}if(!d.guid)d.guid=c.guid++;if(h=c.data(a)){var l=a.nodeType?"events":"__events__",k=h[l],o=h.handle;if(typeof k==="function"){o=k.handle;k=k.events}else if(!k){a.nodeType||(h[l]=h=function(){});h.events=k={}}if(!o)h.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem, +arguments):B};o.elem=a;b=b.split(" ");for(var x=0,r;l=b[x++];){h=f?c.extend({},f):{handler:d,data:e};if(l.indexOf(".")>-1){r=l.split(".");l=r.shift();h.namespace=r.slice(0).sort().join(".")}else{r=[];h.namespace=""}h.type=l;if(!h.guid)h.guid=d.guid;var A=k[l],C=c.event.special[l]||{};if(!A){A=k[l]=[];if(!C.setup||C.setup.call(a,e,r,o)===false)if(a.addEventListener)a.addEventListener(l,o,false);else a.attachEvent&&a.attachEvent("on"+l,o)}if(C.add){C.add.call(a,h);if(!h.handler.guid)h.handler.guid= +d.guid}A.push(h);c.event.global[l]=true}a=null}}},global:{},remove:function(a,b,d,e){if(!(a.nodeType===3||a.nodeType===8)){if(d===false)d=U;var f,h,l=0,k,o,x,r,A,C,J=a.nodeType?"events":"__events__",w=c.data(a),I=w&&w[J];if(w&&I){if(typeof I==="function"){w=I;I=I.events}if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(f in I)c.event.remove(a,f+b)}else{for(b=b.split(" ");f=b[l++];){r=f;k=f.indexOf(".")<0;o=[];if(!k){o=f.split(".");f=o.shift();x=RegExp("(^|\\.)"+ +c.map(o.slice(0).sort(),Ya).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(A=I[f])if(d){r=c.event.special[f]||{};for(h=e||0;h<A.length;h++){C=A[h];if(d.guid===C.guid){if(k||x.test(C.namespace)){e==null&&A.splice(h--,1);r.remove&&r.remove.call(a,C)}if(e!=null)break}}if(A.length===0||e!=null&&A.length===1){if(!r.teardown||r.teardown.call(a,o)===false)c.removeEvent(a,f,w.handle);delete I[f]}}else for(h=0;h<A.length;h++){C=A[h];if(k||x.test(C.namespace)){c.event.remove(a,r,C.handler,h);A.splice(h--,1)}}}if(c.isEmptyObject(I)){if(b= +w.handle)b.elem=null;delete w.events;delete w.handle;if(typeof w==="function")c.removeData(a,J);else c.isEmptyObject(w)&&c.removeData(a)}}}}},trigger:function(a,b,d,e){var f=a.type||a;if(!e){a=typeof a==="object"?a[c.expando]?a:c.extend(c.Event(f),a):c.Event(f);if(f.indexOf("!")>=0){a.type=f=f.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[f]&&c.each(c.cache,function(){this.events&&this.events[f]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType=== +8)return B;a.result=B;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(e=d.nodeType?c.data(d,"handle"):(c.data(d,"__events__")||{}).handle)&&e.apply(d,b);e=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+f]&&d["on"+f].apply(d,b)===false){a.result=false;a.preventDefault()}}catch(h){}if(!a.isPropagationStopped()&&e)c.event.trigger(a,b,e,true);else if(!a.isDefaultPrevented()){var l;e=a.target;var k=f.replace(X,""),o=c.nodeName(e,"a")&&k=== +"click",x=c.event.special[k]||{};if((!x._default||x._default.call(d,a)===false)&&!o&&!(e&&e.nodeName&&c.noData[e.nodeName.toLowerCase()])){try{if(e[k]){if(l=e["on"+k])e["on"+k]=null;c.event.triggered=true;e[k]()}}catch(r){}if(l)e["on"+k]=l;c.event.triggered=false}}},handle:function(a){var b,d,e,f;d=[];var h=c.makeArray(arguments);a=h[0]=c.event.fix(a||E.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive;if(!b){e=a.type.split(".");a.type=e.shift();d=e.slice(0).sort();e=RegExp("(^|\\.)"+ +d.join("\\.(?:.*\\.)?")+"(\\.|$)")}a.namespace=a.namespace||d.join(".");f=c.data(this,this.nodeType?"events":"__events__");if(typeof f==="function")f=f.events;d=(f||{})[a.type];if(f&&d){d=d.slice(0);f=0;for(var l=d.length;f<l;f++){var k=d[f];if(b||e.test(k.namespace)){a.handler=k.handler;a.data=k.data;a.handleObj=k;k=k.handler.apply(this,h);if(k!==B){a.result=k;if(k===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), +fix:function(a){if(a[c.expando])return a;var b=a;a=c.Event(b);for(var d=this.props.length,e;d;){e=this.props[--d];a[e]=b[e]}if(!a.target)a.target=a.srcElement||t;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=t.documentElement;d=t.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| +d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(a.which==null&&(a.charCode!=null||a.keyCode!=null))a.which=a.charCode!=null?a.charCode:a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==B)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,Y(a.origType,a.selector),c.extend({},a,{handler:Ka,guid:a.handler.guid}))},remove:function(a){c.event.remove(this, +Y(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,d){if(c.isWindow(this))this.onbeforeunload=d},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};c.removeEvent=t.removeEventListener?function(a,b,d){a.removeEventListener&&a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent&&a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=a;this.type=a.type}else this.type=a;this.timeStamp= +c.now();this[c.expando]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ca;var a=this.originalEvent;if(a)if(a.preventDefault)a.preventDefault();else a.returnValue=false},stopPropagation:function(){this.isPropagationStopped=ca;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ca;this.stopPropagation()},isDefaultPrevented:U,isPropagationStopped:U,isImmediatePropagationStopped:U}; +var va=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},wa=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?wa:va,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?wa:va)}}});if(!c.support.submitBubbles)c.event.special.submit={setup:function(){if(this.nodeName.toLowerCase()!== +"form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length){a.liveFired=B;return la("submit",this,arguments)}});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13){a.liveFired=B;return la("submit",this,arguments)}})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};if(!c.support.changeBubbles){var V, +xa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(e){return e.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},Z=function(a,b){var d=a.target,e,f;if(!(!ia.test(d.nodeName)||d.readOnly)){e=c.data(d,"_change_data");f=xa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data",f);if(!(e===B||f===e))if(e!=null||f){a.type="change";a.liveFired= +B;return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:Z,beforedeactivate:Z,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return Z.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return Z.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a,"_change_data",xa(a))}},setup:function(){if(this.type=== +"file")return false;for(var a in V)c.event.add(this,a+".specialChange",V[a]);return ia.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return ia.test(this.nodeName)}};V=c.event.special.change.filters;V.focus=V.beforeactivate}t.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.trigger(e,null,e.target)}c.event.special[b]={setup:function(){ua[b]++===0&&t.addEventListener(a,d,true)},teardown:function(){--ua[b]=== +0&&t.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,e,f){if(typeof d==="object"){for(var h in d)this[b](h,e,d[h],f);return this}if(c.isFunction(e)||e===false){f=e;e=B}var l=b==="one"?c.proxy(f,function(o){c(this).unbind(o,l);return f.apply(this,arguments)}):f;if(d==="unload"&&b!=="one")this.one(d,e,f);else{h=0;for(var k=this.length;h<k;h++)c.event.add(this[h],d,l,e)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&!a.preventDefault)for(var d in a)this.unbind(d, +a[d]);else{d=0;for(var e=this.length;d<e;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,e){return this.live(b,d,e,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var d=c.Event(a);d.preventDefault();d.stopPropagation();c.event.trigger(d,b,this[0]);return d.result}},toggle:function(a){for(var b=arguments,d= +1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(e){var f=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,f+1);e.preventDefault();return b[f].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var ya={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,e,f,h){var l,k=0,o,x,r=h||this.selector;h=h?this:c(this.context);if(typeof d=== +"object"&&!d.preventDefault){for(l in d)h[b](l,e,d[l],r);return this}if(c.isFunction(e)){f=e;e=B}for(d=(d||"").split(" ");(l=d[k++])!=null;){o=X.exec(l);x="";if(o){x=o[0];l=l.replace(X,"")}if(l==="hover")d.push("mouseenter"+x,"mouseleave"+x);else{o=l;if(l==="focus"||l==="blur"){d.push(ya[l]+x);l+=x}else l=(ya[l]||l)+x;if(b==="live"){x=0;for(var A=h.length;x<A;x++)c.event.add(h[x],"live."+Y(l,r),{data:e,selector:r,handler:f,origType:l,origHandler:f,preType:o})}else h.unbind("live."+Y(l,r),f)}}return this}}); +c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){c.fn[b]=function(d,e){if(e==null){e=d;d=null}return arguments.length>0?this.bind(b,d,e):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});E.attachEvent&&!E.addEventListener&&c(E).bind("unload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}}); +(function(){function a(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1&&!q){y.sizcache=n;y.sizset=p}if(y.nodeName.toLowerCase()===i){F=y;break}y=y[g]}m[p]=F}}}function b(g,i,n,m,p,q){p=0;for(var u=m.length;p<u;p++){var y=m[p];if(y){var F=false;for(y=y[g];y;){if(y.sizcache===n){F=m[y.sizset];break}if(y.nodeType===1){if(!q){y.sizcache=n;y.sizset=p}if(typeof i!=="string"){if(y===i){F=true;break}}else if(k.filter(i, +[y]).length>0){F=y;break}}y=y[g]}m[p]=F}}}var d=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,h=false,l=true;[0,0].sort(function(){l=false;return 0});var k=function(g,i,n,m){n=n||[];var p=i=i||t;if(i.nodeType!==1&&i.nodeType!==9)return[];if(!g||typeof g!=="string")return n;var q,u,y,F,M,N=true,O=k.isXML(i),D=[],R=g;do{d.exec("");if(q=d.exec(R)){R=q[3];D.push(q[1]);if(q[2]){F=q[3]; +break}}}while(q);if(D.length>1&&x.exec(g))if(D.length===2&&o.relative[D[0]])u=L(D[0]+D[1],i);else for(u=o.relative[D[0]]?[i]:k(D.shift(),i);D.length;){g=D.shift();if(o.relative[g])g+=D.shift();u=L(g,u)}else{if(!m&&D.length>1&&i.nodeType===9&&!O&&o.match.ID.test(D[0])&&!o.match.ID.test(D[D.length-1])){q=k.find(D.shift(),i,O);i=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]}if(i){q=m?{expr:D.pop(),set:C(m)}:k.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&i.parentNode?i.parentNode:i,O);u=q.expr?k.filter(q.expr, +q.set):q.set;if(D.length>0)y=C(u);else N=false;for(;D.length;){q=M=D.pop();if(o.relative[M])q=D.pop();else M="";if(q==null)q=i;o.relative[M](y,q,O)}}else y=[]}y||(y=u);y||k.error(M||g);if(f.call(y)==="[object Array]")if(N)if(i&&i.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&k.contains(i,y[g])))n.push(u[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&n.push(u[g]);else n.push.apply(n,y);else C(y,n);if(F){k(F,p,n,m);k.uniqueSort(n)}return n};k.uniqueSort=function(g){if(w){h= +l;g.sort(w);if(h)for(var i=1;i<g.length;i++)g[i]===g[i-1]&&g.splice(i--,1)}return g};k.matches=function(g,i){return k(g,null,null,i)};k.matchesSelector=function(g,i){return k(i,null,null,[g]).length>0};k.find=function(g,i,n){var m;if(!g)return[];for(var p=0,q=o.order.length;p<q;p++){var u,y=o.order[p];if(u=o.leftMatch[y].exec(g)){var F=u[1];u.splice(1,1);if(F.substr(F.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");m=o.find[y](u,i,n);if(m!=null){g=g.replace(o.match[y],"");break}}}}m||(m=i.getElementsByTagName("*")); +return{set:m,expr:g}};k.filter=function(g,i,n,m){for(var p,q,u=g,y=[],F=i,M=i&&i[0]&&k.isXML(i[0]);g&&i.length;){for(var N in o.filter)if((p=o.leftMatch[N].exec(g))!=null&&p[2]){var O,D,R=o.filter[N];D=p[1];q=false;p.splice(1,1);if(D.substr(D.length-1)!=="\\"){if(F===y)y=[];if(o.preFilter[N])if(p=o.preFilter[N](p,F,n,y,m,M)){if(p===true)continue}else q=O=true;if(p)for(var j=0;(D=F[j])!=null;j++)if(D){O=R(D,p,j,F);var s=m^!!O;if(n&&O!=null)if(s)q=true;else F[j]=false;else if(s){y.push(D);q=true}}if(O!== +B){n||(F=y);g=g.replace(o.match[N],"");if(!q)return[];break}}}if(g===u)if(q==null)k.error(g);else break;u=g}return F};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var o=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/, +POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},relative:{"+":function(g,i){var n=typeof i==="string",m=n&&!/\W/.test(i);n=n&&!m;if(m)i=i.toLowerCase();m=0;for(var p=g.length,q;m<p;m++)if(q=g[m]){for(;(q=q.previousSibling)&&q.nodeType!==1;);g[m]=n||q&&q.nodeName.toLowerCase()=== +i?q||false:q===i}n&&k.filter(i,g,true)},">":function(g,i){var n,m=typeof i==="string",p=0,q=g.length;if(m&&!/\W/.test(i))for(i=i.toLowerCase();p<q;p++){if(n=g[p]){n=n.parentNode;g[p]=n.nodeName.toLowerCase()===i?n:false}}else{for(;p<q;p++)if(n=g[p])g[p]=m?n.parentNode:n.parentNode===i;m&&k.filter(i,g,true)}},"":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m=i=i.toLowerCase();q=a}q("parentNode",i,p,g,m,n)},"~":function(g,i,n){var m,p=e++,q=b;if(typeof i==="string"&&!/\W/.test(i)){m= +i=i.toLowerCase();q=a}q("previousSibling",i,p,g,m,n)}},find:{ID:function(g,i,n){if(typeof i.getElementById!=="undefined"&&!n)return(g=i.getElementById(g[1]))&&g.parentNode?[g]:[]},NAME:function(g,i){if(typeof i.getElementsByName!=="undefined"){for(var n=[],m=i.getElementsByName(g[1]),p=0,q=m.length;p<q;p++)m[p].getAttribute("name")===g[1]&&n.push(m[p]);return n.length===0?null:n}},TAG:function(g,i){return i.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,i,n,m,p,q){g=" "+g[1].replace(/\\/g, +"")+" ";if(q)return g;q=0;for(var u;(u=i[q])!=null;q++)if(u)if(p^(u.className&&(" "+u.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))n||m.push(u);else if(n)i[q]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()},CHILD:function(g){if(g[1]==="nth"){var i=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=i[1]+(i[2]||1)-0;g[3]=i[3]-0}g[0]=e++;return g},ATTR:function(g,i,n, +m,p,q){i=g[1].replace(/\\/g,"");if(!q&&o.attrMap[i])g[1]=o.attrMap[i];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,i,n,m,p){if(g[1]==="not")if((d.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,i);else{g=k.filter(g[3],i,n,true^p);n||m.push.apply(m,g);return false}else if(o.match.POS.test(g[0])||o.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled=== +true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,i,n){return!!k(n[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)},text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"=== +g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}},setFilters:{first:function(g,i){return i===0},last:function(g,i,n,m){return i===m.length-1},even:function(g,i){return i%2===0},odd:function(g,i){return i%2===1},lt:function(g,i,n){return i<n[3]-0},gt:function(g,i,n){return i>n[3]-0},nth:function(g,i,n){return n[3]- +0===i},eq:function(g,i,n){return n[3]-0===i}},filter:{PSEUDO:function(g,i,n,m){var p=i[1],q=o.filters[p];if(q)return q(g,n,i,m);else if(p==="contains")return(g.textContent||g.innerText||k.getText([g])||"").indexOf(i[3])>=0;else if(p==="not"){i=i[3];n=0;for(m=i.length;n<m;n++)if(i[n]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+p)},CHILD:function(g,i){var n=i[1],m=g;switch(n){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(n=== +"first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":n=i[2];var p=i[3];if(n===1&&p===0)return true;var q=i[0],u=g.parentNode;if(u&&(u.sizcache!==q||!g.nodeIndex)){var y=0;for(m=u.firstChild;m;m=m.nextSibling)if(m.nodeType===1)m.nodeIndex=++y;u.sizcache=q}m=g.nodeIndex-p;return n===0?m===0:m%n===0&&m/n>=0}},ID:function(g,i){return g.nodeType===1&&g.getAttribute("id")===i},TAG:function(g,i){return i==="*"&&g.nodeType===1||g.nodeName.toLowerCase()=== +i},CLASS:function(g,i){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(i)>-1},ATTR:function(g,i){var n=i[1];n=o.attrHandle[n]?o.attrHandle[n](g):g[n]!=null?g[n]:g.getAttribute(n);var m=n+"",p=i[2],q=i[4];return n==null?p==="!=":p==="="?m===q:p==="*="?m.indexOf(q)>=0:p==="~="?(" "+m+" ").indexOf(q)>=0:!q?m&&n!==false:p==="!="?m!==q:p==="^="?m.indexOf(q)===0:p==="$="?m.substr(m.length-q.length)===q:p==="|="?m===q||m.substr(0,q.length+1)===q+"-":false},POS:function(g,i,n,m){var p=o.setFilters[i[2]]; +if(p)return p(g,n,i,m)}}},x=o.match.POS,r=function(g,i){return"\\"+(i-0+1)},A;for(A in o.match){o.match[A]=RegExp(o.match[A].source+/(?![^\[]*\])(?![^\(]*\))/.source);o.leftMatch[A]=RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[A].source.replace(/\\(\d+)/g,r))}var C=function(g,i){g=Array.prototype.slice.call(g,0);if(i){i.push.apply(i,g);return i}return g};try{Array.prototype.slice.call(t.documentElement.childNodes,0)}catch(J){C=function(g,i){var n=0,m=i||[];if(f.call(g)==="[object Array]")Array.prototype.push.apply(m, +g);else if(typeof g.length==="number")for(var p=g.length;n<p;n++)m.push(g[n]);else for(;g[n];n++)m.push(g[n]);return m}}var w,I;if(t.documentElement.compareDocumentPosition)w=function(g,i){if(g===i){h=true;return 0}if(!g.compareDocumentPosition||!i.compareDocumentPosition)return g.compareDocumentPosition?-1:1;return g.compareDocumentPosition(i)&4?-1:1};else{w=function(g,i){var n,m,p=[],q=[];n=g.parentNode;m=i.parentNode;var u=n;if(g===i){h=true;return 0}else if(n===m)return I(g,i);else if(n){if(!m)return 1}else return-1; +for(;u;){p.unshift(u);u=u.parentNode}for(u=m;u;){q.unshift(u);u=u.parentNode}n=p.length;m=q.length;for(u=0;u<n&&u<m;u++)if(p[u]!==q[u])return I(p[u],q[u]);return u===n?I(g,q[u],-1):I(p[u],i,1)};I=function(g,i,n){if(g===i)return n;for(g=g.nextSibling;g;){if(g===i)return-1;g=g.nextSibling}return 1}}k.getText=function(g){for(var i="",n,m=0;g[m];m++){n=g[m];if(n.nodeType===3||n.nodeType===4)i+=n.nodeValue;else if(n.nodeType!==8)i+=k.getText(n.childNodes)}return i};(function(){var g=t.createElement("div"), +i="script"+(new Date).getTime(),n=t.documentElement;g.innerHTML="<a name='"+i+"'/>";n.insertBefore(g,n.firstChild);if(t.getElementById(i)){o.find.ID=function(m,p,q){if(typeof p.getElementById!=="undefined"&&!q)return(p=p.getElementById(m[1]))?p.id===m[1]||typeof p.getAttributeNode!=="undefined"&&p.getAttributeNode("id").nodeValue===m[1]?[p]:B:[]};o.filter.ID=function(m,p){var q=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&q&&q.nodeValue===p}}n.removeChild(g); +n=g=null})();(function(){var g=t.createElement("div");g.appendChild(t.createComment(""));if(g.getElementsByTagName("*").length>0)o.find.TAG=function(i,n){var m=n.getElementsByTagName(i[1]);if(i[1]==="*"){for(var p=[],q=0;m[q];q++)m[q].nodeType===1&&p.push(m[q]);m=p}return m};g.innerHTML="<a href='#'></a>";if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")o.attrHandle.href=function(i){return i.getAttribute("href",2)};g=null})();t.querySelectorAll&& +function(){var g=k,i=t.createElement("div");i.innerHTML="<p class='TEST'></p>";if(!(i.querySelectorAll&&i.querySelectorAll(".TEST").length===0)){k=function(m,p,q,u){p=p||t;m=m.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!u&&!k.isXML(p))if(p.nodeType===9)try{return C(p.querySelectorAll(m),q)}catch(y){}else if(p.nodeType===1&&p.nodeName.toLowerCase()!=="object"){var F=p.getAttribute("id"),M=F||"__sizzle__";F||p.setAttribute("id",M);try{return C(p.querySelectorAll("#"+M+" "+m),q)}catch(N){}finally{F|| +p.removeAttribute("id")}}return g(m,p,q,u)};for(var n in g)k[n]=g[n];i=null}}();(function(){var g=t.documentElement,i=g.matchesSelector||g.mozMatchesSelector||g.webkitMatchesSelector||g.msMatchesSelector,n=false;try{i.call(t.documentElement,"[test!='']:sizzle")}catch(m){n=true}if(i)k.matchesSelector=function(p,q){q=q.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(p))try{if(n||!o.match.PSEUDO.test(q)&&!/!=/.test(q))return i.call(p,q)}catch(u){}return k(q,null,null,[p]).length>0}})();(function(){var g= +t.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){o.order.splice(1,0,"CLASS");o.find.CLASS=function(i,n,m){if(typeof n.getElementsByClassName!=="undefined"&&!m)return n.getElementsByClassName(i[1])};g=null}}})();k.contains=t.documentElement.contains?function(g,i){return g!==i&&(g.contains?g.contains(i):true)}:t.documentElement.compareDocumentPosition? +function(g,i){return!!(g.compareDocumentPosition(i)&16)}:function(){return false};k.isXML=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false};var L=function(g,i){for(var n,m=[],p="",q=i.nodeType?[i]:i;n=o.match.PSEUDO.exec(g);){p+=n[0];g=g.replace(o.match.PSEUDO,"")}g=o.relative[g]?g+"*":g;n=0;for(var u=q.length;n<u;n++)k(g,q[n],m);return k.filter(p,m)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=k.getText;c.isXMLDoc=k.isXML; +c.contains=k.contains})();var Za=/Until$/,$a=/^(?:parents|prevUntil|prevAll)/,ab=/,/,Na=/^.[^:#\[\.,]*$/,bb=Array.prototype.slice,cb=c.expr.match.POS;c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,e=0,f=this.length;e<f;e++){d=b.length;c.find(a,this[e],b);if(e>0)for(var h=d;h<b.length;h++)for(var l=0;l<d;l++)if(b[l]===b[h]){b.splice(h--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,e=b.length;d<e;d++)if(c.contains(this,b[d]))return true})}, +not:function(a){return this.pushStack(ma(this,a,false),"not",a)},filter:function(a){return this.pushStack(ma(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){var d=[],e,f,h=this[0];if(c.isArray(a)){var l,k={},o=1;if(h&&a.length){e=0;for(f=a.length;e<f;e++){l=a[e];k[l]||(k[l]=c.expr.match.POS.test(l)?c(l,b||this.context):l)}for(;h&&h.ownerDocument&&h!==b;){for(l in k){e=k[l];if(e.jquery?e.index(h)>-1:c(h).is(e))d.push({selector:l,elem:h,level:o})}h= +h.parentNode;o++}}return d}l=cb.test(a)?c(a,b||this.context):null;e=0;for(f=this.length;e<f;e++)for(h=this[e];h;)if(l?l.index(h)>-1:c.find.matchesSelector(h,a)){d.push(h);break}else{h=h.parentNode;if(!h||!h.ownerDocument||h===b)break}d=d.length>1?c.unique(d):d;return this.pushStack(d,"closest",a)},index:function(a){if(!a||typeof a==="string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var d=typeof a==="string"?c(a,b||this.context): +c.makeArray(a),e=c.merge(this.get(),d);return this.pushStack(!d[0]||!d[0].parentNode||d[0].parentNode.nodeType===11||!e[0]||!e[0].parentNode||e[0].parentNode.nodeType===11?e:c.unique(e))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode",d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a, +2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a, +b){c.fn[a]=function(d,e){var f=c.map(this,b,d);Za.test(a)||(e=d);if(e&&typeof e==="string")f=c.filter(e,f);f=this.length>1?c.unique(f):f;if((this.length>1||ab.test(e))&&$a.test(a))f=f.reverse();return this.pushStack(f,a,bb.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return b.length===1?c.find.matchesSelector(b[0],a)?[b[0]]:[]:c.find.matches(a,b)},dir:function(a,b,d){var e=[];for(a=a[b];a&&a.nodeType!==9&&(d===B||a.nodeType!==1||!c(a).is(d));){a.nodeType===1&& +e.push(a);a=a[b]}return e},nth:function(a,b,d){b=b||1;for(var e=0;a;a=a[d])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var za=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,Aa=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Ba=/<([\w:]+)/,db=/<tbody/i,eb=/<|&#?\w+;/,Ca=/<(?:script|object|embed|option|style)/i,Da=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/\=([^="'>\s]+\/)>/g,P={option:[1, +"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};P.optgroup=P.option;P.tbody=P.tfoot=P.colgroup=P.caption=P.thead;P.th=P.td;if(!c.support.htmlSerialize)P._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==B)return this.empty().append((this[0]&&this[0].ownerDocument||t).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,e;(e=this[d])!=null;d++)if(!a||c.filter(a,[e]).length){if(!b&&e.nodeType===1){c.cleanData(e.getElementsByTagName("*"));c.cleanData([e])}e.parentNode&&e.parentNode.removeChild(e)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,e=this.ownerDocument;if(!d){d=e.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(za,"").replace(fb,'="$1">').replace($,"")],e)[0]}else return this.cloneNode(true)});if(a===true){na(this,b);na(this.find("*"),b.find("*"))}return b},html:function(a){if(a===B)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(za,""):null; +else if(typeof a==="string"&&!Ca.test(a)&&(c.support.leadingWhitespace||!$.test(a))&&!P[(Ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Aa,"<$1></$2>");try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(e){this.empty().append(a)}}else c.isFunction(a)?this.each(function(f){var h=c(this);h.html(a.call(this,f,h.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d= +c(this),e=d.html();d.replaceWith(a.call(this,b,e))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){var e,f,h,l=a[0],k=[];if(!c.support.checkClone&&arguments.length===3&&typeof l==="string"&&Da.test(l))return this.each(function(){c(this).domManip(a, +b,d,true)});if(c.isFunction(l))return this.each(function(x){var r=c(this);a[0]=l.call(this,x,b?r.html():B);r.domManip(a,b,d)});if(this[0]){e=l&&l.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:c.buildFragment(a,this,k);h=e.fragment;if(f=h.childNodes.length===1?h=h.firstChild:h.firstChild){b=b&&c.nodeName(f,"tr");f=0;for(var o=this.length;f<o;f++)d.call(b?c.nodeName(this[f],"table")?this[f].getElementsByTagName("tbody")[0]||this[f].appendChild(this[f].ownerDocument.createElement("tbody")): +this[f]:this[f],f>0||e.cacheable||this.length>1?h.cloneNode(true):h)}k.length&&c.each(k,Oa)}return this}});c.buildFragment=function(a,b,d){var e,f,h;b=b&&b[0]?b[0].ownerDocument||b[0]:t;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===t&&!Ca.test(a[0])&&(c.support.checkClone||!Da.test(a[0]))){f=true;if(h=c.fragments[a[0]])if(h!==1)e=h}if(!e){e=b.createDocumentFragment();c.clean(a,b,e,d)}if(f)c.fragments[a[0]]=h?e:1;return{fragment:e,cacheable:f}};c.fragments={};c.each({appendTo:"append", +prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var e=[];d=c(d);var f=this.length===1&&this[0].parentNode;if(f&&f.nodeType===11&&f.childNodes.length===1&&d.length===1){d[b](this[0]);return this}else{f=0;for(var h=d.length;f<h;f++){var l=(f>0?this.clone(true):this).get();c(d[f])[b](l);e=e.concat(l)}return this.pushStack(e,a,d.selector)}}});c.extend({clean:function(a,b,d,e){b=b||t;if(typeof b.createElement==="undefined")b=b.ownerDocument|| +b[0]&&b[0].ownerDocument||t;for(var f=[],h=0,l;(l=a[h])!=null;h++){if(typeof l==="number")l+="";if(l){if(typeof l==="string"&&!eb.test(l))l=b.createTextNode(l);else if(typeof l==="string"){l=l.replace(Aa,"<$1></$2>");var k=(Ba.exec(l)||["",""])[1].toLowerCase(),o=P[k]||P._default,x=o[0],r=b.createElement("div");for(r.innerHTML=o[1]+l+o[2];x--;)r=r.lastChild;if(!c.support.tbody){x=db.test(l);k=k==="table"&&!x?r.firstChild&&r.firstChild.childNodes:o[1]==="<table>"&&!x?r.childNodes:[];for(o=k.length- +1;o>=0;--o)c.nodeName(k[o],"tbody")&&!k[o].childNodes.length&&k[o].parentNode.removeChild(k[o])}!c.support.leadingWhitespace&&$.test(l)&&r.insertBefore(b.createTextNode($.exec(l)[0]),r.firstChild);l=r.childNodes}if(l.nodeType)f.push(l);else f=c.merge(f,l)}}if(d)for(h=0;f[h];h++)if(e&&c.nodeName(f[h],"script")&&(!f[h].type||f[h].type.toLowerCase()==="text/javascript"))e.push(f[h].parentNode?f[h].parentNode.removeChild(f[h]):f[h]);else{f[h].nodeType===1&&f.splice.apply(f,[h+1,0].concat(c.makeArray(f[h].getElementsByTagName("script")))); +d.appendChild(f[h])}return f},cleanData:function(a){for(var b,d,e=c.cache,f=c.event.special,h=c.support.deleteExpando,l=0,k;(k=a[l])!=null;l++)if(!(k.nodeName&&c.noData[k.nodeName.toLowerCase()]))if(d=k[c.expando]){if((b=e[d])&&b.events)for(var o in b.events)f[o]?c.event.remove(k,o):c.removeEvent(k,o,b.handle);if(h)delete k[c.expando];else k.removeAttribute&&k.removeAttribute(c.expando);delete e[d]}}});var Ea=/alpha\([^)]*\)/i,gb=/opacity=([^)]*)/,hb=/-([a-z])/ig,ib=/([A-Z])/g,Fa=/^-?\d+(?:px)?$/i, +jb=/^-?\d/,kb={position:"absolute",visibility:"hidden",display:"block"},Pa=["Left","Right"],Qa=["Top","Bottom"],W,Ga,aa,lb=function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){if(arguments.length===2&&b===B)return this;return c.access(this,a,b,true,function(d,e,f){return f!==B?c.style(d,e,f):c.css(d,e)})};c.extend({cssHooks:{opacity:{get:function(a,b){if(b){var d=W(a,"opacity","opacity");return d===""?"1":d}else return a.style.opacity}}},cssNumber:{zIndex:true,fontWeight:true,opacity:true, +zoom:true,lineHeight:true},cssProps:{"float":c.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,d,e){if(!(!a||a.nodeType===3||a.nodeType===8||!a.style)){var f,h=c.camelCase(b),l=a.style,k=c.cssHooks[h];b=c.cssProps[h]||h;if(d!==B){if(!(typeof d==="number"&&isNaN(d)||d==null)){if(typeof d==="number"&&!c.cssNumber[h])d+="px";if(!k||!("set"in k)||(d=k.set(a,d))!==B)try{l[b]=d}catch(o){}}}else{if(k&&"get"in k&&(f=k.get(a,false,e))!==B)return f;return l[b]}}},css:function(a,b,d){var e,f=c.camelCase(b), +h=c.cssHooks[f];b=c.cssProps[f]||f;if(h&&"get"in h&&(e=h.get(a,true,d))!==B)return e;else if(W)return W(a,b,f)},swap:function(a,b,d){var e={},f;for(f in b){e[f]=a.style[f];a.style[f]=b[f]}d.call(a);for(f in b)a.style[f]=e[f]},camelCase:function(a){return a.replace(hb,lb)}});c.curCSS=c.css;c.each(["height","width"],function(a,b){c.cssHooks[b]={get:function(d,e,f){var h;if(e){if(d.offsetWidth!==0)h=oa(d,b,f);else c.swap(d,kb,function(){h=oa(d,b,f)});if(h<=0){h=W(d,b,b);if(h==="0px"&&aa)h=aa(d,b,b); +if(h!=null)return h===""||h==="auto"?"0px":h}if(h<0||h==null){h=d.style[b];return h===""||h==="auto"?"0px":h}return typeof h==="string"?h:h+"px"}},set:function(d,e){if(Fa.test(e)){e=parseFloat(e);if(e>=0)return e+"px"}else return e}}});if(!c.support.opacity)c.cssHooks.opacity={get:function(a,b){return gb.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var d=a.style;d.zoom=1;var e=c.isNaN(b)?"":"alpha(opacity="+b*100+")",f= +d.filter||"";d.filter=Ea.test(f)?f.replace(Ea,e):d.filter+" "+e}};if(t.defaultView&&t.defaultView.getComputedStyle)Ga=function(a,b,d){var e;d=d.replace(ib,"-$1").toLowerCase();if(!(b=a.ownerDocument.defaultView))return B;if(b=b.getComputedStyle(a,null)){e=b.getPropertyValue(d);if(e===""&&!c.contains(a.ownerDocument.documentElement,a))e=c.style(a,d)}return e};if(t.documentElement.currentStyle)aa=function(a,b){var d,e,f=a.currentStyle&&a.currentStyle[b],h=a.style;if(!Fa.test(f)&&jb.test(f)){d=h.left; +e=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;h.left=b==="fontSize"?"1em":f||0;f=h.pixelLeft+"px";h.left=d;a.runtimeStyle.left=e}return f===""?"auto":f};W=Ga||aa;if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b=a.offsetHeight;return a.offsetWidth===0&&b===0||!c.support.reliableHiddenOffsets&&(a.style.display||c.css(a,"display"))==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var mb=c.now(),nb=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, +ob=/^(?:select|textarea)/i,pb=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,qb=/^(?:GET|HEAD)$/,Ra=/\[\]$/,T=/\=\?(&|$)/,ja=/\?/,rb=/([?&])_=[^&]*/,sb=/^(\w+:)?\/\/([^\/?#]+)/,tb=/%20/g,ub=/#.*$/,Ha=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!=="string"&&Ha)return Ha.apply(this,arguments);else if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var f=a.slice(e,a.length);a=a.slice(0,e)}e="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b=== +"object"){b=c.param(b,c.ajaxSettings.traditional);e="POST"}var h=this;c.ajax({url:a,type:e,dataType:"html",data:b,complete:function(l,k){if(k==="success"||k==="notmodified")h.html(f?c("<div>").append(l.responseText.replace(nb,"")).find(f):l.responseText);d&&h.each(d,[l.responseText,k,l])}});return this},serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&& +!this.disabled&&(this.checked||ob.test(this.nodeName)||pb.test(this.type))}).map(function(a,b){var d=c(this).val();return d==null?null:c.isArray(d)?c.map(d,function(e){return{name:b.name,value:e}}):{name:b.name,value:d}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:e})}, +getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,e){if(c.isFunction(b)){e=e||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:e})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return new E.XMLHttpRequest},accepts:{xml:"application/xml, text/xml",html:"text/html", +script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},ajax:function(a){var b=c.extend(true,{},c.ajaxSettings,a),d,e,f,h=b.type.toUpperCase(),l=qb.test(h);b.url=b.url.replace(ub,"");b.context=a&&a.context!=null?a.context:b;if(b.data&&b.processData&&typeof b.data!=="string")b.data=c.param(b.data,b.traditional);if(b.dataType==="jsonp"){if(h==="GET")T.test(b.url)||(b.url+=(ja.test(b.url)?"&":"?")+(b.jsonp||"callback")+"=?");else if(!b.data|| +!T.test(b.data))b.data=(b.data?b.data+"&":"")+(b.jsonp||"callback")+"=?";b.dataType="json"}if(b.dataType==="json"&&(b.data&&T.test(b.data)||T.test(b.url))){d=b.jsonpCallback||"jsonp"+mb++;if(b.data)b.data=(b.data+"").replace(T,"="+d+"$1");b.url=b.url.replace(T,"="+d+"$1");b.dataType="script";var k=E[d];E[d]=function(m){if(c.isFunction(k))k(m);else{E[d]=B;try{delete E[d]}catch(p){}}f=m;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);r&&r.removeChild(A)}}if(b.dataType==="script"&&b.cache===null)b.cache= +false;if(b.cache===false&&l){var o=c.now(),x=b.url.replace(rb,"$1_="+o);b.url=x+(x===b.url?(ja.test(b.url)?"&":"?")+"_="+o:"")}if(b.data&&l)b.url+=(ja.test(b.url)?"&":"?")+b.data;b.global&&c.active++===0&&c.event.trigger("ajaxStart");o=(o=sb.exec(b.url))&&(o[1]&&o[1].toLowerCase()!==location.protocol||o[2].toLowerCase()!==location.host);if(b.dataType==="script"&&h==="GET"&&o){var r=t.getElementsByTagName("head")[0]||t.documentElement,A=t.createElement("script");if(b.scriptCharset)A.charset=b.scriptCharset; +A.src=b.url;if(!d){var C=false;A.onload=A.onreadystatechange=function(){if(!C&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){C=true;c.handleSuccess(b,w,e,f);c.handleComplete(b,w,e,f);A.onload=A.onreadystatechange=null;r&&A.parentNode&&r.removeChild(A)}}}r.insertBefore(A,r.firstChild);return B}var J=false,w=b.xhr();if(w){b.username?w.open(h,b.url,b.async,b.username,b.password):w.open(h,b.url,b.async);try{if(b.data!=null&&!l||a&&a.contentType)w.setRequestHeader("Content-Type", +b.contentType);if(b.ifModified){c.lastModified[b.url]&&w.setRequestHeader("If-Modified-Since",c.lastModified[b.url]);c.etag[b.url]&&w.setRequestHeader("If-None-Match",c.etag[b.url])}o||w.setRequestHeader("X-Requested-With","XMLHttpRequest");w.setRequestHeader("Accept",b.dataType&&b.accepts[b.dataType]?b.accepts[b.dataType]+", */*; q=0.01":b.accepts._default)}catch(I){}if(b.beforeSend&&b.beforeSend.call(b.context,w,b)===false){b.global&&c.active--===1&&c.event.trigger("ajaxStop");w.abort();return false}b.global&& +c.triggerGlobal(b,"ajaxSend",[w,b]);var L=w.onreadystatechange=function(m){if(!w||w.readyState===0||m==="abort"){J||c.handleComplete(b,w,e,f);J=true;if(w)w.onreadystatechange=c.noop}else if(!J&&w&&(w.readyState===4||m==="timeout")){J=true;w.onreadystatechange=c.noop;e=m==="timeout"?"timeout":!c.httpSuccess(w)?"error":b.ifModified&&c.httpNotModified(w,b.url)?"notmodified":"success";var p;if(e==="success")try{f=c.httpData(w,b.dataType,b)}catch(q){e="parsererror";p=q}if(e==="success"||e==="notmodified")d|| +c.handleSuccess(b,w,e,f);else c.handleError(b,w,e,p);d||c.handleComplete(b,w,e,f);m==="timeout"&&w.abort();if(b.async)w=null}};try{var g=w.abort;w.abort=function(){w&&Function.prototype.call.call(g,w);L("abort")}}catch(i){}b.async&&b.timeout>0&&setTimeout(function(){w&&!J&&L("timeout")},b.timeout);try{w.send(l||b.data==null?null:b.data)}catch(n){c.handleError(b,w,null,n);c.handleComplete(b,w,e,f)}b.async||L();return w}},param:function(a,b){var d=[],e=function(h,l){l=c.isFunction(l)?l():l;d[d.length]= +encodeURIComponent(h)+"="+encodeURIComponent(l)};if(b===B)b=c.ajaxSettings.traditional;if(c.isArray(a)||a.jquery)c.each(a,function(){e(this.name,this.value)});else for(var f in a)da(f,a[f],b,e);return d.join("&").replace(tb,"+")}});c.extend({active:0,lastModified:{},etag:{},handleError:function(a,b,d,e){a.error&&a.error.call(a.context,b,d,e);a.global&&c.triggerGlobal(a,"ajaxError",[b,a,e])},handleSuccess:function(a,b,d,e){a.success&&a.success.call(a.context,e,d,b);a.global&&c.triggerGlobal(a,"ajaxSuccess", +[b,a])},handleComplete:function(a,b,d){a.complete&&a.complete.call(a.context,b,d);a.global&&c.triggerGlobal(a,"ajaxComplete",[b,a]);a.global&&c.active--===1&&c.event.trigger("ajaxStop")},triggerGlobal:function(a,b,d){(a.context&&a.context.url==null?c(a.context):c.event).trigger(b,d)},httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status===1223}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"), +e=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(e)c.etag[b]=e;return a.status===304},httpData:function(a,b,d){var e=a.getResponseHeader("content-type")||"",f=b==="xml"||!b&&e.indexOf("xml")>=0;a=f?a.responseXML:a.responseText;f&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b==="json"||!b&&e.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&e.indexOf("javascript")>=0)c.globalEval(a);return a}}); +if(E.ActiveXObject)c.ajaxSettings.xhr=function(){if(E.location.protocol!=="file:")try{return new E.XMLHttpRequest}catch(a){}try{return new E.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}};c.support.ajax=!!c.ajaxSettings.xhr();var ea={},vb=/^(?:toggle|show|hide)$/,wb=/^([+\-]=)?([\d+.\-]+)(.*)$/,ba,pa=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b,d){if(a||a===0)return this.animate(S("show", +3),a,b,d);else{d=0;for(var e=this.length;d<e;d++){a=this[d];b=a.style.display;if(!c.data(a,"olddisplay")&&b==="none")b=a.style.display="";b===""&&c.css(a,"display")==="none"&&c.data(a,"olddisplay",qa(a.nodeName))}for(d=0;d<e;d++){a=this[d];b=a.style.display;if(b===""||b==="none")a.style.display=c.data(a,"olddisplay")||""}return this}},hide:function(a,b,d){if(a||a===0)return this.animate(S("hide",3),a,b,d);else{a=0;for(b=this.length;a<b;a++){d=c.css(this[a],"display");d!=="none"&&c.data(this[a],"olddisplay", +d)}for(a=0;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b,d){var e=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||e?this.each(function(){var f=e?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(S("toggle",3),a,b,d);return this},fadeTo:function(a,b,d,e){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d,e)},animate:function(a,b,d,e){var f=c.speed(b, +d,e);if(c.isEmptyObject(a))return this.each(f.complete);return this[f.queue===false?"each":"queue"](function(){var h=c.extend({},f),l,k=this.nodeType===1,o=k&&c(this).is(":hidden"),x=this;for(l in a){var r=c.camelCase(l);if(l!==r){a[r]=a[l];delete a[l];l=r}if(a[l]==="hide"&&o||a[l]==="show"&&!o)return h.complete.call(this);if(k&&(l==="height"||l==="width")){h.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(c.css(this,"display")==="inline"&&c.css(this,"float")==="none")if(c.support.inlineBlockNeedsLayout)if(qa(this.nodeName)=== +"inline")this.style.display="inline-block";else{this.style.display="inline";this.style.zoom=1}else this.style.display="inline-block"}if(c.isArray(a[l])){(h.specialEasing=h.specialEasing||{})[l]=a[l][1];a[l]=a[l][0]}}if(h.overflow!=null)this.style.overflow="hidden";h.curAnim=c.extend({},a);c.each(a,function(A,C){var J=new c.fx(x,h,A);if(vb.test(C))J[C==="toggle"?o?"show":"hide":C](a);else{var w=wb.exec(C),I=J.cur()||0;if(w){var L=parseFloat(w[2]),g=w[3]||"px";if(g!=="px"){c.style(x,A,(L||1)+g);I=(L|| +1)/J.cur()*I;c.style(x,A,I+g)}if(w[1])L=(w[1]==="-="?-1:1)*L+I;J.custom(I,L,g)}else J.custom(I,C,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);this.each(function(){for(var e=d.length-1;e>=0;e--)if(d[e].elem===this){b&&d[e](true);d.splice(e,1)}});b||this.dequeue();return this}});c.each({slideDown:S("show",1),slideUp:S("hide",1),slideToggle:S("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){c.fn[a]=function(d,e,f){return this.animate(b, +d,e,f)}});c.extend({speed:function(a,b,d){var e=a&&typeof a==="object"?c.extend({},a):{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};e.duration=c.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in c.fx.speeds?c.fx.speeds[e.duration]:c.fx.speeds._default;e.old=e.complete;e.complete=function(){e.queue!==false&&c(this).dequeue();c.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,d,e){return d+e*a},swing:function(a,b,d,e){return(-Math.cos(a* +Math.PI)/2+0.5)*e+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]||c.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a=parseFloat(c.css(this.elem,this.prop));return a&&a>-1E4?a:0},custom:function(a,b,d){function e(l){return f.step(l)} +var f=this,h=c.fx;this.startTime=c.now();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start;this.pos=this.state=0;e.elem=this.elem;if(e()&&c.timers.push(e)&&!ba)ba=setInterval(h.tick,h.interval)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true; +this.custom(this.cur(),0)},step:function(a){var b=c.now(),d=true;if(a||b>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var e in this.options.curAnim)if(this.options.curAnim[e]!==true)d=false;if(d){if(this.options.overflow!=null&&!c.support.shrinkWrapBlocks){var f=this.elem,h=this.options;c.each(["","X","Y"],function(k,o){f.style["overflow"+o]=h.overflow[k]})}this.options.hide&&c(this.elem).hide();if(this.options.hide|| +this.options.show)for(var l in this.options.curAnim)c.style(this.elem,l,this.options.orig[l]);this.options.complete.call(this.elem)}return false}else{a=b-this.startTime;this.state=a/this.options.duration;b=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||b](this.state,a,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a= +c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||c.fx.stop()},interval:13,stop:function(){clearInterval(ba);ba=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a=== +b.elem}).length};var xb=/^t(?:able|d|h)$/i,Ia=/^(?:body|html)$/i;c.fn.offset="getBoundingClientRect"in t.documentElement?function(a){var b=this[0],d;if(a)return this.each(function(l){c.offset.setOffset(this,a,l)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);try{d=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,h=f.documentElement;if(!d||!c.contains(h,b))return d||{top:0,left:0};b=f.body;f=fa(f);return{top:d.top+(f.pageYOffset||c.support.boxModel&& +h.scrollTop||b.scrollTop)-(h.clientTop||b.clientTop||0),left:d.left+(f.pageXOffset||c.support.boxModel&&h.scrollLeft||b.scrollLeft)-(h.clientLeft||b.clientLeft||0)}}:function(a){var b=this[0];if(a)return this.each(function(x){c.offset.setOffset(this,a,x)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d,e=b.offsetParent,f=b.ownerDocument,h=f.documentElement,l=f.body;d=(f=f.defaultView)?f.getComputedStyle(b,null):b.currentStyle; +for(var k=b.offsetTop,o=b.offsetLeft;(b=b.parentNode)&&b!==l&&b!==h;){if(c.offset.supportsFixedPosition&&d.position==="fixed")break;d=f?f.getComputedStyle(b,null):b.currentStyle;k-=b.scrollTop;o-=b.scrollLeft;if(b===e){k+=b.offsetTop;o+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&xb.test(b.nodeName))){k+=parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}e=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"){k+= +parseFloat(d.borderTopWidth)||0;o+=parseFloat(d.borderLeftWidth)||0}d=d}if(d.position==="relative"||d.position==="static"){k+=l.offsetTop;o+=l.offsetLeft}if(c.offset.supportsFixedPosition&&d.position==="fixed"){k+=Math.max(h.scrollTop,l.scrollTop);o+=Math.max(h.scrollLeft,l.scrollLeft)}return{top:k,left:o}};c.offset={initialize:function(){var a=t.body,b=t.createElement("div"),d,e,f,h=parseFloat(c.css(a,"marginTop"))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px", +height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";a.insertBefore(b,a.firstChild);d=b.firstChild;e=d.firstChild;f=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=e.offsetTop!==5;this.doesAddBorderForTableAndCells= +f.offsetTop===5;e.style.position="fixed";e.style.top="20px";this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15;e.style.position=e.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==h;a.removeChild(b);c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.css(a, +"marginTop"))||0;d+=parseFloat(c.css(a,"marginLeft"))||0}return{top:b,left:d}},setOffset:function(a,b,d){var e=c.css(a,"position");if(e==="static")a.style.position="relative";var f=c(a),h=f.offset(),l=c.css(a,"top"),k=c.css(a,"left"),o=e==="absolute"&&c.inArray("auto",[l,k])>-1;e={};var x={};if(o)x=f.position();l=o?x.top:parseInt(l,10)||0;k=o?x.left:parseInt(k,10)||0;if(c.isFunction(b))b=b.call(a,d,h);if(b.top!=null)e.top=b.top-h.top+l;if(b.left!=null)e.left=b.left-h.left+k;"using"in b?b.using.call(a, +e):f.css(e)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),e=Ia.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.css(a,"marginTop"))||0;d.left-=parseFloat(c.css(a,"marginLeft"))||0;e.top+=parseFloat(c.css(b[0],"borderTopWidth"))||0;e.left+=parseFloat(c.css(b[0],"borderLeftWidth"))||0;return{top:d.top-e.top,left:d.left-e.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||t.body;a&&!Ia.test(a.nodeName)&& +c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(e){var f=this[0],h;if(!f)return null;if(e!==B)return this.each(function(){if(h=fa(this))h.scrollTo(!a?e:c(h).scrollLeft(),a?e:c(h).scrollTop());else this[d]=e});else return(h=fa(f))?"pageXOffset"in h?h[a?"pageYOffset":"pageXOffset"]:c.support.boxModel&&h.document.documentElement[d]||h.document.body[d]:f[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase(); +c.fn["inner"+b]=function(){return this[0]?parseFloat(c.css(this[0],d,"padding")):null};c.fn["outer"+b]=function(e){return this[0]?parseFloat(c.css(this[0],d,e?"margin":"border")):null};c.fn[d]=function(e){var f=this[0];if(!f)return e==null?null:this;if(c.isFunction(e))return this.each(function(l){var k=c(this);k[d](e.call(this,l,k[d]()))});if(c.isWindow(f))return f.document.compatMode==="CSS1Compat"&&f.document.documentElement["client"+b]||f.document.body["client"+b];else if(f.nodeType===9)return Math.max(f.documentElement["client"+ +b],f.body["scroll"+b],f.documentElement["scroll"+b],f.body["offset"+b],f.documentElement["offset"+b]);else if(e===B){f=c.css(f,d);var h=parseFloat(f);return c.isNaN(h)?f:h}else return this.css(d,typeof e==="string"?e:e+"px")}})})(window); diff --git a/frontend/js/jquery-1.5.2.min.js b/frontend/js/jquery-1.5.2.min.js new file mode 100644 index 0000000..f78f96a --- /dev/null +++ b/frontend/js/jquery-1.5.2.min.js @@ -0,0 +1,16 @@ +/*! + * jQuery JavaScript Library v1.5.2 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu Mar 31 15:28:23 2011 -0400 + */ +(function(a,b){function ci(a){return d.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cf(a){if(!b_[a]){var b=d("<"+a+">").appendTo("body"),c=b.css("display");b.remove();if(c==="none"||c==="")c="block";b_[a]=c}return b_[a]}function ce(a,b){var c={};d.each(cd.concat.apply([],cd.slice(0,b)),function(){c[this]=a});return c}function b$(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function bZ(){try{return new a.XMLHttpRequest}catch(b){}}function bY(){d(a).unload(function(){for(var a in bW)bW[a](0,1)})}function bS(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var e=a.dataTypes,f={},g,h,i=e.length,j,k=e[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h==="string"&&(f[h.toLowerCase()]=a.converters[h]);l=k,k=e[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=f[m]||f["* "+k];if(!n){p=b;for(o in f){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=f[j[1]+" "+k];if(p){o=f[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&d.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bR(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bQ(a,b,c,e){if(d.isArray(b)&&b.length)d.each(b,function(b,f){c||bs.test(a)?e(a,f):bQ(a+"["+(typeof f==="object"||d.isArray(f)?b:"")+"]",f,c,e)});else if(c||b==null||typeof b!=="object")e(a,b);else if(d.isArray(b)||d.isEmptyObject(b))e(a,"");else for(var f in b)bQ(a+"["+f+"]",b[f],c,e)}function bP(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bJ,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l==="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bP(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bP(a,c,d,e,"*",g));return l}function bO(a){return function(b,c){typeof b!=="string"&&(c=b,b="*");if(d.isFunction(c)){var e=b.toLowerCase().split(bD),f=0,g=e.length,h,i,j;for(;f<g;f++)h=e[f],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bq(a,b,c){var e=b==="width"?bk:bl,f=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return f;d.each(e,function(){c||(f-=parseFloat(d.css(a,"padding"+this))||0),c==="margin"?f+=parseFloat(d.css(a,"margin"+this))||0:f-=parseFloat(d.css(a,"border"+this+"Width"))||0});return f}function bc(a,b){b.src?d.ajax({url:b.src,async:!1,dataType:"script"}):d.globalEval(b.text||b.textContent||b.innerHTML||""),b.parentNode&&b.parentNode.removeChild(b)}function bb(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function ba(a,b){if(b.nodeType===1){var c=b.nodeName.toLowerCase();b.clearAttributes(),b.mergeAttributes(a);if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(d.expando)}}function _(a,b){if(b.nodeType===1&&d.hasData(a)){var c=d.expando,e=d.data(a),f=d.data(b,e);if(e=e[c]){var g=e.events;f=f[c]=d.extend({},e);if(g){delete f.handle,f.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)d.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function $(a,b){return d.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function Q(a,b,c){if(d.isFunction(b))return d.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return d.grep(a,function(a,d){return a===b===c});if(typeof b==="string"){var e=d.grep(a,function(a){return a.nodeType===1});if(L.test(b))return d.filter(b,e,!c);b=d.filter(b,e)}return d.grep(a,function(a,e){return d.inArray(a,b)>=0===c})}function P(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function H(a,b){return(a&&a!=="*"?a+".":"")+b.replace(t,"`").replace(u,"&")}function G(a){var b,c,e,f,g,h,i,j,k,l,m,n,o,p=[],q=[],s=d._data(this,"events");if(a.liveFired!==this&&s&&s.live&&!a.target.disabled&&(!a.button||a.type!=="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var t=s.live.slice(0);for(i=0;i<t.length;i++)g=t[i],g.origType.replace(r,"")===a.type?q.push(g.selector):t.splice(i--,1);f=d(a.target).closest(q,a.currentTarget);for(j=0,k=f.length;j<k;j++){m=f[j];for(i=0;i<t.length;i++){g=t[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,e=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,e=d(a.relatedTarget).closest(g.selector)[0];(!e||e!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){f=p[j];if(c&&f.level>c)break;a.currentTarget=f.elem,a.data=f.handleObj.data,a.handleObj=f.handleObj,o=f.handleObj.origHandler.apply(f.elem,arguments);if(o===!1||a.isPropagationStopped()){c=f.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function E(a,c,e){var f=d.extend({},e[0]);f.type=a,f.originalEvent={},f.liveFired=b,d.event.handle.call(c,f),f.isDefaultPrevented()&&e[0].preventDefault()}function y(){return!0}function x(){return!1}function i(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function h(a,c,e){if(e===b&&a.nodeType===1){e=a.getAttribute("data-"+c);if(typeof e==="string"){try{e=e==="true"?!0:e==="false"?!1:e==="null"?null:d.isNaN(e)?g.test(e)?d.parseJSON(e):e:parseFloat(e)}catch(f){}d.data(a,c,e)}else e=b}return e}var c=a.document,d=function(){function G(){if(!d.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(G,1);return}d.ready()}}var d=function(a,b){return new d.fn.init(a,b,g)},e=a.jQuery,f=a.$,g,h=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]+)$)/,i=/\S/,j=/^\s+/,k=/\s+$/,l=/\d/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=navigator.userAgent,w,x,y,z=Object.prototype.toString,A=Object.prototype.hasOwnProperty,B=Array.prototype.push,C=Array.prototype.slice,D=String.prototype.trim,E=Array.prototype.indexOf,F={};d.fn=d.prototype={constructor:d,init:function(a,e,f){var g,i,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!e&&c.body){this.context=c,this[0]=c.body,this.selector="body",this.length=1;return this}if(typeof a==="string"){g=h.exec(a);if(!g||!g[1]&&e)return!e||e.jquery?(e||f).find(a):this.constructor(e).find(a);if(g[1]){e=e instanceof d?e[0]:e,k=e?e.ownerDocument||e:c,j=m.exec(a),j?d.isPlainObject(e)?(a=[c.createElement(j[1])],d.fn.attr.call(a,e,!0)):a=[k.createElement(j[1])]:(j=d.buildFragment([g[1]],[k]),a=(j.cacheable?d.clone(j.fragment):j.fragment).childNodes);return d.merge(this,a)}i=c.getElementById(g[2]);if(i&&i.parentNode){if(i.id!==g[2])return f.find(a);this.length=1,this[0]=i}this.context=c,this.selector=a;return this}if(d.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return d.makeArray(a,this)},selector:"",jquery:"1.5.2",length:0,size:function(){return this.length},toArray:function(){return C.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var e=this.constructor();d.isArray(a)?B.apply(e,a):d.merge(e,a),e.prevObject=this,e.context=this.context,b==="find"?e.selector=this.selector+(this.selector?" ":"")+c:b&&(e.selector=this.selector+"."+b+"("+c+")");return e},each:function(a,b){return d.each(this,a,b)},ready:function(a){d.bindReady(),x.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(C.apply(this,arguments),"slice",C.call(arguments).join(","))},map:function(a){return this.pushStack(d.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:B,sort:[].sort,splice:[].splice},d.fn.init.prototype=d.fn,d.extend=d.fn.extend=function(){var a,c,e,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i==="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!=="object"&&!d.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){e=i[c],f=a[c];if(i===f)continue;l&&f&&(d.isPlainObject(f)||(g=d.isArray(f)))?(g?(g=!1,h=e&&d.isArray(e)?e:[]):h=e&&d.isPlainObject(e)?e:{},i[c]=d.extend(l,h,f)):f!==b&&(i[c]=f)}return i},d.extend({noConflict:function(b){a.$=f,b&&(a.jQuery=e);return d},isReady:!1,readyWait:1,ready:function(a){a===!0&&d.readyWait--;if(!d.readyWait||a!==!0&&!d.isReady){if(!c.body)return setTimeout(d.ready,1);d.isReady=!0;if(a!==!0&&--d.readyWait>0)return;x.resolveWith(c,[d]),d.fn.trigger&&d(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!x){x=d._Deferred();if(c.readyState==="complete")return setTimeout(d.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",y,!1),a.addEventListener("load",d.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",y),a.attachEvent("onload",d.ready);var b=!1;try{b=a.frameElement==null}catch(e){}c.documentElement.doScroll&&b&&G()}}},isFunction:function(a){return d.type(a)==="function"},isArray:Array.isArray||function(a){return d.type(a)==="array"},isWindow:function(a){return a&&typeof a==="object"&&"setInterval"in a},isNaN:function(a){return a==null||!l.test(a)||isNaN(a)},type:function(a){return a==null?String(a):F[z.call(a)]||"object"},isPlainObject:function(a){if(!a||d.type(a)!=="object"||a.nodeType||d.isWindow(a))return!1;if(a.constructor&&!A.call(a,"constructor")&&!A.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a){}return c===b||A.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!=="string"||!b)return null;b=d.trim(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return a.JSON&&a.JSON.parse?a.JSON.parse(b):(new Function("return "+b))();d.error("Invalid JSON: "+b)},parseXML:function(b,c,e){a.DOMParser?(e=new DOMParser,c=e.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),e=c.documentElement,(!e||!e.nodeName||e.nodeName==="parsererror")&&d.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(a){if(a&&i.test(a)){var b=c.head||c.getElementsByTagName("head")[0]||c.documentElement,e=c.createElement("script");d.support.scriptEval()?e.appendChild(c.createTextNode(a)):e.text=a,b.insertBefore(e,b.firstChild),b.removeChild(e)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,e){var f,g=0,h=a.length,i=h===b||d.isFunction(a);if(e){if(i){for(f in a)if(c.apply(a[f],e)===!1)break}else for(;g<h;)if(c.apply(a[g++],e)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(var j=a[0];g<h&&c.call(j,g,j)!==!1;j=a[++g]){}return a},trim:D?function(a){return a==null?"":D.call(a)}:function(a){return a==null?"":(a+"").replace(j,"").replace(k,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var e=d.type(a);a.length==null||e==="string"||e==="function"||e==="regexp"||d.isWindow(a)?B.call(c,a):d.merge(c,a)}return c},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length==="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,b,c){var d=[],e;for(var f=0,g=a.length;f<g;f++)e=b(a[f],f,c),e!=null&&(d[d.length]=e);return d.concat.apply([],d)},guid:1,proxy:function(a,c,e){arguments.length===2&&(typeof c==="string"?(e=a,a=e[c],c=b):c&&!d.isFunction(c)&&(e=c,c=b)),!c&&a&&(c=function(){return a.apply(e||this,arguments)}),a&&(c.guid=a.guid=a.guid||c.guid||d.guid++);return c},access:function(a,c,e,f,g,h){var i=a.length;if(typeof c==="object"){for(var j in c)d.access(a,j,c[j],f,g,e);return a}if(e!==b){f=!h&&f&&d.isFunction(e);for(var k=0;k<i;k++)g(a[k],c,f?e.call(a[k],k,g(a[k],c)):e,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}d.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.subclass=this.subclass,a.fn.init=function b(b,c){c&&c instanceof d&&!(c instanceof a)&&(c=a(c));return d.fn.init.call(this,b,c,e)},a.fn.init.prototype=a.fn;var e=a(c);return a},browser:{}}),d.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){F["[object "+b+"]"]=b.toLowerCase()}),w=d.uaMatch(v),w.browser&&(d.browser[w.browser]=!0,d.browser.version=w.version),d.browser.webkit&&(d.browser.safari=!0),E&&(d.inArray=function(a,b){return E.call(b,a)}),i.test("Â ")&&(j=/^[\s\xA0]+/,k=/[\s\xA0]+$/),g=d(c),c.addEventListener?y=function(){c.removeEventListener("DOMContentLoaded",y,!1),d.ready()}:c.attachEvent&&(y=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",y),d.ready())});return d}(),e="then done fail isResolved isRejected promise".split(" "),f=[].slice;d.extend({_Deferred:function(){var a=[],b,c,e,f={done:function(){if(!e){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=d.type(i),j==="array"?f.done.apply(f,i):j==="function"&&a.push(i);k&&f.resolveWith(k[0],k[1])}return this},resolveWith:function(d,f){if(!e&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(d,f)}finally{b=[d,f],c=0}}return this},resolve:function(){f.resolveWith(this,arguments);return this},isResolved:function(){return c||b},cancel:function(){e=1,a=[];return this}};return f},Deferred:function(a){var b=d._Deferred(),c=d._Deferred(),f;d.extend(b,{then:function(a,c){b.done(a).fail(c);return this},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,promise:function(a){if(a==null){if(f)return f;f=a={}}var c=e.length;while(c--)a[e[c]]=b[e[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?f.call(arguments,0):c,--g||h.resolveWith(h,f.call(b,0))}}var b=arguments,c=0,e=b.length,g=e,h=e<=1&&a&&d.isFunction(a.promise)?a:d.Deferred();if(e>1){for(;c<e;c++)b[c]&&d.isFunction(b[c].promise)?b[c].promise().then(i(c),h.reject):--g;g||h.resolveWith(h,b)}else h!==a&&h.resolveWith(h,e?[a]:[]);return h.promise()}}),function(){d.support={};var b=c.createElement("div");b.style.display="none",b.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var e=b.getElementsByTagName("*"),f=b.getElementsByTagName("a")[0],g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=b.getElementsByTagName("input")[0];if(e&&e.length&&f){d.support={leadingWhitespace:b.firstChild.nodeType===3,tbody:!b.getElementsByTagName("tbody").length,htmlSerialize:!!b.getElementsByTagName("link").length,style:/red/.test(f.getAttribute("style")),hrefNormalized:f.getAttribute("href")==="/a",opacity:/^0.55$/.test(f.style.opacity),cssFloat:!!f.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,deleteExpando:!0,optDisabled:!1,checkClone:!1,noCloneEvent:!0,noCloneChecked:!0,boxModel:null,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableHiddenOffsets:!0,reliableMarginRight:!0},i.checked=!0,d.support.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,d.support.optDisabled=!h.disabled;var j=null;d.support.scriptEval=function(){if(j===null){var b=c.documentElement,e=c.createElement("script"),f="script"+d.now();try{e.appendChild(c.createTextNode("window."+f+"=1;"))}catch(g){}b.insertBefore(e,b.firstChild),a[f]?(j=!0,delete a[f]):j=!1,b.removeChild(e)}return j};try{delete b.test}catch(k){d.support.deleteExpando=!1}!b.addEventListener&&b.attachEvent&&b.fireEvent&&(b.attachEvent("onclick",function l(){d.support.noCloneEvent=!1,b.detachEvent("onclick",l)}),b.cloneNode(!0).fireEvent("onclick")),b=c.createElement("div"),b.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";var m=c.createDocumentFragment();m.appendChild(b.firstChild),d.support.checkClone=m.cloneNode(!0).cloneNode(!0).lastChild.checked,d(function(){var a=c.createElement("div"),b=c.getElementsByTagName("body")[0];if(b){a.style.width=a.style.paddingLeft="1px",b.appendChild(a),d.boxModel=d.support.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,d.support.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",d.support.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";var e=a.getElementsByTagName("td");d.support.reliableHiddenOffsets=e[0].offsetHeight===0,e[0].style.display="",e[1].style.display="none",d.support.reliableHiddenOffsets=d.support.reliableHiddenOffsets&&e[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(a.style.width="1px",a.style.marginRight="0",d.support.reliableMarginRight=(parseInt(c.defaultView.getComputedStyle(a,null).marginRight,10)||0)===0),b.removeChild(a).style.display="none",a=e=null}});var n=function(a){var b=c.createElement("div");a="on"+a;if(!b.attachEvent)return!0;var d=a in b;d||(b.setAttribute(a,"return;"),d=typeof b[a]==="function");return d};d.support.submitBubbles=n("submit"),d.support.changeBubbles=n("change"),b=e=f=null}}();var g=/^(?:\{.*\}|\[.*\])$/;d.extend({cache:{},uuid:0,expando:"jQuery"+(d.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?d.cache[a[d.expando]]:a[d.expando];return!!a&&!i(a)},data:function(a,c,e,f){if(d.acceptData(a)){var g=d.expando,h=typeof c==="string",i,j=a.nodeType,k=j?d.cache:a,l=j?a[d.expando]:a[d.expando]&&d.expando;if((!l||f&&l&&!k[l][g])&&h&&e===b)return;l||(j?a[d.expando]=l=++d.uuid:l=d.expando),k[l]||(k[l]={},j||(k[l].toJSON=d.noop));if(typeof c==="object"||typeof c==="function")f?k[l][g]=d.extend(k[l][g],c):k[l]=d.extend(k[l],c);i=k[l],f&&(i[g]||(i[g]={}),i=i[g]),e!==b&&(i[c]=e);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[c]:i}},removeData:function(b,c,e){if(d.acceptData(b)){var f=d.expando,g=b.nodeType,h=g?d.cache:b,j=g?b[d.expando]:d.expando;if(!h[j])return;if(c){var k=e?h[j][f]:h[j];if(k){delete k[c];if(!i(k))return}}if(e){delete h[j][f];if(!i(h[j]))return}var l=h[j][f];d.support.deleteExpando||h!=a?delete h[j]:h[j]=null,l?(h[j]={},g||(h[j].toJSON=d.noop),h[j][f]=l):g&&(d.support.deleteExpando?delete b[d.expando]:b.removeAttribute?b.removeAttribute(d.expando):b[d.expando]=null)}},_data:function(a,b,c){return d.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=d.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),d.fn.extend({data:function(a,c){var e=null;if(typeof a==="undefined"){if(this.length){e=d.data(this[0]);if(this[0].nodeType===1){var f=this[0].attributes,g;for(var i=0,j=f.length;i<j;i++)g=f[i].name,g.indexOf("data-")===0&&(g=g.substr(5),h(this[0],g,e[g]))}}return e}if(typeof a==="object")return this.each(function(){d.data(this,a)});var k=a.split(".");k[1]=k[1]?"."+k[1]:"";if(c===b){e=this.triggerHandler("getData"+k[1]+"!",[k[0]]),e===b&&this.length&&(e=d.data(this[0],a),e=h(this[0],a,e));return e===b&&k[1]?this.data(k[0]):e}return this.each(function(){var b=d(this),e=[k[0],c];b.triggerHandler("setData"+k[1]+"!",e),d.data(this,a,c),b.triggerHandler("changeData"+k[1]+"!",e)})},removeData:function(a){return this.each(function(){d.removeData(this,a)})}}),d.extend({queue:function(a,b,c){if(a){b=(b||"fx")+"queue";var e=d._data(a,b);if(!c)return e||[];!e||d.isArray(c)?e=d._data(a,b,d.makeArray(c)):e.push(c);return e}},dequeue:function(a,b){b=b||"fx";var c=d.queue(a,b),e=c.shift();e==="inprogress"&&(e=c.shift()),e&&(b==="fx"&&c.unshift("inprogress"),e.call(a,function(){d.dequeue(a,b)})),c.length||d.removeData(a,b+"queue",!0)}}),d.fn.extend({queue:function(a,c){typeof a!=="string"&&(c=a,a="fx");if(c===b)return d.queue(this[0],a);return this.each(function(b){var e=d.queue(this,a,c);a==="fx"&&e[0]!=="inprogress"&&d.dequeue(this,a)})},dequeue:function(a){return this.each(function(){d.dequeue(this,a)})},delay:function(a,b){a=d.fx?d.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){d.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var j=/[\n\t\r]/g,k=/\s+/,l=/\r/g,m=/^(?:href|src|style)$/,n=/^(?:button|input)$/i,o=/^(?:button|input|object|select|textarea)$/i,p=/^a(?:rea)?$/i,q=/^(?:radio|checkbox)$/i;d.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"},d.fn.extend({attr:function(a,b){return d.access(this,a,b,!0,d.attr)},removeAttr:function(a,b){return this.each(function(){d.attr(this,a,""),this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.addClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"){var b=(a||"").split(k);for(var c=0,e=this.length;c<e;c++){var f=this[c];if(f.nodeType===1)if(f.className){var g=" "+f.className+" ",h=f.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);f.className=d.trim(h)}else f.className=a}}return this},removeClass:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a==="string"||a===b){var c=(a||"").split(k);for(var e=0,f=this.length;e<f;e++){var g=this[e];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(j," ");for(var i=0,l=c.length;i<l;i++)h=h.replace(" "+c[i]+" "," ");g.className=d.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,e=typeof b==="boolean";if(d.isFunction(a))return this.each(function(c){var e=d(this);e.toggleClass(a.call(this,c,e.attr("class"),b),b)});return this.each(function(){if(c==="string"){var f,g=0,h=d(this),i=b,j=a.split(k);while(f=j[g++])i=e?i:!h.hasClass(f),h[i?"addClass":"removeClass"](f)}else if(c==="undefined"||c==="boolean")this.className&&d._data(this,"__className__",this.className),this.className=this.className||a===!1?"":d._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(j," ").indexOf(b)>-1)return!0;return!1},val:function(a){if(!arguments.length){var c=this[0];if(c){if(d.nodeName(c,"option")){var e=c.attributes.value;return!e||e.specified?c.value:c.text}if(d.nodeName(c,"select")){var f=c.selectedIndex,g=[],h=c.options,i=c.type==="select-one";if(f<0)return null;for(var j=i?f:0,k=i?f+1:h.length;j<k;j++){var m=h[j];if(m.selected&&(d.support.optDisabled?!m.disabled:m.getAttribute("disabled")===null)&&(!m.parentNode.disabled||!d.nodeName(m.parentNode,"optgroup"))){a=d(m).val();if(i)return a;g.push(a)}}if(i&&!g.length&&h.length)return d(h[f]).val();return g}if(q.test(c.type)&&!d.support.checkOn)return c.getAttribute("value")===null?"on":c.value;return(c.value||"").replace(l,"")}return b}var n=d.isFunction(a);return this.each(function(b){var c=d(this),e=a;if(this.nodeType===1){n&&(e=a.call(this,b,c.val())),e==null?e="":typeof e==="number"?e+="":d.isArray(e)&&(e=d.map(e,function(a){return a==null?"":a+""}));if(d.isArray(e)&&q.test(this.type))this.checked=d.inArray(c.val(),e)>=0;else if(d.nodeName(this,"select")){var f=d.makeArray(e);d("option",this).each(function(){this.selected=d.inArray(d(this).val(),f)>=0}),f.length||(this.selectedIndex=-1)}else this.value=e}})}}),d.extend({attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,e,f){if(!a||a.nodeType===3||a.nodeType===8||a.nodeType===2)return b;if(f&&c in d.attrFn)return d(a)[c](e);var g=a.nodeType!==1||!d.isXMLDoc(a),h=e!==b;c=g&&d.props[c]||c;if(a.nodeType===1){var i=m.test(c);if(c==="selected"&&!d.support.optSelected){var j=a.parentNode;j&&(j.selectedIndex,j.parentNode&&j.parentNode.selectedIndex)}if((c in a||a[c]!==b)&&g&&!i){h&&(c==="type"&&n.test(a.nodeName)&&a.parentNode&&d.error("type property can't be changed"),e===null?a.nodeType===1&&a.removeAttribute(c):a[c]=e);if(d.nodeName(a,"form")&&a.getAttributeNode(c))return a.getAttributeNode(c).nodeValue;if(c==="tabIndex"){var k=a.getAttributeNode("tabIndex");return k&&k.specified?k.value:o.test(a.nodeName)||p.test(a.nodeName)&&a.href?0:b}return a[c]}if(!d.support.style&&g&&c==="style"){h&&(a.style.cssText=""+e);return a.style.cssText}h&&a.setAttribute(c,""+e);if(!a.attributes[c]&&(a.hasAttribute&&!a.hasAttribute(c)))return b;var l=!d.support.hrefNormalized&&g&&i?a.getAttribute(c,2):a.getAttribute(c);return l===null?b:l}h&&(a[c]=e);return a[c]}});var r=/\.(.*)$/,s=/^(?:textarea|input|select)$/i,t=/\./g,u=/ /g,v=/[^\w\s.|`]/g,w=function(a){return a.replace(v,"\\$&")};d.event={add:function(c,e,f,g){if(c.nodeType!==3&&c.nodeType!==8){try{d.isWindow(c)&&(c!==a&&!c.frameElement)&&(c=a)}catch(h){}if(f===!1)f=x;else if(!f)return;var i,j;f.handler&&(i=f,f=i.handler),f.guid||(f.guid=d.guid++);var k=d._data(c);if(!k)return;var l=k.events,m=k.handle;l||(k.events=l={}),m||(k.handle=m=function(a){return typeof d!=="undefined"&&d.event.triggered!==a.type?d.event.handle.apply(m.elem,arguments):b}),m.elem=c,e=e.split(" ");var n,o=0,p;while(n=e[o++]){j=i?d.extend({},i):{handler:f,data:g},n.indexOf(".")>-1?(p=n.split("."),n=p.shift(),j.namespace=p.slice(0).sort().join(".")):(p=[],j.namespace=""),j.type=n,j.guid||(j.guid=f.guid);var q=l[n],r=d.event.special[n]||{};if(!q){q=l[n]=[];if(!r.setup||r.setup.call(c,g,p,m)===!1)c.addEventListener?c.addEventListener(n,m,!1):c.attachEvent&&c.attachEvent("on"+n,m)}r.add&&(r.add.call(c,j),j.handler.guid||(j.handler.guid=f.guid)),q.push(j),d.event.global[n]=!0}c=null}},global:{},remove:function(a,c,e,f){if(a.nodeType!==3&&a.nodeType!==8){e===!1&&(e=x);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=d.hasData(a)&&d._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(e=c.handler,c=c.type);if(!c||typeof c==="string"&&c.charAt(0)==="."){c=c||"";for(h in t)d.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+d.map(m.slice(0).sort(),w).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!e){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))d.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=d.event.special[h]||{};for(j=f||0;j<p.length;j++){q=p[j];if(e.guid===q.guid){if(l||n.test(q.namespace))f==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(f!=null)break}}if(p.length===0||f!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&d.removeEvent(a,h,s.handle),g=null,delete t[h]}if(d.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,d.isEmptyObject(s)&&d.removeData(a,b,!0)}}},trigger:function(a,c,e){var f=a.type||a,g=arguments[3];if(!g){a=typeof a==="object"?a[d.expando]?a:d.extend(d.Event(f),a):d.Event(f),f.indexOf("!")>=0&&(a.type=f=f.slice(0,-1),a.exclusive=!0),e||(a.stopPropagation(),d.event.global[f]&&d.each(d.cache,function(){var b=d.expando,e=this[b];e&&e.events&&e.events[f]&&d.event.trigger(a,c,e.handle.elem)}));if(!e||e.nodeType===3||e.nodeType===8)return b;a.result=b,a.target=e,c=d.makeArray(c),c.unshift(a)}a.currentTarget=e;var h=d._data(e,"handle");h&&h.apply(e,c);var i=e.parentNode||e.ownerDocument;try{e&&e.nodeName&&d.noData[e.nodeName.toLowerCase()]||e["on"+f]&&e["on"+f].apply(e,c)===!1&&(a.result=!1,a.preventDefault())}catch(j){}if(!a.isPropagationStopped()&&i)d.event.trigger(a,c,i,!0);else if(!a.isDefaultPrevented()){var k,l=a.target,m=f.replace(r,""),n=d.nodeName(l,"a")&&m==="click",o=d.event.special[m]||{};if((!o._default||o._default.call(e,a)===!1)&&!n&&!(l&&l.nodeName&&d.noData[l.nodeName.toLowerCase()])){try{l[m]&&(k=l["on"+m],k&&(l["on"+m]=null),d.event.triggered=a.type,l[m]())}catch(p){}k&&(l["on"+m]=k),d.event.triggered=b}}},handle:function(c){var e,f,g,h,i,j=[],k=d.makeArray(arguments);c=k[0]=d.event.fix(c||a.event),c.currentTarget=this,e=c.type.indexOf(".")<0&&!c.exclusive,e||(g=c.type.split("."),c.type=g.shift(),j=g.slice(0).sort(),h=new RegExp("(^|\\.)"+j.join("\\.(?:.*\\.)?")+"(\\.|$)")),c.namespace=c.namespace||j.join("."),i=d._data(this,"events"),f=(i||{})[c.type];if(i&&f){f=f.slice(0);for(var l=0,m=f.length;l<m;l++){var n=f[l];if(e||h.test(n.namespace)){c.handler=n.handler,c.data=n.data,c.handleObj=n;var o=n.handler.apply(this,k);o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[d.expando])return a;var e=a;a=d.Event(e);for(var f=this.props.length,g;f;)g=this.props[--f],a[g]=e[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=c.documentElement,i=c.body;a.pageX=a.clientX+(h&&h.scrollLeft||i&&i.scrollLeft||0)-(h&&h.clientLeft||i&&i.clientLeft||0),a.pageY=a.clientY+(h&&h.scrollTop||i&&i.scrollTop||0)-(h&&h.clientTop||i&&i.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:d.proxy,special:{ready:{setup:d.bindReady,teardown:d.noop},live:{add:function(a){d.event.add(this,H(a.origType,a.selector),d.extend({},a,{handler:G,guid:a.handler.guid}))},remove:function(a){d.event.remove(this,H(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){d.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},d.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},d.Event=function(a){if(!this.preventDefault)return new d.Event(a);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?y:x):this.type=a,this.timeStamp=d.now(),this[d.expando]=!0},d.Event.prototype={preventDefault:function(){this.isDefaultPrevented=y;var a=this.originalEvent;a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=y;var a=this.originalEvent;a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=y,this.stopPropagation()},isDefaultPrevented:x,isPropagationStopped:x,isImmediatePropagationStopped:x};var z=function(a){var b=a.relatedTarget;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&(a.type=a.data,d.event.handle.apply(this,arguments))}catch(e){}},A=function(a){a.type=a.data,d.event.handle.apply(this,arguments)};d.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){d.event.special[a]={setup:function(c){d.event.add(this,b,c&&c.selector?A:z,a)},teardown:function(a){d.event.remove(this,b,a&&a.selector?A:z)}}}),d.support.submitBubbles||(d.event.special.submit={setup:function(a,b){if(this.nodeName&&this.nodeName.toLowerCase()!=="form")d.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&d(b).closest("form").length&&E("submit",this,arguments)}),d.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&d(b).closest("form").length&&a.keyCode===13&&E("submit",this,arguments)});else return!1},teardown:function(a){d.event.remove(this,".specialSubmit")}});if(!d.support.changeBubbles){var B,C=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?d.map(a.options,function(a){return a.selected}).join("-"):"":a.nodeName.toLowerCase()==="select"&&(c=a.selectedIndex);return c},D=function D(a){var c=a.target,e,f;if(s.test(c.nodeName)&&!c.readOnly){e=d._data(c,"_change_data"),f=C(c),(a.type!=="focusout"||c.type!=="radio")&&d._data(c,"_change_data",f);if(e===b||f===e)return;if(e!=null||f)a.type="change",a.liveFired=b,d.event.trigger(a,arguments[1],c)}};d.event.special.change={filters:{focusout:D,beforedeactivate:D,click:function(a){var b=a.target,c=b.type;(c==="radio"||c==="checkbox"||b.nodeName.toLowerCase()==="select")&&D.call(this,a)},keydown:function(a){var b=a.target,c=b.type;(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&D.call(this,a)},beforeactivate:function(a){var b=a.target;d._data(b,"_change_data",C(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in B)d.event.add(this,c+".specialChange",B[c]);return s.test(this.nodeName)},teardown:function(a){d.event.remove(this,".specialChange");return s.test(this.nodeName)}},B=d.event.special.change.filters,B.focus=B.beforeactivate}c.addEventListener&&d.each({focus:"focusin",blur:"focusout"},function(a,b){function f(a){var c=d.event.fix(a);c.type=b,c.originalEvent={},d.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var e=0;d.event.special[b]={setup:function(){e++===0&&c.addEventListener(a,f,!0)},teardown:function(){--e===0&&c.removeEventListener(a,f,!0)}}}),d.each(["bind","one"],function(a,c){d.fn[c]=function(a,e,f){if(typeof a==="object"){for(var g in a)this[c](g,e,a[g],f);return this}if(d.isFunction(e)||e===!1)f=e,e=b;var h=c==="one"?d.proxy(f,function(a){d(this).unbind(a,h);return f.apply(this,arguments)}):f;if(a==="unload"&&c!=="one")this.one(a,e,f);else for(var i=0,j=this.length;i<j;i++)d.event.add(this[i],a,h,e);return this}}),d.fn.extend({unbind:function(a,b){if(typeof a!=="object"||a.preventDefault)for(var e=0,f=this.length;e<f;e++)d.event.remove(this[e],a,b);else for(var c in a)this.unbind(c,a[c]);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){d.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){var c=d.Event(a);c.preventDefault(),c.stopPropagation(),d.event.trigger(c,b,this[0]);return c.result}},toggle:function(a){var b=arguments,c=1;while(c<b.length)d.proxy(a,b[c++]);return this.click(d.proxy(a,function(e){var f=(d._data(this,"lastToggle"+a.guid)||0)%c;d._data(this,"lastToggle"+a.guid,f+1),e.preventDefault();return b[f].apply(this,arguments)||!1}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var F={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};d.each(["live","die"],function(a,c){d.fn[c]=function(a,e,f,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:d(this.context);if(typeof a==="object"&&!a.preventDefault){for(var o in a)n[c](o,e,a[o],m);return this}d.isFunction(e)&&(f=e,e=b),a=(a||"").split(" ");while((h=a[i++])!=null){j=r.exec(h),k="",j&&(k=j[0],h=h.replace(r,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,h==="focus"||h==="blur"?(a.push(F[h]+k),h=h+k):h=(F[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)d.event.add(n[p],"live."+H(h,m),{data:e,selector:m,handler:f,origType:h,origHandler:f,preType:l});else n.unbind("live."+H(h,m),f)}return this}}),d.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){d.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},d.attrFn&&(d.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!=="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,e=0,f=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,e,g){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=="string")return e;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(f.call(n)==="[object Array]")if(u)if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&e.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&e.push(j[t]);else e.push.apply(e,n);else p(n,e);o&&(k(o,h,e,g),k.uniqueSort(e));return e};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!=="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(f){if(f===!0)continue}else g=o=!0}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b==="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1){}a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b==="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=u;typeof b==="string"&&!j.test(b)&&(b=b.toLowerCase(),d=b,g=t),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!=="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!=="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!=="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return"text"===c&&(b===c||b===null)},radio:function(a){return"radio"===a.type},checkbox:function(a){return"checkbox"===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===a.type},reset:function(a){return"reset"===a.type},button:function(a){return"button"===a.type||a.nodeName.toLowerCase()==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(f.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length==="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(a===b){g=!0;return 0}if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!=="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!=="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};d.find=k,d.expr=k.selectors,d.expr[":"]=d.expr.filters,d.unique=k.uniqueSort,d.text=k.getText,d.isXMLDoc=k.isXML,d.contains=k.contains}();var I=/Until$/,J=/^(?:parents|prevUntil|prevAll)/,K=/,/,L=/^.[^:#\[\.,]*$/,M=Array.prototype.slice,N=d.expr.match.POS,O={children:!0,contents:!0,next:!0,prev:!0};d.fn.extend({find:function(a){var b=this.pushStack("","find",a),c=0;for(var e=0,f=this.length;e<f;e++){c=b.length,d.find(a,this[e],b);if(e>0)for(var g=c;g<b.length;g++)for(var h=0;h<c;h++)if(b[h]===b[g]){b.splice(g--,1);break}}return b},has:function(a){var b=d(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(d.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(Q(this,a,!1),"not",a)},filter:function(a){return this.pushStack(Q(this,a,!0),"filter",a)},is:function(a){return!!a&&d.filter(a,this).length>0},closest:function(a,b){var c=[],e,f,g=this[0];if(d.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(e=0,f=a.length;e<f;e++)i=a[e],j[i]||(j[i]=d.expr.match.POS.test(i)?d(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:d(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=N.test(a)?d(a,b||this.context):null;for(e=0,f=this.length;e<f;e++){g=this[e];while(g){if(l?l.index(g)>-1:d.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b)break}}c=c.length>1?d.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a==="string")return d.inArray(this[0],a?d(a):this.parent().children());return d.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==="string"?d(a,b):d.makeArray(a),e=d.merge(this.get(),c);return this.pushStack(P(c[0])||P(e[0])?e:d.unique(e))},andSelf:function(){return this.add(this.prevObject)}}),d.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return d.dir(a,"parentNode")},parentsUntil:function(a,b,c){return d.dir(a,"parentNode",c)},next:function(a){return d.nth(a,2,"nextSibling")},prev:function(a){return d.nth(a,2,"previousSibling")},nextAll:function(a){return d.dir(a,"nextSibling")},prevAll:function(a){return d.dir(a,"previousSibling")},nextUntil:function(a,b,c){return d.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return d.dir(a,"previousSibling",c)},siblings:function(a){return d.sibling(a.parentNode.firstChild,a)},children:function(a){return d.sibling(a.firstChild)},contents:function(a){return d.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:d.makeArray(a.childNodes)}},function(a,b){d.fn[a]=function(c,e){var f=d.map(this,b,c),g=M.call(arguments);I.test(a)||(e=c),e&&typeof e==="string"&&(f=d.filter(e,f)),f=this.length>1&&!O[a]?d.unique(f):f,(this.length>1||K.test(e))&&J.test(a)&&(f=f.reverse());return this.pushStack(f,a,g.join(","))}}),d.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?d.find.matchesSelector(b[0],a)?[b[0]]:[]:d.find.matches(a,b)},dir:function(a,c,e){var f=[],g=a[c];while(g&&g.nodeType!==9&&(e===b||g.nodeType!==1||!d(g).is(e)))g.nodeType===1&&f.push(g),g=g[c];return f},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var R=/ jQuery\d+="(?:\d+|null)"/g,S=/^\s+/,T=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,U=/<([\w:]+)/,V=/<tbody/i,W=/<|&#?\w+;/,X=/<(?:script|object|embed|option|style)/i,Y=/checked\s*(?:[^=]|=\s*.checked.)/i,Z={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};Z.optgroup=Z.option,Z.tbody=Z.tfoot=Z.colgroup=Z.caption=Z.thead,Z.th=Z.td,d.support.htmlSerialize||(Z._default=[1,"div<div>","</div>"]),d.fn.extend({text:function(a){if(d.isFunction(a))return this.each(function(b){var c=d(this);c.text(a.call(this,b,c.text()))});if(typeof a!=="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return d.text(this)},wrapAll:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapAll(a.call(this,b))});if(this[0]){var b=d(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(d.isFunction(a))return this.each(function(b){d(this).wrapInner(a.call(this,b))});return this.each(function(){var b=d(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){d(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){d.nodeName(this,"body")||d(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=d(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,d(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,e;(e=this[c])!=null;c++)if(!a||d.filter(a,[e]).length)!b&&e.nodeType===1&&(d.cleanData(e.getElementsByTagName("*")),d.cleanData([e])),e.parentNode&&e.parentNode.removeChild(e);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&d.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return d.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(R,""):null;if(typeof a!=="string"||X.test(a)||!d.support.leadingWhitespace&&S.test(a)||Z[(U.exec(a)||["",""])[1].toLowerCase()])d.isFunction(a)?this.each(function(b){var c=d(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);else{a=a.replace(T,"<$1></$2>");try{for(var c=0,e=this.length;c<e;c++)this[c].nodeType===1&&(d.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(f){this.empty().append(a)}}return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(d.isFunction(a))return this.each(function(b){var c=d(this),e=c.html();c.replaceWith(a.call(this,b,e))});typeof a!=="string"&&(a=d(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;d(this).remove(),b?d(b).before(a):d(c).append(a)})}return this.length?this.pushStack(d(d.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,e){var f,g,h,i,j=a[0],k=[];if(!d.support.checkClone&&arguments.length===3&&typeof j==="string"&&Y.test(j))return this.each(function(){d(this).domManip(a,c,e,!0)});if(d.isFunction(j))return this.each(function(f){var g=d(this);a[0]=j.call(this,f,c?g.html():b),g.domManip(a,c,e)});if(this[0]){i=j&&j.parentNode,d.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?f={fragment:i}:f=d.buildFragment(a,this,k),h=f.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&d.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)e.call(c?$(this[l],g):this[l],f.cacheable||m>1&&l<n?d.clone(h,!0,!0):h)}k.length&&d.each(k,bc)}return this}}),d.buildFragment=function(a,b,e){var f,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]==="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!X.test(a[0])&&(d.support.checkClone||!Y.test(a[0]))&&(g=!0,h=d.fragments[a[0]],h&&(h!==1&&(f=h))),f||(f=i.createDocumentFragment(),d.clean(a,i,f,e)),g&&(d.fragments[a[0]]=h?f:1);return{fragment:f,cacheable:g}},d.fragments={},d.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){d.fn[a]=function(c){var e=[],f=d(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&f.length===1){f[b](this[0]);return this}for(var h=0,i=f.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();d(f[h])[b](j),e=e.concat(j)}return this.pushStack(e,a,f.selector)}}),d.extend({clone:function(a,b,c){var e=a.cloneNode(!0),f,g,h;if((!d.support.noCloneEvent||!d.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!d.isXMLDoc(a)){ba(a,e),f=bb(a),g=bb(e);for(h=0;f[h];++h)ba(f[h],g[h])}if(b){_(a,e);if(c){f=bb(a),g=bb(e);for(h=0;f[h];++h)_(f[h],g[h])}}return e},clean:function(a,b,e,f){b=b||c,typeof b.createElement==="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var g=[];for(var h=0,i;(i=a[h])!=null;h++){typeof i==="number"&&(i+="");if(!i)continue;if(typeof i!=="string"||W.test(i)){if(typeof i==="string"){i=i.replace(T,"<$1></$2>");var j=(U.exec(i)||["",""])[1].toLowerCase(),k=Z[j]||Z._default,l=k[0],m=b.createElement("div");m.innerHTML=k[1]+i+k[2];while(l--)m=m.lastChild;if(!d.support.tbody){var n=V.test(i),o=j==="table"&&!n?m.firstChild&&m.firstChild.childNodes:k[1]==="<table>"&&!n?m.childNodes:[];for(var p=o.length-1;p>=0;--p)d.nodeName(o[p],"tbody")&&!o[p].childNodes.length&&o[p].parentNode.removeChild(o[p])}!d.support.leadingWhitespace&&S.test(i)&&m.insertBefore(b.createTextNode(S.exec(i)[0]),m.firstChild),i=m.childNodes}}else i=b.createTextNode(i);i.nodeType?g.push(i):g=d.merge(g,i)}if(e)for(h=0;g[h];h++)!f||!d.nodeName(g[h],"script")||g[h].type&&g[h].type.toLowerCase()!=="text/javascript"?(g[h].nodeType===1&&g.splice.apply(g,[h+1,0].concat(d.makeArray(g[h].getElementsByTagName("script")))),e.appendChild(g[h])):f.push(g[h].parentNode?g[h].parentNode.removeChild(g[h]):g[h]);return g},cleanData:function(a){var b,c,e=d.cache,f=d.expando,g=d.event.special,h=d.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&d.noData[j.nodeName.toLowerCase()])continue;c=j[d.expando];if(c){b=e[c]&&e[c][f];if(b&&b.events){for(var k in b.events)g[k]?d.event.remove(j,k):d.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[d.expando]:j.removeAttribute&&j.removeAttribute(d.expando),delete e[c]}}}});var bd=/alpha\([^)]*\)/i,be=/opacity=([^)]*)/,bf=/-([a-z])/ig,bg=/([A-Z]|^ms)/g,bh=/^-?\d+(?:px)?$/i,bi=/^-?\d/,bj={position:"absolute",visibility:"hidden",display:"block"},bk=["Left","Right"],bl=["Top","Bottom"],bm,bn,bo,bp=function(a,b){return b.toUpperCase()};d.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return d.access(this,a,c,!0,function(a,c,e){return e!==b?d.style(a,c,e):d.css(a,c)})},d.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bm(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0},cssProps:{"float":d.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,e,f){if(a&&a.nodeType!==3&&a.nodeType!==8&&a.style){var g,h=d.camelCase(c),i=a.style,j=d.cssHooks[h];c=d.cssProps[h]||h;if(e===b){if(j&&"get"in j&&(g=j.get(a,!1,f))!==b)return g;return i[c]}if(typeof e==="number"&&isNaN(e)||e==null)return;typeof e==="number"&&!d.cssNumber[h]&&(e+="px");if(!j||!("set"in j)||(e=j.set(a,e))!==b)try{i[c]=e}catch(k){}}},css:function(a,c,e){var f,g=d.camelCase(c),h=d.cssHooks[g];c=d.cssProps[g]||g;if(h&&"get"in h&&(f=h.get(a,!0,e))!==b)return f;if(bm)return bm(a,c,g)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bf,bp)}}),d.curCSS=d.css,d.each(["height","width"],function(a,b){d.cssHooks[b]={get:function(a,c,e){var f;if(c){a.offsetWidth!==0?f=bq(a,b,e):d.swap(a,bj,function(){f=bq(a,b,e)});if(f<=0){f=bm(a,b,b),f==="0px"&&bo&&(f=bo(a,b,b));if(f!=null)return f===""||f==="auto"?"0px":f}if(f<0||f==null){f=a.style[b];return f===""||f==="auto"?"0px":f}return typeof f==="string"?f:f+"px"}},set:function(a,b){if(!bh.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),d.support.opacity||(d.cssHooks.opacity={get:function(a,b){return be.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style;c.zoom=1;var e=d.isNaN(b)?"":"alpha(opacity="+b*100+")",f=c.filter||"";c.filter=bd.test(f)?f.replace(bd,e):c.filter+" "+e}}),d(function(){d.support.reliableMarginRight||(d.cssHooks.marginRight={get:function(a,b){var c;d.swap(a,{display:"inline-block"},function(){b?c=bm(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bn=function(a,c,e){var f,g,h;e=e.replace(bg,"-$1").toLowerCase();if(!(g=a.ownerDocument.defaultView))return b;if(h=g.getComputedStyle(a,null))f=h.getPropertyValue(e),f===""&&!d.contains(a.ownerDocument.documentElement,a)&&(f=d.style(a,e));return f}),c.documentElement.currentStyle&&(bo=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bh.test(d)&&bi.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bm=bn||bo,d.expr&&d.expr.filters&&(d.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!d.support.reliableHiddenOffsets&&(a.style.display||d.css(a,"display"))==="none"},d.expr.filters.visible=function(a){return!d.expr.filters.hidden(a)});var br=/%20/g,bs=/\[\]$/,bt=/\r?\n/g,bu=/#.*$/,bv=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bw=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bx=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,by=/^(?:GET|HEAD)$/,bz=/^\/\//,bA=/\?/,bB=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bC=/^(?:select|textarea)/i,bD=/\s+/,bE=/([?&])_=[^&]*/,bF=/(^|\-)([a-z])/g,bG=function(a,b,c){return b+c.toUpperCase()},bH=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bI=d.fn.load,bJ={},bK={},bL,bM;try{bL=c.location.href}catch(bN){bL=c.createElement("a"),bL.href="",bL=bL.href}bM=bH.exec(bL.toLowerCase())||[],d.fn.extend({load:function(a,c,e){if(typeof a!=="string"&&bI)return bI.apply(this,arguments);if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var g=a.slice(f,a.length);a=a.slice(0,f)}var h="GET";c&&(d.isFunction(c)?(e=c,c=b):typeof c==="object"&&(c=d.param(c,d.ajaxSettings.traditional),h="POST"));var i=this;d.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?d("<div>").append(c.replace(bB,"")).find(g):c)),e&&i.each(e,[c,b,a])}});return this},serialize:function(){return d.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?d.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bC.test(this.nodeName)||bw.test(this.type))}).map(function(a,b){var c=d(this).val();return c==null?null:d.isArray(c)?d.map(c,function(a,c){return{name:b.name,value:a.replace(bt,"\r\n")}}):{name:b.name,value:c.replace(bt,"\r\n")}}).get()}}),d.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){d.fn[b]=function(a){return this.bind(b,a)}}),d.each(["get","post"],function(a,c){d[c]=function(a,e,f,g){d.isFunction(e)&&(g=g||f,f=e,e=b);return d.ajax({type:c,url:a,data:e,success:f,dataType:g})}}),d.extend({getScript:function(a,c){return d.get(a,b,c,"script")},getJSON:function(a,b,c){return d.get(a,b,c,"json")},ajaxSetup:function(a,b){b?d.extend(!0,a,d.ajaxSettings,b):(b=a,a=d.extend(!0,d.ajaxSettings,b));for(var c in {context:1,url:1})c in b?a[c]=b[c]:c in d.ajaxSettings&&(a[c]=d.ajaxSettings[c]);return a},ajaxSettings:{url:bL,isLocal:bx.test(bM[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":d.parseJSON,"text xml":d.parseXML}},ajaxPrefilter:bO(bJ),ajaxTransport:bO(bK),ajax:function(a,c){function v(a,c,l,n){if(r!==2){r=2,p&&clearTimeout(p),o=b,m=n||"",u.readyState=a?4:0;var q,t,v,w=l?bR(e,u,l):b,x,y;if(a>=200&&a<300||a===304){if(e.ifModified){if(x=u.getResponseHeader("Last-Modified"))d.lastModified[k]=x;if(y=u.getResponseHeader("Etag"))d.etag[k]=y}if(a===304)c="notmodified",q=!0;else try{t=bS(e,w),c="success",q=!0}catch(z){c="parsererror",v=z}}else{v=c;if(!c||a)c="error",a<0&&(a=0)}u.status=a,u.statusText=c,q?h.resolveWith(f,[t,c,u]):h.rejectWith(f,[u,c,v]),u.statusCode(j),j=b,s&&g.trigger("ajax"+(q?"Success":"Error"),[u,e,q?t:v]),i.resolveWith(f,[u,c]),s&&(g.trigger("ajaxComplete",[u,e]),--d.active||d.event.trigger("ajaxStop"))}}typeof a==="object"&&(c=a,a=b),c=c||{};var e=d.ajaxSetup({},c),f=e.context||e,g=f!==e&&(f.nodeType||f instanceof d)?d(f):d.event,h=d.Deferred(),i=d._Deferred(),j=e.statusCode||{},k,l={},m,n,o,p,q,r=0,s,t,u={readyState:0,setRequestHeader:function(a,b){r||(l[a.toLowerCase().replace(bF,bG)]=b);return this},getAllResponseHeaders:function(){return r===2?m:null},getResponseHeader:function(a){var c;if(r===2){if(!n){n={};while(c=bv.exec(m))n[c[1].toLowerCase()]=c[2]}c=n[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){r||(e.mimeType=a);return this},abort:function(a){a=a||"abort",o&&o.abort(a),v(0,a);return this}};h.promise(u),u.success=u.done,u.error=u.fail,u.complete=i.done,u.statusCode=function(a){if(a){var b;if(r<2)for(b in a)j[b]=[j[b],a[b]];else b=a[u.status],u.then(b,b)}return this},e.url=((a||e.url)+"").replace(bu,"").replace(bz,bM[1]+"//"),e.dataTypes=d.trim(e.dataType||"*").toLowerCase().split(bD),e.crossDomain==null&&(q=bH.exec(e.url.toLowerCase()),e.crossDomain=q&&(q[1]!=bM[1]||q[2]!=bM[2]||(q[3]||(q[1]==="http:"?80:443))!=(bM[3]||(bM[1]==="http:"?80:443)))),e.data&&e.processData&&typeof e.data!=="string"&&(e.data=d.param(e.data,e.traditional)),bP(bJ,e,c,u);if(r===2)return!1;s=e.global,e.type=e.type.toUpperCase(),e.hasContent=!by.test(e.type),s&&d.active++===0&&d.event.trigger("ajaxStart");if(!e.hasContent){e.data&&(e.url+=(bA.test(e.url)?"&":"?")+e.data),k=e.url;if(e.cache===!1){var w=d.now(),x=e.url.replace(bE,"$1_="+w);e.url=x+(x===e.url?(bA.test(e.url)?"&":"?")+"_="+w:"")}}if(e.data&&e.hasContent&&e.contentType!==!1||c.contentType)l["Content-Type"]=e.contentType;e.ifModified&&(k=k||e.url,d.lastModified[k]&&(l["If-Modified-Since"]=d.lastModified[k]),d.etag[k]&&(l["If-None-Match"]=d.etag[k])),l.Accept=e.dataTypes[0]&&e.accepts[e.dataTypes[0]]?e.accepts[e.dataTypes[0]]+(e.dataTypes[0]!=="*"?", */*; q=0.01":""):e.accepts["*"];for(t in e.headers)u.setRequestHeader(t,e.headers[t]);if(e.beforeSend&&(e.beforeSend.call(f,u,e)===!1||r===2)){u.abort();return!1}for(t in {success:1,error:1,complete:1})u[t](e[t]);o=bP(bK,e,c,u);if(o){u.readyState=1,s&&g.trigger("ajaxSend",[u,e]),e.async&&e.timeout>0&&(p=setTimeout(function(){u.abort("timeout")},e.timeout));try{r=1,o.send(l,v)}catch(y){status<2?v(-1,y):d.error(y)}}else v(-1,"No Transport");return u},param:function(a,c){var e=[],f=function(a,b){b=d.isFunction(b)?b():b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=d.ajaxSettings.traditional);if(d.isArray(a)||a.jquery&&!d.isPlainObject(a))d.each(a,function(){f(this.name,this.value)});else for(var g in a)bQ(g,a[g],c,f);return e.join("&").replace(br,"+")}}),d.extend({active:0,lastModified:{},etag:{}});var bT=d.now(),bU=/(\=)\?(&|$)|\?\?/i;d.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return d.expando+"_"+bT++}}),d.ajaxPrefilter("json jsonp",function(b,c,e){var f=typeof b.data==="string";if(b.dataTypes[0]==="jsonp"||c.jsonpCallback||c.jsonp!=null||b.jsonp!==!1&&(bU.test(b.url)||f&&bU.test(b.data))){var g,h=b.jsonpCallback=d.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2",m=function(){a[h]=i,g&&d.isFunction(i)&&a[h](g[0])};b.jsonp!==!1&&(j=j.replace(bU,l),b.url===j&&(f&&(k=k.replace(bU,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},e.then(m,m),b.converters["script json"]=function(){g||d.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),d.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){d.globalEval(a);return a}}}),d.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),d.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var bV=d.now(),bW,bX;d.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&bZ()||b$()}:bZ,bX=d.ajaxSettings.xhr(),d.support.ajax=!!bX,d.support.cors=bX&&"withCredentials"in bX,bX=b,d.support.ajax&&d.ajaxTransport(function(a){if(!a.crossDomain||d.support.cors){var c;return{send:function(e,f){var g=a.xhr(),h,i;a.username?g.open(a.type,a.url,a.async,a.username,a.password):g.open(a.type,a.url,a.async);if(a.xhrFields)for(i in a.xhrFields)g[i]=a.xhrFields[i];a.mimeType&&g.overrideMimeType&&g.overrideMimeType(a.mimeType),!a.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(i in e)g.setRequestHeader(i,e[i])}catch(j){}g.send(a.hasContent&&a.data||null),c=function(e,i){var j,k,l,m,n;try{if(c&&(i||g.readyState===4)){c=b,h&&(g.onreadystatechange=d.noop,delete bW[h]);if(i)g.readyState!==4&&g.abort();else{j=g.status,l=g.getAllResponseHeaders(),m={},n=g.responseXML,n&&n.documentElement&&(m.xml=n),m.text=g.responseText;try{k=g.statusText}catch(o){k=""}j||!a.isLocal||a.crossDomain?j===1223&&(j=204):j=m.text?200:404}}}catch(p){i||f(-1,p)}m&&f(j,k,m,l)},a.async&&g.readyState!==4?(bW||(bW={},bY()),h=bV++,g.onreadystatechange=bW[h]=c):c()},abort:function(){c&&c(0,1)}}}});var b_={},ca=/^(?:toggle|show|hide)$/,cb=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cc,cd=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];d.fn.extend({show:function(a,b,c){var e,f;if(a||a===0)return this.animate(ce("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)e=this[g],f=e.style.display,!d._data(e,"olddisplay")&&f==="none"&&(f=e.style.display=""),f===""&&d.css(e,"display")==="none"&&d._data(e,"olddisplay",cf(e.nodeName));for(g=0;g<h;g++){e=this[g],f=e.style.display;if(f===""||f==="none")e.style.display=d._data(e,"olddisplay")||""}return this},hide:function(a,b,c){if(a||a===0)return this.animate(ce("hide",3),a,b,c);for(var e=0,f=this.length;e<f;e++){var g=d.css(this[e],"display");g!=="none"&&!d._data(this[e],"olddisplay")&&d._data(this[e],"olddisplay",g)}for(e=0;e<f;e++)this[e].style.display="none";return this},_toggle:d.fn.toggle,toggle:function(a,b,c){var e=typeof a==="boolean";d.isFunction(a)&&d.isFunction(b)?this._toggle.apply(this,arguments):a==null||e?this.each(function(){var b=e?a:d(this).is(":hidden");d(this)[b?"show":"hide"]()}):this.animate(ce("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,e){var f=d.speed(b,c,e);if(d.isEmptyObject(a))return this.each(f.complete);return this[f.queue===!1?"each":"queue"](function(){var b=d.extend({},f),c,e=this.nodeType===1,g=e&&d(this).is(":hidden"),h=this;for(c in a){var i=d.camelCase(c);c!==i&&(a[i]=a[c],delete a[c],c=i);if(a[c]==="hide"&&g||a[c]==="show"&&!g)return b.complete.call(this);if(e&&(c==="height"||c==="width")){b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(d.css(this,"display")==="inline"&&d.css(this,"float")==="none")if(d.support.inlineBlockNeedsLayout){var j=cf(this.nodeName);j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)}else this.style.display="inline-block"}d.isArray(a[c])&&((b.specialEasing=b.specialEasing||{})[c]=a[c][1],a[c]=a[c][0])}b.overflow!=null&&(this.style.overflow="hidden"),b.curAnim=d.extend({},a),d.each(a,function(c,e){var f=new d.fx(h,b,c);if(ca.test(e))f[e==="toggle"?g?"show":"hide":e](a);else{var i=cb.exec(e),j=f.cur();if(i){var k=parseFloat(i[2]),l=i[3]||(d.cssNumber[c]?"":"px");l!=="px"&&(d.style(h,c,(k||1)+l),j=(k||1)/f.cur()*j,d.style(h,c,j+l)),i[1]&&(k=(i[1]==="-="?-1:1)*k+j),f.custom(j,k,l)}else f.custom(j,e,"")}});return!0})},stop:function(a,b){var c=d.timers;a&&this.queue([]),this.each(function(){for(var a=c.length-1;a>=0;a--)c[a].elem===this&&(b&&c[a](!0),c.splice(a,1))}),b||this.dequeue();return this}}),d.each({slideDown:ce("show",1),slideUp:ce("hide",1),slideToggle:ce("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){d.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),d.extend({speed:function(a,b,c){var e=a&&typeof a==="object"?d.extend({},a):{complete:c||!c&&b||d.isFunction(a)&&a,duration:a,easing:c&&b||b&&!d.isFunction(b)&&b};e.duration=d.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in d.fx.speeds?d.fx.speeds[e.duration]:d.fx.speeds._default,e.old=e.complete,e.complete=function(){e.queue!==!1&&d(this).dequeue(),d.isFunction(e.old)&&e.old.call(this)};return e},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig||(b.orig={})}}),d.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(d.fx.step[this.prop]||d.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=d.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function g(a){return e.step(a)}var e=this,f=d.fx;this.startTime=d.now(),this.start=a,this.end=b,this.unit=c||this.unit||(d.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,g.elem=this.elem,g()&&d.timers.push(g)&&!cc&&(cc=setInterval(f.tick,f.interval))},show:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),d(this.elem).show()},hide:function(){this.options.orig[this.prop]=d.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=d.now(),c=!0;if(a||b>=this.options.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),this.options.curAnim[this.prop]=!0;for(var e in this.options.curAnim)this.options.curAnim[e]!==!0&&(c=!1);if(c){if(this.options.overflow!=null&&!d.support.shrinkWrapBlocks){var f=this.elem,g=this.options;d.each(["","X","Y"],function(a,b){f.style["overflow"+b]=g.overflow[a]})}this.options.hide&&d(this.elem).hide();if(this.options.hide||this.options.show)for(var h in this.options.curAnim)d.style(this.elem,h,this.options.orig[h]);this.options.complete.call(this.elem)}return!1}var i=b-this.startTime;this.state=i/this.options.duration;var j=this.options.specialEasing&&this.options.specialEasing[this.prop],k=this.options.easing||(d.easing.swing?"swing":"linear");this.pos=d.easing[j||k](this.state,i,0,1,this.options.duration),this.now=this.start+(this.end-this.start)*this.pos,this.update();return!0}},d.extend(d.fx,{tick:function(){var a=d.timers;for(var b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length||d.fx.stop()},interval:13,stop:function(){clearInterval(cc),cc=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){d.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),d.expr&&d.expr.filters&&(d.expr.filters.animated=function(a){return d.grep(d.timers,function(b){return a===b.elem}).length});var cg=/^t(?:able|d|h)$/i,ch=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?d.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(e){}var f=b.ownerDocument,g=f.documentElement;if(!c||!d.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=f.body,i=ci(f),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||d.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||d.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:d.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){d.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return d.offset.bodyOffset(b);d.offset.initialize();var c,e=b.offsetParent,f=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(d.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===e&&(l+=b.offsetTop,m+=b.offsetLeft,d.offset.doesNotAddBorder&&(!d.offset.doesAddBorderForTableAndCells||!cg.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),f=e,e=b.offsetParent),d.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;d.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},d.offset={initialize:function(){var a=c.body,b=c.createElement("div"),e,f,g,h,i=parseFloat(d.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";d.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),e=b.firstChild,f=e.firstChild,h=e.nextSibling.firstChild.firstChild,this.doesNotAddBorder=f.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,f.style.position="fixed",f.style.top="20px",this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15,f.style.position=f.style.top="",e.style.overflow="hidden",e.style.position="relative",this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),d.offset.initialize=d.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;d.offset.initialize(),d.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(d.css(a,"marginTop"))||0,c+=parseFloat(d.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var e=d.css(a,"position");e==="static"&&(a.style.position="relative");var f=d(a),g=f.offset(),h=d.css(a,"top"),i=d.css(a,"left"),j=(e==="absolute"||e==="fixed")&&d.inArray("auto",[h,i])>-1,k={},l={},m,n;j&&(l=f.position()),m=j?l.top:parseInt(h,10)||0,n=j?l.left:parseInt(i,10)||0,d.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):f.css(k)}},d.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),e=ch.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(d.css(a,"marginTop"))||0,c.left-=parseFloat(d.css(a,"marginLeft"))||0,e.top+=parseFloat(d.css(b[0],"borderTopWidth"))||0,e.left+=parseFloat(d.css(b[0],"borderLeftWidth"))||0;return{top:c.top-e.top,left:c.left-e.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&(!ch.test(a.nodeName)&&d.css(a,"position")==="static"))a=a.offsetParent;return a})}}),d.each(["Left","Top"],function(a,c){var e="scroll"+c;d.fn[e]=function(c){var f=this[0],g;if(!f)return null;if(c!==b)return this.each(function(){g=ci(this),g?g.scrollTo(a?d(g).scrollLeft():c,a?c:d(g).scrollTop()):this[e]=c});g=ci(f);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:d.support.boxModel&&g.document.documentElement[e]||g.document.body[e]:f[e]}}),d.each(["Height","Width"],function(a,c){var e=c.toLowerCase();d.fn["inner"+c]=function(){return this[0]?parseFloat(d.css(this[0],e,"padding")):null},d.fn["outer"+c]=function(a){return this[0]?parseFloat(d.css(this[0],e,a?"margin":"border")):null},d.fn[e]=function(a){var f=this[0];if(!f)return a==null?null:this;if(d.isFunction(a))return this.each(function(b){var c=d(this);c[e](a.call(this,b,c[e]()))});if(d.isWindow(f)){var g=f.document.documentElement["client"+c];return f.document.compatMode==="CSS1Compat"&&g||f.document.body["client"+c]||g}if(f.nodeType===9)return Math.max(f.documentElement["client"+c],f.body["scroll"+c],f.documentElement["scroll"+c],f.body["offset"+c],f.documentElement["offset"+c]);if(a===b){var h=d.css(f,e),i=parseFloat(h);return d.isNaN(i)?h:i}return this.css(e,typeof a==="string"?a:a+"px")}}),a.jQuery=a.$=d})(window);
\ No newline at end of file diff --git a/frontend/js/jquery-1.6.2.min.js b/frontend/js/jquery-1.6.2.min.js new file mode 100644 index 0000000..48590ec --- /dev/null +++ b/frontend/js/jquery-1.6.2.min.js @@ -0,0 +1,18 @@ +/*! + * jQuery JavaScript Library v1.6.2 + * http://jquery.com/ + * + * Copyright 2011, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2011, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Thu Jun 30 14:16:56 2011 -0400 + */ +(function(a,b){function cv(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cs(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cr(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cq(){cn=b}function cp(){setTimeout(cq,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function bZ(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bC.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bR,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bX(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bX(a,c,d,e,"*",g));return l}function bW(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bN),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bA(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bv:bw;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bx(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bm(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(be,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bl(a){f.nodeName(a,"input")?bk(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bk)}function bk(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bj(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bi(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bh(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bg(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function W(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(R.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(a,b){return(a&&a!=="*"?a+".":"")+b.replace(z,"`").replace(A,"&")}function M(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(x,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function K(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function E(){return!0}function D(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z])/ig,x=function(a,b){return b.toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!A){A=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||D.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(H)return H.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test("Â ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;a.setAttribute("className","t"),a.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0},m&&f.extend(p,{position:"absolute",left:-1e3,top:-1e3});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]||i[c]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:|^on/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=w:v&&c!=="className"&&(f.nodeName(a,"form")||u.test(c))&&(i=v)));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}},value:{get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);i&&(c=f.propFix[c]||c,h=f.propHooks[c]);return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return f.prop(a,c)?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.attrHooks.title=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=/\.(.*)$/,y=/^(?:textarea|input|select)$/i,z=/\./g,A=/ /g,B=/[^\w\s.|`]/g,C=function(a){return a.replace(B,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=D;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=D);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),C).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i. +shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d!=null?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,N(a.origType,a.selector),f.extend({},a,{handler:M,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,N(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?E:D):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=E;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=E;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=E,this.stopPropagation()},isDefaultPrevented:D,isPropagationStopped:D,isImmediatePropagationStopped:D};var F=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},G=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?G:F,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?G:F)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&K("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&K("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var H,I=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},J=function(c){var d=c.target,e,g;if(!!y.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=I(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:J,beforedeactivate:J,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&J.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&J.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",I(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in H)f.event.add(this,c+".specialChange",H[c]);return y.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return y.test(this.nodeName)}},H=f.event.special.change.filters,H.focus=H.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var L={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||D,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=x.exec(h),k="",j&&(k=j[0],h=h.replace(x,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,L[h]?(a.push(L[h]+k),h=h+k):h=(L[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+N(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+N(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var O=/Until$/,P=/^(?:parents|prevUntil|prevAll)/,Q=/,/,R=/^.[^:#\[\.,]*$/,S=Array.prototype.slice,T=f.expr.match.POS,U={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(W(this,a,!1),"not",a)},filter:function(a){return this.pushStack(W(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=T.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=T.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var X=/ jQuery\d+="(?:\d+|null)"/g,Y=/^\s+/,Z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,$=/<([\w:]+)/,_=/<tbody/i,ba=/<|&#?\w+;/,bb=/<(?:script|object|embed|option|style)/i,bc=/checked\s*(?:[^=]|=\s*.checked.)/i,bd=/\/(java|ecma)script/i,be=/^\s*<!(?:\[CDATA\[|\-\-)/,bf={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bf.optgroup=bf.option,bf.tbody=bf.tfoot=bf.colgroup=bf.caption=bf.thead,bf.th=bf.td,f.support.htmlSerialize||(bf._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(X,""):null;if(typeof a=="string"&&!bb.test(a)&&(f.support.leadingWhitespace||!Y.test(a))&&!bf[($.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Z,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bc.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bg(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bm)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bb.test(a[0])&&(f.support.checkClone||!bc.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j +)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bi(a,d),e=bj(a),g=bj(d);for(h=0;e[h];++h)bi(e[h],g[h])}if(b){bh(a,d);if(c){e=bj(a),g=bj(d);for(h=0;e[h];++h)bh(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!ba.test(k))k=b.createTextNode(k);else{k=k.replace(Z,"<$1></$2>");var l=($.exec(k)||["",""])[1].toLowerCase(),m=bf[l]||bf._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=_.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Y.test(k)&&o.insertBefore(b.createTextNode(Y.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bl(k[i]);else bl(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bd.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bn=/alpha\([^)]*\)/i,bo=/opacity=([^)]*)/,bp=/([A-Z]|^ms)/g,bq=/^-?\d+(?:px)?$/i,br=/^-?\d/,bs=/^[+\-]=/,bt=/[^+\-\.\de]+/g,bu={position:"absolute",visibility:"hidden",display:"block"},bv=["Left","Right"],bw=["Top","Bottom"],bx,by,bz;f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bx(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bs.test(d)&&(d=+d.replace(bt,"")+parseFloat(f.css(a,c)),h="number"),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bx)return bx(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return bA(a,b,d);f.swap(a,bu,function(){e=bA(a,b,d)});return e}},set:function(a,b){if(!bq.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bo.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bn.test(g)?g.replace(bn,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bx(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(by=function(a,c){var d,e,g;c=c.replace(bp,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bz=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bq.test(d)&&br.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bx=by||bz,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bB=/%20/g,bC=/\[\]$/,bD=/\r?\n/g,bE=/#.*$/,bF=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bG=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bH=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bI=/^(?:GET|HEAD)$/,bJ=/^\/\//,bK=/\?/,bL=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bM=/^(?:select|textarea)/i,bN=/\s+/,bO=/([?&])_=[^&]*/,bP=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bQ=f.fn.load,bR={},bS={},bT,bU;try{bT=e.href}catch(bV){bT=c.createElement("a"),bT.href="",bT=bT.href}bU=bP.exec(bT.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bQ)return bQ.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bL,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bM.test(this.nodeName)||bG.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bD,"\r\n")}}):{name:b.name,value:c.replace(bD,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bT,isLocal:bH.test(bU[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bW(bR),ajaxTransport:bW(bS),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?bZ(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=b$(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bF.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bE,"").replace(bJ,bU[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bN),d.crossDomain==null&&(r=bP.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bU[1]&&r[2]==bU[2]&&(r[3]||(r[1]==="http:"?80:443))==(bU[3]||(bU[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bX(bR,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bI.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bK.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bO,"$1_="+x);d.url=y+(y===d.url?(bK.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bX(bS,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)bY(g,a[g],c,e);return d.join("&").replace(bB,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(ca.test(b.url)||e&&ca.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(ca,l),b.url===j&&(e&&(k=k.replace(ca,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,cb&&delete cd[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn,co=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cr("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cs(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cr("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cr("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cs(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cr("show",1),slideUp:cr("hide",1),slideToggle:cr("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cn||cp(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!cl&&(co?(cl=!0,g=function(){cl&&(co(g),e.tick())},co(g)):cl=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cn||cp(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(cl),cl=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var ct=/^t(?:able|d|h)$/i,cu=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cv(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!ct.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cu.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cu.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cv(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cv(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
\ No newline at end of file diff --git a/frontend/js/jquery-1.6.4.min.js b/frontend/js/jquery-1.6.4.min.js new file mode 120000 index 0000000..168445e --- /dev/null +++ b/frontend/js/jquery-1.6.4.min.js @@ -0,0 +1 @@ +../imgrid/js/jquery-1.6.4.min.js
\ No newline at end of file diff --git a/frontend/js/jquery-1.7.2.min.js b/frontend/js/jquery-1.7.2.min.js new file mode 100644 index 0000000..16ad06c --- /dev/null +++ b/frontend/js/jquery-1.7.2.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.2 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"<!doctype html>":"")+"<html><body>"),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bD.test(a)?d(a,e):b_(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&f.type(b)==="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bZ(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bS,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bZ(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bZ(a,c,d,e,"*",g));return l}function bY(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bO),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bB(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?1:0,g=4;if(d>0){if(c!=="border")for(;e<g;e+=2)c||(d-=parseFloat(f.css(a,"padding"+bx[e]))||0),c==="margin"?d+=parseFloat(f.css(a,c+bx[e]))||0:d-=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0;return d+"px"}d=by(a,b);if(d<0||d==null)d=a.style[b];if(bt.test(d))return d;d=parseFloat(d)||0;if(c)for(;e<g;e+=2)d+=parseFloat(f.css(a,"padding"+bx[e]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+bx[e]))||0);return d+"px"}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;b.nodeType===1&&(b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?b.outerHTML=a.outerHTML:c!=="input"||a.type!=="checkbox"&&a.type!=="radio"?c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text):(a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)),b.removeAttribute(f.expando),b.removeAttribute("_submit_attached"),b.removeAttribute("_change_attached"))}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c,i[c][d])}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h,i){var j,k=d==null,l=0,m=a.length;if(d&&typeof d=="object"){for(l in d)e.access(a,c,l,d[l],1,h,f);g=1}else if(f!==b){j=i===b&&e.isFunction(f),k&&(j?(j=c,c=function(a,b,c){return j.call(e(a),c)}):(c.call(a,f),c=null));if(c)for(;l<m;l++)c(a[l],d,j?f.call(a[l],l,c(a[l],d)):f,i);g=1}return g?a:k?c.call(a):m?c(a[0],d):h},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test("Â ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m,n=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?n(g):h==="function"&&(!a.unique||!p.has(g))&&c.push(g)},o=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,j=!0,m=k||0,k=0,l=c.length;for(;c&&m<l;m++)if(c[m].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}j=!1,c&&(a.once?e===!0?p.disable():c=[]:d&&d.length&&(e=d.shift(),p.fireWith(e[0],e[1])))},p={add:function(){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){j&&f<=l&&(l--,f<=m&&m--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&p.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(j?a.once||d.push([b,c]):(!a.once||!e)&&o(b,c));return this},fire:function(){p.fireWith(this,arguments);return this},fired:function(){return!!i}};return p};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p=c.createElement("div"),q=c.documentElement;p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="<div "+n+"display:block;'><div style='"+t+"0;display:block;overflow:hidden;'></div></div>"+"<table "+n+"' cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="<table><tr><td style='"+t+"0;display:none'></td><td>t</td></tr></table>",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="<div style='width:5px;'></div>",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h,i,j=this[0],k=0,m=null;if(a===b){if(this.length){m=f.data(j);if(j.nodeType===1&&!f._data(j,"parsedAttrs")){g=j.attributes;for(i=g.length;k<i;k++)h=g[k].name,h.indexOf("data-")===0&&(h=f.camelCase(h.substring(5)),l(j,h,m[h]));f._data(j,"parsedAttrs",!0)}}return m}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!";return f.access(this,function(c){if(c===b){m=this.triggerHandler("getData"+e,[d[0]]),m===b&&j&&(m=f.data(j,a),m=l(j,a,m));return m===b&&d[1]?this.data(d[0]):m}d[1]=c,this.each(function(){var b=f(this);b.triggerHandler("setData"+e,d),f.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length<d)return f.queue(this[0],a);return c===b?this:this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise(c)}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,f.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i<g;i++)e=d[i],e&&(c=f.propFix[e]||e,h=u.test(e),h||f.attr(a,e,""),a.removeAttribute(v?e:c),h&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0,coords:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( +a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:g&&G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=f.event.special[c.type]||{},j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateTarget=this;if(!i.preDispatch||i.preDispatch.call(this,c)!==!1){if(e&&(!c.button||c.type!=="click")){n=f(this),n.context=this.ownerDocument||this;for(m=c.target;m!=this;m=m.parentNode||this)if(m.disabled!==!0){p={},r=[],n[0]=m;for(k=0;k<e;k++)s=d[k],t=s.selector,p[t]===b&&(p[t]=s.quick?H(m,s.quick):n.is(t)),p[t]&&r.push(s);r.length&&j.push({elem:m,matches:r})}}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){q=j[k],c.currentTarget=q.elem;for(l=0;l<q.matches.length&&!c.isImmediatePropagationStopped();l++){s=q.matches[l];if(h||!c.namespace&&!s.namespace||c.namespace_re&&c.namespace_re.test(s.namespace))c.data=s.data,c.handleObj=s,o=((f.event.special[s.origType]||{}).handle||s.handler).apply(q.elem,g),o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()))}}i.postDispatch&&i.postDispatch.call(this,c);return c.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),d._submit_attached=!0)})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9||d===11){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.globalPOS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")[\\s/>]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f +.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(f.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(g){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,function(a,b){b.src?f.ajax({type:"GET",global:!1,url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1></$2>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]==="<table>"&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i<u;i++)bn(l[i]);else bn(l);l.nodeType?j.push(l):j=f.merge(j,l)}if(d){g=function(a){return!a.type||be.test(a.type)};for(k=0;j[k];k++){h=j[k];if(e&&f.nodeName(h,"script")&&(!h.type||be.test(h.type)))e.push(h.parentNode?h.parentNode.removeChild(h):h);else{if(h.nodeType===1){var v=f.grep(h.getElementsByTagName("script"),g);j.splice.apply(j,[k+1,0].concat(v))}d.appendChild(h)}}}return j},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bp=/alpha\([^)]*\)/i,bq=/opacity=([^)]*)/,br=/([A-Z]|^ms)/g,bs=/^[\-+]?(?:\d*\.)?\d+$/i,bt=/^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,bu=/^([\-+])=([\-+.\de]+)/,bv=/^margin/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Top","Right","Bottom","Left"],by,bz,bA;f.fn.css=function(a,c){return f.access(this,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)},a,c,arguments.length>1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),(e===""&&f.css(d,"display")==="none"||!f.contains(d.ownerDocument.documentElement,d))&&f._data(d,"olddisplay",cu(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(ct("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(ct("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o,p,q;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]);if((k=f.cssHooks[g])&&"expand"in k){l=k.expand(a[g]),delete a[g];for(i in l)i in a||(a[i]=l[i])}}for(g in a){h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cu(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cm.test(h)?(q=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),q?(f._data(this,"toggle"+i,q==="show"?"hide":"show"),j[q]()):j[h]()):(m=cn.exec(h),n=j.cur(),m?(o=parseFloat(m[2]),p=m[3]||(f.cssNumber[i]?"":"px"),p!=="px"&&(f.style(this,i,(o||1)+p),n=(o||1)/j.cur()*n,f.style(this,i,n+p)),m[1]&&(o=(m[1]==="-="?-1:1)*o+n),j.custom(n,o,p)):j.custom(n,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:ct("show",1),slideUp:ct("hide",1),slideToggle:ct("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a){return a},swing:function(a){return-Math.cos(a*Math.PI)/2+.5}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cq||cr(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){f._data(e.elem,"fxshow"+e.prop)===b&&(e.options.hide?f._data(e.elem,"fxshow"+e.prop,e.start):e.options.show&&f._data(e.elem,"fxshow"+e.prop,e.end))},h()&&f.timers.push(h)&&!co&&(co=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cq||cr(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(cp.concat.apply([],cp),function(a,b){b.indexOf("margin")&&(f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)})}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cv,cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?cv=function(a,b,c,d){try{d=a.getBoundingClientRect()}catch(e){}if(!d||!f.contains(c,a))return d?{top:d.top,left:d.left}:{top:0,left:0};var g=b.body,h=cy(b),i=c.clientTop||g.clientTop||0,j=c.clientLeft||g.clientLeft||0,k=h.pageYOffset||f.support.boxModel&&c.scrollTop||g.scrollTop,l=h.pageXOffset||f.support.boxModel&&c.scrollLeft||g.scrollLeft,m=d.top+k-i,n=d.left+l-j;return{top:m,left:n}}:cv=function(a,b,c){var d,e=a.offsetParent,g=a,h=b.body,i=b.defaultView,j=i?i.getComputedStyle(a,null):a.currentStyle,k=a.offsetTop,l=a.offsetLeft;while((a=a.parentNode)&&a!==h&&a!==c){if(f.support.fixedPosition&&j.position==="fixed")break;d=i?i.getComputedStyle(a,null):a.currentStyle,k-=a.scrollTop,l-=a.scrollLeft,a===e&&(k+=a.offsetTop,l+=a.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(a.nodeName))&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),g=e,e=a.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),j=d}if(j.position==="relative"||j.position==="static")k+=h.offsetTop,l+=h.offsetLeft;f.support.fixedPosition&&j.position==="fixed"&&(k+=Math.max(c.scrollTop,h.scrollTop),l+=Math.max(c.scrollLeft,h.scrollLeft));return{top:k,left:l}},f.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){f.offset.setOffset(this,a,b)});var c=this[0],d=c&&c.ownerDocument;if(!d)return null;if(c===d.body)return f.offset.bodyOffset(c);return cv(c,d,d.documentElement)},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
\ No newline at end of file diff --git a/frontend/js/jquery-ui-1.8.16.custom.min.js b/frontend/js/jquery-ui-1.8.16.custom.min.js new file mode 100644 index 0000000..3042d0b --- /dev/null +++ b/frontend/js/jquery-ui-1.8.16.custom.min.js @@ -0,0 +1,84 @@ +/*! + * jQuery UI 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(c,j){function k(a,b){var d=a.nodeName.toLowerCase();if("area"===d){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&l(a)}return(/input|select|textarea|button|object/.test(d)?!a.disabled:"a"==d?a.href||b:b)&&l(a)}function l(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.16", +keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({propAttr:c.fn.prop||c.fn.attr,_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d= +this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this,"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this, +"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position");if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart": +"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,m,n){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(m)g-=parseFloat(c.curCSS(f,"border"+this+"Width",true))||0;if(n)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight, +outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){return k(a,!isNaN(c.attr(a,"tabindex")))},tabbable:function(a){var b=c.attr(a, +"tabindex"),d=isNaN(b);return(d||b>=0)&&k(a,!d)}});c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&& +a.element[0].parentNode)for(var e=0;e<b.length;e++)a.options[b[e][0]]&&b[e][1].apply(a.element,d)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(a,b){if(c(a).css("overflow")==="hidden")return false;b=b&&b==="left"?"scrollLeft":"scrollTop";var d=false;if(a[b]>0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a<b+d},isOver:function(a,b,d,e,h,i){return c.ui.isOverAxis(a,d,h)&& +c.ui.isOverAxis(b,e,i)}})}})(jQuery); +;/*! + * jQuery UI Widget 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function(b,j){if(b.cleanData){var k=b.cleanData;b.cleanData=function(a){for(var c=0,d;(d=a[c])!=null;c++)try{b(d).triggerHandler("remove")}catch(e){}k(a)}}else{var l=b.fn.remove;b.fn.remove=function(a,c){return this.each(function(){if(!c)if(!a||b.filter(a,[this]).length)b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(d){}});return l.call(b(this),a,c)})}}b.widget=function(a,c,d){var e=a.split(".")[0],f;a=a.split(".")[1];f=e+"-"+a;if(!d){d=c;c=b.Widget}b.expr[":"][f]= +function(h){return!!b.data(h,a)};b[e]=b[e]||{};b[e][a]=function(h,g){arguments.length&&this._createWidget(h,g)};c=new c;c.options=b.extend(true,{},c.options);b[e][a].prototype=b.extend(true,c,{namespace:e,widgetName:a,widgetEventPrefix:b[e][a].prototype.widgetEventPrefix||a,widgetBaseClass:f},d);b.widget.bridge(a,b[e][a])};b.widget.bridge=function(a,c){b.fn[a]=function(d){var e=typeof d==="string",f=Array.prototype.slice.call(arguments,1),h=this;d=!e&&f.length?b.extend.apply(null,[true,d].concat(f)): +d;if(e&&d.charAt(0)==="_")return h;e?this.each(function(){var g=b.data(this,a),i=g&&b.isFunction(g[d])?g[d].apply(g,f):g;if(i!==g&&i!==j){h=i;return false}}):this.each(function(){var g=b.data(this,a);g?g.option(d||{})._init():b.data(this,a,new c(d,this))});return h}};b.Widget=function(a,c){arguments.length&&this._createWidget(a,c)};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(a,c){b.data(c,this.widgetName,this);this.element=b(c);this.options= +b.extend(true,{},this.options,this._getCreateOptions(),a);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+ +"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(a,c){var d=a;if(arguments.length===0)return b.extend({},this.options);if(typeof a==="string"){if(c===j)return this.options[a];d={};d[a]=c}this._setOptions(d);return this},_setOptions:function(a){var c=this;b.each(a,function(d,e){c._setOption(d,e)});return this},_setOption:function(a,c){this.options[a]=c;if(a==="disabled")this.widget()[c?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled", +c);return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(a,c,d){var e=this.options[a];c=b.Event(c);c.type=(a===this.widgetEventPrefix?a:this.widgetEventPrefix+a).toLowerCase();d=d||{};if(c.originalEvent){a=b.event.props.length;for(var f;a;){f=b.event.props[--a];c[f]=c.originalEvent[f]}}this.element.trigger(c,d);return!(b.isFunction(e)&&e.call(this.element[0],c,d)===false||c.isDefaultPrevented())}}})(jQuery); +;/*! + * jQuery UI Mouse 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function(b){var d=false;b(document).mouseup(function(){d=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var a=this;this.element.bind("mousedown."+this.widgetName,function(c){return a._mouseDown(c)}).bind("click."+this.widgetName,function(c){if(true===b.data(c.target,a.widgetName+".preventClickEvent")){b.removeData(c.target,a.widgetName+".preventClickEvent");c.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+ +this.widgetName)},_mouseDown:function(a){if(!d){this._mouseStarted&&this._mouseUp(a);this._mouseDownEvent=a;var c=this,f=a.which==1,g=typeof this.options.cancel=="string"&&a.target.nodeName?b(a.target).closest(this.options.cancel).length:false;if(!f||g||!this._mouseCapture(a))return true;this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet)this._mouseDelayTimer=setTimeout(function(){c.mouseDelayMet=true},this.options.delay);if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a)){this._mouseStarted= +this._mouseStart(a)!==false;if(!this._mouseStarted){a.preventDefault();return true}}true===b.data(a.target,this.widgetName+".preventClickEvent")&&b.removeData(a.target,this.widgetName+".preventClickEvent");this._mouseMoveDelegate=function(e){return c._mouseMove(e)};this._mouseUpDelegate=function(e){return c._mouseUp(e)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);a.preventDefault();return d=true}},_mouseMove:function(a){if(b.browser.msie&& +!(document.documentMode>=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a);return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted= +false;a.target==this._mouseDownEvent.target&&b.data(a.target,this.widgetName+".preventClickEvent",true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +;/* + * jQuery UI Slider 1.8.16 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.slider",d.ui.mouse,{widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null},_create:function(){var a=this,b=this.options,c=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f=b.values&&b.values.length||1,e=[];this._mouseSliding=this._keySliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+ +this.orientation+" ui-widget ui-widget-content ui-corner-all"+(b.disabled?" ui-slider-disabled ui-disabled":""));this.range=d([]);if(b.range){if(b.range===true){if(!b.values)b.values=[this._valueMin(),this._valueMin()];if(b.values.length&&b.values.length!==2)b.values=[b.values[0],b.values[0]]}this.range=d("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(b.range==="min"||b.range==="max"?" ui-slider-range-"+b.range:""))}for(var j=c.length;j<f;j+=1)e.push("<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>"); +this.handles=c.add(d(e.join("")).appendTo(a.element));this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(g){g.preventDefault()}).hover(function(){b.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(b.disabled)d(this).blur();else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(g){d(this).data("index.ui-slider-handle", +g)});this.handles.keydown(function(g){var k=true,l=d(this).data("index.ui-slider-handle"),i,h,m;if(!a.options.disabled){switch(g.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:k=false;if(!a._keySliding){a._keySliding=true;d(this).addClass("ui-state-active");i=a._start(g,l);if(i===false)return}break}m=a.options.step;i=a.options.values&&a.options.values.length? +(h=a.values(l)):(h=a.value());switch(g.keyCode){case d.ui.keyCode.HOME:h=a._valueMin();break;case d.ui.keyCode.END:h=a._valueMax();break;case d.ui.keyCode.PAGE_UP:h=a._trimAlignValue(i+(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:h=a._trimAlignValue(i-(a._valueMax()-a._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(i===a._valueMax())return;h=a._trimAlignValue(i+m);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(i===a._valueMin())return;h=a._trimAlignValue(i- +m);break}a._slide(g,l,h);return k}}).keyup(function(g){var k=d(this).data("index.ui-slider-handle");if(a._keySliding){a._keySliding=false;a._stop(g,k);a._change(g,k);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy(); +return this},_mouseCapture:function(a){var b=this.options,c,f,e,j,g;if(b.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:a.pageX,y:a.pageY});f=this._valueMax()-this._valueMin()+1;j=this;this.handles.each(function(k){var l=Math.abs(c-j.values(k));if(f>l){f=l;e=d(this);g=k}});if(b.range===true&&this.values(1)===b.min){g+=1;e=d(this.handles[g])}if(this._start(a,g)===false)return false; +this._mouseSliding=true;j._handleIndex=g;e.addClass("ui-state-active").focus();b=e.offset();this._clickOffset=!d(a.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:a.pageX-b.left-e.width()/2,top:a.pageY-b.top-e.height()/2-(parseInt(e.css("borderTopWidth"),10)||0)-(parseInt(e.css("borderBottomWidth"),10)||0)+(parseInt(e.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(a,g,c);return this._animateOff=true},_mouseStart:function(){return true},_mouseDrag:function(a){var b= +this._normValueFromMouse({x:a.pageX,y:a.pageY});this._slide(a,this._handleIndex,b);return false},_mouseStop:function(a){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(a,this._handleIndex);this._change(a,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b;if(this.orientation==="horizontal"){b= +this.elementSize.width;a=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{b=this.elementSize.height;a=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}b=a/b;if(b>1)b=1;if(b<0)b=0;if(this.orientation==="vertical")b=1-b;a=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+b*a)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b); +c.values=this.values()}return this._trigger("start",a,c)},_slide:function(a,b,c){var f;if(this.options.values&&this.options.values.length){f=this.values(b?0:1);if(this.options.values.length===2&&this.options.range===true&&(b===0&&c>f||b===1&&c<f))c=f;if(c!==this.values(b)){f=this.values();f[b]=c;a=this._trigger("slide",a,{handle:this.handles[b],value:c,values:f});this.values(b?0:1);a!==false&&this.values(b,c,true)}}else if(c!==this.value()){a=this._trigger("slide",a,{handle:this.handles[b],value:c}); +a!==false&&this.value(c)}},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};if(this.options.values&&this.options.values.length){c.value=this.values(b);c.values=this.values()}this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value= +this._trimAlignValue(a);this._refreshValue();this._change(null,0)}else return this._value()},values:function(a,b){var c,f,e;if(arguments.length>1){this.options.values[a]=this._trimAlignValue(b);this._refreshValue();this._change(null,a)}else if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;f=arguments[0];for(e=0;e<c.length;e+=1){c[e]=this._trimAlignValue(f[e]);this._change(null,e)}this._refreshValue()}else return this.options.values&&this.options.values.length?this._values(a): +this.value();else return this._values()},_setOption:function(a,b){var c,f=0;if(d.isArray(this.options.values))f=this.options.values.length;d.Widget.prototype._setOption.apply(this,arguments);switch(a){case "disabled":if(b){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.propAttr("disabled",true);this.element.addClass("ui-disabled")}else{this.handles.propAttr("disabled",false);this.element.removeClass("ui-disabled")}break;case "orientation":this._detectOrientation(); +this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();break;case "value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case "values":this._animateOff=true;this._refreshValue();for(c=0;c<f;c+=1)this._change(null,c);this._animateOff=false;break}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a)},_values:function(a){var b,c;if(arguments.length){b=this.options.values[a]; +return b=this._trimAlignValue(b)}else{b=this.options.values.slice();for(c=0;c<b.length;c+=1)b[c]=this._trimAlignValue(b[c]);return b}},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b;a=a-c;if(Math.abs(c)*2>=b)a+=c>0?b:-b;return parseFloat(a.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var a= +this.options.range,b=this.options,c=this,f=!this._animateOff?b.animate:false,e,j={},g,k,l,i;if(this.options.values&&this.options.values.length)this.handles.each(function(h){e=(c.values(h)-c._valueMin())/(c._valueMax()-c._valueMin())*100;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";d(this).stop(1,1)[f?"animate":"css"](j,b.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(h===0)c.range.stop(1,1)[f?"animate":"css"]({left:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({width:e- +g+"%"},{queue:false,duration:b.animate})}else{if(h===0)c.range.stop(1,1)[f?"animate":"css"]({bottom:e+"%"},b.animate);if(h===1)c.range[f?"animate":"css"]({height:e-g+"%"},{queue:false,duration:b.animate})}g=e});else{k=this.value();l=this._valueMin();i=this._valueMax();e=i!==l?(k-l)/(i-l)*100:0;j[c.orientation==="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[f?"animate":"css"](j,b.animate);if(a==="min"&&this.orientation==="horizontal")this.range.stop(1,1)[f?"animate":"css"]({width:e+"%"}, +b.animate);if(a==="max"&&this.orientation==="horizontal")this.range[f?"animate":"css"]({width:100-e+"%"},{queue:false,duration:b.animate});if(a==="min"&&this.orientation==="vertical")this.range.stop(1,1)[f?"animate":"css"]({height:e+"%"},b.animate);if(a==="max"&&this.orientation==="vertical")this.range[f?"animate":"css"]({height:100-e+"%"},{queue:false,duration:b.animate})}}});d.extend(d.ui.slider,{version:"1.8.16"})})(jQuery); +;
\ No newline at end of file diff --git a/frontend/js/jquery-ui.min.js b/frontend/js/jquery-ui.min.js new file mode 120000 index 0000000..4d744ec --- /dev/null +++ b/frontend/js/jquery-ui.min.js @@ -0,0 +1 @@ +../imbreak/js/jquery-ui.min.js
\ No newline at end of file diff --git a/frontend/js/jquery.cookie.js b/frontend/js/jquery.cookie.js new file mode 120000 index 0000000..63f5c56 --- /dev/null +++ b/frontend/js/jquery.cookie.js @@ -0,0 +1 @@ +../imbreak/js/jquery.cookie.js
\ No newline at end of file diff --git a/frontend/js/jquery.isotope.min.js b/frontend/js/jquery.isotope.min.js new file mode 100644 index 0000000..ea4afad --- /dev/null +++ b/frontend/js/jquery.isotope.min.js @@ -0,0 +1,13 @@ +/** + * Isotope v1.5.25 + * An exquisite jQuery plugin for magical layouts + * http://isotope.metafizzy.co + * + * Commercial use requires one-time purchase of a commercial license + * http://isotope.metafizzy.co/docs/license.html + * + * Non-commercial use is licensed under the MIT License + * + * Copyright 2013 Metafizzy + */ +(function(a,b,c){"use strict";var d=a.document,e=a.Modernizr,f=function(a){return a.charAt(0).toUpperCase()+a.slice(1)},g="Moz Webkit O Ms".split(" "),h=function(a){var b=d.documentElement.style,c;if(typeof b[a]=="string")return a;a=f(a);for(var e=0,h=g.length;e<h;e++){c=g[e]+a;if(typeof b[c]=="string")return c}},i=h("transform"),j=h("transitionProperty"),k={csstransforms:function(){return!!i},csstransforms3d:function(){var a=!!h("perspective");if(a){var c=" -o- -moz- -ms- -webkit- -khtml- ".split(" "),d="@media ("+c.join("transform-3d),(")+"modernizr)",e=b("<style>"+d+"{#modernizr{height:3px}}"+"</style>").appendTo("head"),f=b('<div id="modernizr" />').appendTo("html");a=f.height()===3,f.remove(),e.remove()}return a},csstransitions:function(){return!!j}},l;if(e)for(l in k)e.hasOwnProperty(l)||e.addTest(l,k[l]);else{e=a.Modernizr={_version:"1.6ish: miniModernizr for Isotope"};var m=" ",n;for(l in k)n=k[l](),e[l]=n,m+=" "+(n?"":"no-")+l;b("html").addClass(m)}if(e.csstransforms){var o=e.csstransforms3d?{translate:function(a){return"translate3d("+a[0]+"px, "+a[1]+"px, 0) "},scale:function(a){return"scale3d("+a+", "+a+", 1) "}}:{translate:function(a){return"translate("+a[0]+"px, "+a[1]+"px) "},scale:function(a){return"scale("+a+") "}},p=function(a,c,d){var e=b.data(a,"isoTransform")||{},f={},g,h={},j;f[c]=d,b.extend(e,f);for(g in e)j=e[g],h[g]=o[g](j);var k=h.translate||"",l=h.scale||"",m=k+l;b.data(a,"isoTransform",e),a.style[i]=m};b.cssNumber.scale=!0,b.cssHooks.scale={set:function(a,b){p(a,"scale",b)},get:function(a,c){var d=b.data(a,"isoTransform");return d&&d.scale?d.scale:1}},b.fx.step.scale=function(a){b.cssHooks.scale.set(a.elem,a.now+a.unit)},b.cssNumber.translate=!0,b.cssHooks.translate={set:function(a,b){p(a,"translate",b)},get:function(a,c){var d=b.data(a,"isoTransform");return d&&d.translate?d.translate:[0,0]}}}var q,r;e.csstransitions&&(q={WebkitTransitionProperty:"webkitTransitionEnd",MozTransitionProperty:"transitionend",OTransitionProperty:"oTransitionEnd otransitionend",transitionProperty:"transitionend"}[j],r=h("transitionDuration"));var s=b.event,t=b.event.handle?"handle":"dispatch",u;s.special.smartresize={setup:function(){b(this).bind("resize",s.special.smartresize.handler)},teardown:function(){b(this).unbind("resize",s.special.smartresize.handler)},handler:function(a,b){var c=this,d=arguments;a.type="smartresize",u&&clearTimeout(u),u=setTimeout(function(){s[t].apply(c,d)},b==="execAsap"?0:100)}},b.fn.smartresize=function(a){return a?this.bind("smartresize",a):this.trigger("smartresize",["execAsap"])},b.Isotope=function(a,c,d){this.element=b(c),this._create(a),this._init(d)};var v=["width","height"],w=b(a);b.Isotope.settings={resizable:!0,layoutMode:"masonry",containerClass:"isotope",itemClass:"isotope-item",hiddenClass:"isotope-hidden",hiddenStyle:{opacity:0,scale:.001},visibleStyle:{opacity:1,scale:1},containerStyle:{position:"relative",overflow:"hidden"},animationEngine:"best-available",animationOptions:{queue:!1,duration:800},sortBy:"original-order",sortAscending:!0,resizesContainer:!0,transformsEnabled:!0,itemPositionDataEnabled:!1},b.Isotope.prototype={_create:function(a){this.options=b.extend({},b.Isotope.settings,a),this.styleQueue=[],this.elemCount=0;var c=this.element[0].style;this.originalStyle={};var d=v.slice(0);for(var e in this.options.containerStyle)d.push(e);for(var f=0,g=d.length;f<g;f++)e=d[f],this.originalStyle[e]=c[e]||"";this.element.css(this.options.containerStyle),this._updateAnimationEngine(),this._updateUsingTransforms();var h={"original-order":function(a,b){return b.elemCount++,b.elemCount},random:function(){return Math.random()}};this.options.getSortData=b.extend(this.options.getSortData,h),this.reloadItems(),this.offset={left:parseInt(this.element.css("padding-left")||0,10),top:parseInt(this.element.css("padding-top")||0,10)};var i=this;setTimeout(function(){i.element.addClass(i.options.containerClass)},0),this.options.resizable&&w.bind("smartresize.isotope",function(){i.resize()}),this.element.delegate("."+this.options.hiddenClass,"click",function(){return!1})},_getAtoms:function(a){var b=this.options.itemSelector,c=b?a.filter(b).add(a.find(b)):a,d={position:"absolute"};return c=c.filter(function(a,b){return b.nodeType===1}),this.usingTransforms&&(d.left=0,d.top=0),c.css(d).addClass(this.options.itemClass),this.updateSortData(c,!0),c},_init:function(a){this.$filteredAtoms=this._filter(this.$allAtoms),this._sort(),this.reLayout(a)},option:function(a){if(b.isPlainObject(a)){this.options=b.extend(!0,this.options,a);var c;for(var d in a)c="_update"+f(d),this[c]&&this[c]()}},_updateAnimationEngine:function(){var a=this.options.animationEngine.toLowerCase().replace(/[ _\-]/g,""),b;switch(a){case"css":case"none":b=!1;break;case"jquery":b=!0;break;default:b=!e.csstransitions}this.isUsingJQueryAnimation=b,this._updateUsingTransforms()},_updateTransformsEnabled:function(){this._updateUsingTransforms()},_updateUsingTransforms:function(){var a=this.usingTransforms=this.options.transformsEnabled&&e.csstransforms&&e.csstransitions&&!this.isUsingJQueryAnimation;a||(delete this.options.hiddenStyle.scale,delete this.options.visibleStyle.scale),this.getPositionStyles=a?this._translate:this._positionAbs},_filter:function(a){var b=this.options.filter===""?"*":this.options.filter;if(!b)return a;var c=this.options.hiddenClass,d="."+c,e=a.filter(d),f=e;if(b!=="*"){f=e.filter(b);var g=a.not(d).not(b).addClass(c);this.styleQueue.push({$el:g,style:this.options.hiddenStyle})}return this.styleQueue.push({$el:f,style:this.options.visibleStyle}),f.removeClass(c),a.filter(b)},updateSortData:function(a,c){var d=this,e=this.options.getSortData,f,g;a.each(function(){f=b(this),g={};for(var a in e)!c&&a==="original-order"?g[a]=b.data(this,"isotope-sort-data")[a]:g[a]=e[a](f,d);b.data(this,"isotope-sort-data",g)})},_sort:function(){var a=this.options.sortBy,b=this._getSorter,c=this.options.sortAscending?1:-1,d=function(d,e){var f=b(d,a),g=b(e,a);return f===g&&a!=="original-order"&&(f=b(d,"original-order"),g=b(e,"original-order")),(f>g?1:f<g?-1:0)*c};this.$filteredAtoms.sort(d)},_getSorter:function(a,c){return b.data(a,"isotope-sort-data")[c]},_translate:function(a,b){return{translate:[a,b]}},_positionAbs:function(a,b){return{left:a,top:b}},_pushPosition:function(a,b,c){b=Math.round(b+this.offset.left),c=Math.round(c+this.offset.top);var d=this.getPositionStyles(b,c);this.styleQueue.push({$el:a,style:d}),this.options.itemPositionDataEnabled&&a.data("isotope-item-position",{x:b,y:c})},layout:function(a,b){var c=this.options.layoutMode;this["_"+c+"Layout"](a);if(this.options.resizesContainer){var d=this["_"+c+"GetContainerSize"]();this.styleQueue.push({$el:this.element,style:d})}this._processStyleQueue(a,b),this.isLaidOut=!0},_processStyleQueue:function(a,c){var d=this.isLaidOut?this.isUsingJQueryAnimation?"animate":"css":"css",f=this.options.animationOptions,g=this.options.onLayout,h,i,j,k;i=function(a,b){b.$el[d](b.style,f)};if(this._isInserting&&this.isUsingJQueryAnimation)i=function(a,b){h=b.$el.hasClass("no-transition")?"css":d,b.$el[h](b.style,f)};else if(c||g||f.complete){var l=!1,m=[c,g,f.complete],n=this;j=!0,k=function(){if(l)return;var b;for(var c=0,d=m.length;c<d;c++)b=m[c],typeof b=="function"&&b.call(n.element,a,n);l=!0};if(this.isUsingJQueryAnimation&&d==="animate")f.complete=k,j=!1;else if(e.csstransitions){var o=0,p=this.styleQueue[0],s=p&&p.$el,t;while(!s||!s.length){t=this.styleQueue[o++];if(!t)return;s=t.$el}var u=parseFloat(getComputedStyle(s[0])[r]);u>0&&(i=function(a,b){b.$el[d](b.style,f).one(q,k)},j=!1)}}b.each(this.styleQueue,i),j&&k(),this.styleQueue=[]},resize:function(){this["_"+this.options.layoutMode+"ResizeChanged"]()&&this.reLayout()},reLayout:function(a){this["_"+this.options.layoutMode+"Reset"](),this.layout(this.$filteredAtoms,a)},addItems:function(a,b){var c=this._getAtoms(a);this.$allAtoms=this.$allAtoms.add(c),b&&b(c)},insert:function(a,b){this.element.append(a);var c=this;this.addItems(a,function(a){var d=c._filter(a);c._addHideAppended(d),c._sort(),c.reLayout(),c._revealAppended(d,b)})},appended:function(a,b){var c=this;this.addItems(a,function(a){c._addHideAppended(a),c.layout(a),c._revealAppended(a,b)})},_addHideAppended:function(a){this.$filteredAtoms=this.$filteredAtoms.add(a),a.addClass("no-transition"),this._isInserting=!0,this.styleQueue.push({$el:a,style:this.options.hiddenStyle})},_revealAppended:function(a,b){var c=this;setTimeout(function(){a.removeClass("no-transition"),c.styleQueue.push({$el:a,style:c.options.visibleStyle}),c._isInserting=!1,c._processStyleQueue(a,b)},10)},reloadItems:function(){this.$allAtoms=this._getAtoms(this.element.children())},remove:function(a,b){this.$allAtoms=this.$allAtoms.not(a),this.$filteredAtoms=this.$filteredAtoms.not(a);var c=this,d=function(){a.remove(),b&&b.call(c.element)};a.filter(":not(."+this.options.hiddenClass+")").length?(this.styleQueue.push({$el:a,style:this.options.hiddenStyle}),this._sort(),this.reLayout(d)):d()},shuffle:function(a){this.updateSortData(this.$allAtoms),this.options.sortBy="random",this._sort(),this.reLayout(a)},destroy:function(){var a=this.usingTransforms,b=this.options;this.$allAtoms.removeClass(b.hiddenClass+" "+b.itemClass).each(function(){var b=this.style;b.position="",b.top="",b.left="",b.opacity="",a&&(b[i]="")});var c=this.element[0].style;for(var d in this.originalStyle)c[d]=this.originalStyle[d];this.element.unbind(".isotope").undelegate("."+b.hiddenClass,"click").removeClass(b.containerClass).removeData("isotope"),w.unbind(".isotope")},_getSegments:function(a){var b=this.options.layoutMode,c=a?"rowHeight":"columnWidth",d=a?"height":"width",e=a?"rows":"cols",g=this.element[d](),h,i=this.options[b]&&this.options[b][c]||this.$filteredAtoms["outer"+f(d)](!0)||g;h=Math.floor(g/i),h=Math.max(h,1),this[b][e]=h,this[b][c]=i},_checkIfSegmentsChanged:function(a){var b=this.options.layoutMode,c=a?"rows":"cols",d=this[b][c];return this._getSegments(a),this[b][c]!==d},_masonryReset:function(){this.masonry={},this._getSegments();var a=this.masonry.cols;this.masonry.colYs=[];while(a--)this.masonry.colYs.push(0)},_masonryLayout:function(a){var c=this,d=c.masonry;a.each(function(){var a=b(this),e=Math.ceil(a.outerWidth(!0)/d.columnWidth);e=Math.min(e,d.cols);if(e===1)c._masonryPlaceBrick(a,d.colYs);else{var f=d.cols+1-e,g=[],h,i;for(i=0;i<f;i++)h=d.colYs.slice(i,i+e),g[i]=Math.max.apply(Math,h);c._masonryPlaceBrick(a,g)}})},_masonryPlaceBrick:function(a,b){var c=Math.min.apply(Math,b),d=0;for(var e=0,f=b.length;e<f;e++)if(b[e]===c){d=e;break}var g=this.masonry.columnWidth*d,h=c;this._pushPosition(a,g,h);var i=c+a.outerHeight(!0),j=this.masonry.cols+1-f;for(e=0;e<j;e++)this.masonry.colYs[d+e]=i},_masonryGetContainerSize:function(){var a=Math.max.apply(Math,this.masonry.colYs);return{height:a}},_masonryResizeChanged:function(){return this._checkIfSegmentsChanged()},_fitRowsReset:function(){this.fitRows={x:0,y:0,height:0}},_fitRowsLayout:function(a){var c=this,d=this.element.width(),e=this.fitRows;a.each(function(){var a=b(this),f=a.outerWidth(!0),g=a.outerHeight(!0);e.x!==0&&f+e.x>d&&(e.x=0,e.y=e.height),c._pushPosition(a,e.x,e.y),e.height=Math.max(e.y+g,e.height),e.x+=f})},_fitRowsGetContainerSize:function(){return{height:this.fitRows.height}},_fitRowsResizeChanged:function(){return!0},_cellsByRowReset:function(){this.cellsByRow={index:0},this._getSegments(),this._getSegments(!0)},_cellsByRowLayout:function(a){var c=this,d=this.cellsByRow;a.each(function(){var a=b(this),e=d.index%d.cols,f=Math.floor(d.index/d.cols),g=(e+.5)*d.columnWidth-a.outerWidth(!0)/2,h=(f+.5)*d.rowHeight-a.outerHeight(!0)/2;c._pushPosition(a,g,h),d.index++})},_cellsByRowGetContainerSize:function(){return{height:Math.ceil(this.$filteredAtoms.length/this.cellsByRow.cols)*this.cellsByRow.rowHeight+this.offset.top}},_cellsByRowResizeChanged:function(){return this._checkIfSegmentsChanged()},_straightDownReset:function(){this.straightDown={y:0}},_straightDownLayout:function(a){var c=this;a.each(function(a){var d=b(this);c._pushPosition(d,0,c.straightDown.y),c.straightDown.y+=d.outerHeight(!0)})},_straightDownGetContainerSize:function(){return{height:this.straightDown.y}},_straightDownResizeChanged:function(){return!0},_masonryHorizontalReset:function(){this.masonryHorizontal={},this._getSegments(!0);var a=this.masonryHorizontal.rows;this.masonryHorizontal.rowXs=[];while(a--)this.masonryHorizontal.rowXs.push(0)},_masonryHorizontalLayout:function(a){var c=this,d=c.masonryHorizontal;a.each(function(){var a=b(this),e=Math.ceil(a.outerHeight(!0)/d.rowHeight);e=Math.min(e,d.rows);if(e===1)c._masonryHorizontalPlaceBrick(a,d.rowXs);else{var f=d.rows+1-e,g=[],h,i;for(i=0;i<f;i++)h=d.rowXs.slice(i,i+e),g[i]=Math.max.apply(Math,h);c._masonryHorizontalPlaceBrick(a,g)}})},_masonryHorizontalPlaceBrick:function(a,b){var c=Math.min.apply(Math,b),d=0;for(var e=0,f=b.length;e<f;e++)if(b[e]===c){d=e;break}var g=c,h=this.masonryHorizontal.rowHeight*d;this._pushPosition(a,g,h);var i=c+a.outerWidth(!0),j=this.masonryHorizontal.rows+1-f;for(e=0;e<j;e++)this.masonryHorizontal.rowXs[d+e]=i},_masonryHorizontalGetContainerSize:function(){var a=Math.max.apply(Math,this.masonryHorizontal.rowXs);return{width:a}},_masonryHorizontalResizeChanged:function(){return this._checkIfSegmentsChanged(!0)},_fitColumnsReset:function(){this.fitColumns={x:0,y:0,width:0}},_fitColumnsLayout:function(a){var c=this,d=this.element.height(),e=this.fitColumns;a.each(function(){var a=b(this),f=a.outerWidth(!0),g=a.outerHeight(!0);e.y!==0&&g+e.y>d&&(e.x=e.width,e.y=0),c._pushPosition(a,e.x,e.y),e.width=Math.max(e.x+f,e.width),e.y+=g})},_fitColumnsGetContainerSize:function(){return{width:this.fitColumns.width}},_fitColumnsResizeChanged:function(){return!0},_cellsByColumnReset:function(){this.cellsByColumn={index:0},this._getSegments(),this._getSegments(!0)},_cellsByColumnLayout:function(a){var c=this,d=this.cellsByColumn;a.each(function(){var a=b(this),e=Math.floor(d.index/d.rows),f=d.index%d.rows,g=(e+.5)*d.columnWidth-a.outerWidth(!0)/2,h=(f+.5)*d.rowHeight-a.outerHeight(!0)/2;c._pushPosition(a,g,h),d.index++})},_cellsByColumnGetContainerSize:function(){return{width:Math.ceil(this.$filteredAtoms.length/this.cellsByColumn.rows)*this.cellsByColumn.columnWidth}},_cellsByColumnResizeChanged:function(){return this._checkIfSegmentsChanged(!0)},_straightAcrossReset:function(){this.straightAcross={x:0}},_straightAcrossLayout:function(a){var c=this;a.each(function(a){var d=b(this);c._pushPosition(d,c.straightAcross.x,0),c.straightAcross.x+=d.outerWidth(!0)})},_straightAcrossGetContainerSize:function(){return{width:this.straightAcross.x}},_straightAcrossResizeChanged:function(){return!0}},b.fn.imagesLoaded=function(a){function h(){a.call(c,d)}function i(a){var c=a.target;c.src!==f&&b.inArray(c,g)===-1&&(g.push(c),--e<=0&&(setTimeout(h),d.unbind(".imagesLoaded",i)))}var c=this,d=c.find("img").add(c.filter("img")),e=d.length,f="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",g=[];return e||h(),d.bind("load.imagesLoaded error.imagesLoaded",i).each(function(){var a=this.src;this.src=f,this.src=a}),c};var x=function(b){a.console&&a.console.error(b)};b.fn.isotope=function(a,c){if(typeof a=="string"){var d=Array.prototype.slice.call(arguments,1);this.each(function(){var c=b.data(this,"isotope");if(!c){x("cannot call methods on isotope prior to initialization; attempted to call method '"+a+"'");return}if(!b.isFunction(c[a])||a.charAt(0)==="_"){x("no such method '"+a+"' for isotope instance");return}c[a].apply(c,d)})}else this.each(function(){var d=b.data(this,"isotope");d?(d.option(a),d._init(c)):b.data(this,"isotope",new b.Isotope(a,this,c))});return this}})(window,jQuery);
\ No newline at end of file diff --git a/frontend/js/jquery.js b/frontend/js/jquery.js new file mode 100644 index 0000000..16ad06c --- /dev/null +++ b/frontend/js/jquery.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7.2 jquery.com | jquery.org/license */ +(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"<!doctype html>":"")+"<html><body>"),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bD.test(a)?d(a,e):b_(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&f.type(b)==="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bZ(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bS,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bZ(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bZ(a,c,d,e,"*",g));return l}function bY(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bO),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bB(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?1:0,g=4;if(d>0){if(c!=="border")for(;e<g;e+=2)c||(d-=parseFloat(f.css(a,"padding"+bx[e]))||0),c==="margin"?d+=parseFloat(f.css(a,c+bx[e]))||0:d-=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0;return d+"px"}d=by(a,b);if(d<0||d==null)d=a.style[b];if(bt.test(d))return d;d=parseFloat(d)||0;if(c)for(;e<g;e+=2)d+=parseFloat(f.css(a,"padding"+bx[e]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+bx[e]))||0);return d+"px"}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;b.nodeType===1&&(b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?b.outerHTML=a.outerHTML:c!=="input"||a.type!=="checkbox"&&a.type!=="radio"?c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text):(a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)),b.removeAttribute(f.expando),b.removeAttribute("_submit_attached"),b.removeAttribute("_change_attached"))}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c,i[c][d])}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h,i){var j,k=d==null,l=0,m=a.length;if(d&&typeof d=="object"){for(l in d)e.access(a,c,l,d[l],1,h,f);g=1}else if(f!==b){j=i===b&&e.isFunction(f),k&&(j?(j=c,c=function(a,b,c){return j.call(e(a),c)}):(c.call(a,f),c=null));if(c)for(;l<m;l++)c(a[l],d,j?f.call(a[l],l,c(a[l],d)):f,i);g=1}return g?a:k?c.call(a):m?c(a[0],d):h},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test("Â ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m,n=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?n(g):h==="function"&&(!a.unique||!p.has(g))&&c.push(g)},o=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,j=!0,m=k||0,k=0,l=c.length;for(;c&&m<l;m++)if(c[m].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}j=!1,c&&(a.once?e===!0?p.disable():c=[]:d&&d.length&&(e=d.shift(),p.fireWith(e[0],e[1])))},p={add:function(){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){j&&f<=l&&(l--,f<=m&&m--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&p.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(j?a.once||d.push([b,c]):(!a.once||!e)&&o(b,c));return this},fire:function(){p.fireWith(this,arguments);return this},fired:function(){return!!i}};return p};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p=c.createElement("div"),q=c.documentElement;p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="<div "+n+"display:block;'><div style='"+t+"0;display:block;overflow:hidden;'></div></div>"+"<table "+n+"' cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="<table><tr><td style='"+t+"0;display:none'></td><td>t</td></tr></table>",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="<div style='width:5px;'></div>",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h,i,j=this[0],k=0,m=null;if(a===b){if(this.length){m=f.data(j);if(j.nodeType===1&&!f._data(j,"parsedAttrs")){g=j.attributes;for(i=g.length;k<i;k++)h=g[k].name,h.indexOf("data-")===0&&(h=f.camelCase(h.substring(5)),l(j,h,m[h]));f._data(j,"parsedAttrs",!0)}}return m}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!";return f.access(this,function(c){if(c===b){m=this.triggerHandler("getData"+e,[d[0]]),m===b&&j&&(m=f.data(j,a),m=l(j,a,m));return m===b&&d[1]?this.data(d[0]):m}d[1]=c,this.each(function(){var b=f(this);b.triggerHandler("setData"+e,d),f.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length<d)return f.queue(this[0],a);return c===b?this:this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise(c)}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,f.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i<g;i++)e=d[i],e&&(c=f.propFix[e]||e,h=u.test(e),h||f.attr(a,e,""),a.removeAttribute(v?e:c),h&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0,coords:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( +a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:g&&G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=f.event.special[c.type]||{},j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateTarget=this;if(!i.preDispatch||i.preDispatch.call(this,c)!==!1){if(e&&(!c.button||c.type!=="click")){n=f(this),n.context=this.ownerDocument||this;for(m=c.target;m!=this;m=m.parentNode||this)if(m.disabled!==!0){p={},r=[],n[0]=m;for(k=0;k<e;k++)s=d[k],t=s.selector,p[t]===b&&(p[t]=s.quick?H(m,s.quick):n.is(t)),p[t]&&r.push(s);r.length&&j.push({elem:m,matches:r})}}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){q=j[k],c.currentTarget=q.elem;for(l=0;l<q.matches.length&&!c.isImmediatePropagationStopped();l++){s=q.matches[l];if(h||!c.namespace&&!s.namespace||c.namespace_re&&c.namespace_re.test(s.namespace))c.data=s.data,c.handleObj=s,o=((f.event.special[s.origType]||{}).handle||s.handler).apply(q.elem,g),o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()))}}i.postDispatch&&i.postDispatch.call(this,c);return c.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),d._submit_attached=!0)})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9||d===11){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.globalPOS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")[\\s/>]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f +.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(f.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(g){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,function(a,b){b.src?f.ajax({type:"GET",global:!1,url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1></$2>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]==="<table>"&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i<u;i++)bn(l[i]);else bn(l);l.nodeType?j.push(l):j=f.merge(j,l)}if(d){g=function(a){return!a.type||be.test(a.type)};for(k=0;j[k];k++){h=j[k];if(e&&f.nodeName(h,"script")&&(!h.type||be.test(h.type)))e.push(h.parentNode?h.parentNode.removeChild(h):h);else{if(h.nodeType===1){var v=f.grep(h.getElementsByTagName("script"),g);j.splice.apply(j,[k+1,0].concat(v))}d.appendChild(h)}}}return j},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bp=/alpha\([^)]*\)/i,bq=/opacity=([^)]*)/,br=/([A-Z]|^ms)/g,bs=/^[\-+]?(?:\d*\.)?\d+$/i,bt=/^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,bu=/^([\-+])=([\-+.\de]+)/,bv=/^margin/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Top","Right","Bottom","Left"],by,bz,bA;f.fn.css=function(a,c){return f.access(this,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)},a,c,arguments.length>1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),(e===""&&f.css(d,"display")==="none"||!f.contains(d.ownerDocument.documentElement,d))&&f._data(d,"olddisplay",cu(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(ct("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(ct("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o,p,q;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]);if((k=f.cssHooks[g])&&"expand"in k){l=k.expand(a[g]),delete a[g];for(i in l)i in a||(a[i]=l[i])}}for(g in a){h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cu(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cm.test(h)?(q=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),q?(f._data(this,"toggle"+i,q==="show"?"hide":"show"),j[q]()):j[h]()):(m=cn.exec(h),n=j.cur(),m?(o=parseFloat(m[2]),p=m[3]||(f.cssNumber[i]?"":"px"),p!=="px"&&(f.style(this,i,(o||1)+p),n=(o||1)/j.cur()*n,f.style(this,i,n+p)),m[1]&&(o=(m[1]==="-="?-1:1)*o+n),j.custom(n,o,p)):j.custom(n,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:ct("show",1),slideUp:ct("hide",1),slideToggle:ct("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a){return a},swing:function(a){return-Math.cos(a*Math.PI)/2+.5}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cq||cr(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){f._data(e.elem,"fxshow"+e.prop)===b&&(e.options.hide?f._data(e.elem,"fxshow"+e.prop,e.start):e.options.show&&f._data(e.elem,"fxshow"+e.prop,e.end))},h()&&f.timers.push(h)&&!co&&(co=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cq||cr(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(cp.concat.apply([],cp),function(a,b){b.indexOf("margin")&&(f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)})}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cv,cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?cv=function(a,b,c,d){try{d=a.getBoundingClientRect()}catch(e){}if(!d||!f.contains(c,a))return d?{top:d.top,left:d.left}:{top:0,left:0};var g=b.body,h=cy(b),i=c.clientTop||g.clientTop||0,j=c.clientLeft||g.clientLeft||0,k=h.pageYOffset||f.support.boxModel&&c.scrollTop||g.scrollTop,l=h.pageXOffset||f.support.boxModel&&c.scrollLeft||g.scrollLeft,m=d.top+k-i,n=d.left+l-j;return{top:m,left:n}}:cv=function(a,b,c){var d,e=a.offsetParent,g=a,h=b.body,i=b.defaultView,j=i?i.getComputedStyle(a,null):a.currentStyle,k=a.offsetTop,l=a.offsetLeft;while((a=a.parentNode)&&a!==h&&a!==c){if(f.support.fixedPosition&&j.position==="fixed")break;d=i?i.getComputedStyle(a,null):a.currentStyle,k-=a.scrollTop,l-=a.scrollLeft,a===e&&(k+=a.offsetTop,l+=a.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(a.nodeName))&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),g=e,e=a.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),j=d}if(j.position==="relative"||j.position==="static")k+=h.offsetTop,l+=h.offsetLeft;f.support.fixedPosition&&j.position==="fixed"&&(k+=Math.max(c.scrollTop,h.scrollTop),l+=Math.max(c.scrollLeft,h.scrollLeft));return{top:k,left:l}},f.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){f.offset.setOffset(this,a,b)});var c=this[0],d=c&&c.ownerDocument;if(!d)return null;if(c===d.body)return f.offset.bodyOffset(c);return cv(c,d,d.documentElement)},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
\ No newline at end of file diff --git a/frontend/js/jquery.md5.js b/frontend/js/jquery.md5.js new file mode 100644 index 0000000..0333717 --- /dev/null +++ b/frontend/js/jquery.md5.js @@ -0,0 +1,230 @@ + + /** + * jQuery MD5 hash algorithm function + * + * <code> + * Calculate the md5 hash of a String + * String $.md5 ( String str ) + * </code> + * + * Calculates the MD5 hash of str using the » RSA Data Security, Inc. MD5 Message-Digest Algorithm, and returns that hash. + * MD5 (Message-Digest algorithm 5) is a widely-used cryptographic hash function with a 128-bit hash value. MD5 has been employed in a wide variety of security applications, and is also commonly used to check the integrity of data. The generated hash is also non-reversable. Data cannot be retrieved from the message digest, the digest uniquely identifies the data. + * MD5 was developed by Professor Ronald L. Rivest in 1994. Its 128 bit (16 byte) message digest makes it a faster implementation than SHA-1. + * This script is used to process a variable length message into a fixed-length output of 128 bits using the MD5 algorithm. It is fully compatible with UTF-8 encoding. It is very useful when u want to transfer encrypted passwords over the internet. If you plan using UTF-8 encoding in your project don't forget to set the page encoding to UTF-8 (Content-Type meta tag). + * This function orginally get from the WebToolkit and rewrite for using as the jQuery plugin. + * + * Example + * Code + * <code> + * $.md5("I'm Persian."); + * </code> + * Result + * <code> + * "b8c901d0f02223f9761016cfff9d68df" + * </code> + * + * @alias Muhammad Hussein Fattahizadeh < muhammad [AT] semnanweb [DOT] com > + * @link http://www.semnanweb.com/jquery-plugin/md5.html + * @see http://www.webtoolkit.info/ + * @license http://www.gnu.org/licenses/gpl.html [GNU General Public License] + * @param {jQuery} {md5:function(string)) + * @return string + */ + + (function($){ + + var rotateLeft = function(lValue, iShiftBits) { + return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits)); + } + + var addUnsigned = function(lX, lY) { + var lX4, lY4, lX8, lY8, lResult; + lX8 = (lX & 0x80000000); + lY8 = (lY & 0x80000000); + lX4 = (lX & 0x40000000); + lY4 = (lY & 0x40000000); + lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF); + if (lX4 & lY4) return (lResult ^ 0x80000000 ^ lX8 ^ lY8); + if (lX4 | lY4) { + if (lResult & 0x40000000) return (lResult ^ 0xC0000000 ^ lX8 ^ lY8); + else return (lResult ^ 0x40000000 ^ lX8 ^ lY8); + } else { + return (lResult ^ lX8 ^ lY8); + } + } + + var F = function(x, y, z) { + return (x & y) | ((~ x) & z); + } + + var G = function(x, y, z) { + return (x & z) | (y & (~ z)); + } + + var H = function(x, y, z) { + return (x ^ y ^ z); + } + + var I = function(x, y, z) { + return (y ^ (x | (~ z))); + } + + var FF = function(a, b, c, d, x, s, ac) { + a = addUnsigned(a, addUnsigned(addUnsigned(F(b, c, d), x), ac)); + return addUnsigned(rotateLeft(a, s), b); + }; + + var GG = function(a, b, c, d, x, s, ac) { + a = addUnsigned(a, addUnsigned(addUnsigned(G(b, c, d), x), ac)); + return addUnsigned(rotateLeft(a, s), b); + }; + + var HH = function(a, b, c, d, x, s, ac) { + a = addUnsigned(a, addUnsigned(addUnsigned(H(b, c, d), x), ac)); + return addUnsigned(rotateLeft(a, s), b); + }; + + var II = function(a, b, c, d, x, s, ac) { + a = addUnsigned(a, addUnsigned(addUnsigned(I(b, c, d), x), ac)); + return addUnsigned(rotateLeft(a, s), b); + }; + + var convertToWordArray = function(string) { + var lWordCount; + var lMessageLength = string.length; + var lNumberOfWordsTempOne = lMessageLength + 8; + var lNumberOfWordsTempTwo = (lNumberOfWordsTempOne - (lNumberOfWordsTempOne % 64)) / 64; + var lNumberOfWords = (lNumberOfWordsTempTwo + 1) * 16; + var lWordArray = Array(lNumberOfWords - 1); + var lBytePosition = 0; + var lByteCount = 0; + while (lByteCount < lMessageLength) { + lWordCount = (lByteCount - (lByteCount % 4)) / 4; + lBytePosition = (lByteCount % 4) * 8; + lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount) << lBytePosition)); + lByteCount++; + } + lWordCount = (lByteCount - (lByteCount % 4)) / 4; + lBytePosition = (lByteCount % 4) * 8; + lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition); + lWordArray[lNumberOfWords - 2] = lMessageLength << 3; + lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29; + return lWordArray; + }; + + var wordToHex = function(lValue) { + var WordToHexValue = "", WordToHexValueTemp = "", lByte, lCount; + for (lCount = 0; lCount <= 3; lCount++) { + lByte = (lValue >>> (lCount * 8)) & 255; + WordToHexValueTemp = "0" + lByte.toString(16); + WordToHexValue = WordToHexValue + WordToHexValueTemp.substr(WordToHexValueTemp.length - 2, 2); + } + return WordToHexValue; + }; + + var uTF8Encode = function(string) { + string = string.replace(/\x0d\x0a/g, "\x0a"); + var output = ""; + for (var n = 0; n < string.length; n++) { + var c = string.charCodeAt(n); + if (c < 128) { + output += String.fromCharCode(c); + } else if ((c > 127) && (c < 2048)) { + output += String.fromCharCode((c >> 6) | 192); + output += String.fromCharCode((c & 63) | 128); + } else { + output += String.fromCharCode((c >> 12) | 224); + output += String.fromCharCode(((c >> 6) & 63) | 128); + output += String.fromCharCode((c & 63) | 128); + } + } + return output; + }; + + $.extend({ + md5: function(string) { + var x = Array(); + var k, AA, BB, CC, DD, a, b, c, d; + var S11=7, S12=12, S13=17, S14=22; + var S21=5, S22=9 , S23=14, S24=20; + var S31=4, S32=11, S33=16, S34=23; + var S41=6, S42=10, S43=15, S44=21; + string = uTF8Encode(string); + x = convertToWordArray(string); + a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476; + for (k = 0; k < x.length; k += 16) { + AA = a; BB = b; CC = c; DD = d; + a = FF(a, b, c, d, x[k+0], S11, 0xD76AA478); + d = FF(d, a, b, c, x[k+1], S12, 0xE8C7B756); + c = FF(c, d, a, b, x[k+2], S13, 0x242070DB); + b = FF(b, c, d, a, x[k+3], S14, 0xC1BDCEEE); + a = FF(a, b, c, d, x[k+4], S11, 0xF57C0FAF); + d = FF(d, a, b, c, x[k+5], S12, 0x4787C62A); + c = FF(c, d, a, b, x[k+6], S13, 0xA8304613); + b = FF(b, c, d, a, x[k+7], S14, 0xFD469501); + a = FF(a, b, c, d, x[k+8], S11, 0x698098D8); + d = FF(d, a, b, c, x[k+9], S12, 0x8B44F7AF); + c = FF(c, d, a, b, x[k+10], S13, 0xFFFF5BB1); + b = FF(b, c, d, a, x[k+11], S14, 0x895CD7BE); + a = FF(a, b, c, d, x[k+12], S11, 0x6B901122); + d = FF(d, a, b, c, x[k+13], S12, 0xFD987193); + c = FF(c, d, a, b, x[k+14], S13, 0xA679438E); + b = FF(b, c, d, a, x[k+15], S14, 0x49B40821); + a = GG(a, b, c, d, x[k+1], S21, 0xF61E2562); + d = GG(d, a, b, c, x[k+6], S22, 0xC040B340); + c = GG(c, d, a, b, x[k+11], S23, 0x265E5A51); + b = GG(b, c, d, a, x[k+0], S24, 0xE9B6C7AA); + a = GG(a, b, c, d, x[k+5], S21, 0xD62F105D); + d = GG(d, a, b, c, x[k+10], S22, 0x2441453); + c = GG(c, d, a, b, x[k+15], S23, 0xD8A1E681); + b = GG(b, c, d, a, x[k+4], S24, 0xE7D3FBC8); + a = GG(a, b, c, d, x[k+9], S21, 0x21E1CDE6); + d = GG(d, a, b, c, x[k+14], S22, 0xC33707D6); + c = GG(c, d, a, b, x[k+3], S23, 0xF4D50D87); + b = GG(b, c, d, a, x[k+8], S24, 0x455A14ED); + a = GG(a, b, c, d, x[k+13], S21, 0xA9E3E905); + d = GG(d, a, b, c, x[k+2], S22, 0xFCEFA3F8); + c = GG(c, d, a, b, x[k+7], S23, 0x676F02D9); + b = GG(b, c, d, a, x[k+12], S24, 0x8D2A4C8A); + a = HH(a, b, c, d, x[k+5], S31, 0xFFFA3942); + d = HH(d, a, b, c, x[k+8], S32, 0x8771F681); + c = HH(c, d, a, b, x[k+11], S33, 0x6D9D6122); + b = HH(b, c, d, a, x[k+14], S34, 0xFDE5380C); + a = HH(a, b, c, d, x[k+1], S31, 0xA4BEEA44); + d = HH(d, a, b, c, x[k+4], S32, 0x4BDECFA9); + c = HH(c, d, a, b, x[k+7], S33, 0xF6BB4B60); + b = HH(b, c, d, a, x[k+10], S34, 0xBEBFBC70); + a = HH(a, b, c, d, x[k+13], S31, 0x289B7EC6); + d = HH(d, a, b, c, x[k+0], S32, 0xEAA127FA); + c = HH(c, d, a, b, x[k+3], S33, 0xD4EF3085); + b = HH(b, c, d, a, x[k+6], S34, 0x4881D05); + a = HH(a, b, c, d, x[k+9], S31, 0xD9D4D039); + d = HH(d, a, b, c, x[k+12], S32, 0xE6DB99E5); + c = HH(c, d, a, b, x[k+15], S33, 0x1FA27CF8); + b = HH(b, c, d, a, x[k+2], S34, 0xC4AC5665); + a = II(a, b, c, d, x[k+0], S41, 0xF4292244); + d = II(d, a, b, c, x[k+7], S42, 0x432AFF97); + c = II(c, d, a, b, x[k+14], S43, 0xAB9423A7); + b = II(b, c, d, a, x[k+5], S44, 0xFC93A039); + a = II(a, b, c, d, x[k+12], S41, 0x655B59C3); + d = II(d, a, b, c, x[k+3], S42, 0x8F0CCC92); + c = II(c, d, a, b, x[k+10], S43, 0xFFEFF47D); + b = II(b, c, d, a, x[k+1], S44, 0x85845DD1); + a = II(a, b, c, d, x[k+8], S41, 0x6FA87E4F); + d = II(d, a, b, c, x[k+15], S42, 0xFE2CE6E0); + c = II(c, d, a, b, x[k+6], S43, 0xA3014314); + b = II(b, c, d, a, x[k+13], S44, 0x4E0811A1); + a = II(a, b, c, d, x[k+4], S41, 0xF7537E82); + d = II(d, a, b, c, x[k+11], S42, 0xBD3AF235); + c = II(c, d, a, b, x[k+2], S43, 0x2AD7D2BB); + b = II(b, c, d, a, x[k+9], S44, 0xEB86D391); + a = addUnsigned(a, AA); + b = addUnsigned(b, BB); + c = addUnsigned(c, CC); + d = addUnsigned(d, DD); + } + var tempValue = wordToHex(a) + wordToHex(b) + wordToHex(c) + wordToHex(d); + return tempValue.toLowerCase(); + } + }); + })(jQuery);
\ No newline at end of file diff --git a/frontend/js/jquery.min.js b/frontend/js/jquery.min.js new file mode 120000 index 0000000..0413a58 --- /dev/null +++ b/frontend/js/jquery.min.js @@ -0,0 +1 @@ +../imbreak/js/jquery.min.js
\ No newline at end of file diff --git a/frontend/js/main.js b/frontend/js/main.js new file mode 120000 index 0000000..1c1c131 --- /dev/null +++ b/frontend/js/main.js @@ -0,0 +1 @@ +../imgrid/js/main.js
\ No newline at end of file diff --git a/frontend/js/maincopy.js b/frontend/js/maincopy.js new file mode 120000 index 0000000..317b9cd --- /dev/null +++ b/frontend/js/maincopy.js @@ -0,0 +1 @@ +../imgrid/js/maincopy.js
\ No newline at end of file diff --git a/frontend/js/okgradient-0.1.js b/frontend/js/okgradient-0.1.js new file mode 100644 index 0000000..a28c11c --- /dev/null +++ b/frontend/js/okgradient-0.1.js @@ -0,0 +1,149 @@ +(function($){ + + $.okgradient = function(el, options){ + var base = this; + base.$el = $(el); + base.el = el; + base.$el.data("okgradient", base); + + var width = $(window).width(); + var height = $(window).height(); + + var browsers = " -webkit- -moz- -o- -ms-".split(" "); + + base.init = function(){ + base.options = $.extend({}, $.okgradient.options, options); + base.build(); + }; + + base.build = function(){ + base.start(); + if (base.options.type in base.actions) { + base.action = base.actions[ base.options.type ]; + } + }; + + base.start = function () { + $(window).bind({ + mousemove: base.mousemove + }); + base.mousemove({ pageX: $(window).width() / 2, pageY: $(window).height() / 2 }); + if (base.options.transparent) { + base.el.style.color = "transparent"; + } + }; + + base.parsecolor = function (rgb) { + var x = rgb.replace('rgb(','').replace(')','').split(','); + return [parseInt(x[0]), parseInt(x[1]), parseInt(x[2])]; + }; + + base.scale = function (x, xbasis, newbasis) { + return (x - xbasis[0]) / (xbasis[1] - xbasis[0]) * (newbasis[1] - newbasis[0]) + newbasis[0]; + }; + base.clamp = function (x, min, max) { + return Math.max(min, Math.min(max, x)); + }; + base.parse_range = function (x, range) { + if (typeof range === "number") return range; + return base.scale(x, [0,1], range); + }; + + base.average_rgb = function (a, b, distance) { + var x = []; + for (var i = 0; i < 3; i++) + x[i] = Math.floor( a[i] * distance + b[i] * (1-distance) ) + return x; + }; + + base.setoption = function (key, value) { + if (typeof key === "string") { + base.options[key] = value; + } else { + base.options = $.extend(base.options, key); + } + base.mousemove(base); + }; + + base.mousemove = function (e){ + var offset = base.$el.offset(), + x = e.pageX, + y = e.pageY; + cy = offset.top + base.$el.height() / 2, + cx = offset.left + base.$el.width() / 2, + dx = (cx - x), + dy = (cy - y), + distance = Math.sqrt(dx*dx + dy*dy), + ratio = 1 - distance / $(window).height(); + base.pageX = x; + base.pageY = y; + base.action(ratio); + }; + + base.opacity = function (ratio) { + base.el.style.opacity = ratio; + }; + + base.hsl = function (ratio, ranges) { + var hue = base.parse_range(ratio, ranges.hue), + sat = base.parse_range(ratio, ranges.saturation), + lum = base.parse_range(ratio, ranges.luminance); + if ("alpha" in ranges) { + var alpha = base.parse_range(ratio, ranges.alpha); + return "hsla(" + hue + "," + sat + "%," + lum + "%," + alpha + ")"; + } else { + return "hsl(" + hue + "," + sat + "%," + lum + "%)"; + } + }; + + base.background = function (ratio) { + var color = base.hsl(ratio, base.options); + base.el.style.background = color; + }; + + base.backgroundRadialGradient = function (ratio) { + var start = base.hsl(ratio, base.options.start), + end = base.hsl(ratio, base.options.end); + var gradient = 'radial-gradient(bottom, ' + start + ' 0%, ' + end + ' 100%);'; + var gradients = ""; + for (var i = 0, len = browsers.length; i < len; i++) + gradients += "background: " + browsers[i] + gradient + ";"; + base.el.style.cssText = gradients; + }; + + base.backgroundLinearGradient = function (ratio) { + var start = base.hsl(ratio, base.options.start), + end = base.hsl(ratio, base.options.end); + var gradient = 'linear-gradient(bottom, ' + start + ' 0%, ' + end + ' 100%);'; + var gradients = ""; + for (var i = 0, len = browsers.length; i < len; i++) + gradients += "background: " + browsers[i] + gradient + ";"; + base.el.style.cssText = gradients; + }; + + // initialize action to no-op + base.action = function(){}; + base.actions = { + "opacity": base.opacity, + "background": base.background, + "background linear-gradient": base.backgroundLinearGradient, + "background radial-gradient": base.backgroundRadialGradient, + }; + + base.init(); + }; + + $.okgradient.options = { + hue: [0,360], + saturation: [50,50], + luminance: [50,50], + opacity: [1,1], + }; + + $.fn.okgradient = function(options){ + return this.each(function(){ + (new $.okgradient(this, options)); + }); + }; + +})(jQuery); diff --git a/frontend/js/overlay.js b/frontend/js/overlay.js new file mode 120000 index 0000000..dd2be26 --- /dev/null +++ b/frontend/js/overlay.js @@ -0,0 +1 @@ +../impattern/js/overlay.js
\ No newline at end of file diff --git a/frontend/js/pbembed.js b/frontend/js/pbembed.js new file mode 100644 index 0000000..97fa667 --- /dev/null +++ b/frontend/js/pbembed.js @@ -0,0 +1,65 @@ +$(function(){ + +// test if Photoblaster is being loaded in an iframe (=dump.fm) or not +var isEmbed = window != window.parent; + +if(isEmbed) { + + /* + * jQuery postMessage - v0.5 - 9/11/2009 + * http://benalman.com/projects/jquery-postmessage-plugin/ + * + * Copyright (c) 2009 "Cowboy" Ben Alman + * Dual licensed under the MIT and GPL licenses. + * http://benalman.com/about/license/ + */ + (function($){var g,d,j=1,a,b=this,f=!1,h="postMessage",e="addEventListener",c,i=b[h]&&!$.browser.opera;$[h]=function(k,l,m){if(!l){return}k=typeof k==="string"?k:$.param(k);m=m||parent;if(i){m[h](k,l.replace(/([^:]+:\/\/[^\/]+).*/,"$1"))}else{if(l){m.location=l.replace(/#.*$/,"")+"#"+(+new Date)+(j++)+"&"+k}}};$.receiveMessage=c=function(l,m,k){if(i){if(l){a&&c();a=function(n){if((typeof m==="string"&&n.origin!==m)||($.isFunction(m)&&m(n.origin)===f)){return f}l(n)}}if(b[e]){b[l?e:"removeEventListener"]("message",a,f)}else{b[l?"attachEvent":"detachEvent"]("onmessage",a)}}else{g&&clearInterval(g);g=null;if(l){k=typeof m==="number"?m:typeof k==="number"?k:100;g=setInterval(function(){var o=document.location.hash,n=/^#?\d+&/;if(o!==d&&n.test(o)){d=o;l({data:o.replace(n,"")})}},k)}}}})(jQuery); + + /* end postMessage */ + + var parent_url = decodeURIComponent( document.location.hash.replace( /^#/, '' ) ); + + // add click-to-dump to output image + $('#output-img').live("click", function(){ + $.postMessage(JSON.stringify({'command':'paste_url_to_dump_msginput', 'url':$(this).attr('src')}), parent_url, parent ); + }); + + // listen for a command from the parent. + $.receiveMessage(function(e){ + try{ + var data = JSON.parse(e.data) + + if ( data.command == 'image_url' ) { + + $("#img-url").val(data.url); + + $("#img-url").prev().css('background-color', 'white'); + $("#img-background").prev().css('background-color', 'white'); + + } else if ( data.command == 'background_url' ) { + + $("#img-background").val(data.url); + + $("#img-url").prev().css('background-color', 'white'); + $("#img-background").prev().css('background-color', 'white'); + + } else if ( data.command == 'img_drag' ) { + + // highlight while dragging to show which field this drag will go to + $("#img-background").prev().css('background-color', 'white'); + $("#img-url").prev().css('background-color', 'yellow'); + + } else if ( data.command == 'background_drag' ) { + + $("#img-url").prev().css('background-color', 'white'); + $("#img-background").prev().css('background-color', 'yellow'); + + } + }catch(e){ + console.log('receiveMessage (iframe): JSON parse error'); + } + }); + +} //isEmbed +}); + diff --git a/frontend/js/photoblaster-0.1.js b/frontend/js/photoblaster-0.1.js new file mode 100644 index 0000000..43fc785 --- /dev/null +++ b/frontend/js/photoblaster-0.1.js @@ -0,0 +1,22 @@ +(function($){ + $.photoblaster = function(url, name, success, error){ + if (! url) return; + var API_HEADER = "#@im", + success = success || function (data) {}, + error = error || function () {}, + params = { + 'url': url, + 'name': name || 'api', + 'transparent': true, + 'fuzz': 5, + }; + $.ajax({ + 'url': "http://asdf.us/cgi-bin/im/generate", + 'data': params, + 'dataType': "jsonp", + 'success': success, + 'error': error + }); + }; +})(jQuery); + diff --git a/frontend/js/popup.js b/frontend/js/popup.js new file mode 120000 index 0000000..7b52e23 --- /dev/null +++ b/frontend/js/popup.js @@ -0,0 +1 @@ +../imgrid/js/popup.js
\ No newline at end of file diff --git a/frontend/js/preview.js b/frontend/js/preview.js new file mode 120000 index 0000000..16cbafb --- /dev/null +++ b/frontend/js/preview.js @@ -0,0 +1 @@ +../impattern/js/preview.js
\ No newline at end of file diff --git a/frontend/js/requests.js b/frontend/js/requests.js new file mode 100644 index 0000000..8c8fc34 --- /dev/null +++ b/frontend/js/requests.js @@ -0,0 +1,6 @@ +var PATTERNS_URL = "/cgi-bin/im/getpatterns" +var PROCESS_URL = "/cgi-bin/im/impattern" +var NEW_PATTERN_URL = "/cgi-bin/im/newpattern" + + +//needs a loading gif diff --git a/frontend/js/sketch.js b/frontend/js/sketch.js new file mode 120000 index 0000000..9e4ec4c --- /dev/null +++ b/frontend/js/sketch.js @@ -0,0 +1 @@ +../impattern/js/sketch.js
\ No newline at end of file diff --git a/frontend/js/sliders.js b/frontend/js/sliders.js new file mode 120000 index 0000000..6ebbd4f --- /dev/null +++ b/frontend/js/sliders.js @@ -0,0 +1 @@ +../imgrid/js/sliders.js
\ No newline at end of file diff --git a/frontend/js/soundmanager2.js b/frontend/js/soundmanager2.js new file mode 100644 index 0000000..46528c9 --- /dev/null +++ b/frontend/js/soundmanager2.js @@ -0,0 +1,2838 @@ +/** @license + * SoundManager 2: Javascript Sound for the Web + * -------------------------------------------- + * http://schillmania.com/projects/soundmanager2/ + * + * Copyright (c) 2007, Scott Schiller. All rights reserved. + * Code provided under the BSD License: + * http://schillmania.com/projects/soundmanager2/license.txt + * + * V2.97a.20101010 + */ + +/*jslint white: false, onevar: true, undef: true, nomen: false, eqeqeq: true, plusplus: false, bitwise: true, regexp: true, newcap: true, immed: true, regexp: false */ +/*global window, SM2_DEFER, sm2Debugger, alert, console, document, navigator, setTimeout, setInterval, clearInterval, Audio */ + +(function(window) { + +var soundManager = null; + +function SoundManager(smURL, smID) { + + this.flashVersion = 8; // version of flash to require, either 8 or 9. Some API features require Flash 9. + this.debugMode = true; // enable debugging output (div#soundmanager-debug, OR console if available+configured) + this.debugFlash = false; // enable debugging output inside SWF, troubleshoot Flash/browser issues + this.useConsole = true; // use firebug/safari console.log()-type debug console if available + this.consoleOnly = false; // if console is being used, do not create/write to #soundmanager-debug + this.waitForWindowLoad = false; // force SM2 to wait for window.onload() before trying to call soundManager.onload() + this.nullURL = 'about:blank'; // path to "null" (empty) MP3 file, used to unload sounds (Flash 8 only) + this.allowPolling = true; // allow flash to poll for status update (required for whileplaying() events, peak, sound spectrum functions to work.) + this.useFastPolling = false; // uses lower flash timer interval for higher callback frequency, best combined with useHighPerformance + this.useMovieStar = true; // enable support for Flash 9.0r115+ (codename "MovieStar") MPEG4 audio formats (AAC, M4V, FLV, MOV etc.) + this.bgColor = '#ffffff'; // movie (.swf) background color, eg. '#000000' + this.useHighPerformance = false; // position:fixed flash movie can help increase js/flash speed, minimize lag + this.flashLoadTimeout = 1000; // msec to wait for flash movie to load before failing (0 = infinity) + this.wmode = null; // string: flash rendering mode - null, transparent, opaque (last two allow layering of HTML on top) + this.allowScriptAccess = 'always'; // for scripting the SWF (object/embed property), either 'always' or 'sameDomain' + this.useFlashBlock = false; // *requires flashblock.css, see demos* - allow recovery from flash blockers. Wait indefinitely and apply timeout CSS to SWF, if applicable. + this.useHTML5Audio = false; // Beta feature: Use HTML 5 Audio() where API is supported (most Safari, Chrome versions), Firefox (no MP3/MP4.) Ideally, transparent vs. Flash API where possible. + this.html5Test = /^probably$/i; // HTML5 Audio().canPlayType() test. /^(probably|maybe)$/i if you want to be more liberal/risky. + this.ondebuglog = false; // callback made with each log message, regardless of debugMode + + this.audioFormats = { + // determines HTML5 support, flash requirements + // eg. if MP3 or MP4 required, Flash fallback is used if HTML5 can't play it + // shotgun approach to MIME testing due to browser variance + 'mp3': { + 'type': ['audio/mpeg; codecs="mp3"','audio/mpeg','audio/mp3','audio/MPA','audio/mpa-robust'], + 'required': true + }, + 'mp4': { + 'related': ['aac','m4a'], // additional formats under the MP4 container + 'type': ['audio/mp4; codecs="mp4a.40.2"','audio/aac','audio/x-m4a','audio/MP4A-LATM','audio/mpeg4-generic'], + 'required': true + }, + 'ogg': { + 'type': ['audio/ogg; codecs=vorbis'], + 'required': false + }, + 'wav': { + 'type': ['audio/wav; codecs="1"','audio/wav','audio/wave','audio/x-wav'], + 'required': false + } + }; + + this.defaultOptions = { + 'autoLoad': false, // enable automatic loading (otherwise .load() will be called on demand with .play(), the latter being nicer on bandwidth - if you want to .load yourself, you also can) + 'stream': true, // allows playing before entire file has loaded (recommended) + 'autoPlay': false, // enable playing of file as soon as possible (much faster if "stream" is true) + 'loops': 1, // how many times to repeat the sound (position will wrap around to 0, setPosition() will break out of loop when >0) + 'onid3': null, // callback function for "ID3 data is added/available" + 'onload': null, // callback function for "load finished" + 'whileloading': null, // callback function for "download progress update" (X of Y bytes received) + 'onplay': null, // callback for "play" start + 'onpause': null, // callback for "pause" + 'onresume': null, // callback for "resume" (pause toggle) + 'whileplaying': null, // callback during play (position update) + 'onstop': null, // callback for "user stop" + 'onfailure': null, // callback function for when playing fails + 'onfinish': null, // callback function for "sound finished playing" + 'onbeforefinish': null, // callback for "before sound finished playing (at [time])" + 'onbeforefinishtime': 5000, // offset (milliseconds) before end of sound to trigger beforefinish (eg. 1000 msec = 1 second) + 'onbeforefinishcomplete': null,// function to call when said sound finishes playing + 'onjustbeforefinish': null, // callback for [n] msec before end of current sound + 'onjustbeforefinishtime': 200, // [n] - if not using, set to 0 (or null handler) and event will not fire. + 'multiShot': true, // let sounds "restart" or layer on top of each other when played multiple times, rather than one-shot/one at a time + 'multiShotEvents': false, // fire multiple sound events (currently onfinish() only) when multiShot is enabled + 'position': null, // offset (milliseconds) to seek to within loaded sound data. + 'pan': 0, // "pan" settings, left-to-right, -100 to 100 + 'type': null, // MIME-like hint for file pattern / canPlay() tests, eg. audio/mp3 + 'usePolicyFile': false, // enable crossdomain.xml request for audio on remote domains (for ID3/waveform access) + 'volume': 100 // self-explanatory. 0-100, the latter being the max. + }; + + this.flash9Options = { // flash 9-only options, merged into defaultOptions if flash 9 is being used + 'isMovieStar': null, // "MovieStar" MPEG4 audio mode. Null (default) = auto detect MP4, AAC etc. based on URL. true = force on, ignore URL + 'usePeakData': false, // enable left/right channel peak (level) data + 'useWaveformData': false, // enable sound spectrum (raw waveform data) - WARNING: CPU-INTENSIVE: may set CPUs on fire. + 'useEQData': false, // enable sound EQ (frequency spectrum data) - WARNING: Also CPU-intensive. + 'onbufferchange': null, // callback for "isBuffering" property change + 'ondataerror': null, // callback for waveform/eq data access error (flash playing audio in other tabs/domains) + 'onstats': null // callback for when connection & play times have been measured + }; + + this.movieStarOptions = { // flash 9.0r115+ MPEG4 audio options, merged into defaultOptions if flash 9+movieStar mode is enabled + 'bufferTime': 3, // seconds of data to buffer before playback begins (null = flash default of 0.1 seconds - if AAC playback is gappy, try increasing.) + 'serverURL': null, // rtmp: FMS or FMIS server to connect to, required when requesting media via RTMP or one of its variants + 'onconnect': null, // rtmp: callback for connection to flash media server + 'bufferTimes': null, // array of buffer sizes to use. Size increases as buffer fills up. + 'duration': null // rtmp: song duration (msec) + }; + + this.version = null; + this.versionNumber = 'V2.97a.20101010'; + this.movieURL = null; + this.url = (smURL || null); + this.altURL = null; + this.swfLoaded = false; + this.enabled = false; + this.o = null; + this.movieID = 'sm2-container'; + this.id = (smID || 'sm2movie'); + this.swfCSS = { + 'swfBox': 'sm2-object-box', + 'swfDefault': 'movieContainer', + 'swfError': 'swf_error', // SWF loaded, but SM2 couldn't start (other error) + 'swfTimedout': 'swf_timedout', + 'swfUnblocked': 'swf_unblocked', // or loaded OK + 'sm2Debug': 'sm2_debug', + 'highPerf': 'high_performance', + 'flashDebug': 'flash_debug' + }; + this.oMC = null; + this.sounds = {}; + this.soundIDs = []; + this.muted = false; + this.debugID = 'soundmanager-debug'; + this.debugURLParam = /([#?&])debug=1/i; + this.specialWmodeCase = false; + this.didFlashBlock = false; + + this.filePattern = null; + this.filePatterns = { + 'flash8': /\.mp3(\?.*)?$/i, + 'flash9': /\.mp3(\?.*)?$/i + }; + + this.baseMimeTypes = /^\s*audio\/(?:x-)?(?:mp(?:eg|3))\s*(?:$|;)/i; // mp3 + this.netStreamMimeTypes = /^\s*audio\/(?:x-)?(?:mp(?:eg|3))\s*(?:$|;)/i; // mp3, mp4, aac etc. + this.netStreamTypes = ['aac', 'flv', 'mov', 'mp4', 'm4v', 'f4v', 'm4a', 'mp4v', '3gp', '3g2']; // Flash v9.0r115+ "moviestar" formats + this.netStreamPattern = new RegExp('\\.(' + this.netStreamTypes.join('|') + ')(\\?.*)?$', 'i'); + this.mimePattern = this.baseMimeTypes; + + this.features = { + 'buffering': false, + 'peakData': false, + 'waveformData': false, + 'eqData': false, + 'movieStar': false + }; + + this.sandbox = { + // <d> + 'type': null, + 'types': { + 'remote': 'remote (domain-based) rules', + 'localWithFile': 'local with file access (no internet access)', + 'localWithNetwork': 'local with network (internet access only, no local access)', + 'localTrusted': 'local, trusted (local+internet access)' + }, + 'description': null, + 'noRemote': null, + 'noLocal': null + // </d> + }; + + this.hasHTML5 = null; // switch for handling logic + this.html5 = { // stores canPlayType() results, etc. treat as read-only. + // mp3: boolean + // mp4: boolean + 'usingFlash': null // set if/when flash fallback is needed + }; + this.ignoreFlash = false; // used for special cases (eg. iPad/iPhone/palm OS?) + + // --- private SM2 internals --- + + var SMSound, + _s = this, _sm = 'soundManager', _id, _ua = navigator.userAgent, _wl = window.location.href.toString(), _fV = this.flashVersion, _doc = document, _win = window, _doNothing, _init, _onready = [], _debugOpen = true, _debugTS, _didAppend = false, _appendSuccess = false, _didInit = false, _disabled = false, _windowLoaded = false, _wDS, _wdCount = 0, _initComplete, _mixin, _addOnReady, _processOnReady, _initUserOnload, _go, _delayWaitForEI, _waitForEI, _setVersionInfo, _handleFocus, _beginInit, _strings, _initMovie, _dcLoaded, _didDCLoaded, _getDocument, _createMovie, _die, _mobileFlash, _setPolling, _debugLevels = ['log', 'info', 'warn', 'error'], _defaultFlashVersion = 8, _disableObject, _failSafely, _normalizeMovieURL, _oRemoved = null, _oRemovedHTML = null, _str, _flashBlockHandler, _getSWFCSS, _toggleDebug, _loopFix, _policyFix, _complain, _idCheck, _waitingForEI = false, _initPending = false, _smTimer, _onTimer, _startTimer, _stopTimer, _needsFlash = null, _featureCheck, _html5OK, _html5Only = false, _html5CanPlay, _html5Ext, _dcIE, _testHTML5, _addEvt, _removeEvt, _slice = Array.prototype.slice, + _is_pre = _ua.match(/pre\//i), + _iPadOrPhone = _ua.match(/(ipad|iphone)/i), + _isMobile = (_ua.match(/mobile/i) || _is_pre || _iPadOrPhone), + _isIE = (_ua.match(/MSIE/i)), + _isSafari = (_ua.match(/safari/i) && !_ua.match(/chrome/i)), + _hasConsole = (typeof console !== 'undefined' && typeof console.log !== 'undefined'), + _isFocused = (typeof _doc.hasFocus !== 'undefined'?_doc.hasFocus():null), + _tryInitOnFocus = (typeof _doc.hasFocus === 'undefined' && _isSafari), + _okToDisable = !_tryInitOnFocus; + + this._use_maybe = (_wl.match(/sm2\-useHTML5Maybe\=1/i)); // temporary feature: #sm2-useHTML5Maybe=1 forces loose canPlay() check + this._overHTTP = (_doc.location?_doc.location.protocol.match(/http/i):null); + this.useAltURL = !this._overHTTP; // use altURL if not "online" + + if (_iPadOrPhone || _is_pre) { + // might as well force it on Apple + Palm, flash support unlikely + _s.useHTML5Audio = true; + _s.ignoreFlash = true; + } + + if (_is_pre || this._use_maybe) { + // less-strict canPlayType() checking option + _s.html5Test = /^(probably|maybe)$/i; + } + + // Temporary feature: allow force of HTML5 via URL: #sm2-usehtml5audio=0 or 1 + // <d> + (function(){ + var a = '#sm2-usehtml5audio=', l = _wl, b = null; + if (l.indexOf(a) !== -1) { + b = (l.substr(l.indexOf(a)+a.length) === '1'); + if (typeof console !== 'undefined' && typeof console.log !== 'undefined') { + console.log((b?'Enabling ':'Disabling ')+'useHTML5Audio via URL parameter'); + } + _s.useHTML5Audio = b; + } + }()); + // </d> + + // --- public API methods --- + + this.supported = function() { + return (_needsFlash?(_didInit && !_disabled):(_s.useHTML5Audio && _s.hasHTML5)); + }; + + this.getMovie = function(smID) { + return _isIE?_win[smID]:(_isSafari?_id(smID) || _doc[smID]:_id(smID)); + }; + + this.loadFromXML = function(sXmlUrl) { + try { + _s.o._loadFromXML(sXmlUrl); + } catch(e) { + _failSafely(); + } + return true; + }; + + this.createSound = function(oOptions) { + var _cs = 'soundManager.createSound(): ', + thisOptions = null, oSound = null, _tO = null; + if (!_didInit || !_s.supported()) { + _complain(_cs + _str(!_didInit?'notReady':'notOK')); + return false; + } + if (arguments.length === 2) { + // function overloading in JS! :) ..assume simple createSound(id,url) use case + oOptions = { + 'id': arguments[0], + 'url': arguments[1] + }; + } + thisOptions = _mixin(oOptions); // inherit from defaultOptions + _tO = thisOptions; // alias + // <d> + if (_tO.id.toString().charAt(0).match(/^[0-9]$/)) { + _s._wD(_cs + _str('badID', _tO.id), 2); + } + _s._wD(_cs + _tO.id + ' (' + _tO.url + ')', 1); + // </d> + if (_idCheck(_tO.id, true)) { + _s._wD(_cs + _tO.id + ' exists', 1); + return _s.sounds[_tO.id]; + } + + function make() { + thisOptions = _loopFix(thisOptions); + _s.sounds[_tO.id] = new SMSound(_tO); + _s.soundIDs.push(_tO.id); + return _s.sounds[_tO.id]; + } + + if (_html5OK(_tO)) { + oSound = make(); + _s._wD('Loading sound '+_tO.id+' from HTML5'); + oSound._setup_html5(_tO); + } else { + if (_fV > 8 && _s.useMovieStar) { + if (_tO.isMovieStar === null) { + _tO.isMovieStar = ((_tO.serverURL || (_tO.type?_tO.type.match(_s.netStreamPattern):false)||_tO.url.match(_s.netStreamPattern))?true:false); + } + if (_tO.isMovieStar) { + _s._wD(_cs + 'using MovieStar handling'); + } + if (_tO.isMovieStar) { + if (_tO.usePeakData) { + _wDS('noPeak'); + _tO.usePeakData = false; + } + if (_tO.loops > 1) { + _wDS('noNSLoop'); + } + } + } + _tO = _policyFix(_tO, _cs); + oSound = make(); + if (_fV === 8) { + _s.o._createSound(_tO.id, _tO.onjustbeforefinishtime, _tO.loops||1, _tO.usePolicyFile); + } else { + _s.o._createSound(_tO.id, _tO.url, _tO.onjustbeforefinishtime, _tO.usePeakData, _tO.useWaveformData, _tO.useEQData, _tO.isMovieStar, (_tO.isMovieStar?_tO.bufferTime:false), _tO.loops||1, _tO.serverURL, _tO.duration||null, _tO.autoPlay, true, _tO.bufferTimes, _tO.onstats ? true : false, _tO.autoLoad, _tO.usePolicyFile); + if (!_tO.serverURL) { + // We are connected immediately + oSound.connected = true; + if (_tO.onconnect) { + _tO.onconnect.apply(oSound); + } + } + } + } + if (_tO.autoLoad || _tO.autoPlay) { + if (oSound) { + if (_s.isHTML5) { + oSound.autobuffer = 'auto'; // early HTML5 implementation (non-standard) + oSound.preload = 'auto'; // standard + } else { + oSound.load(_tO); + } + } + } + if (_tO.autoPlay) { + oSound.play(); + } + return oSound; + }; + + this.destroySound = function(sID, _bFromSound) { + // explicitly destroy a sound before normal page unload, etc. + if (!_idCheck(sID)) { + return false; + } + var oS = _s.sounds[sID], i; + oS._iO = {}; // Disable all callbacks while the sound is being destroyed + oS.stop(); + oS.unload(); + for (i = 0; i < _s.soundIDs.length; i++) { + if (_s.soundIDs[i] === sID) { + _s.soundIDs.splice(i, 1); + break; + } + } + if (!_bFromSound) { + // ignore if being called from SMSound instance + oS.destruct(true); + } + oS = null; + delete _s.sounds[sID]; + return true; + }; + + this.load = function(sID, oOptions) { + if (!_idCheck(sID)) { + return false; + } + return _s.sounds[sID].load(oOptions); + }; + + this.unload = function(sID) { + if (!_idCheck(sID)) { + return false; + } + return _s.sounds[sID].unload(); + }; + + this.play = function(sID, oOptions) { + var fN = 'soundManager.play(): '; + if (!_didInit || !_s.supported()) { + _complain(fN + _str(!_didInit?'notReady':'notOK')); + return false; + } + if (!_idCheck(sID)) { + if (!(oOptions instanceof Object)) { + oOptions = { + url: oOptions + }; // overloading use case: play('mySound','/path/to/some.mp3'); + } + if (oOptions && oOptions.url) { + // overloading use case, create+play: .play('someID',{url:'/path/to.mp3'}); + _s._wD(fN + 'attempting to create "' + sID + '"', 1); + oOptions.id = sID; + return _s.createSound(oOptions).play(); + } else { + return false; + } + } + return _s.sounds[sID].play(oOptions); + }; + + this.start = this.play; // just for convenience + + this.setPosition = function(sID, nMsecOffset) { + if (!_idCheck(sID)) { + return false; + } + return _s.sounds[sID].setPosition(nMsecOffset); + }; + + this.stop = function(sID) { + if (!_idCheck(sID)) { + return false; + } + _s._wD('soundManager.stop(' + sID + ')', 1); + return _s.sounds[sID].stop(); + }; + + this.stopAll = function() { + _s._wD('soundManager.stopAll()', 1); + for (var oSound in _s.sounds) { + if (_s.sounds[oSound] instanceof SMSound) { + _s.sounds[oSound].stop(); // apply only to sound objects + } + } + }; + + this.pause = function(sID) { + if (!_idCheck(sID)) { + return false; + } + return _s.sounds[sID].pause(); + }; + + this.pauseAll = function() { + for (var i = _s.soundIDs.length; i--;) { + _s.sounds[_s.soundIDs[i]].pause(); + } + }; + + this.resume = function(sID) { + if (!_idCheck(sID)) { + return false; + } + return _s.sounds[sID].resume(); + }; + + this.resumeAll = function() { + for (var i = _s.soundIDs.length; i--;) { + _s.sounds[_s.soundIDs[i]].resume(); + } + }; + + this.togglePause = function(sID) { + if (!_idCheck(sID)) { + return false; + } + return _s.sounds[sID].togglePause(); + }; + + this.setPan = function(sID, nPan) { + if (!_idCheck(sID)) { + return false; + } + return _s.sounds[sID].setPan(nPan); + }; + + this.setVolume = function(sID, nVol) { + if (!_idCheck(sID)) { + return false; + } + return _s.sounds[sID].setVolume(nVol); + }; + + this.mute = function(sID) { + var fN = 'soundManager.mute(): ', + i = 0; + if (typeof sID !== 'string') { + sID = null; + } + if (!sID) { + _s._wD(fN + 'Muting all sounds'); + for (i = _s.soundIDs.length; i--;) { + _s.sounds[_s.soundIDs[i]].mute(); + } + _s.muted = true; + } else { + if (!_idCheck(sID)) { + return false; + } + _s._wD(fN + 'Muting "' + sID + '"'); + return _s.sounds[sID].mute(); + } + return true; + }; + + this.muteAll = function() { + _s.mute(); + }; + + this.unmute = function(sID) { + var fN = 'soundManager.unmute(): ', i; + if (typeof sID !== 'string') { + sID = null; + } + if (!sID) { + _s._wD(fN + 'Unmuting all sounds'); + for (i = _s.soundIDs.length; i--;) { + _s.sounds[_s.soundIDs[i]].unmute(); + } + _s.muted = false; + } else { + if (!_idCheck(sID)) { + return false; + } + _s._wD(fN + 'Unmuting "' + sID + '"'); + return _s.sounds[sID].unmute(); + } + return true; + }; + + this.unmuteAll = function() { + _s.unmute(); + }; + + this.toggleMute = function(sID) { + if (!_idCheck(sID)) { + return false; + } + return _s.sounds[sID].toggleMute(); + }; + + this.getMemoryUse = function() { + if (_fV === 8) { + return 0; + } + if (_s.o) { + return parseInt(_s.o._getMemoryUse(), 10); + } + }; + + this.disable = function(bNoDisable) { + // destroy all functions + if (typeof bNoDisable === 'undefined') { + bNoDisable = false; + } + if (_disabled) { + return false; + } + _disabled = true; + _wDS('shutdown', 1); + for (var i = _s.soundIDs.length; i--;) { + _disableObject(_s.sounds[_s.soundIDs[i]]); + } + _initComplete(bNoDisable); // fire "complete", despite fail + _removeEvt(_win, 'load', _initUserOnload); + return true; + }; + + this.canPlayMIME = function(sMIME) { + var result; + if (_s.hasHTML5) { + result = _html5CanPlay({type:sMIME}); + } + if (!_needsFlash || result) { + // no flash, or OK + return result; + } else { + return (sMIME?(sMIME.match(_s.mimePattern)?true:false):null); + } + }; + + this.canPlayURL = function(sURL) { + var result; + if (_s.hasHTML5) { + result = _html5CanPlay(sURL); + } + if (!_needsFlash || result) { + // no flash, or OK + return result; + } else { + return (sURL?(sURL.match(_s.filePattern)?true:false):null); + } + }; + + this.canPlayLink = function(oLink) { + if (typeof oLink.type !== 'undefined' && oLink.type) { + if (_s.canPlayMIME(oLink.type)) { + return true; + } + } + return _s.canPlayURL(oLink.href); + }; + + this.getSoundById = function(sID, suppressDebug) { + if (!sID) { + throw new Error('SoundManager.getSoundById(): sID is null/undefined'); + } + var result = _s.sounds[sID]; + if (!result && !suppressDebug) { + _s._wD('"' + sID + '" is an invalid sound ID.', 2); + } + return result; + }; + + this.onready = function(oMethod, oScope) { + if (oMethod && oMethod instanceof Function) { + if (_didInit) { + _wDS('queue'); + } + if (!oScope) { + oScope = _win; + } + _addOnReady(oMethod, oScope); + _processOnReady(); + return true; + } else { + throw _str('needFunction'); + } + }; + + this.getMoviePercent = function() { + return (_s.o && typeof _s.o.PercentLoaded !== 'undefined'?_s.o.PercentLoaded():null); + }; + + this._writeDebug = function(sText, sType, bTimestamp) { + // If the debug log callback is set, always call it, regardless of debugMode + if (_s.ondebuglog) { + _s.ondebuglog(sText, sType, bTimestamp); + } + // pseudo-private console.log()-style output + // <d> + var sDID = 'soundmanager-debug', o, oItem, sMethod; + if (!_s.debugMode) { + return false; + } + if (typeof bTimestamp !== 'undefined' && bTimestamp) { + sText = sText + ' | ' + new Date().getTime(); + } + if (_hasConsole && _s.useConsole) { + sMethod = _debugLevels[sType]; + if (typeof console[sMethod] !== 'undefined') { + console[sMethod](sText); + } else { + console.log(sText); + } + if (_s.useConsoleOnly) { + return true; + } + } + try { + o = _id(sDID); + if (!o) { + return false; + } + oItem = _doc.createElement('div'); + if (++_wdCount % 2 === 0) { + oItem.className = 'sm2-alt'; + } + if (typeof sType === 'undefined') { + sType = 0; + } else { + sType = parseInt(sType, 10); + } + oItem.appendChild(_doc.createTextNode(sText)); + if (sType) { + if (sType >= 2) { + oItem.style.fontWeight = 'bold'; + } + if (sType === 3) { + oItem.style.color = '#ff3333'; + } + } + // o.appendChild(oItem); // top-to-bottom + o.insertBefore(oItem, o.firstChild); // bottom-to-top + } catch(e) { + // oh well + } + o = null; + // </d> + return true; + }; + this._wD = this._writeDebug; // alias + + this._debug = function() { + // <d> + _wDS('currentObj', 1); + for (var i = 0, j = _s.soundIDs.length; i < j; i++) { + _s.sounds[_s.soundIDs[i]]._debug(); + } + // </d> + }; + + this.reboot = function() { + // attempt to reset and init SM2 + _s._wD('soundManager.reboot()'); + if (_s.soundIDs.length) { + _s._wD('Destroying ' + _s.soundIDs.length + ' SMSound objects...'); + } + for (var i = _s.soundIDs.length; i--;) { + _s.sounds[_s.soundIDs[i]].destruct(); + } + // trash ze flash + try { + if (_isIE) { + _oRemovedHTML = _s.o.innerHTML; + } + _oRemoved = _s.o.parentNode.removeChild(_s.o); + _s._wD('Flash movie removed.'); + } catch(e) { + // uh-oh. + _wDS('badRemove', 2); + } + // actually, force recreate of movie. + _oRemovedHTML = _oRemoved = null; + _s.enabled = _didInit = _waitingForEI = _initPending = _didAppend = _appendSuccess = _disabled = _s.swfLoaded = false; + _s.soundIDs = _s.sounds = []; + _s.o = null; + for (i = _onready.length; i--;) { + _onready[i].fired = false; + } + _s._wD(_sm + ': Rebooting...'); + _win.setTimeout(function() { + _s.beginDelayedInit(); + }, 20); + }; + + this.destruct = function() { + _s._wD('soundManager.destruct()'); + _s.disable(true); + }; + + this.beginDelayedInit = function() { + // _s._wD('soundManager.beginDelayedInit()'); + _windowLoaded = true; + _dcLoaded(); + setTimeout(_beginInit, 20); + _delayWaitForEI(); + }; + + // --- SMSound (sound object) instance --- + + SMSound = function(oOptions) { + var _t = this, _resetProperties, _add_html5_events, _stop_html5_timer, _start_html5_timer, _get_html5_duration, _a; + this.sID = oOptions.id; + this.url = oOptions.url; + this.options = _mixin(oOptions); + this.instanceOptions = this.options; // per-play-instance-specific options + this._iO = this.instanceOptions; // short alias + // assign property defaults + this.pan = this.options.pan; + this.volume = this.options.volume; + this._lastURL = null; + this.isHTML5 = false; + + // --- public methods --- + + this.id3 = {}; + + this._debug = function() { + // <d> + // pseudo-private console.log()-style output + if (_s.debugMode) { + var stuff = null, msg = [], sF, sfBracket, maxLength = 64; + for (stuff in _t.options) { + if (_t.options[stuff] !== null) { + if (_t.options[stuff] instanceof Function) { + // handle functions specially + sF = _t.options[stuff].toString(); + sF = sF.replace(/\s\s+/g, ' '); // normalize spaces + sfBracket = sF.indexOf('{'); + msg.push(' ' + stuff + ': {' + sF.substr(sfBracket + 1, (Math.min(Math.max(sF.indexOf('\n') - 1, maxLength), maxLength))).replace(/\n/g, '') + '... }'); + } else { + msg.push(' ' + stuff + ': ' + _t.options[stuff]); + } + } + } + _s._wD('SMSound() merged options: {\n' + msg.join(', \n') + '\n}'); + } + // </d> + }; + + this._debug(); + + this.load = function(oOptions) { + var oS = null; + if (typeof oOptions !== 'undefined') { + _t._iO = _mixin(oOptions); + _t.instanceOptions = _t._iO; + } else { + oOptions = _t.options; + _t._iO = oOptions; + _t.instanceOptions = _t._iO; + if (_t._lastURL && _t._lastURL !== _t.url) { + _wDS('manURL'); + _t._iO.url = _t.url; + _t.url = null; + } + } + _s._wD('soundManager.load(): ' + _t._iO.url, 1); + if (_t._iO.url === _t.url && _t.readyState !== 0 && _t.readyState !== 2) { + _wDS('onURL', 1); + return _t; + } + _t._lastURL = _t.url; + _t.loaded = false; + _t.readyState = 1; + _t.playState = 0; + if (_html5OK(_t._iO)) { + _s._wD('HTML 5 load: '+_t._iO.url); + oS = _t._setup_html5(_t._iO); + oS.load(); + if (_t._iO.autoPlay) { + _t.play(); + } + } else { + try { + _t.isHTML5 = false; + _t._iO = _policyFix(_loopFix(_t._iO)); + if (_fV === 8) { + _s.o._load(_t.sID, _t._iO.url, _t._iO.stream, _t._iO.autoPlay, (_t._iO.whileloading?1:0), _t._iO.loops||1, _t._iO.usePolicyFile); + } else { + _s.o._load(_t.sID, _t._iO.url, _t._iO.stream?true:false, _t._iO.autoPlay?true:false, _t._iO.loops||1, _t._iO.autoLoad?true:false, _t._iO.usePolicyFile); + } + } catch(e) { + _wDS('smError', 2); + _debugTS('onload', false); + _die(); + } + } + return _t; + }; + + this.unload = function() { + // Flash 8/AS2 can't "close" a stream - fake it by loading an empty MP3 + // Flash 9/AS3: Close stream, preventing further load + if (_t.readyState !== 0) { + _s._wD('SMSound.unload(): "' + _t.sID + '"'); + if (!_t.isHTML5) { + if (_fV === 8) { + _s.o._unload(_t.sID, _s.nullURL); + } else { + _s.o._unload(_t.sID); + } + } else { + _stop_html5_timer(); + if (_a) { + // abort()-style method here, stop loading? (doesn't exist?) + _a.pause(); + _a.src = _s.nullURL; // needed? does nulling object work? any better way to cancel/unload/abort? + _a.load(); + _t._audio = null; + _a = null; + // delete _t._audio; + } + } + // reset load/status flags + _resetProperties(); + } + return _t; + }; + + this.destruct = function(_bFromSM) { + _s._wD('SMSound.destruct(): "' + _t.sID + '"'); + if (!_t.isHTML5) { + // kill sound within Flash + // Disable the onfailure handler + _t._iO.onfailure = null; + _s.o._destroySound(_t.sID); + } else { + _stop_html5_timer(); + if (_a) { + _a.pause(); + _a.src = 'about:blank'; + _a.load(); + _t._audio = null; + _a = null; + // delete _t._audio; + } + } + if (!_bFromSM) { + _s.destroySound(_t.sID, true); // ensure deletion from controller + } + }; + + this.play = function(oOptions, _updatePlayState) { + var fN = 'SMSound.play(): ', allowMulti; + _updatePlayState = (typeof _updatePlayState === 'undefined' ? true : _updatePlayState); + if (!oOptions) { + oOptions = {}; + } + _t._iO = _mixin(oOptions, _t._iO); + _t._iO = _mixin(_t._iO, _t.options); + _t.instanceOptions = _t._iO; + if (_t._iO.serverURL) { + if (!_t.connected) { + if (!_t.getAutoPlay()) { + _s._wD(fN+' Netstream not connected yet - setting autoPlay'); + _t.setAutoPlay(true); + } + return _t; + } + } + if (_html5OK(_t._iO)) { + _t._setup_html5(_t._iO); + _start_html5_timer(); + } + // KJV paused sounds have playState 1. We want these sounds to play. + if (_t.playState === 1 && !_t.paused) { + allowMulti = _t._iO.multiShot; + if (!allowMulti) { + _s._wD(fN + '"' + _t.sID + '" already playing (one-shot)', 1); + return _t; + } else { + _s._wD(fN + '"' + _t.sID + '" already playing (multi-shot)', 1); + if (_t.isHTML5) { + // TODO: BUG? + _t.setPosition(_t._iO.position); + } + } + } + if (!_t.loaded) { + if (_t.readyState === 0) { + _s._wD(fN + 'Attempting to load "' + _t.sID + '"', 1); + // try to get this sound playing ASAP + if (!_t.isHTML5) { + if (!_t._iO.serverURL) { + _t._iO.autoPlay = true; + _t.load(_t._iO); + } + } else { + _t.load(_t._iO); + _t.readyState = 1; + } + } else if (_t.readyState === 2) { + _s._wD(fN + 'Could not load "' + _t.sID + '" - exiting', 2); + return _t; + } else { + _s._wD(fN + '"' + _t.sID + '" is loading - attempting to play..', 1); + } + } else { + _s._wD(fN + '"' + _t.sID + '"'); + } + // Streams will pause when their buffer is full if they are not auto-playing. + // In this case paused is true, but the song hasn't started playing yet. If + // we just call resume() the onplay() callback will never be called. + + // Also, if we just call resume() in this case and the sound has been muted + // (volume is 0), it will never have its volume set so sound will be heard + // when it shouldn't. + if (_t.paused && _t.position && _t.position > 0) { // https://gist.github.com/37b17df75cc4d7a90bf6 + _s._wD(fN + '"' + _t.sID + '" is resuming from paused state',1); + _t.resume(); + } else { + _s._wD(fN+'"'+ _t.sID+'" is starting to play'); + _t.playState = 1; + _t.paused = false; + if (!_t.instanceCount || _t._iO.multiShotEvents || (_fV > 8 && !_t.isHTML5 && !_t.getAutoPlay())) { + _t.instanceCount++; + } + _t.position = (typeof _t._iO.position !== 'undefined' && !isNaN(_t._iO.position)?_t._iO.position:0); + _t._iO = _policyFix(_loopFix(_t._iO)); + if (_t._iO.onplay && _updatePlayState) { + _t._iO.onplay.apply(_t); + } + _t.setVolume(_t._iO.volume, true); + _t.setPan(_t._iO.pan, true); + if (!_t.isHTML5) { + _s.o._start(_t.sID, _t._iO.loops || 1, (_fV === 9?_t.position:_t.position / 1000)); + } else { + _start_html5_timer(); + _t._setup_html5().play(); + } + } + return _t; + }; + + this.start = this.play; // just for convenience + + this.stop = function(bAll) { + if (_t.playState === 1) { + _t._onbufferchange(0); + _t.resetOnPosition(0); + if (!_t.isHTML5) { + _t.playState = 0; + } + _t.paused = false; + if (_t._iO.onstop) { + _t._iO.onstop.apply(_t); + } + if (!_t.isHTML5) { + _s.o._stop(_t.sID, bAll); + // hack for netStream: just unload + if (_t._iO.serverURL) { + _t.unload(); + } + } else { + if (_a) { + _t.setPosition(0); // act like Flash, though + _a.pause(); // html5 has no stop() + _t.playState = 0; + _t._onTimer(); // and update UI + _stop_html5_timer(); + _t.unload(); + } + } + _t.instanceCount = 0; + _t._iO = {}; + } + return _t; + }; + + this.setAutoPlay = function(autoPlay) { + _s._wD('sound '+_t.sID+' turned autoplay ' + (autoPlay ? 'on' : 'off')); + _t._iO.autoPlay = autoPlay; + _s.o._setAutoPlay(_t.sID, autoPlay); + if (autoPlay) { + // KJV Only increment the instanceCount if the sound isn't loaded (TODO: verify RTMP) + if (!_t.instanceCount && _t.readyState === 1) { + _t.instanceCount++; + _s._wD('sound '+_t.sID+' incremented instance count to '+_t.instanceCount); + } + } + }; + + this.getAutoPlay = function() { + return _t._iO.autoPlay; + }; + + this.setPosition = function(nMsecOffset, bNoDebug) { + if (nMsecOffset === undefined) { + nMsecOffset = 0; + } + // KJV Use the duration from the instance options, if we don't have a track duration yet. + // Auto-loading streams with a starting position in their options will start playing + // as soon as they connect. In the start() call we set the position on the stream, + // but because the stream hasn't played _t.duration won't have been set (that is + // done in whileloading()). So if we don't have a duration yet, use the duration + // from the instance options, if available. + var position, offset = (_t.isHTML5 ? Math.max(nMsecOffset,0) : Math.min(_t.duration || _t._iO.duration, Math.max(nMsecOffset, 0))); // position >= 0 and <= current available (loaded) duration + _t.position = offset; + _t.resetOnPosition(_t.position); + if (!_t.isHTML5) { + position = _fV === 9 ? _t.position : _t.position / 1000; + // KJV We want our sounds to play on seek. A progressive download that + // is loaded has paused = false so resume() does nothing and the sound + // doesn't play. Handle that case here. + if (_t.playState === 0) { + _t.play({ position: position }); + } else { + _s.o._setPosition(_t.sID, position, (_t.paused || !_t.playState)); // if paused or not playing, will not resume (by playing) + // if (_t.paused) { + // _t.resume(); + // } + } + } else if (_a) { + _s._wD('setPosition(): setting position to '+(_t.position / 1000)); + if (_t.playState) { + // DOM/JS errors/exceptions to watch out for: + // if seek is beyond (loaded?) position, "DOM exception 11" + // "INDEX_SIZE_ERR": DOM exception 1 + try { + _a.currentTime = _t.position / 1000; + } catch(e) { + _s._wD('setPosition('+_t.position+'): WARN: Caught exception: '+e.message, 2); + } + } else { + _s._wD('HTML 5 warning: cannot set position while playState == 0 (not playing)',2); + } + if (_t.paused) { // if paused, refresh UI right away + _t._onTimer(true); // force update + if (_t._iO.useMovieStar) { + _t.resume(); + } + } + } + return _t; + }; + + this.pause = function(bCallFlash) { + if (_t.paused || (_t.playState === 0 && _t.readyState !== 1)) { + return _t; + } + _s._wD('SMSound.pause()'); + _t.paused = true; + if (!_t.isHTML5) { + if (bCallFlash || bCallFlash === undefined) { + _s.o._pause(_t.sID); + } + } else { + _t._setup_html5().pause(); + _stop_html5_timer(); + } + if (_t._iO.onpause) { + _t._iO.onpause.apply(_t); + } + return _t; + }; + + this.resume = function() { + // When auto-loaded streams pause on buffer full they have a playState of 0. + // We need to make sure that the playState is set to 1 when these streams "resume". + if (!_t.paused) { + return _t; + } + _s._wD('SMSound.resume()'); + _t.paused = false; + _t.playState = 1; // TODO: verify that this is needed. + if (!_t.isHTML5) { + _s.o._pause(_t.sID); // flash method is toggle-based (pause/resume) + } else { + _t._setup_html5().play(); + _start_html5_timer(); + } + if (_t._iO.onresume) { + _t._iO.onresume.apply(_t); + } + return _t; + }; + + this.togglePause = function() { + _s._wD('SMSound.togglePause()'); + if (_t.playState === 0) { + _t.play({ + position: (_fV === 9 && !_t.isHTML5 ? _t.position:_t.position / 1000) + }); + return _t; + } + if (_t.paused) { + _t.resume(); + } else { + _t.pause(); + } + return _t; + }; + + this.setPan = function(nPan, bInstanceOnly) { + if (typeof nPan === 'undefined') { + nPan = 0; + } + if (typeof bInstanceOnly === 'undefined') { + bInstanceOnly = false; + } + if (!_t.isHTML5) { + _s.o._setPan(_t.sID, nPan); + } // else { no HTML5 pan? } + _t._iO.pan = nPan; + if (!bInstanceOnly) { + _t.pan = nPan; + } + return _t; + }; + + this.setVolume = function(nVol, bInstanceOnly) { + if (typeof nVol === 'undefined') { + nVol = 100; + } + if (typeof bInstanceOnly === 'undefined') { + bInstanceOnly = false; + } + if (!_t.isHTML5) { + _s.o._setVolume(_t.sID, (_s.muted && !_t.muted) || _t.muted?0:nVol); + } else if (_a) { + _a.volume = nVol/100; + } + _t._iO.volume = nVol; + if (!bInstanceOnly) { + _t.volume = nVol; + } + return _t; + }; + + this.mute = function() { + _t.muted = true; + if (!_t.isHTML5) { + _s.o._setVolume(_t.sID, 0); + } else if (_a) { + _a.muted = true; + } + return _t; + }; + + this.unmute = function() { + _t.muted = false; + var hasIO = typeof _t._iO.volume !== 'undefined'; + if (!_t.isHTML5) { + _s.o._setVolume(_t.sID, hasIO?_t._iO.volume:_t.options.volume); + } else if (_a) { + _a.muted = false; + } + return _t; + }; + + this.toggleMute = function() { + return (_t.muted?_t.unmute():_t.mute()); + }; + + this.onposition = function(nPosition, oMethod, oScope) { + // TODO: allow for ranges, too? eg. (nPosition instanceof Array) + _t._onPositionItems.push({ + position: nPosition, + method: oMethod, + scope: (typeof oScope !== 'undefined'?oScope:_t), + fired: false + }); + return _t; + }; + + this.processOnPosition = function() { + var i, item, j = _t._onPositionItems.length; + if (!j || !_t.playState || _t._onPositionFired >= j) { + return false; + } + for (i=j; i--;) { + item = _t._onPositionItems[i]; + if (!item.fired && _t.position >= item.position) { + item.method.apply(item.scope,[item.position]); + item.fired = true; + _s._onPositionFired++; + } + } + return true; + }; + + this.resetOnPosition = function(nPosition) { + // reset "fired" for items interested in this position + var i, item, j = _t._onPositionItems.length; + if (!j) { + return false; + } + for (i=j; i--;) { + item = _t._onPositionItems[i]; + if (item.fired && nPosition <= item.position) { + item.fired = false; + _s._onPositionFired--; + } + } + return true; + }; + + // pseudo-private soundManager reference + + this._onTimer = function(bForce) { + // HTML 5-only _whileplaying() etc. + var time, x = {}; + if (_t._hasTimer || bForce) { + if (_a && (bForce || ((_t.playState > 0 || _t.readyState === 1) && !_t.paused))) { // TODO: May not need to track readyState (1 = loading) + _t.duration = _get_html5_duration(); + _t.durationEstimate = _t.duration; + time = _a.currentTime?_a.currentTime*1000:0; + _t._whileplaying(time,x,x,x,x); + return true; + } else { + _s._wD('_onTimer: Warn for "'+_t.sID+'": '+(!_a?'Could not find element. ':'')+(_t.playState === 0?'playState bad, 0?':'playState = '+_t.playState+', OK')); + return false; + } + } + }; + + // --- private internals --- + + _get_html5_duration = function() { + var d = (_a?_a.duration*1000:undefined); + return (d && !isNaN(d)?d:null); + }; + + _start_html5_timer = function() { + if (_t.isHTML5) { + _startTimer(_t); + } + }; + + _stop_html5_timer = function() { + if (_t.isHTML5) { + _stopTimer(_t); + } + }; + + _resetProperties = function(bLoaded) { + _t._onPositionItems = []; + _t._onPositionFired = 0; + _t._hasTimer = null; + _t._added_events = null; + _t._audio = null; + _a = null; + _t.bytesLoaded = null; + _t.bytesTotal = null; + _t.position = null; + _t.duration = (_t._iO && _t._iO.duration?_t._iO.duration:null); + _t.durationEstimate = null; + _t.failures = 0; + _t.loaded = false; + _t.playState = 0; + _t.paused = false; + _t.readyState = 0; // 0 = uninitialised, 1 = loading, 2 = failed/error, 3 = loaded/success + _t.muted = false; + _t.didBeforeFinish = false; + _t.didJustBeforeFinish = false; + _t.isBuffering = false; + _t.instanceOptions = {}; + _t.instanceCount = 0; + _t.peakData = { + left: 0, + right: 0 + }; + _t.waveformData = { + left: [], + right: [] + }; + _t.eqData = []; // legacy: 1D array + _t.eqData.left = []; + _t.eqData.right = []; + }; + + _resetProperties(); + + // pseudo-private methods used by soundManager + + this._setup_html5 = function(oOptions) { + var _iO = _mixin(_t._iO, oOptions); + if (_a) { + if (_t.url !== _iO.url) { + _s._wD('setting new URL on existing object: '+_iO.url); + _a.src = _iO.url; + } + } else { + _s._wD('creating HTML 5 audio element with URL: '+_iO.url); + _t._audio = new Audio(_iO.url); + _a = _t._audio; + _t.isHTML5 = true; + _add_html5_events(); + } + _a.loop = (_iO.loops>1?'loop':''); + return _t._audio; + }; + + // related private methods + + _add_html5_events = function() { + if (_t._added_events) { + return false; + } + _t._added_events = true; + + function _add(oEvt, oFn, bCapture) { + return (_a ? _a.addEventListener(oEvt, oFn, bCapture||false) : null); + } + + _add('load', function(e) { + _s._wD('HTML5::load: '+_t.sID); + if (_a) { + _t._onbufferchange(0); + _t._whileloading(_t.bytesTotal, _t.bytesTotal, _get_html5_duration()); + _t._onload(true); + } + }, false); + + _add('canplay', function(e) { + _s._wD('HTML5::canplay: '+_t.sID); + // enough has loaded to play + _t._onbufferchange(0); + },false); + + _add('waiting', function(e) { + _s._wD('HTML5::waiting: '+_t.sID); + // playback faster than download rate, etc. + _t._onbufferchange(1); + },false); + + _add('progress', function(e) { // not supported everywhere yet.. + _s._wD('HTML5::progress: '+_t.sID+': loaded/total: '+(e.loaded||0)+'/'+(e.total||1)); + if (!_t.loaded && _a) { + _t._onbufferchange(0); // if progress, likely not buffering + _t._whileloading(e.loaded||0, e.total||1, _get_html5_duration()); + } + }, false); + + _add('error', function(e) { + if (_a) { + _s._wD('HTML5::error: '+_a.error.code); + // call load with error state? + _t._onload(false); + } + }, false); + + _add('loadstart', function(e) { + _s._wD('HTML5::loadstart: '+_t.sID); + // assume buffering at first + _t._onbufferchange(1); + }, false); + + _add('play', function(e) { + _s._wD('HTML5::play: '+_t.sID); + // once play starts, no buffering + _t._onbufferchange(0); + }, false); + + // TODO: verify if this is actually implemented anywhere yet. + _add('playing', function(e) { + _s._wD('HTML5::playing: '+_t.sID); + // once play starts, no buffering + _t._onbufferchange(0); + }, false); + + _add('timeupdate', function(e) { + _t._onTimer(); + }, false); + + // avoid stupid premature event-firing bug in Safari(?) + setTimeout(function(){ + if (_t && _a) { + _add('ended',function(e) { + _s._wD('HTML5::ended: '+_t.sID); + _t._onfinish(); + }, false); + } + }, 250); + return true; + }; + + // --- "private" methods called by Flash --- + + this._whileloading = function(nBytesLoaded, nBytesTotal, nDuration, nBufferLength) { + _t.bytesLoaded = nBytesLoaded; + _t.bytesTotal = nBytesTotal; + _t.duration = Math.floor(nDuration); + _t.bufferLength = nBufferLength; + if (!_t._iO.isMovieStar) { + if (_t._iO.duration) { + // use options, if specified and larger + _t.durationEstimate = (_t.duration > _t._iO.duration) ? _t.duration : _t._iO.duration; + } else { + _t.durationEstimate = parseInt((_t.bytesTotal / _t.bytesLoaded) * _t.duration, 10); + } + if (_t.durationEstimate === undefined) { + _t.durationEstimate = _t.duration; + } + _t.bufferLength = nBufferLength; + if (_t.readyState !== 3 && _t._iO.whileloading) { + _t._iO.whileloading.apply(_t); + } + } else { + _t.durationEstimate = _t.duration; + if (_t.readyState !== 3 && _t._iO.whileloading) { + _t._iO.whileloading.apply(_t); + } + } + }; + + this._onid3 = function(oID3PropNames, oID3Data) { + // oID3PropNames: string array (names) + // ID3Data: string array (data) + _s._wD('SMSound._onid3(): "' + this.sID + '" ID3 data received.'); + var oData = [], i, j; + for (i = 0, j = oID3PropNames.length; i < j; i++) { + oData[oID3PropNames[i]] = oID3Data[i]; + } + _t.id3 = _mixin(_t.id3, oData); + if (_t._iO.onid3) { + _t._iO.onid3.apply(_t); + } + }; + + this._whileplaying = function(nPosition, oPeakData, oWaveformDataLeft, oWaveformDataRight, oEQData) { + if (isNaN(nPosition) || nPosition === null) { + return false; // Flash may return NaN at times + } + if (_t.playState === 0 && nPosition > 0) { + // invalid position edge case for end/stop + nPosition = 0; + } + _t.position = nPosition; + _t.processOnPosition(); + if (_fV > 8 && !_t.isHTML5) { + if (_t._iO.usePeakData && typeof oPeakData !== 'undefined' && oPeakData) { + _t.peakData = { + left: oPeakData.leftPeak, + right: oPeakData.rightPeak + }; + } + if (_t._iO.useWaveformData && typeof oWaveformDataLeft !== 'undefined' && oWaveformDataLeft) { + _t.waveformData = { + left: oWaveformDataLeft.split(','), + right: oWaveformDataRight.split(',') + }; + } + if (_t._iO.useEQData) { + if (typeof oEQData !== 'undefined' && oEQData && oEQData.leftEQ) { + var eqLeft = oEQData.leftEQ.split(','); + _t.eqData = eqLeft; + _t.eqData.left = eqLeft; + if (typeof oEQData.rightEQ !== 'undefined' && oEQData.rightEQ) { + _t.eqData.right = oEQData.rightEQ.split(','); + } + } + } + } + if (_t.playState === 1) { + // special case/hack: ensure buffering is false if loading from cache (and not yet started) + if (!_t.isHTML5 && _s.flashVersion === 8 && !_t.position && _t.isBuffering) { + _t._onbufferchange(0); + } + if (_t._iO.whileplaying) { + _t._iO.whileplaying.apply(_t); // flash may call after actual finish + } + if ((_t.loaded || (!_t.loaded && _t._iO.isMovieStar)) && _t._iO.onbeforefinish && _t._iO.onbeforefinishtime && !_t.didBeforeFinish && _t.duration - _t.position <= _t._iO.onbeforefinishtime) { + _t._onbeforefinish(); + } + } + return true; + }; + + this._onconnect = function(bSuccess) { + var fN = 'SMSound._onconnect(): '; + bSuccess = (bSuccess === 1); + _s._wD(fN+'"'+_t.sID+'"'+(bSuccess?' connected.':' failed to connect? - '+_t.url), (bSuccess?1:2)); + _t.connected = bSuccess; + if (bSuccess) { + _t.failures = 0; + if (_t._iO.onconnect) { + _t._iO.onconnect.apply(_t,[bSuccess]); + } + // don't play if the sound is being destroyed + if (_idCheck(_t.sID) && (_t.options.autoLoad || _t.getAutoPlay())) { + _t.play(undefined, _t.getAutoPlay()); // only update the play state if auto playing + } + } + }; + + this._onload = function(nSuccess) { + var fN = 'SMSound._onload(): ', loadOK = (nSuccess?true:false); + _s._wD(fN + '"' + _t.sID + '"' + (loadOK?' loaded.':' failed to load? - ' + _t.url), (loadOK?1:2)); + // <d> + if (!loadOK && !_t.isHTML5) { + if (_s.sandbox.noRemote === true) { + _s._wD(fN + _str('noNet'), 1); + } + if (_s.sandbox.noLocal === true) { + _s._wD(fN + _str('noLocal'), 1); + } + } + // </d> + _t.loaded = loadOK; + _t.readyState = loadOK?3:2; + _t._onbufferchange(0); + if (_t._iO.onload) { + _t._iO.onload.apply(_t, [loadOK]); + } + return true; + }; + + // fire onfailure() only once at most + // at this point we just recreate failed sounds rather than trying to reconnect. + this._onfailure = function(msg, level, code) { + _t.failures++; + _s._wD('SMSound._onfailure(): "'+_t.sID+'" count '+_t.failures); + if (_t._iO.onfailure && _t.failures === 1) { + _t._iO.onfailure(_t, msg, level, code); + } else { + _s._wD('SMSound._onfailure(): ignoring'); + } + }; + + this._onbeforefinish = function() { + if (!_t.didBeforeFinish) { + _t.didBeforeFinish = true; + if (_t._iO.onbeforefinish) { + _s._wD('SMSound._onbeforefinish(): "' + _t.sID + '"'); + _t._iO.onbeforefinish.apply(_t); + } + } + }; + + this._onjustbeforefinish = function(msOffset) { + if (!_t.didJustBeforeFinish) { + _t.didJustBeforeFinish = true; + if (_t._iO.onjustbeforefinish) { + _s._wD('SMSound._onjustbeforefinish(): "' + _t.sID + '"'); + _t._iO.onjustbeforefinish.apply(_t); + } + } + }; + + // KJV - connect & play time callback from Flash + this._onstats = function(stats) { + if (_t._iO.onstats) { + _t._iO.onstats(_t, stats); + } + }; + + this._onfinish = function() { + // _s._wD('SMSound._onfinish(): "' + _t.sID + '" got instanceCount '+_t.instanceCount); + _t._onbufferchange(0); + _t.resetOnPosition(0); + if (_t._iO.onbeforefinishcomplete) { + _t._iO.onbeforefinishcomplete.apply(_t); + } + // reset some state items + _t.didBeforeFinish = false; + _t.didJustBeforeFinish = false; + if (_t.instanceCount) { + _t.instanceCount--; + if (!_t.instanceCount) { + // reset instance options + _t.playState = 0; + _t.paused = false; + _t.instanceCount = 0; + _t.instanceOptions = {}; + _stop_html5_timer(); + } + if (!_t.instanceCount || _t._iO.multiShotEvents) { + // fire onfinish for last, or every instance + if (_t._iO.onfinish) { + _s._wD('SMSound._onfinish(): "' + _t.sID + '"'); + _t._iO.onfinish.apply(_t); + } + } + } + }; + + this._onbufferchange = function(nIsBuffering) { + var fN = 'SMSound._onbufferchange()'; + if (_t.playState === 0) { + // ignore if not playing + return false; + } + if ((nIsBuffering && _t.isBuffering) || (!nIsBuffering && !_t.isBuffering)) { + return false; + } + _t.isBuffering = (nIsBuffering === 1); + if (_t._iO.onbufferchange) { + _s._wD(fN + ': ' + nIsBuffering); + _t._iO.onbufferchange.apply(_t); + } + return true; + }; + + this._ondataerror = function(sError) { + // flash 9 wave/eq data handler + if (_t.playState > 0) { // hack: called at start, and end from flash at/after onfinish() + _s._wD('SMSound._ondataerror(): ' + sError); + if (_t._iO.ondataerror) { + _t._iO.ondataerror.apply(_t); + } + } + }; + + }; // SMSound() + + // --- private SM2 internals --- + + _getDocument = function() { + return (_doc.body?_doc.body:(_doc._docElement?_doc.documentElement:_doc.getElementsByTagName('div')[0])); + }; + + _id = function(sID) { + return _doc.getElementById(sID); + }; + + _mixin = function(oMain, oAdd) { + // non-destructive merge + var o1 = {}, i, o2, o; + for (i in oMain) { // clone c1 + if (oMain.hasOwnProperty(i)) { + o1[i] = oMain[i]; + } + } + o2 = (typeof oAdd === 'undefined'?_s.defaultOptions:oAdd); + for (o in o2) { + if (o2.hasOwnProperty(o) && typeof o1[o] === 'undefined') { + o1[o] = o2[o]; + } + } + return o1; + }; + + (function() { + var old = (_win.attachEvent), + evt = { + add: (old?'attachEvent':'addEventListener'), + remove: (old?'detachEvent':'removeEventListener') + }; + + function getArgs(oArgs) { + var args = _slice.call(oArgs), len = args.length; + if (old) { + args[1] = 'on' + args[1]; // prefix + if (len > 3) { + args.pop(); // no capture + } + } else if (len === 3) { + args.push(false); + } + return args; + } + + function apply(args, sType) { + var oFunc = args.shift()[evt[sType]]; + if (old) { + oFunc(args[0], args[1]); + } else { + oFunc.apply(this, args); + } + } + + _addEvt = function() { + apply(getArgs(arguments), 'add'); + }; + + _removeEvt = function() { + apply(getArgs(arguments), 'remove'); + }; + }()); + + _html5OK = function(iO) { + return ((iO.type?_html5CanPlay({type:iO.type}):false)||_html5CanPlay(iO.url)); + }; + + _html5CanPlay = function(sURL) { + // try to find MIME, test and return truthiness + if (!_s.useHTML5Audio || !_s.hasHTML5) { + return false; + } + var result, mime, fileExt, item, aF = _s.audioFormats; + if (!_html5Ext) { + _html5Ext = []; + for (item in aF) { + if (aF.hasOwnProperty(item)) { + _html5Ext.push(item); + if (aF[item].related) { + _html5Ext = _html5Ext.concat(aF[item].related); + } + } + } + _html5Ext = new RegExp('\\.('+_html5Ext.join('|')+')','i'); + } + mime = (typeof sURL.type !== 'undefined'?sURL.type:null); + fileExt = (typeof sURL === 'string'?sURL.toLowerCase().match(_html5Ext):null); // TODO: Strip URL queries, etc. + if (!fileExt || !fileExt.length) { + if (!mime) { + return false; + } + } else { + fileExt = fileExt[0].substr(1); // "mp3", for example + } + if (fileExt && typeof _s.html5[fileExt] !== 'undefined') { + // result known + return _s.html5[fileExt]; + } else { + if (!mime) { + if (fileExt && _s.html5[fileExt]) { + return _s.html5[fileExt]; + } else { + // best-case guess, audio/whatever-dot-filename-format-you're-playing + mime = 'audio/'+fileExt; + } + } + result = _s.html5.canPlayType(mime); + _s.html5[fileExt] = result; + // _s._wD('canPlayType, found result: '+result); + return result; + } + }; + + _testHTML5 = function() { + if (!_s.useHTML5Audio || typeof Audio === 'undefined') { + return false; + } + var a = (typeof Audio !== 'undefined' ? new Audio():null), item, support = {}, aF, i; + function _cp(m) { + var canPlay, i, j, isOK = false; + if (!a || typeof a.canPlayType !== 'function') { + return false; + } + if (m instanceof Array) { + // iterate through all mime types, return any successes + for (i=0, j=m.length; i<j && !isOK; i++) { + if (_s.html5[m[i]] || a.canPlayType(m[i]).match(_s.html5Test)) { + isOK = true; + _s.html5[m[i]] = true; + } + } + return isOK; + } else { + canPlay = (a && typeof a.canPlayType === 'function' ? a.canPlayType(m) : false); + return (canPlay && (canPlay.match(_s.html5Test)?true:false)); + } + } + // test all registered formats + codecs + aF = _s.audioFormats; + for (item in aF) { + if (aF.hasOwnProperty(item)) { + support[item] = _cp(aF[item].type); + // assign result to related formats, too + if (aF[item] && aF[item].related) { + for (i=0; i<aF[item].related.length; i++) { + _s.html5[aF[item].related[i]] = support[item]; + } + } + } + } + support.canPlayType = (a?_cp:null); + _s.html5 = _mixin(_s.html5, support); + return true; + }; + + _strings = { + // <d> + notReady: 'Not loaded yet - wait for soundManager.onload()/onready()', + notOK: 'Audio support is not available.', + appXHTML: _sm + '::createMovie(): appendChild/innerHTML set failed. May be app/xhtml+xml DOM-related.', + spcWmode: _sm + '::createMovie(): Removing wmode, preventing win32 below-the-fold SWF loading issue', + swf404: _sm + ': Verify that %s is a valid path.', + tryDebug: 'Try ' + _sm + '.debugFlash = true for more security details (output goes to SWF.)', + checkSWF: 'See SWF output for more debug info.', + localFail: _sm + ': Non-HTTP page (' + _doc.location.protocol + ' URL?) Review Flash player security settings for this special case:\nhttp://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html\nMay need to add/allow path, eg. c:/sm2/ or /users/me/sm2/', + waitFocus: _sm + ': Special case: Waiting for focus-related event..', + waitImpatient: _sm + ': Getting impatient, still waiting for Flash%s...', + waitForever: _sm + ': Waiting indefinitely for Flash (will recover if unblocked)...', + needFunction: _sm + '.onready(): Function object expected', + badID: 'Warning: Sound ID "%s" should be a string, starting with a non-numeric character', + noMS: 'MovieStar mode not enabled. Exiting.', + currentObj: '--- ' + _sm + '._debug(): Current sound objects ---', + waitEI: _sm + '::initMovie(): Waiting for ExternalInterface call from Flash..', + waitOnload: _sm + ': Waiting for window.onload()', + docLoaded: _sm + ': Document already loaded', + onload: _sm + '::initComplete(): calling soundManager.onload()', + onloadOK: _sm + '.onload() complete', + init: '-- ' + _sm + '::init() --', + didInit: _sm + '::init(): Already called?', + flashJS: _sm + ': Attempting to call Flash from JS..', + noPolling: _sm + ': Polling (whileloading()/whileplaying() support) is disabled.', + secNote: 'Flash security note: Network/internet URLs will not load due to security restrictions. Access can be configured via Flash Player Global Security Settings Page: http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html', + badRemove: 'Warning: Failed to remove flash movie.', + noPeak: 'Warning: peakData features unsupported for movieStar formats', + shutdown: _sm + '.disable(): Shutting down', + queue: _sm + '.onready(): Queueing handler', + smFail: _sm + ': Failed to initialise.', + smError: 'SMSound.load(): Exception: JS-Flash communication failed, or JS error.', + fbTimeout: 'No flash response, applying .'+_s.swfCSS.swfTimedout+' CSS..', + fbLoaded: 'Flash loaded', + fbHandler: 'soundManager::flashBlockHandler()', + manURL: 'SMSound.load(): Using manually-assigned URL', + onURL: _sm + '.load(): current URL already assigned.', + badFV: 'soundManager.flashVersion must be 8 or 9. "%s" is invalid. Reverting to %s.', + as2loop: 'Note: Setting stream:false so looping can work (flash 8 limitation)', + noNSLoop: 'Note: Looping not implemented for MovieStar formats', + needfl9: 'Note: Switching to flash 9, required for MP4 formats.', + mfTimeout: 'Setting flashLoadTimeout = 0 (infinite) for off-screen, mobile flash case', + mfOn: 'mobileFlash::enabling on-screen flash repositioning', + policy: 'Enabling usePolicyFile for data access' + // </d> + }; + + _id = function(sID) { + return _doc.getElementById(sID); + }; + + _str = function() { // o [,items to replace] + // <d> + var args = _slice.call(arguments), // real array, please + o = args.shift(), // first arg + str = (_strings && _strings[o]?_strings[o]:''), i, j; + if (str && args && args.length) { + for (i = 0, j = args.length; i < j; i++) { + str = str.replace('%s', args[i]); + } + } + return str; + // </d> + }; + + _loopFix = function(sOpt) { + // flash 8 requires stream = false for looping to work + if (_fV === 8 && sOpt.loops > 1 && sOpt.stream) { + _wDS('as2loop'); + sOpt.stream = false; + } + return sOpt; + }; + + _policyFix = function(sOpt, sPre) { + if (sOpt && !sOpt.usePolicyFile && (sOpt.onid3 || sOpt.usePeakData || sOpt.useWaveformData || sOpt.useEQData)) { + _s._wD((sPre?sPre+':':'') + _str('policy')); + sOpt.usePolicyFile = true; + } + return sOpt; + }; + + _complain = function(sMsg) { + if (typeof console !== 'undefined' && typeof console.warn !== 'undefined') { + console.warn(sMsg); + } else { + _s._wD(sMsg); + } + }; + + _doNothing = function() { + return false; + }; + + _disableObject = function(o) { + for (var oProp in o) { + if (o.hasOwnProperty(oProp) && typeof o[oProp] === 'function') { + o[oProp] = _doNothing; + } + } + oProp = null; + }; + + _failSafely = function(bNoDisable) { + // general failure exception handler + if (typeof bNoDisable === 'undefined') { + bNoDisable = false; + } + if (_disabled || bNoDisable) { + _wDS('smFail', 2); + _s.disable(bNoDisable); + } + }; + + _normalizeMovieURL = function(smURL) { + var urlParams = null; + if (smURL) { + if (smURL.match(/\.swf(\?\.*)?$/i)) { + urlParams = smURL.substr(smURL.toLowerCase().lastIndexOf('.swf?') + 4); + if (urlParams) { + return smURL; // assume user knows what they're doing + } + } else if (smURL.lastIndexOf('/') !== smURL.length - 1) { + smURL = smURL + '/'; + } + } + return (smURL && smURL.lastIndexOf('/') !== - 1?smURL.substr(0, smURL.lastIndexOf('/') + 1):'./') + _s.movieURL; + }; + + _setVersionInfo = function() { + if (_fV !== 8 && _fV !== 9) { + _s._wD(_str('badFV', _fV, _defaultFlashVersion)); + _s.flashVersion = _defaultFlashVersion; + } + var isDebug = (_s.debugMode || _s.debugFlash?'_debug.swf':'.swf'); // debug flash movie, if applicable + if (_s.flashVersion < 9 && _s.useHTML5Audio && _s.audioFormats.mp4.required) { + _s._wD(_str('needfl9')); + _s.flashVersion = 9; + } + _fV = _s.flashVersion; // short-hand for internal use + _s.version = _s.versionNumber + (_html5Only?' (HTML5-only mode)':(_fV === 9?' (AS3/Flash 9)':' (AS2/Flash 8)')); + // set up default options + if (_fV > 8) { + _s.defaultOptions = _mixin(_s.defaultOptions, _s.flash9Options); + _s.features.buffering = true; + } + if (_fV > 8 && _s.useMovieStar) { + // flash 9+ support for movieStar formats as well as MP3 + _s.defaultOptions = _mixin(_s.defaultOptions, _s.movieStarOptions); + _s.filePatterns.flash9 = new RegExp('\\.(mp3|' + _s.netStreamTypes.join('|') + ')(\\?.*)?$', 'i'); + _s.mimePattern = _s.netStreamMimeTypes; + _s.features.movieStar = true; + } else { + _s.features.movieStar = false; + } + _s.filePattern = _s.filePatterns[(_fV !== 8?'flash9':'flash8')]; + _s.movieURL = (_fV === 8?'soundmanager2.swf':'soundmanager2_flash9.swf').replace('.swf',isDebug); + _s.features.peakData = _s.features.waveformData = _s.features.eqData = (_fV > 8); + }; + + _setPolling = function(bPolling, bHighPerformance) { + if (!_s.o || !_s.allowPolling) { + return false; + } + _s.o._setPolling(bPolling, bHighPerformance); + }; + + (function() { + var old = (_win.attachEvent), + evt = { + add: (old?'attachEvent':'addEventListener'), + remove: (old?'detachEvent':'removeEventListener') + }; + + function getArgs(oArgs) { + var args = _slice.call(oArgs), len = args.length; + if (old) { + args[1] = 'on' + args[1]; // prefix + if (len > 3) { + args.pop(); // no capture + } + } else if (len === 3) { + args.push(false); + } + return args; + } + + function apply(args, sType) { + var oFunc = args.shift()[evt[sType]]; + if (old) { + oFunc(args[0], args[1]); + } else { + oFunc.apply(this, args); + } + } + + _addEvt = function() { + apply(getArgs(arguments), 'add'); + }; + + _removeEvt = function() { + apply(getArgs(arguments), 'remove'); + }; + }()); + + function _initDebug() { + if (_s.debugURLParam.test(_wl)) { + _s.debugMode = true; // allow force of debug mode via URL + } + // <d> + if (_id(_s.debugID)) { + return false; + } + var oD, oDebug, oTarget, oToggle, tmp; + if (_s.debugMode && !_id(_s.debugID) && ((!_hasConsole || !_s.useConsole) || (_s.useConsole && _hasConsole && !_s.consoleOnly))) { + oD = _doc.createElement('div'); + oD.id = _s.debugID + '-toggle'; + oToggle = { + 'position': 'fixed', + 'bottom': '0px', + 'right': '0px', + 'width': '1.2em', + 'height': '1.2em', + 'lineHeight': '1.2em', + 'margin': '2px', + 'textAlign': 'center', + 'border': '1px solid #999', + 'cursor': 'pointer', + 'background': '#fff', + 'color': '#333', + 'zIndex': 10001 + }; + oD.appendChild(_doc.createTextNode('-')); + oD.onclick = _toggleDebug; + oD.title = 'Toggle SM2 debug console'; + if (_ua.match(/msie 6/i)) { + oD.style.position = 'absolute'; + oD.style.cursor = 'hand'; + } + for (tmp in oToggle) { + if (oToggle.hasOwnProperty(tmp)) { + oD.style[tmp] = oToggle[tmp]; + } + } + oDebug = _doc.createElement('div'); + oDebug.id = _s.debugID; + oDebug.style.display = (_s.debugMode?'block':'none'); + if (_s.debugMode && !_id(oD.id)) { + try { + oTarget = _getDocument(); + oTarget.appendChild(oD); + } catch(e2) { + throw new Error(_str('appXHTML')); + } + oTarget.appendChild(oDebug); + } + } + oTarget = null; + // </d> + } + + _mobileFlash = (function(){ + + var oM = null; + + function resetPosition() { + if (oM) { + oM.left = oM.top = '-9999px'; + } + } + + function reposition() { + oM.left = _win.scrollX+'px'; + oM.top = _win.scrollY+'px'; + } + + function setReposition(bOn) { + _s._wD('mobileFlash::flash on-screen hack: '+(bOn?'ON':'OFF')); + var f = _win[(bOn?'add':'remove')+'EventListener']; + f('resize', reposition, false); + f('scroll', reposition, false); + } + + function check(inDoc) { + // mobile flash (Android for starters) check + oM = _s.oMC.style; + if (_ua.match(/android/i)) { + if (inDoc) { + if (_s.flashLoadTimeout) { + _s._wDS('mfTimeout'); + _s.flashLoadTimeout = 0; + } + return false; + } + _s._wD('mfOn'); + oM.position = 'absolute'; + oM.left = oM.top = '0px'; + setReposition(true); + _s.onready(function(){ + setReposition(false); // detach + resetPosition(); // restore when OK/timed out + }); + reposition(); + } + return true; + } + + return { + 'check': check + }; + + }()); + + _createMovie = function(smID, smURL) { + + var specialCase = null, + remoteURL = (smURL?smURL:_s.url), + localURL = (_s.altURL?_s.altURL:remoteURL), + oEmbed, oMovie, oTarget = _getDocument(), tmp, movieHTML, oEl, extraClass = _getSWFCSS(), s, x, sClass, side = '100%', isRTL = null, html = _doc.getElementsByTagName('html')[0]; + isRTL = (html && html.dir && html.dir.match(/rtl/i)); + smID = (typeof smID === 'undefined'?_s.id:smID); + + if (_didAppend && _appendSuccess) { + return false; // ignore if already succeeded + } + + function _initMsg() { + _s._wD('-- SoundManager 2 ' + _s.version + (!_html5Only && _s.useHTML5Audio?(_s.hasHTML5?' + HTML5 audio':', no HTML5 audio support'):'') + (_s.useMovieStar?', MovieStar mode':'') + (_s.useHighPerformance?', high performance mode, ':', ') + ((_s.useFastPolling?'fast':'normal') + ' polling') + (_s.wmode?', wmode: ' + _s.wmode:'') + (_s.debugFlash?', flash debug mode':'') + (_s.useFlashBlock?', flashBlock mode':'') + ' --', 1); + } + + if (_html5Only) { + _setVersionInfo(); + _initMsg(); + _s.oMC = _id(_s.movieID); + _init(); + // prevent multiple init attempts + _didAppend = true; + _appendSuccess = true; + return false; + } + + _didAppend = true; + + // safety check for legacy (change to Flash 9 URL) + _setVersionInfo(); + _s.url = _normalizeMovieURL(this._overHTTP?remoteURL:localURL); + smURL = _s.url; + + _s.wmode = (!_s.wmode && _s.useHighPerformance && !_s.useMovieStar?'transparent':_s.wmode); + + if (_s.wmode !== null && !_isIE && !_s.useHighPerformance && navigator.platform.match(/win32/i)) { + _s.specialWmodeCase = true; + // extra-special case: movie doesn't load until scrolled into view when using wmode = anything but 'window' here + // does not apply when using high performance (position:fixed means on-screen), OR infinite flash load timeout + _wDS('spcWmode'); + _s.wmode = null; + } + + oEmbed = { + 'name': smID, + 'id': smID, + 'src': smURL, + 'width': side, + 'height': side, + 'quality': 'high', + 'allowScriptAccess': _s.allowScriptAccess, + 'bgcolor': _s.bgColor, + 'pluginspage': 'http://www.macromedia.com/go/getflashplayer', + 'type': 'application/x-shockwave-flash', + 'wmode': _s.wmode + }; + + if (_s.debugFlash) { + oEmbed.FlashVars = 'debug=1'; + } + + if (!_s.wmode) { + delete oEmbed.wmode; // don't write empty attribute + } + + if (_isIE) { + // IE is "special". + oMovie = _doc.createElement('div'); + movieHTML = '<object id="' + smID + '" data="' + smURL + '" type="' + oEmbed.type + '" width="' + oEmbed.width + '" height="' + oEmbed.height + '"><param name="movie" value="' + smURL + '" /><param name="AllowScriptAccess" value="' + _s.allowScriptAccess + '" /><param name="quality" value="' + oEmbed.quality + '" />' + (_s.wmode?'<param name="wmode" value="' + _s.wmode + '" /> ':'') + '<param name="bgcolor" value="' + _s.bgColor + '" />' + (_s.debugFlash?'<param name="FlashVars" value="' + oEmbed.FlashVars + '" />':'') + '<!-- --></object>'; + } else { + oMovie = _doc.createElement('embed'); + for (tmp in oEmbed) { + if (oEmbed.hasOwnProperty(tmp)) { + oMovie.setAttribute(tmp, oEmbed[tmp]); + } + } + } + + _initDebug(); + extraClass = _getSWFCSS(); + oTarget = _getDocument(); + + if (oTarget) { + _s.oMC = _id(_s.movieID)?_id(_s.movieID):_doc.createElement('div'); + if (!_s.oMC.id) { + _s.oMC.id = _s.movieID; + _s.oMC.className = _s.swfCSS.swfDefault + ' ' + extraClass; + // "hide" flash movie + s = null; + oEl = null; + if (!_s.useFlashBlock) { + if (_s.useHighPerformance) { + s = { + 'position': 'fixed', + 'width': '8px', + 'height': '8px', + // >= 6px for flash to run fast, >= 8px to start up under Firefox/win32 in some cases. odd? yes. + 'bottom': '0px', + 'left': '0px', + 'overflow': 'hidden' + }; + } else { + s = { + 'position': 'absolute', + 'width': '6px', + 'height': '6px', + 'top': '-9999px', + 'left': '-9999px' + }; + if (isRTL) { + s.left = Math.abs(parseInt(s.left,10))+'px'; + } + } + } + if (_ua.match(/webkit/i)) { + _s.oMC.style.zIndex = 10000; // soundcloud-reported render/crash fix, safari 5 + } + if (!_s.debugFlash) { + for (x in s) { + if (s.hasOwnProperty(x)) { + _s.oMC.style[x] = s[x]; + } + } + } + try { + if (!_isIE) { + _s.oMC.appendChild(oMovie); + } + oTarget.appendChild(_s.oMC); + if (_isIE) { + oEl = _s.oMC.appendChild(_doc.createElement('div')); + oEl.className = _s.swfCSS.swfBox; + oEl.innerHTML = movieHTML; + } + _appendSuccess = true; + } catch(e) { + throw new Error(_str('appXHTML')); + } + _mobileFlash.check(); + } else { + // it's already in the document. + sClass = _s.oMC.className; + _s.oMC.className = (sClass?sClass+' ':_s.swfCSS.swfDefault) + (extraClass?' '+extraClass:''); + _s.oMC.appendChild(oMovie); + if (_isIE) { + oEl = _s.oMC.appendChild(_doc.createElement('div')); + oEl.className = _s.swfCSS.swfBox; + oEl.innerHTML = movieHTML; + } + _appendSuccess = true; + _mobileFlash.check(true); + } + } + + if (specialCase) { + _s._wD(specialCase); + } + + _initMsg(); + _s._wD('soundManager::createMovie(): Trying to load ' + smURL + (!this._overHTTP && _s.altURL?' (alternate URL)':''), 1); + + return true; + }; + + _idCheck = this.getSoundById; + + _initMovie = function() { + if (_html5Only) { + _createMovie(); + return false; + } + // attempt to get, or create, movie + if (_s.o) { + return false; // may already exist + } + _s.o = _s.getMovie(_s.id); // inline markup + if (!_s.o) { + if (!_oRemoved) { + // try to create + _createMovie(_s.id, _s.url); + } else { + // try to re-append removed movie after reboot() + if (!_isIE) { + _s.oMC.appendChild(_oRemoved); + } else { + _s.oMC.innerHTML = _oRemovedHTML; + } + _oRemoved = null; + _didAppend = true; + } + _s.o = _s.getMovie(_s.id); + } + if (_s.o) { + _s._wD('soundManager::initMovie(): Got '+_s.o.nodeName+' element ('+(_didAppend?'created via JS':'static HTML')+')'); + _wDS('waitEI'); + } + if (_s.oninitmovie instanceof Function) { + setTimeout(_s.oninitmovie, 1); + } + return true; + }; + + _go = function(sURL) { + // where it all begins. + if (sURL) { + _s.url = sURL; + } + _initMovie(); + }; + + _delayWaitForEI = function() { + setTimeout(_waitForEI, 500); + }; + + _waitForEI = function() { + if (_waitingForEI) { + return false; + } + _waitingForEI = true; + _removeEvt(_win, 'load', _delayWaitForEI); + if (_tryInitOnFocus && !_isFocused) { + _wDS('waitFocus'); + return false; + } + var p; + if (!_didInit) { + p = _s.getMoviePercent(); + _s._wD(_str('waitImpatient', (p === 100?' (SWF loaded)':(p > 0?' (SWF ' + p + '% loaded)':'')))); + } + setTimeout(function() { + p = _s.getMoviePercent(); + if (!_didInit) { + _s._wD(_sm + ': No Flash response within expected time.\nLikely causes: ' + (p === 0?'Loading ' + _s.movieURL + ' may have failed (and/or Flash ' + _fV + '+ not present?), ':'') + 'Flash blocked or JS-Flash security error.' + (_s.debugFlash?' ' + _str('checkSWF'):''), 2); + if (!this._overHTTP && p) { + _wDS('localFail', 2); + if (!_s.debugFlash) { + _wDS('tryDebug', 2); + } + } + if (p === 0) { + // if 0 (not null), probably a 404. + _s._wD(_str('swf404', _s.url)); + } + _debugTS('flashtojs', false, ': Timed out' + this._overHTTP?' (Check flash security or flash blockers)':' (No plugin/missing SWF?)'); + } + // give up / time-out, depending + if (!_didInit && _okToDisable) { + if (p === null) { + // SWF failed. Maybe blocked. + if (_s.useFlashBlock || _s.flashLoadTimeout === 0) { + if (_s.useFlashBlock) { + _flashBlockHandler(); + } + _wDS('waitForever'); + } else { + // old SM2 behaviour, simply fail + _failSafely(true); + } + } else { + // flash loaded? Shouldn't be a blocking issue, then. + if (_s.flashLoadTimeout === 0) { + _wDS('waitForever'); + } else { + _failSafely(true); + } + } + } + }, _s.flashLoadTimeout); + }; + + _go = function(sURL) { + // where it all begins. + if (sURL) { + _s.url = sURL; + } + _initMovie(); + }; + + // <d> + _wDS = function(o, errorLevel) { + if (!o) { + return ''; + } else { + return _s._wD(_str(o), errorLevel); + } + }; + + if (_wl.indexOf('debug=alert') + 1 && _s.debugMode) { + _s._wD = function(sText) {alert(sText);}; + } + + _toggleDebug = function() { + var o = _id(_s.debugID), + oT = _id(_s.debugID + '-toggle'); + if (!o) { + return false; + } + if (_debugOpen) { + // minimize + oT.innerHTML = '+'; + o.style.display = 'none'; + } else { + oT.innerHTML = '-'; + o.style.display = 'block'; + } + _debugOpen = !_debugOpen; + }; + + _debugTS = function(sEventType, bSuccess, sMessage) { + // troubleshooter debug hooks + if (typeof sm2Debugger !== 'undefined') { + try { + sm2Debugger.handleEvent(sEventType, bSuccess, sMessage); + } catch(e) { + // oh well + } + } + return true; + }; + // </d> + + _getSWFCSS = function() { + var css = []; + if (_s.debugMode) { + css.push(_s.swfCSS.sm2Debug); + } + if (_s.debugFlash) { + css.push(_s.swfCSS.flashDebug); + } + if (_s.useHighPerformance) { + css.push(_s.swfCSS.highPerf); + } + return css.join(' '); + }; + + _flashBlockHandler = function() { + // *possible* flash block situation. + var name = _str('fbHandler'), p = _s.getMoviePercent(); + if (!_s.supported()) { + if (_needsFlash) { + // make the movie more visible, so user can fix + _s.oMC.className = _getSWFCSS() + ' ' + _s.swfCSS.swfDefault + ' ' + (p === null?_s.swfCSS.swfTimedout:_s.swfCSS.swfError); + _s._wD(name+': '+_str('fbTimeout')+(p?' ('+_str('fbLoaded')+')':'')); + } + _s.didFlashBlock = true; + _processOnReady(true); // fire onready(), complain lightly + if (_s.onerror instanceof Function) { + _s.onerror.apply(_win); + } + } else { + // SM2 loaded OK (or recovered) + if (_s.didFlashBlock) { + _s._wD(name+': Unblocked'); + } + if (_s.oMC) { + _s.oMC.className = _getSWFCSS() + ' ' + _s.swfCSS.swfDefault + (' '+_s.swfCSS.swfUnblocked); + } + } + }; + + _handleFocus = function() { + function cleanup() { + _removeEvt(_win, 'focus', _handleFocus); + _removeEvt(_win, 'load', _handleFocus); + } + if (_isFocused || !_tryInitOnFocus) { + cleanup(); + return true; + } + _okToDisable = true; + _isFocused = true; + _s._wD('soundManager::handleFocus()'); + if (_isSafari && _tryInitOnFocus) { + // giant Safari 3.1 hack - assume mousemove = focus given lack of focus event + _removeEvt(_win, 'mousemove', _handleFocus); + } + // allow init to restart + _waitingForEI = false; + cleanup(); + return true; + }; + + _initComplete = function(bNoDisable) { + if (_didInit) { + return false; + } + if (_html5Only) { + // all good. + _s._wD('-- SoundManager 2: loaded --'); + _didInit = true; + _processOnReady(); + _initUserOnload(); + return true; + } + var sClass = _s.oMC.className, + wasTimeout = (_s.useFlashBlock && _s.flashLoadTimeout && !_s.getMoviePercent()); + if (!wasTimeout) { + _didInit = true; + } + _s._wD('-- SoundManager 2 ' + (_disabled?'failed to load':'loaded') + ' (' + (_disabled?'security/load error':'OK') + ') --', 1); + if (_disabled || bNoDisable) { + if (_s.useFlashBlock) { + _s.oMC.className = _getSWFCSS() + ' ' + (_s.getMoviePercent() === null?_s.swfCSS.swfTimedout:_s.swfCSS.swfError); + } + _processOnReady(); + _debugTS('onload', false); + if (_s.onerror instanceof Function) { + _s.onerror.apply(_win); + } + return false; + } else { + _debugTS('onload', true); + } + if (_s.waitForWindowLoad && !_windowLoaded) { + _wDS('waitOnload'); + _addEvt(_win, 'load', _initUserOnload); + return false; + } else { + if (_s.waitForWindowLoad && _windowLoaded) { + _wDS('docLoaded'); + } + _initUserOnload(); + } + return true; + }; + + _addOnReady = function(oMethod, oScope) { + _onready.push({ + 'method': oMethod, + 'scope': (oScope || null), + 'fired': false + }); + }; + + _processOnReady = function(ignoreInit) { + if (!_didInit && !ignoreInit) { + // not ready yet. + return false; + } + var status = { + success: (ignoreInit?_s.supported():!_disabled) + }, + queue = [], i, j, + canRetry = (!_s.useFlashBlock || (_s.useFlashBlock && !_s.supported())); + for (i = 0, j = _onready.length; i < j; i++) { + if (_onready[i].fired !== true) { + queue.push(_onready[i]); + } + } + if (queue.length) { + _s._wD(_sm + ': Firing ' + queue.length + ' onready() item' + (queue.length > 1?'s':'')); + for (i = 0, j = queue.length; i < j; i++) { + if (queue[i].scope) { + queue[i].method.apply(queue[i].scope, [status]); + } else { + queue[i].method(status); + } + if (!canRetry) { // flashblock case doesn't count here + queue[i].fired = true; + } + } + } + return true; + }; + + _initUserOnload = function() { + _win.setTimeout(function() { + if (_s.useFlashBlock) { + _flashBlockHandler(); + } + _processOnReady(); + _wDS('onload', 1); + // call user-defined "onload", scoped to window + if (_s.onload instanceof Function) { + _s.onload.apply(_win); + } + _wDS('onloadOK', 1); + if (_s.waitForWindowLoad) { + _addEvt(_win, 'load', _initUserOnload); + } + },1); + }; + + _featureCheck = function() { + var needsFlash, item, + isBadSafari = (!_wl.match(/usehtml5audio/i) && !_wl.match(/sm2\-ignorebadua/i) && _isSafari && _ua.match(/OS X 10_6_(3|4)/i)), // Safari 4 and 5 occasionally fail to load/play HTML5 audio on Snow Leopard due to bug(s) in QuickTime X and/or other underlying frameworks. :/ Known Apple "radar" bug. https://bugs.webkit.org/show_bug.cgi?id=32159 + isSpecial = (_ua.match(/iphone os (1|2|3_0|3_1)/i)?true:false); // iPhone <= 3.1 has broken HTML5 audio(), but firmware 3.2 (iPad) + iOS4 works. + if (isSpecial) { + _s.hasHTML5 = false; // has Audio(), but is broken; let it load links directly. + _html5Only = true; // ignore flash case, however + if (_s.oMC) { + _s.oMC.style.display = 'none'; + } + return false; + } + if (_s.useHTML5Audio) { + if (!_s.html5 || !_s.html5.canPlayType) { + _s._wD('SoundManager: No HTML5 Audio() support detected.'); + _s.hasHTML5 = false; + return true; + } else { + _s.hasHTML5 = true; + } + if (isBadSafari) { + _s._wD('SoundManager::Note: Buggy HTML5 Audio in Safari on OS X 10.6.[3|4], see https://bugs.webkit.org/show_bug.cgi?id=32159 - disabling HTML5 audio',1); + _s.useHTML5Audio = false; + _s.hasHTML5 = false; + return true; + } + } else { + // flash required. + return true; + } + for (item in _s.audioFormats) { + if (_s.audioFormats.hasOwnProperty(item) && _s.audioFormats[item].required && !_s.html5.canPlayType(_s.audioFormats[item].type)) { + // may need flash for this format? + needsFlash = true; + } + } + // sanity check.. + if (_s.ignoreFlash) { + needsFlash = false; + } + _html5Only = (_s.useHTML5Audio && _s.hasHTML5 && !needsFlash); + return needsFlash; + }; + + _init = function() { + var item, tests = []; + _wDS('init'); + + // called after onload() + if (_didInit) { + _wDS('didInit'); + return false; + } + + function _cleanup() { + _removeEvt(_win, 'load', _s.beginDelayedInit); + } + + if (_s.hasHTML5) { + for (item in _s.audioFormats) { + if (_s.audioFormats.hasOwnProperty(item)) { + tests.push(item+': '+_s.html5[item]); + } + } + _s._wD('-- SoundManager 2: HTML5 support tests ('+_s.html5Test+'): '+tests.join(', ')+' --',1); + } + + if (_html5Only) { + if (!_didInit) { + // we don't need no steenking flash! + _cleanup(); + _s.enabled = true; + _initComplete(); + } + return true; + } + + // flash path + _initMovie(); + try { + _wDS('flashJS'); + _s.o._externalInterfaceTest(false); // attempt to talk to Flash + if (!_s.allowPolling) { + _wDS('noPolling', 1); + } else { + _setPolling(true, _s.useFastPolling?true:false); + } + if (!_s.debugMode) { + _s.o._disableDebug(); + } + _s.enabled = true; + _debugTS('jstoflash', true); + } catch(e) { + _s._wD('js/flash exception: ' + e.toString()); + _debugTS('jstoflash', false); + _failSafely(true); // don't disable, for reboot() + _initComplete(); + return false; + } + _initComplete(); + // event cleanup + _cleanup(); + return true; + }; + + _beginInit = function() { + if (_initPending) { + return false; + } + _createMovie(); + _initMovie(); + _initPending = true; + return true; + }; + + _dcLoaded = function() { + if (_didDCLoaded) { + return false; + } + _didDCLoaded = true; + _initDebug(); + _testHTML5(); + _s.html5.usingFlash = _featureCheck(); + _needsFlash = _s.html5.usingFlash; + _didDCLoaded = true; + if (_doc.removeEventListener) { + _doc.removeEventListener('DOMContentLoaded', _dcLoaded, false); + } + _go(); + return true; + }; + + _startTimer = function(oSound) { + if (!oSound._hasTimer) { + oSound._hasTimer = true; + } + }; + + _stopTimer = function(oSound) { + if (oSound._hasTimer) { + oSound._hasTimer = false; + } + }; + + _die = function() { + if (_s.onerror instanceof Function) { + _s.onerror(); + } + _s.disable(); + }; + + // pseudo-private methods called by Flash + + this._setSandboxType = function(sandboxType) { + // <d> + var sb = _s.sandbox; + sb.type = sandboxType; + sb.description = sb.types[(typeof sb.types[sandboxType] !== 'undefined'?sandboxType:'unknown')]; + _s._wD('Flash security sandbox type: ' + sb.type); + if (sb.type === 'localWithFile') { + sb.noRemote = true; + sb.noLocal = false; + _wDS('secNote', 2); + } else if (sb.type === 'localWithNetwork') { + sb.noRemote = false; + sb.noLocal = true; + } else if (sb.type === 'localTrusted') { + sb.noRemote = false; + sb.noLocal = false; + } + // </d> + }; + + this._externalInterfaceOK = function(flashDate) { + // flash callback confirming flash loaded, EI working etc. + // flashDate = approx. timing/delay info for JS/flash bridge + if (_s.swfLoaded) { + return false; + } + var eiTime = new Date().getTime(); + _s._wD('soundManager::externalInterfaceOK()' + (flashDate?' (~' + (eiTime - flashDate) + ' ms)':'')); + _debugTS('swf', true); + _debugTS('flashtojs', true); + _s.swfLoaded = true; + _tryInitOnFocus = false; + if (_isIE) { + // IE needs a timeout OR delay until window.onload - may need TODO: investigating + setTimeout(_init, 100); + } else { + _init(); + } + }; + + _dcIE = function() { + if (_doc.readyState === 'complete') { + _dcLoaded(); + _doc.detachEvent('onreadystatechange', _dcIE); + } + return true; + }; + + // focus and window load, init + if (!_s.hasHTML5 || _needsFlash) { + // only applies to Flash mode + _addEvt(_win, 'focus', _handleFocus); + _addEvt(_win, 'load', _handleFocus); + _addEvt(_win, 'load', _delayWaitForEI); + if (_isSafari && _tryInitOnFocus) { + _addEvt(_win, 'mousemove', _handleFocus); // massive Safari focus hack + } + } + + if (_doc.addEventListener) { + _doc.addEventListener('DOMContentLoaded', _dcLoaded, false); + } else if (_doc.attachEvent) { + _doc.attachEvent('onreadystatechange', _dcIE); + } else { + // no add/attachevent support - safe to assume no JS -> Flash either + _debugTS('onload', false); + _die(); + } + + if (_doc.readyState === 'complete') { + setTimeout(_dcLoaded,100); + } + +} // SoundManager() + +// var SM2_DEFER = true; +// details: http://www.schillmania.com/projects/soundmanager2/doc/getstarted/#lazy-loading + +if (typeof SM2_DEFER === 'undefined' || !SM2_DEFER) { + soundManager = new SoundManager(); +} + +// public interfaces +window.SoundManager = SoundManager; // constructor +window.soundManager = soundManager; // public instance: API, Flash callbacks etc. + +}(window)); diff --git a/frontend/js/titleScrambler.js b/frontend/js/titleScrambler.js new file mode 100644 index 0000000..6948cbf --- /dev/null +++ b/frontend/js/titleScrambler.js @@ -0,0 +1,56 @@ +var titleSwitch = true; +var FillerChars = [ "(",")","|","1","4","\\", "9","_" ]; +var titleArray = document.title.split(""); +var titleArrayCopy = titleArray.slice(0); +var titleLength = titleArray.length + +function marqueeArray(arr){ + var first = arr[0] + arr.shift() +} + +function replaceArray(arr, char){ + arr[randomChoice(arr)] = char +} +var titleUpdateInterval = 300 +function randomChoice(arr){ + var rand = Math.random(); + rand *= arr.length; + rand = Math.floor(rand) + return rand; +} +var titleUpdate = setInterval(function(){ + if (titleSwitch === true){ + marqueeArray(titleArray); + document.title = titleArray.join("") + if (titleArray.length === 1){ + document.title = ""; + titleArray = titleArrayCopy.slice(0); + document.title = titleArray.join(""); + if (titleSwitch){ + titleSwitch = false; + }else{ + titleSwitch = true; + titleUpdateInterval = 100; + } + } + }else{ + + replaceArray(titleArray, FillerChars[randomChoice(FillerChars)]); + document.title = titleArray.join("") + if (titleArray[(titleArray.length-1)] in FillerChars){ + console.log("it's in there"); + titleArray = titleArrayCopy.slice(0); + document.title = titleArray.join(""); + if (titleSwitch){ + titleSwitch = false; + titleUpdateInterval = 300; + }else{ + titleSwitch = true; + } + + } + } + + }, titleUpdateInterval); + diff --git a/frontend/js/urls.js b/frontend/js/urls.js new file mode 120000 index 0000000..018f8c5 --- /dev/null +++ b/frontend/js/urls.js @@ -0,0 +1 @@ +../impattern/js/urls.js
\ No newline at end of file diff --git a/frontend/js/username.js b/frontend/js/username.js new file mode 120000 index 0000000..d7b2691 --- /dev/null +++ b/frontend/js/username.js @@ -0,0 +1 @@ +../impattern/js/username.js
\ No newline at end of file diff --git a/frontend/js/what.html b/frontend/js/what.html new file mode 100644 index 0000000..1acd364 --- /dev/null +++ b/frontend/js/what.html @@ -0,0 +1,7 @@ +<div id="waht"></div> +<script type="text/javascript" src="jquery.js"></script> +<script type="text/javascript"> +$("#waht").html("what") + +</script> + diff --git a/frontend/js/zepto-0.7.zip b/frontend/js/zepto-0.7.zip Binary files differnew file mode 100644 index 0000000..f46af99 --- /dev/null +++ b/frontend/js/zepto-0.7.zip diff --git a/frontend/js/zepto.js b/frontend/js/zepto.js new file mode 100644 index 0000000..2419eac --- /dev/null +++ b/frontend/js/zepto.js @@ -0,0 +1,4 @@ +// Zepto.js +// (c) 2010, 2011 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. +(function(a){String.prototype.trim===a&&(String.prototype.trim=function(){return this.replace(/^\s+/,"").replace(/\s+$/,"")}),Array.prototype.reduce===a&&(Array.prototype.reduce=function(b){if(this===void 0||this===null)throw new TypeError;var c=Object(this),d=c.length>>>0,e=0,f;if(typeof b!="function")throw new TypeError;if(d==0&&arguments.length==1)throw new TypeError;if(arguments.length>=2)f=arguments[1];else do{if(e in c){f=c[e++];break}if(++e>=d)throw new TypeError}while(!0);while(e<d)e in c&&(f=b.call(a,f,c[e],e,c)),e++;return f})})();var Zepto=function(){function K(a,c){c(a);for(b in a.childNodes)K(a.childNodes[b],c)}function J(a,b,c){var d=!a||a==3?b:b.parentNode;d.insertBefore(c,a?a==1?b.nextSibling:a==2?b:null:d.firstChild)}function I(a,b,c,d){return s(b)?b.call(a,c,d):b}function H(b,c){return c===a?G(b):G(b).filter(c)}function G(b,d){if(!b)return F();if(d!==a)return G(d).find(b);if(s(b))return G(g).ready(b);if(b instanceof F)return b;var e;u(b)?e=w(b):m.indexOf(b.nodeType)>=0||b===window?(e=[b],b=null):l.test(b)?(e=E(b,RegExp.$1),b=null):b.nodeType&&b.nodeType==3?e=[b]:e=c(g,b);return F(e,b)}function F(a,b){a=a||e,a.__proto__=F.prototype,a.selector=b||"";return a}function E(b,c){c===a&&l.test(b)&&RegExp.$1,c in r||(c="*");var d=r[c];d.innerHTML=""+b;return f.call(d.childNodes)}function D(a){var b,c;h[a]||(b=g.createElement(a),g.body.appendChild(b),c=j(b,"").getPropertyValue("display"),b.parentNode.removeChild(b),c=="none"&&(c="block"),h[a]=c);return h[a]}function C(a,b){return typeof b=="number"&&!k[z(a)]?b+"px":b}function B(a){return a in i?i[a]:i[a]=new RegExp("(^|\\s)"+a+"(\\s|$)")}function A(a){return a.filter(function(a,b,c){return c.indexOf(a)==b})}function z(a){return a.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function y(a){return a.replace(/-+(.)?/g,function(a,b){return b?b.toUpperCase():""})}function x(a){return a.length>0?[].concat.apply([],a):a}function w(b){return b.filter(function(b){return b!==a&&b!==null})}function v(a){return typeof a.length=="number"}function u(a){return a instanceof Array}function t(a){return a instanceof Object}function s(a){return{}.toString.call(a)=="[object Function]"}var a,b,c,d,e=[],f=e.slice,g=window.document,h={},i={},j=g.defaultView.getComputedStyle,k={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},l=/^\s*<(\w+)[^>]*>/,m=[1,9,11],n=["prepend","after","before","append"],o=["append","prepend"],p=g.createElement("table"),q=g.createElement("tr"),r={tr:g.createElement("tbody"),tbody:p,thead:p,tfoot:p,td:q,th:q,"*":g.createElement("div")};G.extend=function(a){f.call(arguments,1).forEach(function(c){for(b in c)a[b]=c[b]});return a},G.qsa=c=function(a,b){return f.call(a.querySelectorAll(b))},G.isFunction=s,G.isObject=t,G.isArray=u,G.map=function(a,b){var c,d=[],e,f;if(v(a))for(e=0;e<a.length;e++)c=b(a[e],e),c!=null&&d.push(c);else for(f in a)c=b(a[f],f),c!=null&&d.push(c);return x(d)},G.each=function(a,b){var c,d;if(v(a)){for(c=0;c<a.length;c++)if(b(c,a[c])===!1)return a}else for(d in a)if(b(d,a[d])===!1)return a;return a},G.fn={forEach:e.forEach,reduce:e.reduce,push:e.push,indexOf:e.indexOf,concat:e.concat,map:function(a){return G.map(this,function(b,c){return a.call(b,c,b)})},slice:function(){return G(f.apply(this,arguments))},ready:function(a){(g.readyState=="complete"||g.readyState=="loaded")&&a(),g.addEventListener("DOMContentLoaded",a,!1);return this},get:function(b){return b===a?this:this[b]},size:function(){return this.length},remove:function(){return this.each(function(){this.parentNode!=null&&this.parentNode.removeChild(this)})},each:function(a){this.forEach(function(b,c){a.call(b,c,b)});return this},filter:function(a){return G([].filter.call(this,function(b){return c(b.parentNode,a).indexOf(b)>=0}))},end:function(){return this.prevObject||G()},add:function(a,b){return G(A(this.concat(G(a,b))))},is:function(a){return this.length>0&&G(this[0]).filter(a).length>0},not:function(b){var c=[];if(s(b)&&b.call!==a)this.each(function(a){b.call(this,a)||c.push(this)});else{var d=typeof b=="string"?this.filter(b):v(b)&&s(b.item)?f.call(b):G(b);this.forEach(function(a){d.indexOf(a)<0&&c.push(a)})}return G(c)},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return G(this[0])},last:function(){return G(this[this.length-1])},find:function(a){var b;this.length==1?b=c(this[0],a):b=this.map(function(){return c(this,a)});return G(b)},closest:function(b,d){var e=this[0],f=c(d!==a?d:g,b);f.length===0&&(e=null);while(e&&e!==g&&f.indexOf(e)<0)e=e.parentNode;return G(e!==g&&e)},parents:function(a){var b=[],c=this;while(c.length>0)c=G.map(c,function(a){if((a=a.parentNode)&&a!==g&&b.indexOf(a)<0){b.push(a);return a}});return H(b,a)},parent:function(a){return H(A(this.pluck("parentNode")),a)},children:function(a){return H(this.map(function(){return f.call(this.children)}),a)},siblings:function(a){return H(this.map(function(a,b){return f.call(b.parentNode.children).filter(function(a){return a!==b})}),a)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(a){return this.map(function(){return this[a]})},show:function(){return this.each(function(){this.style.display=="none"&&(this.style.display=null),j(this,"").getPropertyValue("display")=="none"&&(this.style.display=D(this.nodeName))})},replaceWith:function(a){return this.each(function(){var b=this.parentNode,c=this.nextSibling;G(this).remove(),c?G(c).before(a):G(b).append(a)})},wrap:function(a){return this.each(function(){G(this).wrapAll(G(a)[0].cloneNode(!1))})},wrapAll:function(a){this[0]&&(G(this[0]).before(a=G(a)),a.append(this));return this},unwrap:function(){this.parent().each(function(){G(this).replaceWith(G(this).children())});return this},hide:function(){return this.css("display","none")},toggle:function(b){return(b===a?this.css("display")=="none":b)?this.show():this.hide()},prev:function(){return G(this.pluck("previousElementSibling"))},next:function(){return G(this.pluck("nextElementSibling"))},html:function(b){return b===a?this.length>0?this[0].innerHTML:null:this.each(function(a){var c=this.innerHTML;G(this).empty().append(I(this,b,a,c))})},text:function(b){return b===a?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=b})},attr:function(c,d){return typeof c=="string"&&d===a?this.length>0&&this[0].nodeName=="INPUT"&&this[0].type=="text"&&c=="value"?this.val():this.length>0?this[0].getAttribute(c)||(c in this[0]?this[0][c]:a):a:this.each(function(a){if(t(c))for(b in c)this.setAttribute(b,c[b]);else this.setAttribute(c,I(this,d,a,this.getAttribute(c)))})},removeAttr:function(a){return this.each(function(){this.removeAttribute(a)})},data:function(a,b){return this.attr("data-"+a,b)},val:function(b){return b===a?this.length>0?this[0].value:null:this.each(function(){this.value=b})},offset:function(){if(this.length==0)return null;var a=this[0].getBoundingClientRect();return{left:a.left+g.body.scrollLeft,top:a.top+g.body.scrollTop,width:a.width,height:a.height}},css:function(c,d){if(d===a&&typeof c=="string")return this[0].style[y(c)]||j(this[0],"").getPropertyValue(c);var e="";for(b in c)e+=z(b)+":"+C(b,c[b])+";";typeof c=="string"&&(e=z(c)+":"+C(c,d));return this.each(function(){this.style.cssText+=";"+e})},index:function(a){return a?this.indexOf(G(a)[0]):this.parent().children().indexOf(this[0])},hasClass:function(a){return this.length<1?!1:B(a).test(this[0].className)},addClass:function(a){return this.each(function(b){d=[];var c=this.className,e=I(this,a,b,c);e.split(/\s+/g).forEach(function(a){G(this).hasClass(a)||d.push(a)},this),d.length&&(this.className+=(c?" ":"")+d.join(" "))})},removeClass:function(b){return this.each(function(c){if(b===a)return this.className="";d=this.className,I(this,b,c,d).split(/\s+/g).forEach(function(a){d=d.replace(B(a)," ")}),this.className=d.trim()})},toggleClass:function(b,c){return this.each(function(d){var e=this.className,f=I(this,b,d,e);c!==a&&!c||G(this).hasClass(f)?G(this).removeClass(f):G(this).addClass(f)})}},"filter,add,not,eq,first,last,find,closest,parents,parent,children,siblings".split(",").forEach(function(a){var b=G.fn[a];G.fn[a]=function(){var a=b.apply(this,arguments);a.prevObject=this;return a}}),["width","height"].forEach(function(b){G.fn[b]=function(c){var d;return c===a?(d=this.offset())&&d[b]:this.css(b,c)}}),n.forEach(function(a,b){G.fn[a]=function(a){var c=typeof a=="object"?a:E(a);"length"in c||(c=[c]);if(c.length<1)return this;var d=this.length,e=d>1,f=b<2;return this.each(function(a,g){for(var h=0;h<c.length;h++){var i=c[f?c.length-h-1:h];K(i,function(a){a.nodeName!=null&&a.nodeName.toUpperCase()==="SCRIPT"&&window.eval.call(window,a.innerHTML)}),e&&a<d-1&&(i=i.cloneNode(!0)),J(b,g,i)}})}}),o.forEach(function(a){G.fn[a+"To"]=function(b){typeof b!="object"&&(b=G(b)),b[a](this);return this}}),F.prototype=G.fn;return G}();"$"in window||(window.$=Zepto),function(a){function n(b){var c=a.extend({originalEvent:b},b);a.each(m,function(a,d){c[a]=function(){this[d]=k;return b[a].apply(b,arguments)},c[d]=l});return c}function j(a,b,d,g){var h=e(a);(b||"").split(/\s/).forEach(function(b){f(a,b,d,g).forEach(function(b){delete c[h][b.i],a.removeEventListener(b.e,b.proxy,!1)})})}function i(b,d,f,h,i){var j=e(b),k=c[j]||(c[j]=[]);d.split(/\s/).forEach(function(c){var d=i||f,e=function(a){var c=d.apply(b,[a].concat(a.data));c===!1&&a.preventDefault();return c},j=a.extend(g(c),{fn:f,proxy:e,sel:h,del:i,i:k.length});k.push(j),b.addEventListener(j.e,e,!1)})}function h(a){return new RegExp("(?:^| )"+a.replace(" "," .* ?")+"(?: |$)")}function g(a){var b=(""+a).split(".");return{e:b[0],ns:b.slice(1).sort().join(" ")}}function f(a,b,d,f){b=g(b);if(b.ns)var i=h(b.ns);return(c[e(a)]||[]).filter(function(a){return a&&(!b.e||a.e==b.e)&&(!b.ns||i.test(a.ns))&&(!d||a.fn==d)&&(!f||a.sel==f)})}function e(a){return a._zid||(a._zid=d++)}var b=a.qsa,c={},d=1;a.event={add:i,remove:j},a.fn.bind=function(a,b){return this.each(function(){i(this,a,b)})},a.fn.unbind=function(a,b){return this.each(function(){j(this,a,b)})},a.fn.one=function(a,b){return this.each(function(){var c=this;i(this,a,function(e){b.call(c,e),j(c,a,arguments.callee)})})};var k=function(){return!0},l=function(){return!1},m={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};a.fn.delegate=function(c,d,e){return this.each(function(f,g){i(g,d,e,c,function(d,f){var h=d.target,i=b(g,c);while(h&&i.indexOf(h)<0)h=h.parentNode;h&&h!==g&&h!==document&&e.call(h,a.extend(n(d),{currentTarget:h,liveFired:g}),f)})})},a.fn.undelegate=function(a,b,c){return this.each(function(){j(this,b,c,a)})},a.fn.live=function(b,c){a(document.body).delegate(this.selector,b,c);return this},a.fn.die=function(b,c){a(document.body).undelegate(this.selector,b,c);return this},a.fn.trigger=function(b,c){typeof b=="string"&&(b=a.Event(b)),b.data=c;return this.each(function(){this.dispatchEvent(b)})},a.fn.triggerHandler=function(b,c){var d,e;this.each(function(g,h){d=n(typeof b=="string"?a.Event(b):b),d.data=c,d.target=h,a.each(f(h,b.type||b),function(a,b){e=b.proxy(d);if(d.isImmediatePropagationStopped())return!1})});return e},"focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout change select keydown keypress keyup error".split(" ").forEach(function(b){a.fn[b]=function(a){return this.bind(b,a)}}),["focus","blur"].forEach(function(b){a.fn[b]=function(a){if(a)this.bind(b,a);else if(this.length)try{this.get(0)[b]()}catch(c){}return this}}),a.Event=function(b,c){var d=document.createEvent("Events");c&&a.extend(d,c),d.initEvent(b,!c||c.bubbles!==!1,!0);return d}}(Zepto),function(a){function b(a){var a=a,b={},c=a.match(/(Android)\s+([\d.]+)/),d=a.match(/(iPad).*OS\s([\d_]+)/),e=!d&&a.match(/(iPhone\sOS)\s([\d_]+)/),f=a.match(/(webOS|hpwOS)[\s\/]([\d.]+)/),g=f&&a.match(/TouchPad/),h=a.match(/(BlackBerry).*Version\/([\d.]+)/);c&&(b.android=!0,b.version=c[2]),e&&(b.ios=!0,b.version=e[2].replace(/_/g,"."),b.iphone=!0),d&&(b.ios=!0,b.version=d[2].replace(/_/g,"."),b.ipad=!0),f&&(b.webos=!0,b.version=f[2]),g&&(b.touchpad=!0),h&&(b.blackberry=!0,b.version=h[2]);return b}a.os=b(navigator.userAgent),a.__detect=b;var c=navigator.userAgent.match(/WebKit\/([\d.]+)/);a.browser=c?{webkit:!0,version:c[1]}:{webkit:!1}}(Zepto),function(a,b){var c=["scale","scaleX","scaleY","translate","translateX","translateY","translate3d","skew","skewX","skewY","rotate","rotateX","rotateY","rotateZ","rotate3d","matrix"];a.fn.anim=function(a,d,e,f){var g=[],h={},i,j=this,k;for(i in a)c.indexOf(i)>=0?g.push(i+"("+a[i]+")"):h[i]=a[i];k=function(){j.css({"-webkit-transition":"none"}),f&&f()},d>0?this.one("webkitTransitionEnd",k):setTimeout(k,0),g.length>0&&(h["-webkit-transform"]=g.join(" ")),h["-webkit-transition"]="all "+(d!==b?d:.5)+"s "+(e||""),setTimeout(function(){j.css(h)},0);return this}}(Zepto),function(a){function e(){}var b=0,c=a.isObject,d;a.ajaxJSONP=function(c){var d="jsonp"+ ++b,e=document.createElement("script");window[d]=function(a){c.success(a),delete window[d]},e.src=c.url.replace(/=\?/,"="+d),a("head").append(e)},a.ajaxSettings={type:"GET",beforeSend:e,success:e,error:e,complete:e,accepts:{script:"text/javascript, application/javascript",json:"application/json",xml:"application/xml, text/xml",html:"text/html",text:"text/plain"}},a.ajax=function(b){b=b||{};var e=a.extend({},b);for(d in a.ajaxSettings)e[d]||(e[d]=a.ajaxSettings[d]);if(/=\?/.test(e.url))return a.ajaxJSONP(e);e.url||(e.url=window.location.toString()),e.data&&!e.contentType&&(e.contentType="application/x-www-form-urlencoded"),c(e.data)&&(e.data=a.param(e.data));if(e.type.match(/get/i)&&e.data){var f=e.data;e.url.match(/\?.*=/)?f="&"+f:f[0]!="?"&&(f="?"+f),e.url+=f}var g=e.accepts[e.dataType],h=new XMLHttpRequest;e.headers=a.extend({"X-Requested-With":"XMLHttpRequest"},e.headers||{}),g&&(e.headers.Accept=g),h.onreadystatechange=function(){if(h.readyState==4){var a,b=!1;if(h.status>=200&&h.status<300||h.status==0){if(g=="application/json"&&h.responseText!="")try{a=JSON.parse(h.responseText)}catch(c){b=c}else a=h.responseText;b?e.error(h,"parsererror",b):e.success(a,"success",h)}else b=!0,e.error(h,"error");e.complete(h,b?"error":"success")}},h.open(e.type,e.url,!0);if(e.beforeSend(h,e)===!1){h.abort();return!1}e.contentType&&(e.headers["Content-Type"]=e.contentType);for(name in e.headers)h.setRequestHeader(name,e.headers[name]);h.send(e.data);return h},a.get=function(b,c){a.ajax({url:b,success:c})},a.post=function(b,c,d,e){a.isFunction(c)&&(e=e||d,d=c,c=null),a.ajax({type:"POST",url:b,data:c,success:d,dataType:e})},a.getJSON=function(b,c){a.ajax({url:b,success:c,dataType:"json"})},a.fn.load=function(b,c){if(!this.length)return this;var d=this,e=b.split(/\s/),f;e.length>1&&(b=e[0],f=e[1]),a.get(b,function(b){d.html(f?a(document.createElement("div")).html(b).find(f).html():b),c&&c()});return this},a.param=function(b,e){var f=[],g=function(a,b){f.push(encodeURIComponent(e?e+"["+a+"]":a)+"="+encodeURIComponent(b))},h=a.isArray(b);for(d in b)c(b[d])?f.push(a.param(b[d],e?e+"["+d+"]":d)):g(h?"":d,b[d]);return f.join("&").replace("%20","+")}}(Zepto),function(a){a.fn.serializeArray=function(){var b=[],c;a(Array.prototype.slice.call(this.get(0).elements)).each(function(){c=a(this),(c.attr("type")!=="radio"||c.is(":checked"))&&(c.attr("type")!=="checkbox"||!!c.is(":checked"))&&b.push({name:c.attr("name"),value:c.val()})});return b},a.fn.serialize=function(){var a=[];this.serializeArray().forEach(function(b){a.push(encodeURIComponent(b.name)+"="+encodeURIComponent(b.value))});return a.join("&")},a.fn.submit=function(b){if(b)this.bind("submit",b);else if(this.length){var c=a.Event("submit");this.eq(0).trigger(c),c.defaultPrevented||this.get(0).submit()}return this}}(Zepto),function(a){function g(){b.last&&Date.now()-b.last>=f&&(a(b.target).trigger("longTap"),b={})}function e(a,b,c,d){var e=Math.abs(a-b),f=Math.abs(c-d);return e>=f?a-b>0?"Left":"Right":c-d>0?"Up":"Down"}function d(a){return"tagName"in a?a:a.parentNode}var b={},c,f=750;a(document).ready(function(){a(document.body).bind("touchstart",function(a){var e=Date.now(),h=e-(b.last||e);b.target=d(a.touches[0].target),c&&clearTimeout(c),b.x1=a.touches[0].pageX,b.y1=a.touches[0].pageY,h>0&&h<=250&&(b.isDoubleTap=!0),b.last=e,setTimeout(g,f)}).bind("touchmove",function(a){b.x2=a.touches[0].pageX,b.y2=a.touches[0].pageY}).bind("touchend",function(d){b.isDoubleTap?(a(b.target).trigger("doubleTap"),b={}):b.x2>0||b.y2>0?((Math.abs(b.x1-b.x2)>30||Math.abs(b.y1-b.y2)>30)&&a(b.target).trigger("swipe")&&a(b.target).trigger("swipe"+e(b.x1,b.x2,b.y1,b.y2)),b.x1=b.x2=b.y1=b.y2=b.last=0):"last"in b&&(c=setTimeout(function(){c=null,a(b.target).trigger("tap"),b={}},250))}).bind("touchcancel",function(){b={}})}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","longTap"].forEach(function(b){a.fn[b]=function(a){return this.bind(b,a)}})}(Zepto) diff --git a/frontend/server/simple_proxy.py b/frontend/server/simple_proxy.py new file mode 100644 index 0000000..8588887 --- /dev/null +++ b/frontend/server/simple_proxy.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python3 +import http.server +import urllib.request +import re + +class MyHTTPRequestHandler(http.server.CGIHTTPRequestHandler ): + def end_headers(self): + self.send_my_headers() + + http.server.CGIHTTPRequestHandler .end_headers(self) + + def send_my_headers(self): + self.send_header("Access-Control-Allow-Origin", "*") + + def do_GET(self): + if self.path[0:14] == "/cgi-bin/proxy": + self.copyfile(urllib.request.urlopen(self.path[15:]), self.wfile) + super().do_GET(); + else: + super().do_GET() + + def do_POST(self): + super().do_POST(); + +if __name__ == '__main__': + http.server.test(port=8181, HandlerClass=MyHTTPRequestHandler) + diff --git a/pbserver.py b/pbserver.py index 36a53a1..33415d6 100755 --- a/pbserver.py +++ b/pbserver.py @@ -1,5 +1,5 @@ #!/usr/bin/python2.7 -from bottle import route, run, post, request +from bottle import route, run, post, request, static_file from pb.gradient import Gradient from pb.imgrid import Imgrid @@ -172,4 +172,41 @@ def pattern(): raise; return json.dumps({ 'error' : 'Request could not be processed' }) -run(host='0.0.0.0', server='flup', port=8999, debug=True) +#static routes +@route('/im/<filename>') +def server_static(filename): + return static_file(filename, root='frontend/im/') +@route('/im') +def server_static(): + return static_file("index.html", root='frontend/im/') +@route('/imgrid') +def server_static(): + return static_file("index.html", root='frontend/imgrid/') +@route('/imgradient') +def server_static(): + return static_file("index.html", root='frontend/imgradient/') +@route('/imlandscape') +def server_static(): + return static_file("index.html", root='frontend/imlandscape/') +@route('/impattern') +def server_static(): + return static_file("index.html", root='frontend/impattern/') +@route('/imbreak') +def server_static(): + return static_file("index.html", root='frontend/imbreak/') +@route('/') +def server_static(): + return static_file("index.html", root='frontend/im/') +@route('/css/<filename>') +def server_static(filename): + return static_file(filename, root='frontend/css/') +@route('/js/<filename>') +def server_static(filename): + return static_file(filename, root='frontend/js/') +@route('/img/<filename>') +def server_static(filename): + return static_file(filename, root='frontend/img/') + + +#run(host='0.0.0.0', server='flup', port=8999, debug=True) +run(host='0.0.0.0', port=8999, debug=True) |
